组合逻辑设计

专用集成电路 -- CMOS组合逻辑设计 专用集成电路 – CMOS组合逻辑设计 文章目录专用集成电路 -- CMOS组合逻辑设计1. 静态互补CMOS1.1 阈值损失1.2 两输入与非门实例1.3 延时与扇入的关系1.4 解决大扇入的方法2. 组合逻辑性能优化2.1 逻辑努力,门努力2.2 组合逻辑链最小延迟计算3. CMOS逻辑门中的功耗3.1 开关活动性的静态部分3.2 开关活动性的动态虚假翻转3.3 降低组合逻辑的开关活动性4. ... 阅读详情
下载
第3章组合逻辑设计
逻辑设计涉及到构造一个实现特定任务的数字网络。根据布尔逻辑,这等效于实现一个
特定的函数。数字逻辑设计可以归纳为由下列步骤组成:
• 问题的确定。
• 产生实现逻辑函数的逻辑网络。
• 网络的构造。
• 逻辑电路的测试与验证。
本章我们将讨论逻辑设计的基础。它是讨论大系统设计的基础。
3.1 问题的确定
正确地确定问题十分重要,因为它是整个设计过程的基础。确定系统所需功能的方式有
多种。根据信息表示的方式不同,有些方法可能比其他方法更为有用。
组合逻辑涉及到用逻辑门按需要对输入变量组合并产生逻辑函数的逻辑网络。在组合电路
中,输出值是由当前的输入值决定的。如果任何输入有变化,那么组合逻辑网络的输出值就可
能发生变化,这由逻辑网络的函数来确定。为了设计出组合逻辑网络,我们通常首先确定用于
产生一个或多个输出的一组输入变量。对于图3 - 1所示的情形,这就意味着我们的任务就是求
出方框内逻辑网络,该逻辑网络应以基本逻辑运算( N O T,O R,A N D )或一系列逻辑门来表示。
问题的确定关系到我们表述问题的方法。我们必须采用某一种形式来提出问题,而该形
式应为我们提供产生数字逻辑网络解决方案的所需的信息。由于我们不是生活在一个二进制
的世界中,所以我们常常需要从一个非数字的基础开始,对其引进一个编码方案。一旦我们
选择好编码方案,问题就将转移到数字域中,我们的工作也就可以从该点开始。另一方面,
如果我们已经在使用二进制数,那么我们就可以用0和1来确定问题。
现在设想我们已经工作于二进制数制系统中,并且假设我们对构造0和1世界的数字逻辑
网络感兴趣。本书将阐述数字逻辑网络如何与现实世界接口。我们用于确定设计问题的方法
主要有两种。
功能表
功能表就是扩展到任意函数的真值表。功能表的一个例子如图3 - 2所示,它有三个输入变
输入
逻辑网络
输出函数
输入输出
图3-1 通用的逻辑模块符号图3-2 用功能表来确定问题
量A, B和C,其输出函数为f (A, B, C)。由于输入共有23= 8种可能的二进制组合,所以完全确定
地问题需要8个项。对于每个输入项,输出的值为f= 0或f= 1。
布尔表达式
用一个或多个布尔方程作为确定问题的起始点常常是可行的。一旦我们有了逻辑表达式,
我们就可根据需要进一步采用布尔代数的定律对函数进行处理。我们可以直接从方程中实现
逻辑门的选择以及逻辑网络的构造。
值得注意的是,对于已经确定的问题,这两种方法是完全等效的。它们只是相同信息的
不同看待方法。逻辑设计者可同时使用这两种问题确定的方法作为出发点。本章将学习到,
问题表述常常是以一个通用的形式给出的,该形式必须转换成有效的二进制设计。
3.2 标准逻辑形式
结构化逻辑是以书写布尔方程的能力为基础,而书写方程的方式采用的是各种标准和重
复的形式。这常常是逻辑分析的一个有用的出发点,因为结构化方程为问题的确定提供了一
致的看法。在现代的设计技术中,结构化方程本身足以在某些类型的电子电路中构造出逻辑
网络。
有两种结构化形式在逻辑设计中特别有用。它们分别被称为乘积之和( S O P )形式以及和之
乘积( P O S )形式,它们之所以得以应用是因为任何逻辑均可采用S O P或P O S形式来表达。一旦
我们明白了如何构造和处理这类方程,那么其结果就可用于构造任何组合逻辑网络。
3.2.1 乘积之和形式
乘积之和表达式是由相或( O R )在一起的多个与( A N D )项组成。采用术语S O P是因为我们
常把A N D运算,如A·B,看作是乘积(来自乘法),而把O R运算(X+Y)看作是和(来自加法)。等
效地,一个S O P方程可说成具有A O ( A N D / O R )形式。对于标准S O P结构的函数,每个变量必
须以通常的形式或以补码形式出现在每一项中。否则,函数的表示形式只是S O P形式。
例3-1
假设我们有变量A, B和C。那么下面的函数是标准的S O P形式:
( 3 - 1 )
上式为标准结构是因为每一项中都包含有A, B和C因子。
例3-2
考虑布尔表达式F(A, B, C),将其写作
( 3 - 2 )
这是一个乘积之和的形式,但它不具有标准结构,因为它的每一项中只有三个可能变量
中的两个。
例3-3
考虑表达式
( 3 - 3 )
42 数字系统设计基础教程
下载
即使三项中有两项满足标准形式的条件,但由于最后一项中只有a和c因子,故G不是标准
形式。
标准S O P函数的格式
考虑函数
( 3 - 4 )
虽然它具有S O P结构,但它不能归类于标准S O P形式,因为它的第一项少了z项,而第二
项没有x因子。使用恒等式
( 3 - 5 )
并将其分配到各项中,我们可将函数h转变成标准形式。为了看清这是如何进行的,我们
将转换的步骤清楚地写出为:
( 3 - 6 )
最终的形式具有标准S O P形式所希望的特征;其中括号实际上是不需要的,但使用括号
可强调每项的结构。
此方法可应用于任何S O P表达式,使其转换成标准形式。但是,应该注意的是,将方程
转换为标准形式通常会增加其复杂度并会增加附加项。在最终电路中标准形式表达式所需的
逻辑门数目将比原来的表达式更多。其权衡措施就是采用更多的结构化的方法来设计巨大而
复杂的逻辑网络。结构化方法选择是由实际用来构造最终网络的电子电路的类型决定的。
3.2.2 和之乘积形式
此类表达式由相与( A N D )在一起的多个或( O R )项组成。与S O P情形一样, P O S形式中每个
变量必须以通常的形式或补码形式出现在每一项中。P O S函数实现的是OA (OR/AND)逻辑。
例3-4
2 -输入函数
( 3 - 7 )
是标准的P O S形式,因为每一项都都包含有x和y因子。一个非标准的P O S表达式的例子为
( 3 - 8 )
将变量x作为O R项x= (x+ 0 )来看待,上式可标明为具有P O S结构。
例3-5
考虑3 -变量方程
( 3 - 9 )
此式为标准P O S形式;它满足标准P O S形式的所有条件。
例3-6
函数
第3章组合逻辑设计43
下载
( 3 - 1 0 )
是P O S形式,但它不具备标准结构,因为第一个及第二个因子没有包含所有三个变量。
3.3 提取标准形式
现在我们来考虑用功能表来确定问题的一个很重要的情形,在该情形中,我们希望从功
能表的数据中提取出布尔表达式。应用功能表各项间的关系以及结构化的逻辑形式,这是很
容易实现的。
我们从图3 - 3所示功能表的特殊情形入手来考查这
种关系。图中输入变量分别标为A, B, C,而输出函数
为f (A, B, C)。我们首先得到的结论是,由于f是一个
二进制数,所以它的值只能是0或1。当我们回忆起第2
章中几个明显地包含了0或1的特别恒等式时,这个似
乎微不足道的论述变得更为重要。这些论述可以帮助
我们写出逻辑表达式,而这些逻辑表达式包含有与功
能表表示的相同的信息。
现在让我们进一步从功能表中提取出标准的S O P形式。这是通过首先应确定产生输出f = 1
的输入组合,并且记住恒等式
1+Anything = 1 ( 3 - 11 )
来实现的。其中A n y t h i n g指的是任意一个二进制变量或一组变量。逻辑上,条件f = 1的含义为
标有箭头项中的至少有一个值必须等于1。共有4种得到该结果的输入组合,所以函数f 的S O P
形式将有四项,它可分解成4个独立的函数:
f = f1+f2+f3+f4 ( 3 - 1 2 )
所以,如果任何一项等于1,那么f = 1。每一项将构成一个3-变量相与的组,而每个组可从所
列出的输入值中得到。
考虑第一个出现的f = 1,它是功能表中的第二项。该项可以写成:
如果(A=0) 且(B=0) 且(C= 0 )
那么f = 1
那么,我们可以构造出这个A N D项为
( 3 - 1 3 )
其中我们用补码
-A
和
-B
来表示输入0,并简单地用C表示输入1。通过观察,对于所确定的
输入值,f1 = 1成立。
以这个例子为基础,我们可以将一个通用方法公式化来构造出完整表达式所需要的每个
S O P项。对于给定的输入组合,我们可产生一个含有所有输入变量的A N D项。如果所确定的
输入值为1,那么该变量以其通常的形式出现;如果输入为0,那么我们采用其补码形式。
为了理解上述的用法,考虑f = 1的第二种情形(它是表中的第三项)。此项用语句描述为:
如果(A =0) 且(B =1) 且(C = 0 )
那么f = 1
据此我们可构造出函数
44 数字系统设计基础教程
下载
图3-3 用功能表表示的SOP项关系式
输入输出
( 3 - 1 4 )
来表示该项。类似地,剩下的各项给出为:
( 3 - 1 5 )
它们分别对应于输入组合1 0 0和111。由于所有这些乘积( A N D )项给出f = 1,所以通过求和( O R )
可得到完整的表达式,写作
( 3 - 1 6 )
上式即为标准S O P形式。
例3-7
我们采用这种方法来求出对应于下表(图3 - 4 )中信息的S O P函数。通过观察,共有4个A N D
项,写作:
( 3 - 1 7 )
即为所希望得到的表达式。
图3-4 用功能表表示的SOP格式的例子
3.3.1 最小项和最大项
在S O P表达式中,函数是通过将多个A N D项求和(相加)产生的。一旦给定了变量的数目和
名称,那么每一项的形式都是相同的。通过引进最小项概念,这种方法可以实现公式化。最
小项是含有所有变量,并且每个变量都以通常的形式或补码形式相与( A N D )在一起形成的项。
为了理解最小项的概念,我们来讨论使用变量A, B, C 的情形。一个典型的最小项为
-A
·
B·
-A
,它对立的二进制组为0 1 0。为简化标识,注意到0 1 0对应的十进制值为2。我们将最小
项m2定义为
( 3 - 1 8 )
将此标识方法扩展到所有可能的情形,得到
( 3 - 1 9 )
第3章组合逻辑设计45
下载
这些标识都容易牢记,因为每个下标对应于二进制字的十进制值。
最小项标识可用于简化S O P表达式的外观。考虑函数
( 3 - 2 0 )
上式可写成最小项的求和形式
( 3 - 2 1 )
其中求和符号(Σ)表示括号中指定的最小项的相或运算。这种简捷的标识为表示S O P函数
提供了一个紧凑的方法。
例3-8
考虑函数
( 3 - 2 2 )
对其进行扩展,写作
( 3 - 2 3 )
为得到用a, b和c项表示的合适形式,我们注意到十进制到二进制的等效关系。
( 3 . 2 4 )
这样,
( 3 - 2 5 )
就是相同函数的扩展形式。
当我们使用P O S函数时,引进最大项的概念会带来方便。最大项包含相互相或( O R )的所
有可能的变量。例如,
- A+B+-C
是一个3-变量函数的最大项。通常,最大项Mi是由对应的最小
项mi的形式来定义,表示为
( 3 - 2 6 )
作为一个例子,我们来考虑3-变量的最大项M2。由于m2= -A ·B·
-A
(对应于0 1 0 ),所以它
的最大项计算为
( 3 - 2 7 )
其中我们采用了狄摩根简化来得出最后的形式。下面所示的是一个完整的3-变量最大项
清单。
( 3 - 2 8 )
46 数字系统设计基础教程
下载
P O S函数采用最大项可写成简化的形式。例如,
( 3 - 2 9 )
其中乘积符号( Õ )用于标识所列出的最大项的与运算。
3.3.2 SOP和P O S形式的属性
现在我们来研究S O P和P O S函数的一些重要性质。作为一个具有标准结构的典型的逻辑表
达式,考虑下面的最小项S O P方程:
( 3 - 3 0 )
这种形式为我们提供了构造出图3 - 5所示功能表所需的足够信
息。一旦我们列出了所有可能的输入组合,我们就可以给对
应于最小项m1, m2, m5和m6的各行分配一个值F= 1;这些行在
图中使用箭头表示。表中剩下的可能值必然有F= 0,这样我
们就完成了功能表的构造。
现在假设我们想求出相同函数的P O S形式。通过定义最
大项,M1=-m 1,我们应该找出功能表中值为0的各个最小项;
这些项对应的最大项的值为1。这样从功能表中,我们可得
到下列最大项作为重要项。
( 3 - 3 1 )
在标准P O S形式中,所有最大项都相与( A N D )在一起,所以如果有一个或多个最大项为0,
那么整个函数为0。这就是说P O S形式看起来应该类似于
( 3 - 3 2 )
其中,我们只是采用了对应于F= 0项的最大项。注意最大项列表( 0 , 3 , 4 , 7 )就是最小项列表
( 1 , 2 , 5 , 6 )的补码。也就是说,这两个集合构成了0到7的完整列表。
接下来,我们来求出F的补码:
( 3 - 3 3 )
上式表示F就是P O S形式,其中最大项清单与S O P函数中的最小项清单相同,反过来也一样。
3.4 异或与等效运算
X O R函数指定有其专用的逻辑门符号
第3章组合逻辑设计47
下载
图3-5 从功能表中提取出POS形式
我们采用上面讨论的方法来描述异或( X O R )运算。2输入变量的异或( X O R 2 )门的真值表如
图3 - 6 a所示。根据定义, X O R 2门的输出与O R 2门的输出相同,除了两个输入均为1的情形例
外;在两个输入均为1时,X O R 2门的输出为0。“异或”的名称的由来是因为除了当输入只有
一个为1,它的输出才为1这一情形为例外情形,其它情形函数的自身是相互排斥的。
图3-6 异或(XOR)门
异或门的逻辑描述可从功能表中得出。由于输出为1的两种情形为A B= 0 1和A B= 1 0,所以
采用S O P构造方法,该函数给出为
( 3 - 3 4 )
X O R运算用符号Å来标识,而表达式读作“ A o-plus B”。由于X O R运算经常出现,所以我们
给它分配了一个如图3 - 6 b )所示的专用逻辑门符号。X O R的表示符号是对O R门符号进行修改,
在O R门符号的输入边加上另外一条弧线而产生的。
X O R函数的补码为异或非( X N O R )运算。从图3 - 7 a )所示的X N O R 2的功能表读出输
出为1的S O P项,我们可以得到:
( 3 - 3 5 )
它表示
由于这个性质, X N O R也被称为等价函数。它在许多要求对两个数进行比较的实际应用中十
分有用。图3 - 7 b )表示的是X N O R 2门的逻辑符号,它只是一个带补码输出的X O R逻辑门。它的
I E E E符号如图3 - 8所示。在此标识中,异或运算是用大于号>标识的,而通常的O R函数是用
大于等于号≥来表示的。X N O R符号是简单地在X O R符号的输出加一个反相气泡得到的。
图3-7 异或(XNOR)或等价函数
图3-8 XOR或XNOR门的IEEE标准符号
48 数字系统设计基础教程
下载
a) 功能表b ) X O R符号
a) 功能表b) XNOR符号
2输入X O R / X N O R通过将较简单的2输入门的级联可扩展到3输入或更多输入的电路。图3 -
9 a表示的是一个X O R 3门的功能表,此X O R 3门的输出为
( 3 - 3 6 )
虽然我们可以直接写出它的S O P形式,但对功能表更为仔细地研究可得到一个更有质量的描
述。对于每一行,可以证明功能表表示输出:
A Å B Å C = 0 如果输入中有偶数个1
以及
A Å B Å C = 1 如果输入中有奇数个1
由于X O R门可用于确定输入中是否有奇数个为1,因此X O R门被称为奇函数。图3 - 9 b和c
表示的是X O R 3符号的演变。X N O R 3逻辑门可以用同样的方法求得,它实现的是偶函数,其
中
A Å B Å C = 1 如果输入中有偶数个1
以及
A Å B Å C = 0 如果输入中有奇数个1
上述讨论可加以扩展以构造出具有更多输入的逻辑门。
图3-9 3-输入XNOR逻辑门的特征
3.5 逻辑阵列
逻辑阵列是可以通过配置产生特定形式逻辑表达式的结构化逻辑网络。例如,逻辑阵列
通过设计以接受输入并产生特定最小项作为输出。这些电路通常被看成“门海”,它允许人们
把方程从逻辑形式直接映射到电路中。本节我们将讲述基本逻辑阵列的概念,并展示如何用
逻辑阵列来实现标准S O P和P O S函数。
3.5.1 AND阵列和O R阵列
逻辑阵列是根据它们完成的功能或它们产生的布尔项形式来分类的。
我们从讨论称之为A N D阵列的结构开始。根据定义,该网络接受输入变量并在输出端产
生最小项。这种逻辑阵列的一个例子表示在图3 - 1 0中。其输入为A, B和C,而反相器用来产生
用作输入的补码
-A
,
-B
和
-C
。每个A N D 3逻辑门通过连接可以产生不同的最小项:
第3章组合逻辑设计49
下载
a) 功能表
b) XOR3门的等效
c) XOR3 符号
( 3 - 3 7 )
只要简单地在已存在的阵列中加入A N D门,就可以产生其它最小项。输入的数目也可按
需要进行扩展。
图3-10 已编程AND逻辑阵列
本例后面重要的观点是描述逻辑网络的结构化方法。通常,逻辑阵列是由可以按需要进
行连接的逻辑门阵列构成的。图3 - 11所示的是一个未完成连线的逻辑阵列的例子。未完成连
线的逻辑阵列可以提供逻辑门的通用布局,但是它没有确定逻辑门的任何输入的连接关系。
在此再强调一次,此处重要的概念就网络的结构。所有的输入变量及它们的补码提供了潜在
的输入。逻辑阵列的编程是通过确定输入连接关系来实现的。此特征定义了可编程逻辑阵列
( P L A ),它们在现代数字设计中十分有用。
50 数字系统设计基础教程
下载
图3-11 未连线的AND阵列
O R阵列产生的是最大项,它和A N D阵列具有同样的通用结构。一个未完成连线的O R阵
列如图3 - 1 2所示。其输入为X, Y和Z,而反相器用于产生
-X
,
-Y
和
-Z
。每个门都有一个相或的输
出,标识为gi。将此网络与A N D阵列相比,唯一的不同是使用了O R逻辑。
图3-12 未完成连线的OR逻辑阵列
为了对阵列进行编程,我们必须通过合适的连接关系来确定每个门的输入。图3 - 1 3所示
是一个已编程阵列的例子。它的输入已被连接成产生如下最大项:
( 3 - 3 8 )
第3章组合逻辑设计51
下载
图3-13 已编程OR阵列的例子
逻辑门输入相或后的输出
输入变量
这可通过追踪每个门的输入来验证。注意除了我们提供了连接的结点外,已编程的连线图与
未编程的连线图是相同的。使用这种类型的结构化逻辑阵列可以快速地设计和实现数字系
统。
3.5.2 SOP阵列和P O S阵列
我们可以对上述的A N D阵列和O R阵列进行组合来产生结构化的方法,并通过结构化的方
法来产生标准的逻辑形式。
图3-14 AND-OR可编程逻辑阵列的通用结构
我们来首先考虑一个乘积之和表达式。因为乘积之和表达式刚好是A N D - O R逻辑形式,
所以我们可以将两个逻辑阵列相级联来产生S O P函数,如图3 - 1 4所示。此运算十分简单。与板
的输入变量为A, B, C和D,输出的最小项为mi。而这些最小项作为或板逻辑的输入,或板产生
输出的通常形式为
( 3 - 3 9 )
其中fn中出现的实际项mi是由O R门的连线来确定的。这种逻辑阵列的形式十分通用,它可通
过调整输入和输出信号线的数目进行修改来满足任何S O P要求。
P O S阵列可用类似的方式来构造。由于和之乘积格式正好就是O R - A N D逻辑,所以P O S逻
辑阵列可通过将或板阵列和与板阵列相级联来得到,如图3 - 1 5所示。其输入标为A, B 和C,
它们用来(与它们的补码一起)产生最大项Mj作为或板的输出。这些最大项输入到与板,产生一
个通用形式的输出:
( 3 - 4 0 )
每个表达式中实际包含的最大项由与板的连线来确定。与S O P阵列的情形一样,每个板的输
入和输出数目可根据需要来改变。
52 数字系统设计基础教程
下载
与板的输出
或板的输入
与板
输入变量SOP输出
或板
最小项
图3-15 一个OR-AND可编程逻辑阵列
例3-9
我们来讨论P L A的结构细节。考虑图3 - 1 6所示网络。这是一个A N D - O R阵列,它的输入为
A, B 和C,产生标准的S O P输出分别标为h, g, r 和y。
为了确定其函数,我们首先求出A N D阵列的输出。第一个A N D的输出为A·B·C,在图
中标为( 111 )。类似地,第二根信号线为
-A
·
-B
·
-B
= ( 0 0 0 ),依此类推。此A N D阵列共产生六个
乘积最小项。接下来这些最小项输入到A N D阵列逻辑门以得到它们的和。每个连接都是用连
接信号线的“点”来表示。从左到右计算, S O P输出为
( 3 - 4 1 )
图3-16 可编程逻辑阵列的例子
第3章组合逻辑设计53
下载
或板的输出与板的输入
或板与板
输入变量
最大项
POS输出
每个函数是独立定义的。每个函数都可以简单地通过改变O R门的连接关系加以改变。应
注意的是没有规定每个输出都要有相同数目的最小项。根据逻辑设计的0需要,带有2个、4个
或更多输入的O R门都可用于产生方程。
大的逻辑阵列画起来十分繁琐,所以有时我们采用简捷的标识,图3 - 1 7是一个A N D - O R可
编程逻辑阵列的简捷标识。图中逻辑门的输入用一根信号线来代替,它代表了几根独立的信
号线。信号线的连接还是用点来表示,但一个点必须解释成二根独立线相连接,而不是整组
信号线相连接。逻辑门的输入数目等于输入线中连接点的个数。
图3-17 简化的阵列逻辑的连线标识
例3-10
如果我们交换前一个例子的A N D门和O R门,可得到图3 - 1 8所示的网络。我们来探讨在此
情形下逻辑阵列的特征。通过交换前一个例子的A N D门和O R门将产生一个O R - A N D阵列,该
阵列的输入为A, B和C而输出为G, H, J和K。
O R阵列使用输入来产生最大项。例如,第一根信号线为(A+B+C),第二根信号线为(-A+-B+-C),
等等。A N D阵列输出这些最大项的乘积,产生一个P O S函数,每个输出的通用形式为:
O U T=Ma·Mb·Mc ( 3 - 4 2 )
其中最大项与信号线的连接关系来决定。将此阵列的输出从左到右读出为:
( 3 - 4 3 )
与P O S阵列一样,我们可以通过改变接点来改变所有函数。
54 数字系统设计基础教程
下载
图3-18 OR-AND可编程逻辑阵列的例子
3.5.3 逻辑阵列的应用
逻辑阵列在复杂数字网络的快速实现和样机设计中极其有用,由于周转时间可以很短,
所以它允许设计者检测其算法或尝试几种不同的方法。许多公司都在生产价格便宜的商用逻
辑阵列;每种P L A的编程软件都使得设计十分快速且简单明了。还有最近生产的P L A产品允
许设计者对十分复杂的系统进行设计和测试。这些原因使得这些器件在“现场设计” 和快
速样机设计中十分有用。
使用逻辑阵列的主要阻碍是:最终电路可能不能够最有效利用P L A中的逻辑门以及设计
本身可能不是我们可以得到的速度最快的设计。第一个阻碍产生的原因是未完成连线的逻辑
阵列包含有实际实现中可能不需要的逻辑门,但这些逻辑门又不能从电路中除去。速度问题
产生是由于阵列的开关速度是由电路结构决定,而P L A的结构不能由用户来改变。然而,如
果不考虑这几点,可编程逻辑阵列可以引出许多不同类型的可编程逻辑器件( P L D )概念。这类
器件中包含有F P G A (现场可编程门阵列),它是一个功能十分强大的逻辑电路,可用于实现高
度复杂的逻辑网络。
3.6 BCD和7段显示
二进制编码的十进制( B C D )是一个包含了数字0到9的基-1 0的二进制计数系统。一个二进制
编码的十进制字具有用A B C D标识的各个二进制位,下表所示的是B C D各个二进制位的赋值。
第3章组合逻辑设计55
下载
现场设计这一术语指的是项目不是在实验室或工厂中,而是在应用环境中实现的。
B C D与“通常”的二进制到十进制转换的主要区别在于剩下的从1 0 1 0到1111的二进制组
合在B C D系统中是无定义的,因而也就没有被使用。
B C D在数字设计的许多应用中是十分有用的,并且它特别适合于驱动表示数字数据的视
频显示,比如数字时钟表盘的时间。通常的数字显示类型是以图3 - 1 9所示的7-段分布为基础
的。在此图中各段被标为a, b, c, d, e, f, g,每个段可通过电子信号切换到O N或O F F来实现单
独控制。处于O N的段与处于O F F的段在视觉上是不同的。例如,使用L E D (光致二极管)的显
示在这些段为O N时将发光,而当这些段为O F F时将变黑。通过改变发光了各段,工程师可以
通过显示来形成图3 - 2 0所示的十进制数字。
图3-19 7-段显示图3-20 用7-段显示的基-10数字的形式
数字设计中一个有用的例子是B C D到7 -段解码器电路的设计,该解码器如图3 - 2 1所示,它
接受B C D的输入,并送出信号到显示段a到g以形成正确的数字。其中基本的问题是对于给定
了B C D输入,如何确定那一段为O N和O F F。假设输入为逻辑1时该段为O N,那么我们可以得
到如图3 - 2 2所示的功能表。表中每一行为一个B C D输入,并明确地标出了对应的应该点亮的
段,这些值是根据上面图形显示的可能值得到的。
56 数字系统设计基础教程
下载
ABCD 十进制ABCD 十进制
BCD到7-段显
示的解码器
图3-21 BCD到7-段解码函数
图3-22 BCD到7段解码函数的功能表
由于解码器产生输出逻辑信号a, b, c,⋯到各个段,所以此功能表实际上表示方程( 3 . 4 4 )中
的七个不同逻辑函数。
a = a (A , B , C , D)
b = b (A , B , C , D)
c = c(A , B , C , D)
d = d (A , B , C , D) ( 3 - 4 4 )
e = e(A , B , C , D)
f = f (A , B , C , D)
g = g (A , B , C , D)
这由图3 - 2 3中的图形来归类。功能表中每个输出列提供了直接写出S O P表达式所需的信息。
由于a段有八个逻辑值为1的项,所以它的S O P逻辑方程给出为
( 3 - 4 5 )
这可通过检查来验证。类似地, b段的表达式为:
( 3 - 4 6 )
我们可以用同样的过程求出其余的函数。其细节留给读者作为练习。
图3-23 表示各个不同段电路的方框图
第3章组合逻辑设计57
下载
数字
现在我们转向解码器中逻辑块设计的问题。假设我们决定采用逻辑阵列来实现解码器。
由于各表达式已经是S O P形式,所以A N D - O R阵列可方便地按图3 - 2 4进行编程以实现所希望的
函数。P L A的有效性是来自于它简单的结构。P L A中的与板通过连接产生所需的所有A B C D最
小项组合。各个独立的函数是通过将各个输入按功能表所确定的方式连接到O R门来产生的;
应注意的是各个O R门输入的数目可根据需要来改变。
图3-24 BCD到7-段解码器网络的PLA实现
3.7 卡诺图
标准S O P和P O S形式通常可采用布尔代数法则进行简化。如果我们希望用最小数目的逻辑
门来构造网络,这种简化方法是很受欢迎的。在已经简化的函数中,逻辑门的类型以及它们
在逻辑网络中的位置将是“随机的”,因为它们是不可预测的。这个特征使得我们将此设计方
法称为随机逻辑,以作为与上面讨论的结构化逻辑网络的比较。
卡诺图使用视觉的绘图方法来实现函数的简化,它有助于我们根据布尔函数在表格中的
位置来认识布尔简化方法。假设给定了一个标准S O P形式的逻辑函数f (A, B, C⋯⋯),我们对
此问题进行讨论。我们的目标是减少函数的复杂性以求出更为简单的形式;其通常的含义是
减少用于实现函数所需的逻辑门的数目。卡诺图方法的使用依赖于下面两个恒等式:
A+ -A = 1
1·X = X
( 3 - 4 7 )
其中X为任何一组逻辑变量。
我们首先讨论这些恒等式如何用于简化P O S函数。假设我们有一个3-变量表达式
( 3 - 4 8 )
58 数字系统设计基础教程
下载
我们可以对前二项进行组合并采用下面的步骤进行简化
( 3 - 4 9 )
而第三项和第四项可简化为
( 3 - 5 0 )
组合这两个结果,我们得到
( 3 - 5 1 )
此式完全等效于原表达式组,但最终形式只需要两个逻辑门。很明显,在随机逻辑中,简
化的形式更为有效。
卡诺图使得我们可以用一个可视的方法来实现这一类简化。这种方法简单简单明了、易
于学习和使用。首先从功能表入手,我们将把输入输出组合映射到方形网络阵列中。网络
的结构以及相关的规则使我们容易地定位可以用恒等式( X+-X)= 1来实现函数简化的那些项。
虽然卡诺图可应用于任意变量数的函数,但是当变量的数量变得太大时,这种方法变得非常
麻烦。我们将讨论两个变量情形的卡诺图的应用。对于更为复杂的函数,对于设计者来说,
计算机程序方法更为有效,并且计算机程序方法在系统层次级别通常可以提供其它的性能。
2变量卡诺图
我们首先考虑具有两个变量A和B函数f。由于该函数的本身十分简单,所以我们可通过此
情形来说明卡诺图的构造方法,并对卡诺图进行解释。这种方法可容易扩展到包含更多变量
函数的情形。
卡诺图(或简称为K-图)方法使用的是表示在网格形表格中的函数的属性。为了构造此网格
表,我们应从所有可能的输入最小项的列表以及函数的最终输出值入手。对于两个变量的情
形,共有4个最小项:
- A
·
-B
、
-A
·B、A·-A和A·B。为了构造基本的卡诺图结构,我们构造一
个2×2网格使得每个变量可以取值为0或1。这可由图3-25a 所示的通用2-变量图形来表示;图
3-25b 是用最小项标识来表示的相同信息。为了将此图应用于某一特定的函数,我们检查每个
输入组合,然后在网格中填入给定输入组合对应函数f (A,B)的值0或1。这样就产生了一个卡
诺图,通过应用下面将讨论的方法,该图可帮助我们对函数进行简化。
图3-25 2-变量卡诺图的通用结构
第3章组合逻辑设计59
下载
a) 基本图b) 最小项的位置
一个O R门和一个A N D门。
此处使用的是术语映射的数学含义,它指的是从输入到输出之间被指定了一种对应关系。
我们从A N D函数入手来说明卡诺图的一般方法。图3 - 2 6表示的是A N D函数的功能表及相
应的卡诺图;我们注意到这两种表示是等效的。真值表表示A N D函数只有一个f = 1的情形,
它对应于A= 1和B= 1。在此情形下函数A·B已是最简形式,这可通过图3 - 2 6 b中卡诺图中只有
一个值为1的项来验证,所以没有必要做进一步的工作。
图3-26 AND2运算的卡诺图
N A N D运算的情形有所不同。其真值表和相应的卡诺图表示在图3 - 2 7中,从真值表中我们
可以得出其S O P形式为
( 3 - 5 2 )
虽然上式可以用代替的方法进行简化,但这里我们采用的是卡诺图方法。首先,我们找到图
3-27a 所示功能表中值为1的各个项的位置,并且将它们填入图3-27b 所示的卡诺图中。然后
我们找出含有1的相邻方格(对于“相邻”,我们指的只有垂直和水平两个方向,对角线方格不
计入内)。对于N A N D函数,共有两个值为1的可能的相邻的组。这两个组直接表示在图3 - 2 7 b
所示的K-图中。注意这些对已经采用圆圈圈住的方法来进行“分组”。正如下面将看到的,分
组是使用K-图进行逻辑函数简化的关键。
图3-27 NAND2运算的卡诺图
为了讲解如何使用K-图简化方法,首先考虑图中的水平的分组,它对应的各项的和为:
( 3 - 5 3 )
此简化过程可从上式看出。注意到上式两项均有因子
-A,剩下的和项(B+-B) = 1,这样只剩下
-A项。
下一步,考虑垂直的分组。我们看到对于两个项都有B= 0,但上面方格中A= 0,而在下面的方
60 数字系统设计基础教程
下载
a) 真值表b) AND 运算的K-图
a) 真值表b) NAND运算的K-图
格中A= 1。数学上,这对应于
( 3 - 5 4 )
对上面两个简化后的项进行组合,根据狄摩根定律,我们得到
( 3 - 5 5 )
这样,此过程就将真值表中的信息转换成标准的N A N D方程。
若采用K-图进行研究,那么O R / N O R逻辑门对具有类似的性质。它们的卡诺图如图3 - 2 8所
示。而O R门的卡诺图如图3-28b 所示。该图共有三个值为1的项,可得到图中所示的两个分组。
垂直的分组对应于B = 1,并同时具有A = 0(上面方格)和A= 1 (下面方格)的项。因此,这个组可
简化为简单的因子B。与之相类似,水平分组对应于A= 1,其左方格中B= 0,而右方格中B= 1。
所以这两项可简化为简单的因子A。对水平分组及垂直分组进行求和得到
( 3 - 5 6 )
上式即为O R表达式。N O R门的卡诺图表示在图3 - 2 8 c中,它只有一个值为1的项,此时对
应的情形为A= 0和B= 0。所以,此图表示的函数为:
( 3 - 5 7 )
这就是我们所希望得到的结果。
图3-28 OR2和NOR2运算的卡诺图
这几个基本的2-变量例子说明了如何用卡诺图对表达式进行简化。卡诺图方法可以归纳
如下:
• 按功能表的定义在卡诺图中填入1和0。
• 按对将相邻值为1的项进行分组。
• 采用法则(a+-a) = 1来消除变量。
使用卡诺图的作用是同样的方法可扩展应用到三个或更多变量的函数。此方法的重要性
在于它为二进制变量的行为提供了更好的理解方法。
3.8 3 变量卡诺图
当我们将卡诺图方法应用于具有三个变量函数时,卡诺图的作用就更为明显。假设我们
有一个标准S O P形式的函数f (A,B,C),其含义是f 是由最小项(比如m1=
_A
·
_A
·C)组成。由于我
们需要处理三个变量,所以我们必须通过在一个轴向将两个变量分成一个组来产生二维卡诺
第3章组合逻辑设计61
下载
a) 真值表b) OR K-图c) NOR K-图
图。我们可以通过用变量A和变量B·C来构造二维卡诺图;或者,作为选择,我们也可以将
A·B分成一组而让C 保持独立来构成卡诺图;这两个选择都是可行的。
图3 - 2 9表示第一种情形所对应的卡诺图,其中变量A保持独立,而B·C作为一个分组来看
待。图3 - 2 9 a所示的卡诺图使用变量及变量的补码形式来表示方格中的各项,其等效的最小项
如图3 - 2 9 b所示。这个卡诺图以及所有的卡诺图都有一个重要性质,该性质使得图形方法具有
正确的特征。此特征十分简单,即为
• 邻近方格只有一个二进制位输入是不同的。
例如,这句话的含义是值为
_A
·
_B
·C的方格与因子中有两个相同而一个为补码的方格是
相邻的。这就是为何B·C 的值按0 0,0 1,11,1 0排序的原因。
图3-29 3变量卡诺图的通常结构
用3变量卡诺图简化函数的过程是以用2变量卡诺图简化函数的相同的定律为基础的。一
般而言,它指的是我们找出相邻值为“ 1”的项并将它们分成一组。每一分组都对应于一个表
达式的简化。两种情形的主要区别在于,在3变量卡诺图的简化情形下,附加的一个变量使得
我们可以选择两个相邻方格构成分组或四个相邻方格构成分组来实现函数的简化。另外,我
们将会发现卡诺图的左右边缘实际上是相邻的,使得我们可以将卡诺图“绕卷”成圆柱面。
例3-11
我们从图3 - 3所示的3变量函数的功能表入手来说明卡诺图的通常使用方法。通过观察,
我们看到对于
_A
·B·C、
_A
·B·
_C
、A·
_B
·
_C
和A·B·C这四个输入组合,函数的输出值f = 1。
这些项是K-图中表示为1的项。K-图中表示了两个可能的分组。通过上面的水平分组可求得:
( 3 - 5 8 )
而从第二(垂直)分组可以得到
( 3 - 5 9 )
图中的A·
_B
·
_
C 项对应的输入项为1 0 0,该项不能进一步简化。这样,将此项和已化简的
项相或给出的函数为:
( 3 - 6 0 )
其中第二步用于消除一个A N D函数。至此我们就完成了简化的过程。
62 数字系统设计基础教程
下载
a) 卡诺图各项b) 最小项值
图3-30 一个3变量简化的例子
例3-12
我们从图3 - 3 1 a所给定的功能表入手来再来讨论卡诺图的简化方法。图中列表显示输入
A·B·C = 001,010,100,101,11 0和111时输出g = 1,这些组合告诉我们图3 - 3 1 b的卡诺图中逻辑
值为1的项的位置。在图3 - 3 1 b中,我们可以看到第一个分组是沿着底部一行有包含了4个1的
水平数字串。此行本身为变量A,所以该分组可以将整行化简为
( 3 - 6 1 )
图3-31 带有相邻边缘的变变量K图
第二组由第一列和第四列组合而成,该组需要再加一位变量来说明。虽然在卡诺图中这
几项在相反的边缘上,但我们还是把它们看成相邻的,由于C = 0 这一种情形是不变的,所以
由第二个分组可以得出简化项
( 3 - 6 2 )
将上述两个简化项组合表示为
( 3 - 6 3 )
这就是简化的结果。
注意到B·C 的计数顺序0 0 , 0 1 , 11 , 1 0的起始点是任意的,我们很容易证明卡诺图的边缘是
第3章组合逻辑设计63
下载
输入输出
a) 功能表b) K-图简化方法
输出
a) 功能表b) 卡诺图
相邻的。例如,我们可以选择0 1 , 11 , 1 0 , 0 0作为计数的顺序,此时上述所有简化的方法仍将有
效。这个论点可由图3 - 3 2看出。其原始卡诺图表示在图3 - 3 2 a中。等效的卡诺图表示在图3 - 3 2 b
中,它采用的B·C 的顺序为1 0 , 0 0 , 0 1 , 11。这就证明了上述论点。作为一个可选择的观察方法,
我们通过将图卷绕卷成圆柱形,这样左边和右边就可以看成是相互接触的,如图3 - 3 2 c所示。
图3-32 3变量K-图中相邻边缘的视图
使用3变量卡诺图的简化方法可总结如下:
• 包含有一个最小项的分组可简化为一个含有所有三个因子A, B, C的项。
• 包含有两个最小项的分组可简化为含有两个因子的项。
• 包含有四个最小项的分组可简化为含有一个因子的项。
• 包含有八个最小项的分组等效的结果为1。
最后一种可能是每一个最小项都为1的特殊情形,所以函数本身就是常数值1而不必考虑
输入的值。值得注意的是只包含2个、4个、8个最小项的组是允许的。这是因为分组等效于采
用恒等式(X+
-X
)=1的简化,而采用此恒等式的简化要求卡诺图方格的成对出现。
3.8.1 “不关心”条件
有时我们会遇到这样的情形:对于特定的输入集,函数的输出可以确定为0或1而不影响
函数的应用。这样一种出现的情形我们称之为不关心条件。在图3 - 3 3 a中,对于输入(A·B·
C) = ( 0 1 0 )和( 11 0 ),函数的输出用符号X来标识不关心条件。在进行卡诺图简化时, X可作为0
或1来对待。X值的选择是根据哪个值可以产生更为简单的简化结果来确定的。
不关心条件的用法可通过对例子的分析来理解。考虑图3 - 3 3 b所示卡诺图中的各项。若我
们假设K-图中的X值均为0,那么由于只有一个分组(左列),所以此函数为:
( 3 - 6 4 )
另一方面,如果我们假设两个不关心的X项都为1,并按照图3 - 3 3 b所示的方法进行分组,那么
左列和右列可以进行组合,此外图中右下角还有一个分组。通过简化可以得到
64 数字系统设计基础教程
下载
a) 原始图b) 重新标值的B C项
(c) 圆柱形的视图
( 3 - 6 5 )
图3-33 “不关心”项的例子
值得注意的是,我们必须在进行化简之前确定不关心条件的值。在实际应用中,不要认为未
知的或不确定的输出与不关心条件是相同的;这种情形可能只是一个信息不充足的情况。
3.8.2 可选的3变量卡诺图布局
前面的卡诺图是由两行四列构成的。一个可选的方法是将A·B分成一组而保持C为独立。
选择这种布局的卡诺图示于图3 - 3 4中;它由二列四行组成。它与其他的卡诺图方法具有相同
的特征,所以如果愿意我们可以采用此方法。这种卡诺图的简化结果仍与前面卡诺图的简化
结果相同,与所选择的卡诺图的几何形状无关。
图3-34 3变量卡诺图的另一种布局
例3-13
考虑图3 - 3 5所示的采用垂直格式的3变量卡诺图。为简化此函数(我们称之为g),我们找出
最小项值为1的组。图中表示有两个这样的分组,其中我们注意到顶部和底部是当作接触的来
考虑。通过将这两项相或可得到函数
第3章组合逻辑设计65
下载
输入输出
a) 功能表b) K- 图简化方法
a) 卡诺图的项b) 最小项的值
( 3 - 6 6 )
很容易证明,此结果与使用布尔代数的简化或采用前面的另一种3变量K-图布局的简化结果都
是相同的。由于简化的结果是等效的,卡诺图布局的选择实在是一个个人喜好的问题。
图3-35 3变量垂直卡诺图的例子
3.94 变量卡诺图
卡诺图的通用方法可扩展用于四个变量A , B , C , D的情形,在此情况下,我们选择包含两个
变量的两个分组的卡诺图布局。例如,图3 - 3 6提供了一个用分组A·B和C·D构成的卡诺图的
基本布局。与3变量卡诺图一样,相邻方格的项只有一位输入不同。在本例中,由于隐含的变
量顺序为,A·B·C·D所以我们选择的等效的最小项是图3 - 3 6 b所示的各项。值得记住的是
我们一旦选择了变量的顺序,它在整个卡诺图的简化过程中都必须保持不变。
图3-36 4变量卡诺图的通用结构
在4变量的K-图中,我们找出相邻为1的分组。这些分组可以由2个, 4个或8个项组成。在
下面的例子中我们将看到,分组中的数目越多,结果就越简单。
例3-14
我们用4变量卡诺图来简化图3 - 3 7所示的功能表描述的函数。其第二列的分组由因子
66 数字系统设计基础教程
下载
a) 常规图b) 最小项的各项
A B C D= 0 1 0 1和11 0 1组成,由于两者都包括了A= 0和A= 1,所以容易看出它可简化为:
( 3 - 6 7 )
K-图中的第二分组由A B C D= 1 0 11和1 0 1 0两项组成,通过消除变量D,该组可以简化为
( 3 - 6 8 )
图3-37 4-变量卡诺图简化的例子
K-图中所示的第三个分组由分布在四个角的项组成,这四个项为A B C D =0000, 0010, 1000
和1 0 1 0。由于它们只有一个变量值不同,所以这几项可以归类为相邻的,这也可以通过重标
两个轴标来证明,如图3 - 3 8所示。由于(A+-A) = 1及(C+-C ) = 1都成立,这个包含了四个相邻项的
分组可简化为
( 3 - 6 9 )
将这几个简化后的项相或得到
( 3 - 7 0 )
即为最终结果。注意如果我们愿意,我们还可产生一个带
-B项的组。
图3-38 重新对各项进行排序来说明相邻项的概念
第3章组合逻辑设计67
下载
(角落)
例3-15
4变量K-图的另一个特征可以用图3 - 3 9所示的例子来说明。在此情形下,顶部行和底部行
的所有项的值都为1,所以被分成一个组,这个最小项分组的简化为
( 3 - 7 1 )
故只剩下一个因子B = 0。将其与另一个含有两个项的分组进行组合,我们得到的最终形
式为
( 3 - 7 2 )
图3-39 带有相邻的顶部行和底部行的4变量K-图
将顶部行和底部行分成一组是允许的,因为通过重标其顺序可以看出它们是相邻的,如
图3 - 4所示。作为选择,K-图可以通过绕卷使得顶部和底部相接触,得到图3 - 4 1所示的卡诺图。
值得记住的是,由于这些图提供相同的信息,所以它们都是等效的。
图3-40 行项的重新排序产生的K-图
68 数字系统设计基础教程
下载
图3-41 4变量K-图绕卷形成的视图
4变量K-图的特征可归纳如下:
• 包含一个最小项的分组可以产生一个含有所有四个因子A·B·C·D的项。
• 包含二个方格的分组产生一个含有三个因子的项。
• 包含四个项的分组可简化为一个含有两个因子的项。
• 包含所有1 6个最小项的分组的简化为逻辑1。
注意只有含有特殊数目最小项(二、四、八或十六)的分组是允许的。这是因为简化恒等式
X +-X= 1要求分组中的项必须成对出现。
3.10 逻辑设计者的作用
本章及前面章节所讲述的逻辑设计方法为所有数字网络的设计提供了基础。其中布尔开
关代数的定律定义了可以对二进制变量进行的运算,而通用的组合逻辑设计方法使得我们可
以按要求构造出任意复杂的逻辑函数。
逻辑设计者通常承担着大系统的设计工作,完成特定任务的逻辑网络的设计任务。这些
逻辑网络可能包含有数字单元,比如编码器和解码器、算术运算电路、数据通信技术和网络
—这些数字单元的例子似乎无穷无尽!然而,在现代的工程界中,没有人是独立工作的。
项目组是逻辑设计的基本工作单元。而每个人都有其专业领域,但他必须具备有可以扩展到
其他领域的知识。理解多个领域有助于你和组内其他工程师进行交互,也使得你对影响工作
的因素有更深的理解。根据项目组的特定组成,逻辑设计者可能必须与负责网络大规模属性
的系统设计师进行交互;必须与提供数字电子电路的“硬件”设计师、面向电路或V L S I的人
员、甚至使用网络的用户之间进行相互合作。
既然我们已经了解了基本数字逻辑的基础,我们就可进一步深入到构成现代数字系统的
其它领域。我们将看到,由布尔代数派生出来的课程和方法将渗入到设计层次的所有级别。
3 . 11 问题
1. 用布尔代数将下面的函数改为标准S O P形式。
2. 将下面的函数构成标准S O P形式。
第3章组合逻辑设计69
下载
a) 左-右绕卷形成的视图b) 左-右绕卷形成的视图
3. 假设我们给定的二进制表达式为
求出函数f 的最简标准S O P形式。
4. 写出函数g (A , B , C) 的S O P形式,该函数用下面的功能表定义。
5. 用问题[ 3 . 4 ]中的功能表求出g(A , B , C)的P O S形式。
6. 构造下面表达式的功能表。
7. 构造下面表达式的功能表。
8. 构造下面描述的函数的功能表。
并用此功能表将函数f 写成标准的S O P形式。
9. 写出用下表定义的函数f (x, y, z) 的S O P形式。
10. 写出用下面的功能表定义的函数g(a, b, c)的S O P形式。
70 数字系统设计基础教程
下载
输入输出
输入输出
输入输出
11. 写出用下面的功能表定义的函数的S O P形式。
12. 构造下面表达式的功能表。
13. 构造下面4变量函数的功能表。
14. 一个逻辑函数写成最小项的形式为
将函数g明确地写成a和b的函数。
15. 一个逻辑函数写成最小项的形式为
将函数f 明确地写成x, y和z的函数。
16. 一个逻辑函数f (x, y, z)写成最小项的形式为
(a) 将函数f用变量x, y和z来表示。
(b) 用布尔代数将其简化为最简形式。
17. 将函数
简化为最简形式。你可以采用代数简化或者卡诺图方法。
18. 将下面的函数扩展为标准的S O P形式。
19. 一个逻辑函数写成最大项的形式为
将G明确地写成a和b的函数。
20. 将下面的函数扩展为标准的S O P形式。
21. 设计一个实现下面函数的A N D - O R形式的P L A。
第3章组合逻辑设计71
下载
输入输出输入输出
22. 设计一个实现下面函数的A N D - O R形式的P L A。
23. 设计一个实现下面函数集的A N D - O R形式的P L A。
24. 设计一个实现下面函数的O R - A N D形式的P L A。
35. 设计一个提供下面函数的O R - A N D形式的P L A。
26. 考虑函数
将此式转换成每一项都包含有所有变量的标准S O P形式。根据需要可使用恒等式( x+
-x)
=1。然后,用得到的S O P形式构造出K-图的各项。
27. 用3 -变量卡诺图简化下面的逻辑表达式
28. 用3变量卡诺图简化下面的逻辑表达式
29. 用卡诺图方法简化下列问题中所描述的表达式。
(a) 问题[ 3 . 4 ]
(b) 问题[ 3 . 9 ]
(c) 问题[ 3 . 1 0 ]
(d) 问题[ 3 . 11 ]
30. 用3变量卡诺图简化下面的逻辑表达式
31. 考虑函数
构造函数f 的卡诺图并加以简化。
72 数字系统设计基础教程
下载
32. 用4变量卡诺图简化函数
33. 求出下面K-图所描述的函数的最简形式。
a ) b )
34. 求出下面K-图所描述的函数的最简形式。
a ) ( b )
35. 求出下面K-图所描述的函数的最简形式。
a ) b ) c )
36. 求出这个用4变量K-图描述的函数的最简形式。
第3章组合逻辑设计73
下载
37. 构造表达式
的功能表,然后将其转换成标准的S O P形式。
38. 用4变量K-图将下面的函数简化为最简形式。
39. 求出下面用4变量K-图描述的函数F的最简形式。
40. 求出下面用4变量K-图描述的函数g的最简形式。
74 数字系统设计基础教程
下载 
FPGA 学习系列(3):Verilog 组合逻辑设计 组合逻辑是无存储单元的逻辑电路,其输出仅由当前输入决定。逻辑门(AND、OR、NOT、XOR)加法器译码器(Decoder)多路选择器(Multiplexer)比较器+------------+ 输入信号 A| | 输入信号 B| 组合逻辑 | ---> 输出信号 Y| 计算单元 |本篇博客介绍了 Verilog 组合逻辑设计的基本概念、建模方法和典型电路实现。在接下来的系列文章中,我们将进一步学习时序逻辑设计,包括寄存器、状态机和时钟管理,敬请期待! 阅读详情

