第3章 数字逻辑代数及其应用
3.1 数字逻辑代数的三种基本逻辑关系
二逻辑的基本逻辑关系只有3种,即逻辑乘、逻辑或及逻辑非。与其相对应,逻辑代数中只有3种基本运算,即与运算、或运算及非运算。
3.1.1 数字逻辑代数的基本逻辑乘
若决定某一件事的所有条件都成立,这件事就发生,否则这件事就不发生,这样的逻辑关系被称为逻辑乘。其逻辑表达式为
F=A·B
式中的“·”符号为逻辑乘(又叫与运算),它不是普通代数中的乘号;F是A、B逻辑乘的结果,称为逻辑积,它也不是普通代数中的乘积;A与B表示这件事发生的两个条件,也就是两个输入变量,输入变量可以是多个,这里仅以两个变量为例,以下同。
3.1.2 数字逻辑代数的基本逻辑或
若决定某一件事的条件中只要有一个或一个以上成立,这件事就发生,否则就不发生,这样的逻辑关系被称为逻辑或。其逻辑表达式为
F=A+B
式中的“+”符号为逻辑或(又叫或运算),它不是普通代数中的加号;F是A、B的逻辑和,不是代数和。
3.1.3 数字逻辑代数的基本逻辑非
某件事的发生取决于某个条件的否定,即该条件成立,这件事就不发生;条件不成立,这件事反而会发生,这样的逻辑关系被称为逻辑非。其逻辑表达式为
式中的A上面的横线表示逻辑非(又叫非运算),读为A非。
3.1.4 数字逻辑代数的基本复合逻辑
逻辑乘、逻辑或和逻辑非是3种最基本的逻辑关系,由这3种逻辑关系进行不同的组合就可得到与非、或非、与或非、异或、同或等其他各种复合逻辑关系。
3.2 数字逻辑代数的基本定律与公式
3.2.1 数字逻辑代数的基本定律
根据与、或、非3种基本逻辑运算关系,可推导出逻辑代数运算的一些基本定律,如表3-1所示。
表3-1 数字逻辑代数的基本定律
表3-1中的反演律又称为摩根定律,是数字逻辑变换中经常要用的定律。
3.2.2 数字逻辑代数的常用公式
逻辑代数的常用公式如表3-2所示,这些公式在化简逻辑函数时很有用处。
表3-2 数字逻辑代数的常用公式
3.3 数字逻辑代数的三个基本法则
逻辑代数中的三个基本法则分别是代入法则、反演法则和对偶法则。
3.3.1 数字逻辑代数的代入法则
在任何一个含有逻辑变量(如变量A)的逻辑等式中,如果将所有出现某一变量(如变量A)的位置都代之以同一个逻辑函数式,则此等式仍然成立,这就是代入法则。
3.3.2 数字逻辑代数的反演法则
已知一逻辑函数F,求其反逻辑函数F的过程为反演,对于任一逻辑函数,在求其反函数F时,只要将F中所有的原变量变为反变量,反变量变为原变量,“·”变为“+”,“+”变为“·”,“0”变为“1”,“1”变为“0”,就得到F。
3.3.3 数字逻辑代数的对偶法则
对于任一逻辑函数F,如果将F中所有“·”变为“+”,“+”变为“·”,“1”变为“0”,“0”变为“1”,而变量保持不变,则得到的新逻辑函数F′就为F的对偶函数或对偶式。也就是说,函数F和F′两者互为对偶。
若两个逻辑函数相等,则它们各自的对偶函数也相等,这就是对偶法则。
3.4 数字逻辑函数的标准表达式
根据前面介绍的逻辑函数相等概念可以知道,一个逻辑函数可以有多种不同的表达式。常见的逻辑函数表示形式如下。
① 与或式,如F=AB+AC;
② 或与式,如F=(A+B)·(A+C);
③ 与非-与非式,如;
④ 或非-或非式,如;
⑤ 与或非式,如F=。
对于具体问题,应根据具体题目的要求对函数进行不同表示形式之间的转换。
3.4.1 数字逻辑函数的标准与或表达式
1.基本概念
标准与或表达式也称为最小项之和表达式。最小项是指逻辑函数中所有变量的一个与项,其中每一个逻辑变量以原变量或反变量的形式仅出现一次。
一个逻辑函数可以用最小项之和的形式表示,被称为函数的最小项之和表达式,也就是标准与-或表达式,如F(A,B)=AB+是二变量的最小项之和表达式。F(A,B,C,D)是四变量最小项之和表达式。
由于一个变量有原变量和反变量两种形式,故n个变量共有2n个最小项。但在实际的函数标准表达式中,可能包含所有的最小项,也可能只有部分最小项。
表3-3所示为三变量逻辑函数F(A,B,C)的全部最小项中的真值表。为了便于介绍,这里用mi表示第i个最小项。在确定输入变量顺序后,将某一最小项中的原变量作为1,反变量作为0,这就形成了一个二进制数,此二进制数对应的十进制数即为i。表3-3中的最小项对应的变量取值为000,即十进制数为0,所以该最小项记为m0。依此类推,在知道最小项编号的情况下,就可以很方便地写出其变量的表达式。
表3-3 三变量最小项的编号
2.最小项性质
① 每个最小项的值都对应一组变量的取值,而且只有一种取值才使得某一最小项为1。其他任何取值,此最小项都为0,如表3-3所示。只有A=B=C=0时,m0=1,而A、B、C的任何其他取值时,m0均为0。
② 一个逻辑函数的所有最小项中,任意两个或多个不同最小项的与为零,如
③ n项最小项之和(即2n项的和)均为1。
3.逻辑函数最小项表达式
逻辑函数的最小项表达式是指用最小项表示的与或函数表达式,如
就是三变量逻辑函数的最小项表达式。若用最小项编号表示,则为
F=m0+m1+m2+m3+m5+m7
也可表示为
F=∑m(0,1,2,3,5,7)
任何逻辑函数都有且仅有一个最小项表达式。
4.求逻辑函数最小项表达式
求逻辑函数最小项表达式的方法通常有两种。
(1)真值表法
已知逻辑函数真值表时,可把真值表中输出变量F等于1的输入变量相应取值,用其对应的最小项表示,然后把它们相加(或),即为该逻辑函数的最小项表达式,如表3-3所示。
(2)展开法
已知某逻辑函数的一般表达式,可根据逻辑函数的基本公式,先将其化为与或表达式,再进一步利用配项法,将缺少变量的乘积项变为最小项。
例3-1 将F=AB+AC展开为最小项表达式。
解:
可用配项法化为最小项,即
=m7+m6+m3+m1=∑m(7,6,3,1)
有些表达式展开为最小项表达式时十分麻烦,此时可以先根据表达式列出真值表,然后由真值表写出最小项表达式。
3.4.2 数字逻辑函数的标准或与表达式
1.基本概念
标准或与表达式也称为最大项表达式。最大项是指包含逻辑函数中所有变量的一个或项,其中每一个逻辑变量以原变量或反变量形式作为一个因子仅出现一次,就称为标准或项。
一个逻辑函数如用最大项之积的形式表示,则称为函数的最大项之积表达式,也就是标准或与表达式,如
是三变量函数的最大项之积表达式。
由于一个变量有原变量和反变量两种形式,故n个变量共有2n个最大项。
表3-4所示为三变量逻辑函数F(A,B,C)的全部最大项的真值表。为了方便,通常也可以Mi表示第i个最大项。下角标i的值是这样确定的:变量按一定次序排列(如AB),如果或项中文字以反变量形式出现,则记为1;以原变量形式出现,则记为0。这样构成的二进制数被称为转换码,其对应的十进制数就是该最大项下角标i的值。例如,最大项(+B+)对应的变量取值为101B=5D,即十进制数为5,故该最大项记为M5。
表3-4 三变量最大项编号
根据以上规则,在知道最大项编号的情况下,就可以写出它的变量表达式。
2.最大项性质
① 每个最大项都有一组变量的取值使它为0。
② n个变量的所有最大项之积(与)恒等于1。
③ 任何两个不同的最大项和(或)为1。
3.求逻辑函数最大项之积表达式
例3-2 写出F=(A+B+)·(+B+)最大项之积表达式的编号表达方式。
解:
可以进一步简写为
F=M1·M7=πM(1,7)
一个逻辑函数同时存在两种标准表达式:最小项之和表达式及最大项之积表达式。最小项所给的函数值是1时变量的取值组合;最大项所给的函数值是0时变量的取值组合。由于两者表示的是同一个逻辑函数,故这两种表达式是相等的。可以证明,对同一函数
也就是同一下标的最大项和最小项是互补的。由于函数值不是0就是1,所以由一种标准形式很容易得到另一种标准形式。
例如,已知:F(A,B,C)=m0+m2+m3+m4+m5+m6=∑m(0,2,3,4,5,6),可以直接写出:F(A,B,C)=∑m(0,2,3,4,5,6)=πM(1,7)。
3.5 数字逻辑函数的化简
对于一个逻辑函数来说,如果表达式比较简单,则实现这个逻辑函数式所需要的元件就比较少,故化简逻辑函数既可以节约器材又可以提高电路的可靠性。通常,从逻辑问题概括出来的逻辑函数不一定是最简单的,故需再对逻辑函数进行化简,找出其最简的表达式。所谓最简,是指在保证电路正常工作的前提下,表达式中包含的项数最少,同时每项中包含的变量数也少。
在一般情况下,均将逻辑函数化简为最简单的与或表达式,常用的化简方法主要有公式化简法和卡诺图化简法。
3.5.1 数字逻辑函数的公式化简法
所谓公式化简法是指用逻辑函数的基本公式和常用公式对逻辑函数进行化简,使其最简单。常用的公式化简法主要有以下4种。
1.吸收法
吸收法是利用A+AB=A公式消去多余的乘积项AB,如
F=B+ABD=B(1+AD)=B
式中ABD即为多余的乘积项。
2.合并项法
合并项法是利用A+=1公式,两项合并为一项,消去一个变量,如
3.消去法
消去法是利用A+B=A+B公式消去多余的变量,如
4.配项法
配项法是利用公式B=B(A+)=AB++B,A+=1,A+A=A,将一项变为两项,再与其他项合并进行化简,添加A·项也可以进行化简,如
F也可以采用以下方法化简,即
由F的两种化简方法可以看出,有的最简表达式虽然项数和每项变量个数均相等,但不是唯一的,F就有两种表达式出现。所以,在使用配项法时,应拆散哪一项,选择哪个变量做常数因子,有时不是一眼就能看得出来的,需要仔细观察和反复试探,最终得到所要求的结果。
利用公式化简逻辑函数的基本方法主要包括上述4种,在实际化简过程中,有时需要用上述几种方法综合地去化简。
以上对函数进行化简均是对函数的与或式进行的。对于函数的或与式,除应用以上方法对函数进行变换化简以外,也可以先使用对偶法则,将函数的或与式转换成与或对偶式,对对偶式进行化简后,再求一次对偶,即可得到化简后的原函数。
3.5.2 数字逻辑函数的卡诺图化简法
公式化简法技巧性强,要求对基本公式或常用公式运用熟练,这一点对初学者较为困难,而且有时对化简的结果是否达到最简还难以判断。卡诺图化简法是一种简便直观、容易掌握、行之有效的方法。
1.卡诺图的概念
所谓卡诺图,就是根据真值表,按一定规则画成的方格图,是1953年由美国工程师卡诺提出来的,也称最小项方格图。它用小方格来表示真值表中每一行的变量取值情况和函数值,故卡诺图实质上是一种矩阵式的真值表。
2.卡诺图的形式
用卡诺图描述函数时,首先根据变量个数画出空白的卡诺图。若变量个数为n,则画出的卡诺图应包括2n个小方格,每个小方格对应一个函数的最小项。方格的序号与最小项序号一样,分别由行变量和列变量来决定。图3-1所示为2,3,4变量的空白卡诺图形式。
图3-1 2,3,4变量的空白卡诺图形式
卡诺图中输入变量的标号顺序,必须体现相邻性的原则。所谓相邻性,是指两个几何上相邻的小方格所对应的所有变量中,允许有一个变量是不同的(即互补的),而其余都是相同的。根据此原则,变量的取值顺序
① 2变量:00,01,11,10;
② 3变量:000,001,011,010,110,111,101,100。
由此可见,卡诺图行、列变量的取值顺序按照反射码的编码顺序排列,而不采用真值表中采用的二进制数顺序。这是卡诺图和真值表表示法的重要区别。
3.画逻辑函数卡诺图的步骤
用卡诺图表示逻辑函数常见的有以下两种方法。
(1)最小项法
① 求逻辑函数F所包含的全部最小项。
② 画卡诺图(变量个数为逻辑函数F所含的变量个数),在卡诺图中将F所含的最小项填1,其余填0,就可得到表示逻辑函数F的卡诺图。
例3-3 已知逻辑函数F=A+BC,画卡诺图。
解:
将表达式化为最小项,即
画卡诺图,将F所含的最小项在卡诺图中填1,其余填0,由此即可得到F=A+BC的卡诺图,如图3-2所示。
图3-2 F=A+BC的卡诺图
(2)真值表法
以逻辑函数F=A+BC为例,其真值表如表3-5所示。
表3-5 F=A+BC的真值表
将对应于F=1时由A,B,C的值组成的最小项在卡诺图中填1,其余填0,同样也可得到如图3-2所示的卡诺图。
4.由卡诺图写出逻辑函数式的方法
由卡诺图写逻辑函数式时,只要将卡诺图中所有填1的小方格所代表的基本乘积项相加,就可得到逻辑函数的表达式。在写基本乘积项时,要注意变量为1时,代表原变量;变量为0时,代表反变量。
5.卡诺图化简的方法
卡诺图化简法实质上是直观并项法。相邻两个方格所代表的最小项只有一个变量不同,若相邻两个方格均填入1,则可以利用消去一个变量。由于卡诺图几何相邻与逻辑相邻的一致性,所以从卡诺图上能够直观地找出相邻的最小项合并并化简。以此类推,又可得到:
① 4个标有1的方格所对应的最小项在排列成矩阵组(这种矩阵组被称为卡诺图)时,可合并为一项,消去两个变量。
② 8个标有1的方格所对应的最小项在排列成矩阵组时,可合并为一项,消去3个变量。
③ 16个标有1的方格所对应的最小项在排列成矩阵组时,可合并为一项,消去4个变量。
卡诺图中相邻最小项的合并情况如图3-3所示。
图3-3 卡诺图中相邻最小项的合并情况示意图
6.卡诺图化简的步骤
利用卡诺图合并最小项的一般规则为:若卡诺图中有2n个最小项相邻并排成矩阵组,则这些最小项可合并成一项,并消去n个变量。卡诺图化简的步骤如下。
① 画出逻辑函数的卡诺图;
② 按照规则,合并卡诺图中所有为1的方格,所形成的一个卡诺图中应至少包含一个未被其他卡诺图圈过的1方格,且形成的卡诺图应尽可能大;
③ 将每个包围圈所表示的乘积项逻辑加。
为了使简化后的逻辑函数式最简,在画包围圈时应注意以下6点:
① 包围圈越大越好(乘积项因子少);
② 包围圈个数越少越好(乘积项项数少);
③ 同一个方格可以圈多次(因为A+A=A);
④ 每个圈要有新的成分,如果某一圈中所有1方格均被别的包围圈包围,则此圈所表示的乘积项是多余的;
⑤ 先圈大、后圈小,不要遗漏1个方格;
⑥ 如果某个1方格孤立存在,则需单独圈围。若漏圈,则所得的结果不正确。
例3-4 化简函数F(A,B,C)=∑m(0,2,3)。
解:
第一步,做出三变量函数的卡诺图,并根据具体函数填入,如图3-4(a)所示。
第二步,按照规则,对填1的方格进行圈围,并检查是否所有的1都被圈围,是否存在一个圈中的1均被其他卡诺图圈围的现象,经过圈围的卡诺图如图3-4(b)所示。
图3-4(b)中,m0与m2相邻,所以;m2和m6相邻,所以ΑΒC+ΑΒC=ΒC。故化简后可得。
图3-4 F(A,B,C)=∑m(0,2,3)的卡诺图
7.包含无关最小项逻辑函数的化简法
(1)无关最小项的含义
一个n变量的逻辑函数并不一定与2n个最小项都有关。有时,它仅与其中一部分有关,而与另一部分无关。也就是说,这另一部分最小项为1或0均与逻辑函数的逻辑值无关,故称这些最小项为无关最小项(或称随意项、约束项)。无关项在真值表和卡诺图中用x(或d、φ)表示。具有无关最小项的逻辑函数通常被称为具有约束条件的逻辑函数。
例如,用8421 BCD码表示的十进制数ABCD,只有0000~1001这10个输入组合出现,其余1010~1111 6个组合不可能出现。这种不会出现的变量取值组合所对应的最小项称为约束项。
(2)约束条件在表达式中用∑md、∑mx表示
由于无关最小项为1为0对实际的输出无影响,故从化简结果更加简单的角度出发,将其在卡诺图中对应的方格灵活地作为1或0,会给化简带来方便。
例3-5 化简函数F(A,B,C,D)=∑m(1,3,5,7,9)+∑mx(10,11,12,13,14,15)。
解:
∑mx(10,11,12,13,14,15)是该函数的约束条件,表示函数存在无关项。其卡诺图如图3-5(b)所示。
图3-5 化简函数用卡诺图
如果不考虑无关项(即将其对应最小项看做0),则卡诺图的圈围如图3-5(a)所示,可得。
若从化简结果更加简单的角度出发考虑,在该例中,则可将所有无关项看做1参与化简,如图3-5(b)所示,可得化简结果为F=D。
在化简中,根据无关最小项的性质及化简的需要,将m11、m13、m15看做1,将m10、m12、m14看做0,可求得最简输出函数。
比较以上两个化简结果可以看出,利用约束条件后,得到的函数可简单得多。所以,具有无关项的逻辑函数应充分利用其性质来化简。
利用无关项化简时应注意:填1的方格必须参与化简,而填x的方格则根据使化简结果是否更加简单来决定它是否参与化简。
(3)卡诺图化简法步骤
具有无关项的卡诺图化简法与没有无关项的卡诺图化简法大体相同,其具体步骤归纳如下:
① 将逻辑函数每个1对应的输入变量组合填在卡诺图相应的小方格中;
② 将无关项(只有指明的不出现的项才为无关项)用x或φ填入相应的小方格中;
③ 卡诺图中除去填1和x的小方格之外的小方格均填0;
④ 为了画最大包围圈,可将卡诺图中的1和必要的x画在一起,并将这些x作为1用,没有画入圈内的x视为0;
⑤ 按一般的卡诺图化简法化简,直至得到满意的结果为止。