1.5 逻辑代数基础
1.5.1 逻辑等式
运用“与”、“或”、“非”等逻辑运算,将若干逻辑变量A、B、C、D、…等组合起来,就构成逻辑函数式,又称为“逻辑等式”,例如,。式中A、B称为输入变量,F称为输出变量。同一个逻辑问题的逻辑表示式有多种形式,例如,
逻辑函数可以用逻辑真值表、逻辑函数式、卡诺图、逻辑电路图、波形图等五种常用的方法表示。例如,楼梯间的电灯,为了操作方便和省电,要求楼下和楼上都能控制电灯的亮、灭,所以,在楼下、楼上各装一个开关,中间用双线连接,如图1.12所示。从图中看出:开关A、B同时掷向上,或A、B同时掷向下时,灯Y亮。若设开关A或B掷向上为1,掷向下为0,灯亮为1,灯熄灭为0,则可得如表1.17所列的真值表。
图1.12 楼梯间电灯控制电路
表1.17 楼梯电灯开关电路的真值表
1.5.2 最小化和卡诺图
1.最小项与卡诺图
如果一个逻辑函数的某个乘积项包含了函数的全部变量,并且,每个变量都以原变量或反变量的形式出现,且只出现一次,则这个乘积项就称为该函数的“最小项”,其最小项mi的编号数i与其8421BCD码的十进制数值相对应。根据“最小项”的定义知:两个变量A、B可以组成4个最小项;3个变量A、B、C可以组成8个最小项。可见n个变量可以组成2n个最小项。若两个最小项中只有一个变量不同,则称这两个最小项为“相邻项”。卡诺图是用小方格来表示最小项的,一个小方格代表一个“最小项”,然后将这些最小项按照几何位置上的相邻性规律排列起来。可以将卡诺图看成是真值表的另一种表现形式。一个逻辑函数的真值表有多少行,卡诺图就有多少个小方格。二变量至四变量的卡诺图如图1.13所示。卡诺图有下述三大特点:
图1.13 二变量至四变量的卡诺图
(1)卡诺图中行、列两组变量取值按循环码规律排列,以保证几何位置上的相邻关系,小方格所对应的“最小项”为“逻辑相邻项”。
(2)对于含有n个变量的逻辑函数,其卡诺图内含有2n个小方格,分别对应2n个最小项。
(3)卡诺图中的“相邻”有两种情况:第一种是小方格在几何位置上的相邻,如图1.13(c)四变量卡诺图中的m1与m3相邻、m1与m5相邻;第二种是小方格以左右或上下中心线为轴对称位置上的相邻,m1与m9相邻,m4与m6相邻。将逻辑函数F真值表中各行的取值填入卡诺图中对应的小方格,就可以得到关于函数F的卡诺图。
例1.11 已知函数F的真值表如表1.18所列,试用卡诺图表示该逻辑函数。
解:表1.18真值表所对应的卡诺图如图1.14所示。
表1.18 真值表
图1.14 例1.1的卡诺图
例1.12 运用卡诺图化简逻辑函数F=∑m(0.2.5.8.10.11.14.15)为最简“与或”式。
解:将逻辑函数F的最小项按其“最小项编号mi”填入四变量卡诺图的相应小方格中,得到F的最小项卡诺图,如图1.15所示。
图1.15 例1.12的卡诺图
根据卡诺图中两相邻最小项中有一变量相“或”为1的特点,图1.15(b)为画圈后的卡诺图,图中最小项m0、m2、m8和m10为相邻项,合并后结果为,消去了A、C两个变量。m10、m11、m14和m15合并后结果为AC,消去了变量B、D。m6为孤立圈,化简后的逻辑函数“与或”表达式为:
例1.13 用卡诺图表示逻辑函数
解:①将逻辑函数转换为最小项表达式:
②将最小项填入四变量卡诺图。有最小项编号的方格填“1”,没有最小项的方格填“0”,(也可以不填)如图1.16所示。
2.运用卡诺图简化某一功能的逻辑电路结构
因为实现确定逻辑功能的方法不是唯一的,所以我们希望得到实现该功能的最简单的或最有效的电路结构。虽然可以通过编码在计算机上运行的代数方法等许多很好的办法来解决该问题,但是对于4个或4个以下的输入的问题,卡诺图是首选的最佳方法,一旦写出真值表,就可以得到最简的逻辑等式。例如,三人投票表决的逻辑问题就可以说明卡诺图是最好的方法。假设表决者为正逻辑输入(同意为1,不同意为0),表决结果为正逻辑输出(通过为1,未通过为0),输入中至少有两个为1时输出才为1。
第一步,写出真值表。如表1.19所列。
第二步,画出卡诺图。如图1.17所示,从图中知,每一个方格与相邻方格中的输入只有一个变量不同。
第三步,找卡诺图中的1。有3个圈逻辑表达式为AB、BC和AC,最后写出所需的函数,这里有,实现电路如图1.18所示。
图1.16 例1.13的卡诺图
图1.17 三变量多数表决卡诺图
表1.19 三人表决真值表
图1.18 三变量多数表决逻辑电路图
3.关于运用卡诺图化简逻辑函数的4点说明
(1)将原始函数或真值表移植到卡诺图上,使函数最小项在卡诺图中对应的小方格中填入“1”,其余的小方格填入“0”(为简洁起见,“0”也可以不填)。
(2)对图中相邻的“1”方格画卡诺圈。画卡诺圈时包围的方格数必须是2n个(n=0、1、2、…),同一方格允许被不同的卡诺圈重复包围,但在新增的卡诺圈中一定要有新的“1”方格。卡诺圈越大,则逻辑式越简单。
(3)约束项(又称无关项)在其编号数的小方格上画“×”号表示,其取值是随意的,可以将它当成1也可以当成0,从而使逻辑表示式最简单。
(4)将每个卡诺圈中的互反变量消去,保留共有变量,将得到对应的“与”项,再用逻辑“或”运算,便得到期望的最简逻辑表示式。
例1.14 试用卡诺图化简逻辑函数F(A.B.C.D)=∑m(3.5.8.10.12.13.14.15)。
解:①画出四变量的卡诺图。如图1.19所示。
②填卡诺图。将逻辑函数式中的最小项在卡诺图对应的方格内填“1”,没有最小项的方格填“0”或者不填。
③根据相邻最小项画卡诺图的原则画卡诺图并合并相邻最小项。例如,
④将各卡诺图内相邻最小项的“共有变量”进行“或”运算,便得到最简的“与或”表示式,即。
例1.15 运用卡诺图化简为最简“或与”表示式。
解:①由F(A.B.C.D)=∑m(6.7.8.9.12.13)画出四变量卡诺图如图1.20所示。
图1.19 例1.14的卡诺图
图1.20 例1.5的卡诺图
②对填上“0”的方格画卡诺图,便直接得到“或与”表示式。
因为。
例1.15说明:一个逻辑函数用卡诺图化简的结果不是唯一的。对卡诺图中所有“0”方格画卡诺圈,虽然画圈的原则与前述“1”方格的相同,但是每一个卡诺圈写出的是一个最简“或”项,并且最小项取值为0的变量用原变量表示,取值为1的变量用反变量表示,将这些变量相“或”,然后将所有的“或”项进行逻辑“与”运算,便得到最简的“或与”逻辑式。
1.5.3 含有约束项的逻辑函数的化简
1.约束项、无关项或任意项
在一些实际逻辑事件中,输入逻辑变量的某些取值组合禁止出现,或不可能出现,或一些取值组合为任意值。这些取值组合对应的最小项称为“约束项”(或称“任意项”或称“无关项”)。常用符号“×”或“d”表示其逻辑值。例如,将十进制数转换为8421BCD代码时,组合1010~1111是不使用的代码,它不会出现,与其编号数相对应的最小项是约束项。
例1.16 公路十字路口的交通信号灯,其中红灯亮表示禁止通行,绿灯亮表示可以通行,黄灯亮表示停车。设红、绿、黄三色灯分别用变量A、B、C来表示;灯亮用“1”表示;灯灭用“0”表示。车行F=1,车停F=0,写出该问题F的逻辑表达式。
解:十字路口的交通信号灯,一次只允许一个灯亮,禁止两个或两个以上的灯同时亮,同时信号灯全灭时车也不能通行。该问题的逻辑关系可以用表1.20所列的真值表来描述,其卡诺图如图1.21所示。由真值表可写出逻辑表达式:
即F(A.B.C)=∑m(1.2)+∑d(3.5.6.7)。
表1.20 例1.6的真值表
图1.21 例1.16的卡诺图
经图1.21化简得:F(A、B、C)=B+C。
2.利用约束项化简逻辑函数
化简具有约束项的逻辑函数时,要充分利用约束项既可以当“0”,也可以当“1”的特点,尽量扩大卡诺圈的范围,使逻辑函数最简。在考虑无关项取值时,哪些项当做“1”,哪些项当做“0”,要以尽量减少卡诺圈的个数、扩大卡诺圈的范围,使逻辑函数最简为原则。
例1.17 利用卡诺图化简逻辑函数为最简“与-或”表达式:
F(A.B.C.D)=∑m(3.6.8.10.13)+∑d(0.2.5.7.12.15)。
解:①画出四变量卡诺图,如图1.22所示。
②填卡诺图。有最小项的小方格填“1”,约束项的小方格填“×”。
③合并相邻最小项,写出最简“与-或”表达式。
未利用无关项化简时的卡诺图如图(a)所示,由图化简得:
利用无关项化简时的卡诺图如图(b)所示,由图化简得:
显然,利用“约束项”化简时所得到逻辑函数式比未利用“约束项”化简时要简单得多。从上面的例子可以看出卡诺图化简法的优点是简单、直观,有一定的化简步骤可循,不易出错,而且容易化到最简。但是,当逻辑变量达到5个及5个以上时,它就失去了其直观、简单的优点,不宜采用。
图1.22 例1.17的卡诺图
1.5.4 逻辑代数的基本公式、定理和规则
1.逻辑代数的基本公式(如表1.21所列)
表1.21 逻辑代数的基本公式
证明分配律:(A+B)(A+C)=AA+AB+AC+BC
=A+AB+AC+BC=A(1+B+C)+BC
=A+BC
证明吸收律:
可以利用上述公式和定理来对逻辑表达式进行化简,也可以利用它们来证明两个逻辑表达式是否相等。例如,可以利用反演律、分配律和互补律来证明等式是否成立,证明如下:
2.逻辑代数的3个基本规则
(1)代入规则。任何一个含有变量A的等式,如果将所有出现A的位置都用同一个逻辑函数代替,则等式仍然成立。这个规则称为“代入规则”。例如,已知等式:用函数Y=AC代替等式中的A,根据代入规则,等式仍然成立,即有:
据此可以证明n个变量的摩根定律成立。代入规则的重要意义是:利用这个规则可以将逻辑代数的公式、变量用任意函数代替,从而推导出更多的等式。注意:使用代入规则时必须将等式中所有出现同一变量的地方均以同一函数代替,否则代入后的等式将不成立。
(2)反演规则。对于任何一个逻辑表达式Y,如果将表达式中的所有“·”换成“+”,“+”换成“·”,“0”换成“1”,“1”换成“0”,“原变量”换成“反变量”,“反变量”换成“原变量”,那么所得的表达式就是函数Y的反函数(或称补函数)。这一规则称为“反演规则”。利用反演规则可以很容易地求出一个函数的反函数。注意:在运用反演规则求一个函数的反函数时,必须按照逻辑运算的优先顺序进行,先算括号,接着“与”运算,然后“或”运算,最后“非”运算,否则容易出错。例如,
(3)对偶规则。对于任何一个逻辑表达式Y,如果将表达式中的所有“·”换成“+”,“+”换成“·”,“0”换成“1”,“1”换成“0”,而变量保持不变,则可得到一个新的函数表达式Y′,Y′称为函数Y的对偶函数,这个规则称为对偶规则。例如,
由这些例子可以看出,如果Y的对偶函数为Y′,则Y′的对偶函数就是Y,也就是Y和Y′互为“对偶函数”。在求一个函数的对偶函数时,同样要注意运算的先后顺序。对偶规则的意义在于:如果两个函数相等,则它们的对偶函数也相等。利用对偶规则,可以使要证明及要记忆的公式数目减少一半。例如,已知等式A(B+C)=AB+AC成立,则其对偶等式A+BC=(A+B)(A+C)也是成立的。
把上述反函数的例子与对偶函数的例子对照一下,可以看出,反函数和对偶函数之间在形式上只差变量的“非”。因此,若已求得一个函数的“反函数”,只要将其“对偶函数”中的所有变量取“反”便可得出该函数的“反函数”,反之亦然。
1.5.5 逻辑函数的公式法化简
运用卡诺图和逻辑代数基本公式来化简逻辑函数是常用的两种方法。公式化简法就是运用逻辑代数的基本公式、定理和规则对逻辑函数进行化简的一种方法,常用以下几种。
1.并项法
利用公式,将两项合并为一项,并消去一个变量。例如,
2.吸收法
①利用公式A+AB=A,消去多余的项。例如,
②利用公式,消去多余的变量。例如,
3.配项法
①利用公式,为某一项配上其所缺的变量,以便用其他方法进行化简。例如,
②利用公式A+A=A,为某项配上其所能合并的项。例如,
4.消去“冗余项”法
利用吸收律将冗余项BC消去。例如,
例1.18 化简函数。
解:
例1.19 化简数)。
解:可以利用对偶规则,先求出Y的对偶函数Y′,并对其进行化简。
然后再求Y对偶函数,便得Y的最简或-与表达式。
例1.20 化简函数
解:
从上述的例子可以看出,公式法化简很难判断出所得的结果是否为最简。当函数比较复杂时,往往采用卡诺图法化简。