相关推荐

Verilog组合逻辑设计

本文介绍了Verilog中三种组合逻辑建模方法:门级建模直接使用基本门元件构建电路,适合小规模设计但可读性差;数据流建模通过assign语句描述信号逻辑关系,代码简洁高效;行为级建模采用always过程块实现复杂功能,抽象程度最高。三种方式在抽象级别、设计效率和适用场景上各具特点。实际工程中推荐优先使用数据流和行为级建模,而门级建模仅用于特定优化需求。文章还通过多路选择器和全加器实例展示了不同建模方式的具体实现与差异。

2301_79143213的博客 49

“整合”还是“混合”——多因子组合的构建

前言 与前几篇类似地,笔者翻译了一篇来自海外的网络研讨会议纪要,较为简洁地为各位读者呈现了量化投资中关于多因子组合构建的几个问题。本文原著来源于Research Affiliates,其创办于2002年,比较侧重于smart beta和因子策略。 混合”还是“整合” 我们在根据多个因子选择策略时存在着各种各样构建组合的方式,“混合”(Mixing),与“整合”(Integrating)是其...

Quant_的博客 3354

36、组合逻辑设计文档标准与实践

本文详细介绍了组合逻辑设计中的关键概念与实践方法,包括引脚有效电平的理解、泡泡到泡泡逻辑设计技巧、绘图布局规范、信号命名规则以及总线的应用。同时,文章探讨了不同设计场景下的解决方案,并展望了未来逻辑设计的发展趋势,为初学者和资深工程师提供了实用的设计建议与优化策略。

