2.2 逻辑表达式
图2-3展示了用于实现逻辑电路的符号和逻辑门的真值表。与(AND)门、或(OR)门、与非(NAND)门、或非(NOR)门、非(NOT)门在第1章中有过讨论。异或(XOR)门、同或(XNOR)门是有两个输入的逻辑门。当两个输入相同时,异或门的输出为0,反之为1。相反,当两个输入不同时,同或门输出为0,反之为1。异或门、同或门都可以看作一位比较器。与非门、或非门是通用的逻辑门,因为它们可以用来实现任何逻辑表达式。除此之外,实现它们时需要的晶体管更少。在集成电路内部,所有的逻辑实现都是用与非门、或非门实现的。
表2-3展示了有两个变量的函数f,并定义当x = 0且y = 0或者x = 1且y = 1时,f的值为1,当x和y取其他情况下的值时,f的值为0。公式(2-1)是一种表示真值表的布尔表达式,点(“•”)表示与运算,“+”表示或运算,横线表示非运算。
如果取遍了一个逻辑表达式的输入值都能产生出相同的真值表,那么这个逻辑表达式就等价于其真值表。例如,公式(2-1)在表2-3的输入下产生相同的输出,如下所示:
公式(2-1)只包含了两个逻辑项•和x•y,它们对应使得f的值为1的输入逻辑。通常,与(AND)运算可以不用任何符号表示(没有“•”),如公式(2-2)所示。
2.2.1 乘积的和表达式
当一个布尔表达式的输入满足使其输出信号f = 1的条件时(例如公式(2-2)),该表达式称为乘积的和(SOP)。表达式中的每一项都用每个独立输入条件相与(乘积)的形式给出,因而构成一个乘积项。当一个或者更多的乘积项为1时,函数输出f为1;因此,
f就是乘积项的或(加法)运算的结果。在公式(2-2)中,当x和y都为0时, = 1,或者x和y都为1时,xy = 1,因此f = 1。
一个SOP表达式可以翻译成与其等价的由非门、与门和或门基本逻辑门组成的逻辑电路。与公式(2-2)相对应的电路框图由两级与-或结构组成,不包含非门,如图2-4所示。该电路由7个信号组成:输入信号x和y;输出信号f;中间信号t = ,u = ,g = 和h = xy。两个与门电路生成中间信号g和h,作为或门的输入信号用来产生最终输出f。
运用非门、与门和或门来实现一个逻辑表达式比用通用的与非门和或非门实现更直接。
用与非门实现SOP表达式
用与非门代替与-或电路中所有的非门、与门和或门可以生成一个只由与非门组成的等价电路。这种转换基于德摩根定律,如公式(2-3)所示。与非运算符被表示为与门连接一个非门的形式(例如),或非运算符被表示为或门连接一个非门的形式(例如):
定律1中的和两个表达式可以生成相同的真值表,所以说它们是等价的。同样,定律2中的和也是等价的。这些定律同样适用于若干个变量。定律1表明了一个有反相输入的或门和一个没有反相输入的与非门是逻辑等价的。定律2表明了一个有反相输入的与门和一个没有反相输入的或非门是逻辑等价的。
考虑图2-4中的与-或电路。电路可以通过以下步骤转换成只有与非门的电路:
1)将一个二输入的与非门的输入连接起来,作为与非门等价的与非门逻辑代替电路中的每一个非门,如下图所示,即。
2)在中间信号g和h的两端加入两个非门,如图2-5所示。这个操作并不会影响电路行为,因为两个非门不会改变原始信号的值(例如 = g)。
3)用与非门替换每一个与-非门的电路组合,如图2-6所示;一个与非门等价于一个与门后面跟着一个非门的组合。内部非门在
图2-5中用小圆圈表示。
唯一一个没有转换成与非门的是有反相输入的或门。根据德摩根定律1:,这样的逻辑门是和与非门等价的。
4)用与非门代替有反相输入的或门的电路框图如图2-7所示。
图2-7中由与非门组成的电路结构等价于图2-4中的与-或电路结构。另外,下列布尔代数运算得出了一个只有与非运算的SOP表达式:
2.2.2 和的乘积表达式
当一个布尔表达式定义了输出信号f的输入条件使得f = 0时,我们称其为和的乘积(POS)。上节中讨论了一个SOP的定义为输出信号的输入条件使得f = 1。POS表达式中的每一项都用每个独立输入条件相或(加法)的形式给出,使得f为0,这样就构成了一个和项;当一个和项为0时,信号f的值为0,这样f就是它所有和项的与(乘积)结果。同一个输出的SOP和POS表达式是等价的,它们有相同的真值表。我们只需要用一种表达式(SOP
或者POS)来描述输出信号即可。然而,SOP表达式比POS表达式更容易从直观上理解。
1.?SOP与POS
下列规则展示了输出f的SOP表达式和POS表达式之间的关系:
规则1:f的POS表达式= 的SOP表达式的补集。
规则2:f的SOP表达式= 的POS表达式的补集。
运用规则1,函数f的POS表达式可由的SOP表达式的补集得到。在真值表中,当f为0时,为1,当f为1时,为0。由于的SOP表达式定义了在输入条件下为1,所以的SOP表达式的补集就是一个定义当输入条件下f为0的POS表达式,如下表所示:
这样,可推得:
由德摩根定律2,即,得:
由德摩根定律1,即,对于每一个逻辑项,得:
或者写为:
等式中的两个逻辑项和都为和(即OR)项,这两个和项通过与运算组成了一个POS表达式。规则2可用于从的POS表达式推出f的SOP表达式。
另外,f的POS表达式可以由对偶原理得出的SOP表达式:
对偶原理——表达式的对偶表达式为,即与和或运算符号互换,与运算都换成或运算,或运算都换成与运算,但是无论是对偶形式还是非对偶形式,变量名是不变的。
通常,一个布尔代数规则的对偶形式也是合法的布尔代数规则,例如x (y + z) = xy + xz的对偶形式x + yz = (x + y)(x + z)也是合法的布尔代数规则。如果布尔代数规则里含有1或者0,在求其对偶的布尔代数规则时,需将0换成1或者1换成0,例如x + 0 = x就转换成x•1 = x。
通过真值表获得POS表达式的一个简单的方法是首先获得的对偶表达式,然后将其对偶表达式每个变量取反就可获得POS表达式。
?例2-2? 已知的SOP表达式,求g的POS表达式。
通过函数的SOP表达式求出f的POS表达式的两种方法可以总结如下:
方法Ⅰ:使用恒等式,然后利用德摩根定律求出。
方法Ⅱ:找出的SOP表示式的对偶形式,然后对每一个变量取反。
图2-8展示了公式(2-4)POS表达式的或-与电路图。和与-或电路图类似,或-与电路图是两级电路且不包括中间的非门。两个并联或门的中间输出将作为与门的输入信号进而产生f的值。
2.用或非门实现POS表达式
用或非门替换或与电路中的非门、或门和与门可以产生一个等价的只有或非门的电路。这是基于德摩根第二定律得出的结论。考虑图2-8中的或-与电路。该电路可以通过以下步骤设计成只有或非门的电路:
1)将一个二输入的或非门的输入连接起来,作为与非门等价的或非门逻辑代替电路中的每一个非门,如下图所示,即。
2)在中间信号m和n的两端加入两个非门,如图2-9所示。这个操作并不会影响电路行为,因为两个非门不会改变原始信号的值(例如)。
3)用或非门替换每一个或非门的电路组合,如图2-10所示。一个或非门等价于一个或门后面跟着一个非门的组合。
唯一没有转变为或非门是有反相输入的与门(用内部非门标记)。根据德摩根第二定律可知这样的表示等同于一个或非门。
4)用或非门代替有反相输入的与门的电路框图,如图2-11所示。
以下的布尔代数可以表达成只用或非运算的POS表达式:
逻辑项和代表或非项,通过或非运算生成f。概括地说,一个函数的SOP和POS表达式是等价的,且两者都可以生成相同的真值表。所以,SOP表达式用于与非门电路,POS表达式用于或非门电路。