第4章组合逻辑电路本章主要内容(1)组合逻辑电路的基本概念(2)逻辑函数的卡诺图化简法(3)组合逻辑电路的分析(4)组合逻辑电路的设计(5)几种常用的组合逻辑电路4.1几个基本概念数字逻辑电路可以分为两种类型:一类是组合逻辑电路,另一类是时序逻辑电路。一个逻辑电路,如果它在任何时刻的输出仅仅是该时刻输入状态的函数,而与先前的输入状态无关,这样的逻辑电路称为组合逻辑电路。4.1.1“积之和”与“和之积”逻辑函数的“与或”表达式的形式,称为逻辑函数的“积之和”形式,也称SP型。例如:f(x1,x2,x3)=x1x2+x1x3+x1x2*x3f(A,B,C,D)=ABC+BC*D+CD+A*CD*它们是“积之和”形式的逻辑函数表达式。逻辑函数的“或与”表达式的形式,称为逻辑函数的“和之积”形式,也称PS型。例如:F(u,v,w)=(u+v)(u*+w)(u+v*+w)F(A,B,C,D)=(A+B+C)(B*+C+D*)(A+D*)它们是“和之积”形式的逻辑函数表达式。利用逻辑代数的基本公式,可以将任何一个逻辑函数化为“积之和”或“和之积”的形式。4.1.2最小项和最大项1.最小项设有n个变量,p为一个含有n个因子的乘积项,如果在p中每个变量都以原变量或反变量的形式作为一个因子出现且仅出现一次,则称p为n个变量的一个最小项。例如:对于三个逻辑变量A、B、C来说,有A*B*C*,A*B*C,A*BC*,A*BC,AB*C*,AB*C,ABC*,ABC八个最小项。一地说,对于n个变量,共有2n个最小项。为了简化最小项的书写,也可以用mi表示最小项,并按下述规则确定i的值:当乘积项中的变量按序(A,B,C,D,…)排好以后,如果变量以原变量形式出现时记作1,以反变量形式出现时记作0,并把这1和0序列构成的二进制数化成相应的十进制数,那么这个十进制数就是i的值。例如,与最小项A*B*C*对应的二进制数码为“000”,所以记A*B*C*=m0;与最小项AB*C对应的二进制数码为“101”,所以记AB*C=m5等。2.最小项的性质(1)对于任意一个最小项,只有一组变量的取值使得它的值为1,而在变量取其他各组值时,该最小项的值都为0;不同的最小项,使得它的值为1的那一组变量的取值也不相同。(2)n个变量的全体最小项共有2n个,而且它们的和为1。因为对于变量的任意一组取值都有一个最小项的值为1,所以,全体最小项之和恒为1。(3)设mi和mj是n个变量的两个最小项,若i≠j,则mi·mj=0。即n个变量的任意两个不同的最小项之积恒为0。这是因为对于变量的任意一组取值,mi和mj不可能同时为1,因此mi·mj恒为0。3.最大项与最小项相对应,还有最大项,定义如下:设有n个变量,p为一个具有n项的和,如果在p中每一个变量都以原变量或者反变量的形式作为一项出现且仅出现一次,则称p为n个变量的一个最大项。同样,对于n个变量来说,最大项共有2n个。例如,两个变量的四个最大项为:A*+B*,A*+B,A+B*,A+B。4.1.3最小项表达式和最大项表达式一个逻辑函数的SP型或PS型并不是唯一的,这仍给人们研究逻辑函数问题带来一些不便,但由最小项所构成的“与或”表达式和由最大项所构成的“或与”表达式却是唯一的。由最小项之和所构成的逻辑表达式,称为逻辑函数的最小项表达式,也叫逻辑函数的规范“积-和”式,或叫逻辑函数的第一范式。例如:F(A,B,C)=A*BC+AB*C+ABC就是逻辑函数F的最小项表达式或第一范式。为了简化可写成:F(A,B,C)=m3+m5+m7=∑m(3,5,7)由最大项之积所构成的逻辑表达式,称为逻辑函数的最大项表达式,也称逻辑函数的第二范式。例如:F(A,B,C)=(A+B+C)(A+B+C*)(A*+B+C)就是逻辑函数F的最大项表达式或第二范式。定理n个变量的任何一个逻辑函数,都可以展开成一组最小项的和或最大项的积,并且这种展开是唯一的。这是一个很重要的定理,它的另一种叙述方法是:n个变量的任何一个逻辑函数,都可以展开成第一范式或第二范式,并且这种展开是唯一的。所以也称它为范式定理。该定理之所以重要,是因为由“最小项的和”或“最大项的积”所组成的逻辑函数表达式是唯一的,这给研究和使用逻辑函数带来极大的方便。特别是第一范式,这实际上告诉我们,可以把最小项看作构成逻辑函数的基本元素。也就是可以把任何一个逻辑函数,看做由若干最小项所构成。对第二范式的研究,由于逻辑函数的对偶性,完全可以由对第一范式的研究推出。下面给出由给定的逻辑函数写出它的范式的方法。(1)真值表法:对给定的逻辑函数,列出它的真值表,然后由真值表写出范式。第一范式:在真值表中,找出函数F的值为1的所有行,对每一行变量的取值组合,如果变量取值为1,则写出相应的原变量;如果变量取值为0,则写出相应的反变量。然后写出该行变量取值所对应的变量之积,就得到该函数的一个最小项,再把所有这样的最小项相加,就是该函数的第一范式,即该函数的最小项表达式。第二范式:在真值表中,找出函数F的值为0的所有行,对每一行变量的取值组合,如果变量取值为1,则写出相应的反变量;如果变量取值为0,则写出相应的原变量。然后写出该行变量取值所对应的变量之和,就得到该函数的一个最大项,再把所有这样的最大项相乘,就是该函数的第二范式,即该函数的最大项表达式。(2)公式法(详见教材P54)4.2逻辑函数的卡诺图化简法4.2.1卡诺图卡诺图是用几何图形形象化地表示逻辑函数的真值表,即卡诺图和真值表二者有一一对应的关系,每个最小项在真值表上占一行,而在卡诺图上占一个小格。图4.1和图4.2表示了两种形式的卡诺图。对于多于六个变量的卡诺图,因为它缺乏几何直观性,从而也就失去了实际使用意义。图4.1二到五变量卡诺图图4.2二到五变量卡诺图的另一种形式从图4.2所示的卡诺图可以看到,每个变量及其反变量各占卡诺图区域的一半,每一个编号的小格都是所有变量(原变量或反变量)的“与”(交)。例如对于四变量的卡诺图,编号为13的小格是变量A、B、C*、D的“与”(交),即m13=ABC*D。如果这个小格内被记为1,则表示相应的最小项被赋值为1,即m13=ABC*D=1。卡诺图与一个逻辑函数的真值表完全等价,并且等价于一个规范的“积-和”表达式——逻辑函数的最小项表达式。所以称卡诺图为逻辑函数的最小项图示或最小项方块图。例4-3一个三变量逻辑函数的卡诺图、真值表和最小项表达式示于图4.3,从中可以看出三者之间的对应关系。图4.3卡诺图、真值表、最小项表达式的比较图4.3(a)、(b)、(c)三者的逻辑意义完全相同,只是表示形式不同。其中(a)为几何图形,(b)为数字表格,(c)为数学表达式。依据它们各自的特点而分别在不同的场合得到应用。但基于人们阅读图形优于阅读表格及数学表达式的特点,而以卡诺图的表示方式最具有几何直观性。卡诺图的表示方式在逻辑函数的化简中得到广泛应用。4.2.2卡诺图的编号卡诺图的小方格编号原则为:任意一个小方格的编号(以二进制表示)与其相邻小方格的编号相比仅有一位不同。由于每个小方格的编号用n位二进制数表示,而使一个n位的二进制数只有一位改变(1变0,或0变1),恰好可找出n个二进制数,这些二进制数就是这个格的相邻格的编号。卡诺图中某小方格的相邻格的个数等于它的二进制编号的位数或相应最小项的逻辑变量个数。对于五变量的卡诺图,如图4.1(d),共32个小方格分为左右两个矩形来表示,每个小方格仍有五个相邻小方格,其中四个可在这个小方格所在的矩形内找到,第五个可在另一个矩形的对应位置上找到,如m11除与左边矩形内的m9、m10、m15、m3相邻之外,还与右边矩形内的m27相邻。所谓对应位置,可这样理解:把一个矩形重叠到另一个矩形之上,透视地看,上边矩形的一个小方格就和下边矩形的一个小方格相对应。在使用五变量卡诺图时,往往有人误把m8与m16(或m9与m17等)认为是相邻格,其实只要比较一下它们对应的二进制数就可知道,它们并不具备相邻格的条件。4.2.3用卡诺图化简逻辑函数用卡诺图进行逻辑化简的出发点是最小项表达式,化简的目标与用公式法化简的目标相同,即:(1)乘积项的数目最少;(2)在满足乘积项数目最少的情况下,每个乘积项的变量个数最少。利用卡诺图进行逻辑函数化简时应注意的几个问题:(1)在卡诺图上合并最小项时,总是按2的乘幂来组合方格,即把2个方格、4个方格、8个方格等合并起来。2个方格合并可以消去1个变量,4个方格合并可以消去2个变量,8个方格合并可以消去3个变量,等等。(2)把尽可能多的方格合并成一组,组越大,合并而成的乘积项的变量个数就越少。(3)用尽可能少的组覆盖逻辑函数的全部最小项,组越少,化简而得到的乘积项数目就越少。(4)在实现上述(1)和(2)时,一个最小项可以根据需要使用多次,但至少也要使用一次。(5)一旦所有的最小项都被覆盖一次以后,化简就停止。例4-5化简逻辑函数F(A,BC,D)=∑m(0,1,3,8,9,11,13,14)所以,F(A,B,C,D)=ABCD+ACD+BD+BCBABCDCA08113931114D例4-6化简逻辑函数所以,F(A,B,C,D)=ACD+ABCD+BCD+ABCD+ABCF(A,B,C,D)=AC+AB+ABDBABCDCA111111114.3不完全规定的逻辑函数的化简方法4.3.1无关最小项的概念在某些实际问题中,一个n变量的逻辑函数并不是与2n个最小项都有关,而仅与其中一部分有关,与另一部分则无关,即这另一部分最小项并不能决定该函数的值。我们把这些不能决定函数值的最小项称为无关最小项。无关最小项或非规定项在两种情况下出现:第一,有时某些输入变量的取值组合根本不会出现,那么相应的最小项能够以任意方式供选择使用。既可以认为这些最小项使函数的值为1,也可以认为这些最小项使函数的值为0。这要由它们对简化逻辑函数是否有好处来决定。第二,对已知的一个逻辑网络,虽然所有的输入组合都可能发生,但是我们只对某些输入组合才要求函数的输出为1或0,而对另外一些输入组合,函数究竟输出为1还是为0,我们并不关心。4.3.2利用无关最小项化简逻辑函数因为无关最小项可以随意加到函数中去或不加到函数中去,而并不影响该函数原有的实际逻辑功能,所以,恰当地选择无关最小项,可以使逻辑函数极大地简化。例如下图所示,是一个用于“四舍五入”的逻辑电路,输入A,B,C,D按8421编码,即X=8A+4B+2C+D,要求当X≥5时,输出F=1;否则F=0,求F的最简“与或”表达式。XABCDF根据题意,列真值表。在真值表中的A,B,C,D的6种取值组合(1010~1111)在本问题中是不可能出现的。对于这6种取值,可以随意选择F的值为“1”还是为“0”,而对该逻辑电路的实际功能无关紧要。这6种取值组合所对应的最小项就称无关最小项。与它们对应的F值记为“d”(don’tcare)——d既可认为是“1”,也可以认为是“0”,根据化简的需要而定。XABCDF0123456789------00000001001000110100010101100111100010011010101111001101111011110000011111ddddddBABCDCAd85d97dd6ddDF(A,B,C,D)=∑m(5,6,7,8,9)+∑d(10,11,12,13,14,15)所以,F(A,B,C,D)=A+BC+BD4.4组合逻辑电路的分析组合逻辑电路的分析,就是对给定的组合逻辑电路进行逻辑描述,找出与该电路相对应的输入、输出逻辑关系表达式,并在必要时进行化简或评价该电路设计是否合理等。组合逻辑电路的分析基本步骤:(1)根据给定的电路,逐级写出输入、输出关系式;(2)依次代入,最后得到整个电路的输入、输出关系式;(3)如能化简,则进行化简,明确电路的功能和改进方案。例4-12分析图4.14所