o1p2q3r的博客 75

【数据库】概念设计、逻辑设计、关系数据库设计理论

视图不存放数据,是虚拟的表,是从1个或几个表中取出数据,视图只定义取数据规则。ER图中,每个实体,都要有实体标识符,为借阅信息人为增加ID。属性无法再分,实体可由多个属性组成。属性间存在1对1关系,就是函数依赖。如上图所示,联系也有自己的属性。11,在1方加入另一方的外键。逻辑设计工具关系数据库设计理论。只有满足1NF,才是关系数据库。每个实体转化为1个关系模式。ER模型实体属性和联系。联合主键,又分别是外键。.........

种一棵树最好的时间是十年前,其次是现在 6094

29、组合逻辑设计原则:从基础到优化

本文详细介绍了组合逻辑设计中的核心原则与优化方法。从素蕴含项的选择基础出发,探讨了区分1-单元和必要素蕴含项的定义与作用,并深入分析了复杂情况下的遮蔽关系处理方法。针对无必要素蕴含项的情况,介绍了分支法的应用。文章还涵盖了积之和表达式的简化方法,讨论了如何利用对偶原理优化逻辑函数,并引入了“无关”输入组合的处理策略。最后,文章拓展到多输出逻辑函数的最小化优化,提出了多输出素蕴含项的识别与共享策略,以实现更低电路成本。通过完整的流程图和实例分析,展示了组合逻辑设计从基础到高级优化的完整过程。

o1p2q3r的博客 58

34、组合逻辑设计原理相关知识

本文详细介绍了组合逻辑设计的核心原理和相关技术,包括卡诺图的使用、最小积之和与最小和之积表达式的求解、静态危害的识别与消除、逻辑定理的证明与应用、门电路的设计与完整性分析等内容。此外,还涉及多变量逻辑函数的化简、比较器电路的设计、程序优化与扩展、电路功能分析与绘制等多个实际应用问题。通过这些内容的学习与实践,可以全面掌握组合逻辑电路的设计与开发方法。

o1p2q3r的博客 49

数据库设计5-逻辑结构设计

目录一、概念二、初始关系模式设计(E-R图转换关系模式)1、实体集向关系模式的转换2、两个实体型之间的联系集向关系模式的转换3、同一实体型之间的联系集向关系模式的转换4、多实体型之间的联系向关系模式的转换5、弱实体集向关系模式的转换 三、关系模式规范化1、概念2、范式四、模式的评价与改进 逻辑结构设计是将概念结构设计阶段完成的概念模型,转换成能被选定的数据库管理系统(DBMS)支持的数据模型。这里主要将E-R模型转换为关系模式。需要具体说明把原始数据进行分解、合并后重新组织起来的数据库全局逻辑

kupePoem的专栏 6万+

35、组合逻辑设计实践中的关键要点

本文深入探讨了组合逻辑设计实践中的关键要点,包括文档标准、框图绘制规则、门符号的使用、信号名称与有源电平的定义等内容。强调了在数字系统设计中,良好的文档规范、清晰的逻辑表达以及结构化思维的重要性。同时,文章还详细解析了不同设计文档的应用场景以及门符号等效转换的实际意义,为数字设计工程师提供了系统性的设计指导。

o1p2q3r的博客 55

组合逻辑电路的分析与设计

一、设计组合电路的步骤在之前不断的学习中,我们知道了真值表、逻辑函数表达式、卡诺图化简基本概念,现在我们将通过分析设计组合逻辑电路来掌握组合逻辑电路的分析与设计、真值表、逻辑函数表达式、卡诺图化简概念和方法。一、设计组合电路的步骤图上为设计组合电路的一般步骤;随后,根据设计任务的要求建立输入、 输出变量, 并列出真值表。然后用逻辑代数或卡诺图 化简法求出简化的逻辑表达式。并按实际选用逻辑门的类型修改逻辑表达式。根据简化后 的逻辑表达式, 画出逻辑图, 用标准器件构成逻辑电路。

weixin_74345079的博客 628

从零构建:openEuler WSL下的ARM交叉编译工具链自动化部署方案

本文详细介绍了在openEuler WSL环境下使用Ansible自动化部署ARM交叉编译工具链的方案。通过编写Ansible角色和Playbook,实现从基础环境配置到工具链安装、环境变量设置的一键部署,大幅提升嵌入式开发效率。方案支持多种ARM架构,并扩展了QEMU仿真、VS Code远程开发等实用功能,是嵌入式开发者的高效解决方案。

h3i4j的博客 382

Vmware安装windowsServer2022版本

全网最详细的Vmware安装windowsServer2022版本

A乐神的博客 7010

组合逻辑设计原理

组合逻辑设计原理公理 如果X≠1X\neq 1,则X=0X=0;如果X≠0X\neq 0,则X=1X=1 如果X=0X=0,则X′=1X'=1;如果X=1X=1,则X′=0X’=0 0⋅0=00\cdot 0=0;1+1=11+1=1 1⋅1=11\cdot 1=1;0+0=00+0=0 0⋅1=1⋅0=00\cdot 1=1\cdot 0 = 0;1+0=0+1=11+0=0+1=1 单变量定理

Frank的专栏 1129

Zynq工程IP核封装:XCI引用与约束继承实战指南

IP核封装是FPGA系统设计中实现模块复用、团队协作与技术资产沉淀的关键环节。其本质是将功能逻辑、时序约束、接口协议和硬件配置统一抽象为可配置、可验证、可演进的标准化组件。核心原理在于通过XCI文件保留IP核的参数化定义能力,依托Vivado IP Packager实现约束继承、端口自动映射与时钟域解耦,从而保障跨项目集成的时序可信性与约束完备性。该技术广泛应用于Zynq SoC视频处理、高速接口(如HDMI/TMDS)、多时钟域控制系统等场景,尤其在需要长期维护与版本迭代的工业级嵌入式开发中具有不可替代的

weixin_42593701的博客 123

FPGA组合逻辑设计

组合逻辑电路在数字电路领域中占据着举足轻重的地位,其特性鲜明,理解这些特性是深入掌握数字电路设计的关键。

2302_77948235的博客 1304

Fluent Meshing边界层设置保姆级教程:从y+理论到实战避坑,看完就会

本文详细解析了Fluent Meshing边界层设置的全过程,从y+理论基础到实战避坑技巧,帮助用户精准计算第一层高度并优化参数配置。通过案例演示和常见问题诊断,指导读者掌握边界层网格生成的核心技术,提升CFD模拟精度。特别针对不同湍流模型的y+要求提供具体参数建议。

weixin_30576827的博客 789

产品经理必看!用Cursor自动生成符合开发规范的技术文档(含UI设计规则模板)

本文详细介绍了产品经理如何利用Cursor工具自动生成符合开发规范的技术文档,并整合UI设计规则模板。通过配置标准化文档结构和设计关联规则,Cursor能有效解决术语不统一、结构混乱等问题,提升跨团队协作效率。文章包含实际案例、规则配置要点及企业级实施方案,帮助产品经理快速掌握AI辅助文档生成技巧。

emacs5lisp的博客 224

【组成原理系列】组合逻辑设计

组合逻辑设计 单元框图 CU 外特性 节拍信号 微操作的节拍安排 假定:采用 同步控制方式,一个 机器周期 内有 3 个节拍(时钟周期),CPU 内部结构采用非总线方式 安排微操作时序的原则 原则一: 微操作的先后顺序不得随意更改 原则二:被控对象不同的微操作尽量安排在 一个节拍内完成 原则三:占用 时间较短 的微操作尽量 安排在 一个节拍 内完成并允许有先后顺序 取指周期微操作的节拍安排 间址周期 微操作的 节拍安排 执行周期 微操作的 节拍安排

菜鸡也有大佬梦 1628

保姆级教程:在STM32H750VBT6上跑起来CMSIS-DSP库(基于CubeMX+Keil)

本文详细介绍了在STM32H750VBT6微控制器上配置和运行CMSIS-DSP库的全过程,包括开发环境搭建、CubeMX工程配置、Keil工程设置以及DSP库的实际应用示例。通过FFT频谱分析和音频均衡器等实战案例,展示了如何利用STM32H750VBT6的硬件FPU加速DSP运算,提升实时信号处理性能。

weixin_30236595的博客 458

FPGA逻辑设计--组合逻辑设计

组合逻辑就是使用wire对信号进行定义,使用assign进行赋值输出或者在always块中根据某些信号的电平的变化(一般自动匹配always块中需要捕获的信号量)产生不同的输出。逻辑级数就是组合逻辑的深度,可以理解为输入到输出经过的组合逻辑单元的个数,比如输入信号经过一个与门和一个非门那就是2级,算两级门延迟不同的输入信号到达最后一级门电路的时间不一样。

偷偷学python的博客 1001

S7-1500 PLC与多台S7-200SMART PLC进行PROFINET通信的快捷方法

S7-1500 PLC与多台S7-200SMART PLC进行PROFINET通信的快捷方法

Robot_PLC_HMI_Automation 5687

【项目实战】DevOps制品管理之JFrog Artifactory介绍

JFrog Artifactory是一款领先的二进制软件制品仓库管理工具,由JFrog公司开发。

奶爸的编程之路,也就一周冷个三天 1354

10.1-控制单元CU的组合逻辑设计

【README】 本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐; 【1】组合逻辑控制单元框图 【1.1】CU外特性 CU要发出各种控制命令,这些控制信号是有先后关系的,每一个控制信号的发出都是由给定的时间点发出的,这种相互关系和时间点的确定,就是有节拍信号来控制的;即需要节拍发生器; 机器主频信号送入节拍发生器,进而产生节拍信号(T0到Tm); CU到底要产生什么控制命令,和现在执行的指令有直接关系;如指令在IR中,需要译码后才知道;n位操作码

PacosonSWJTU的博客 2999

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Verilog组合逻辑设计指南

Verilog组合逻辑设计指南在描述组合逻辑的RTL时,必须遵循编码和设计指南。设计和编码指南将提高设计性能、可读性和可重用性。本文讨论组合逻辑设计的规范和编码准则。在实际的FPGA设计中...

OpenFPGA的博客 3697

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

第二章 组合逻辑设计回顾

第二章 组合逻辑设计回顾 对组合逻辑电路的人工设计方法进行回顾,在6章会讲到如何使用现代方法实现 2.1 组合逻辑与布尔函数 组合逻辑电路的输出可以表示为瞬时输入变量 图2.1 4输入三输出的逻辑方框图 逻辑电路中的变量为二进制变量–其值为0或1,逻辑电路硬件实现可以采用正逻辑,即用高电平(如5V)表示逻辑1,用低电平(如0V)表示逻辑0;反之也可使用负逻辑 一些常见的逻辑门如下: 图2.2 常见逻辑门电路的原理图与布尔关系式2.1.1 ASIC库单元 2.1.2 布尔函数 2.1.3 狄摩根定律 2.2

weixin_42701437的博客 1754

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

第二章 组合逻辑设计

第二章 组合逻辑设计 1. 卡诺图化简 1.1 必须是偶数项化简 因为卡诺图只有相邻格可以消除一个项; 1.2 积之和形式的化简 消除相邻的1项,得到f; 1.3 和之积形式的化简 消除相邻的0项,得到f’ 的积之和形式,然后再通过狄摩根定律转换成和之积的形式。 2. 毛刺与冒险 毛刺是指输出信号出现短暂的不期望的脉冲。冒险指的是会产生毛刺输出的电路。 静态1冒险:输出应为1,却出现0脉冲跳变; 静态0冒险:输出应为0,却出现1脉冲跳变; 2.1 两级静态冒险的消除(两级:逻辑表达式中只有积之和或和之积,逻

cjhuster1的博客 1164
上一篇: 布尔代数和逻辑门
下一篇: 数字硬件
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值