第3章逻辑代数与逻辑函数 逻辑代数是数字电路分析和设计的主要数学工具。本章介绍逻辑函数、逻辑代数的基本运算、逻辑函数化简及逻辑函数门电路的实现等内容,这些内容是分析和设计逻辑电路的基础。 3.1逻辑代数的基本运算 数字电路研究的是数字电路的输入与输出之间的因果关系,即逻辑关系。逻辑关系一般由逻辑函数来描述。逻辑函数是由逻辑变量A、B、C等和基本逻辑运算符号·(与)、+(或)、-(非)及括号、等号等构成的表达式来表示,如 F=AB+ABC+AC 式中,A、B、C称为原变量,A、B、C称为对应的反变量,F称为逻辑函数(F称为逻辑反函数)。 3.1.1基本运算公式 与(乘) 或(加) 非 A·0=0A+0=A A·1=A A+1=1 A·A=A A+A=A A=A A·A=0 A+A=1 3.1.2基本运算定律 交换律A·B=B·AA+B=B+A 结合律A·(B·C)=(A·B)·C A+(B+C)=(A+B)+C 分配律A·(B+C)=AB+AC A+B·C=(A+B)(A+C) 吸收律 A(A+B)=A A+AB=A A+AB=A+B (A+B)(A+C)=A+BC AB+AC+BC=AB+AC 反演律A·B=A+B A+B=A·B 以上这些定律可以用基本公式或真值表进行证明。 例3.1.1利用基本公式证明AB+AC+BC=AB+AC。 证左边=AB+AC+(A+A)BC = AB+AC+ABC+ABC =AB(1+C)+AC(1+B) =AB+AC=右边 例3.1.2利用真值表证明反演律(也称摩根定理)。 证可将变量A、B的各种取值分别代入等式两边,其真值表如表3.1.1所示。从真值表可看出,等式两边的逻辑值完全对应相等,所以定理成立。 表3.1.1证明摩根定理的真值表 ABABA+BA·BA·BA+B 00110+0=110·0=11 01100+1=000·1=11 10011+0=001·0=11 11001+1=001·1=00 上面所列出的运算定理反映了逻辑关系,而不是数量之间的关系,因而在逻辑运算时不能简单套用初等代数的运算规则。例如,在逻辑运算中不能套用初等代数的移项规则,这是由于逻辑代数中没有减法和除法的缘故。 3.1.3基本运算规则 1. 运算顺序 在逻辑代数中,运算优先顺序为: 先算括号,再是非运算,然后是与运算,最后是或运算。 2. 代入规则 在逻辑等式中,如果将等式两边出现某一变量的位置都代之以一个逻辑函数,则等式仍然成立,这就是代入规则。 例如,已知A·B=A+B。若用Z=A·C代替等式中的A,根据代入规则,等式仍然成立,即 A·B·C=A·C+B=A+B+C 摩根定律可以扩展对任意多个变量都成立。由此可见,代入规则可以扩展所有基本定律的应用范围。 3. 反演规则 已知函数F求其反函数F时,只要将F式中的1换成0,0换成1,·换成+,+换成·,原变量就换成反原变量,反变量就换成原变量,所得到的表达式就是F表达式。这就是反演规则。利用反演规则能较容易地求出一个函数的反函数。 例如,求F=AB+CD+0和L=A+BC+D +E的反函数。根据反演规则可求得 F=(A+B)·(C+D)·1=(A+B)(C+D) L=A·(B+C)·D·E 运用反演规则时必须注意如下两点: (1) 保持原来的运算优先顺序。 (2) 对于反变量以外的非号应保留不变。 4. 对偶规则 将逻辑函数F中所有的1换成0,0换成1,·换成+,+换成·,变量保持不变,得到新函数F′。F′称为F的对偶式,例如 F=A·(B+C)F′=A+B·C 变换时仍需注意保持原式中先与后或的顺序。 如果某个逻辑恒等式成立时,则其对偶式也成立,这就是对偶规则。 3.2逻辑函数的变换和化简 3.2.1逻辑函数变换和化简的意义 利用基本逻辑运算可以将同一个逻辑函数变换为不同的表达式,例如,F=AB+AC 可写为 F=AB+AC+BC 或 F=ABAC 这样描述同一个逻辑函数有以上三个不同的表达式,若用逻辑门实现这三个表达式有三种不同的门电路,如图3.2.1所示。 图3.2.1同一个函数三种不同的电路 由图3.2.1可知,表达式复杂,实现的电路就复杂,表达式运算的种类多,实现电路所需门电路的种类就多。实际应用中,逻辑函数与逻辑电路之间存在着一一对应的关系,将较烦琐的逻辑表达式变换为与之等效的简化表达式意味着可以用较少的逻辑元件和较少的输入端来实现相同的逻辑功能,电路越简单,可靠性越高,而成本越低。所以需要进行逻辑函数的变化和化简。 3.2.2逻辑函数的代数法变换 一个逻辑函数通常有以下5种类型的表达式。 类型1与或表达式 F=A+BC 类型2或与表达式 F=(A+B)(A+C) 类型3与非与非表达式(简称与非表达式) F=A·BC 类型4或非或非表达式(简称或非表达式) F=(A+B)+(A+C) 类型5与或非表达式 F=AB+AC 以上5个表达式是同一函数不同形式的表达式,利用逻辑代数的基本运算可以将逻辑函数变换为不同形式的表达式。例如,运用摩根定律可以将与或表达式变换为与非表达式,即 F=A+BC=A·BC 从而可以用与非门电路来实现; 运用摩根定律还可以将或与表达式变换为或非表达式,即 (A+B)(A+C)=(A+B)+(A+C) 从而可以用或非门电路来实现; 运用摩根定律还可以将或非表达式变换为与或非表达式,即 (A+B)+(A+C)=A B+A C 例3.2.1已知函数Y=AB+BC,试写出与非表达式和或非表达式。 解根据逻辑代数运算 Y=AB+BC=AB·BC Y=AB+BC=B(A+C)=B+B+A+C 3.2.3逻辑函数的代数法化简 由于与或表达式易于从真值表直接写出,因此本书以与或表达式为例,讨论逻辑函数代数法化简的方法。 最简的与或表达式有如下两个特点: (1) 与项(即乘积项)的个数最少。 (2) 每个与项中变量的个数最少。 代数法化简逻辑函数是运用逻辑代数的基本定律和基本公式进行化简,常用下列方法。 1. 吸收法 利用吸收律公式A+AB=A,消去多余项,例如 F=AC+ ACD(E+F) (应用公式A+AB=A) = AC 2. 并项法 利用公式A+A=1,将两项合并成一项,并消去一个变量,例如 F=ABC+ ABC (应用分配律) = A(BC+BC) (应用A+A=1) =A·1 =A 3. 消去因子法 利用公式A+AB=A+B,消去多余的因子,例如 F=AB+AC+BC (应用分配律) = AB+(A+B)C (应用反演律) =AB+ABC (应用吸收律) =AB+C 4. 配项消项 先利用公式A+A=1增加必要的乘积项,再用并项或吸收的办法使项数减少,例如 F=AB+AC+ BC (应用A+A=1和A·1=A) = AB+AC+(A+A)BC (应用分配律) =AB+AC+ ABC+ABC (应用交换律) =(AB+ABC)+(AC+ACB) (应用吸收律) =AB+AC 3.3逻辑函数的卡诺图法化简与变换 利用代数化简逻辑函数不但要求熟练掌握逻辑代数的基本公式,而且需要一些技巧,没有形式统一的方法,特别是较难掌握获得代数化简后的最简逻辑表达式的方法。下面介绍的卡诺图化简法能直接获得最简与或表达式,并且方法形式统一,易于掌握。 3.3.1最小项 1. 最小项的定义 每个函数都有唯一的真值表,对于n个输入变量的逻辑函数而言,若将真值表中每一行输入变量的取值用对应的变量表示,即取值1用原变量,取值0用反变量,然后相乘构成n个变量的乘积项,共有2n个不同的乘积项,这些乘积项统称为n个变量逻辑函数的最小项。对每个最小项而言,每个输入变量都以它的原变量或反变量的形式在最小项中出现,且仅出现一次, 真值表中每一行输入变量取值对应的函数值即为最小项的逻辑取值。 举例来说,表3.3.1右边两列是三输入变量逻辑函数的真值表, A、B、C是三个输入变量,将真值表中每一行输入变量的取值用这三个原变量和反变量的不同组合来表示,可以构成8个最小项,即ABC、ABC、ABC、ABC、ABC、ABC、ABC、ABC,如表3.3.1左边一列所示。这些最小项中各变量仅出现一次,每个最小项均为三个变量相乘,表3.3.1中的函数值(即输出变量值)对应每个最小项的逻辑取值,如最小项ABC的逻辑取值为1,最小项ABC的逻辑取值为0,最小项ABC的逻辑取值为0,最小项ABC的逻辑取值为1等。 表3.3.1三输入变量逻辑函数真值表与最小项 最小项 输 入 变 量 ABC 函数值 Y ABC0001 ABC0010 ABC0100 ABC0111 ABC1000 ABC1010 ABC1 101 ABC 1111 2. 最小项的性质 三输入变量与对应最小项构成的真值表如表3.3.2所示。 表3.3.2变量与最小项真值表 ABC AB CABC ABCABCABCABCABCABC 000 001 010 011 100 101 110 111 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 观察表3.3.2可得到最小项的性质。 性质1对于任意一个最小项,只有一组输入变量的取值使其值为1,而在输入变量取其他各组值时这个最小项的取值都是0。例如,ABC最小项为1对应的一组输入变量的取值是ABC=010,除此之外,其他组输入变量取值都使ABC=0,例如ABC=011,则ABC=0。 性质2对于输入变量的任一组取值,任意两个最小项之积为0。 性质3对于输入变量的一组取值,全部最小项之和为1。 3. 最小项的表示 最小项可以用变量表示,也可用符号mi表示。下标i是该最小项值为1时对应的输入变量组取值的十进制等效值,如最小项ABC记作m2,下标2对应最小项ABC=1时变量组取值ABC=010,而010相当于十进制的2,因而下标i=2。显然,最小项各变量与变量组取值(即mi中的下标i)的关系是: 变量组取值中的1对应最小项中的原变量。变量组取值中的0对应最小项中的反变量。由此可见,表3.3.2中从左到右的8个最小项也可分别为m0,m1,m2,…,m7。 3.3.2逻辑函数的最小项表达式 由前面的讨论得知,对于某种逻辑关系,用真值表来表示是唯一的,而用前面讨论的逻辑表达式来表示可以有多个表达式。如果用最小项之和组成的表达式来表示,也是唯一的。由最小项之和组成的表达式称为逻辑函数标准与或表达式,也称为最小项表达式。 1. 由真值表求最小项表达式 根据给定的真值表,利用最小项性质1,可以直接写出最小项表达式。例如,对于如表3.3.2所示的三变量真值表,左边每一组输入变量的取值代表一个最小项,右边每一个输出变量的值代表一个最小项的逻辑取值,由真值表可知,输出变量F为1的条件是 A=0,B=1,C=1,即最小项ABC=m3=1 A=1,B=0,C=1,即最小项ABC=m5=1 A=1,B=1,C=0,即最小项ABC=m6=1 A=1,B=1,C=1,即最小项ABC=m7=1 4个条件中满足一个F就是1,所以F的表达式可以写成最小项之和的形式,即 F=ABC+ABC+ABC+ABC 或写成 F(A,B,C)=m3+ m5+ m6+ m7 =∑m(3,5,6,7) =∑(3,5,6,7) 2. 由一般表达式转换为最小项表达式 任何一个逻辑函数表达式都可以转换为最小项表达式。例如,将F(A,B,C)=AB+AC转换为最小项表达式时,可利用逻辑运算关系(A+A)=1,将逻辑函数中的每一项转换成包含所有变量的项,即 F(A,B,C)=AB+AC= AB(C+C)+A(B+B)C =ABC+ABC+ABC+ABC =m7+ m6+ m3+ m1 =∑(1,3,6,7) 又如,要将F(A,B,C)=ABC+ABC转换为最小项表达式,虽然逻辑函数中的每一项都包含有三个变量,但ABC项不是只由原变量和反变量组成的三个变量乘积项,因此逻辑函数表达式不是最小项表达式,化成最小项表达式的具体步骤如下: (1) 利用摩根定理去掉非号,即 F(A,B,C)= ABC+ ABC= ABC+A(B+C) (2) 利用分配律除去括号,即 F(A,B,C)=ABC+A(B+C)= ABC+AB+AC (3) 用公式(B+B)=1、(C+C)=1,将逻辑函数中的每一项转换成包含所有变量的项,即 F(A,B,C)=ABC+AB(C+C)+AC(B+B) =ABC+ ABC+ ABC+ABC =m6+ m5+ m4+ m7 =∑(4,5,6,7) 3.3.3卡诺图 卡诺图是真值表的图形表示。图3.3.1分别表示了二变量、三变量、四变量和五变量的卡诺图。 有关卡诺图的说明如下: (1) 卡诺图中的每一个方格号代表一个最小项,方格号的数字表示相应最小项的下标,方格里的内容是最小项的逻辑取值; (2) 卡诺图方格外为输入变量及其相应逻辑取值,变量取值的排序不能改变,将纵向变量取值作高位; (3) 卡诺图中相邻的两个方格称为逻辑相邻项,相邻项的特点是: 方格号所对应的两个最小项中存在一对互补变量,而其余变量完全对应相同。图3.3.1(b)中4、5号方格是相邻项,对应的最小项分别为ABC、ABC, 其中C和C是一对互补变量,变量A和B同时存在于最小项ABC和ABC之中。除上下、左右相邻的两个方格是相邻项外,卡诺图左右两侧、上下两侧相对的方格均满足相邻项的特点,也是相邻项。图3.3.1(c)中, 4、6号方格为相邻项,1、9号方格也为相邻项。 图3.3.1卡诺图 3.3.4逻辑函数的卡诺图表示 由逻辑函数的真值表和表达式可以直接画出逻辑函数的卡诺图。 1. 由逻辑函数真值表直接画出的卡诺图 真值表的每一行对应一个最小项及相应的逻辑取值,因此,也对应卡诺图中的一个方格号及该方格的逻辑值,将表3.3.3真值表的每一行取值并填入卡诺图对应的方格中,即可画出卡诺图,如图3.3.2所示。 表3.3.3逻辑函数真值表 ABCF 0000 0010 0100 0111 1000 1011 1101 1111 2. 由逻辑函数表达式画出的卡诺图 若函数表达式是最小项表达式,例如,F(A,B,C,D)=∑m(0,1,3,5,10,11,12,15),可根据如图3.3.1所示的四变量卡诺图的形式,将上述逻辑函数最小项表达式中的各项,在卡诺图对应方格内填入1,即在四变量卡诺图中,将与最小项m0,m1,m3,m5,m10,m11,m12,m15对应的格内填入1,其余的方格内均填入0,最后得出如图3.3.3所示的F函数的卡诺图。 图3.3.2真值表的卡诺图 图3.3.3函数F的卡诺图 若函数表达式是非最小项表达式,可先转换成最小项表达式,再画出其卡诺图。例如,G(A,B,C)=AB+BC+AC,有 G(A,B,C)=AB+BC+AC =AB(C+C)+BC(A+A)+AC(B+B) =ABC+ABC+ABC+ABC =m7+m6+m5+m3 在对应的卡诺图3.3.1(b)中最小项下标为3、5、6、7的方格内填入1,其余的方格内均填入0,便得到如图3.3.4所示的卡诺图。 也可由非最小项表达式的函数表达式直接画出卡诺图。例如,L(A,B,C)=A+BC。与项A对应卡诺图A=1一行的4个方格,而与项BC对应卡诺图BC=11的一列两个方格,在这些方格中填1,其余方格中填0,即可得到函数L的卡诺图,如图3.3.5所示。 图3.3.4函数G的卡诺图图3.3.5函数L的卡诺图 3.3.5逻辑函数的卡诺图化简 1. 化简依据 卡诺图中任何两个为1的相邻项的最小项可以合并为一个与项,并且消去一个变量,如F(A,B,C,D)=∑m(6,7)= ABCD+ABCD=ABC,被消去的变量在相邻项的最小项中以互为反变量的形式出现,如此处的D变量; 4个为1的相邻项的最小项可以合并成一个与项,并消去两个变量,如F(A,B,C,D)=∑m(4,5,6,7)= ABCD+ABCD+ABCD+ABCD=ABC(D+D)+ABC(D+D)=AB(C+C)=AB,由于B、C和B、C均出现在最小项中,故被消去; 8个为1的相邻最小项,可以合并成一个与项,并消去三个变量,如 F(A,B,C,D)=∑m(8,9,10,11,12,13,14,15) =ABCD+ABCD+ABCD+ABCD+ABCD+ ABCD+ ABCD+ABCD =ABC(D+D)+ABC(D+D)+ABC(D+D)+ ABC(D+D) =AB(C+C)+AB(C+C) = A(B+B) =A 由于B、B、C、C、D、D均出现在最小项中,故被消去。 由此可见,卡诺图中2k个为1的相邻最小项,可以合并成一个与项,并消去k个变量,k=0,1,2,…。 2. 化简原则 (1) 将为1的相邻方格用线包围起来,包围圈内的方格越多越好,但应满足2k个,包围圈的数目越少越好。 (2) 每个为1的方格可重复使用,每个包围圈内至少含有一个新的为1的方格,每个为1的方格都要圈起来。 (3) 将所有包围圈内的最小项合并成对应与项,然后相加,最后得到的逻辑函数就是最简与或表达式。 例3.3.1试用卡诺图化简函数F(A,B,C)=ABC+ABC+ABC+ABC。 解步骤1, 画出卡诺图,如图3.3.6所示。 图3.3.6例3.3.1卡诺图 步骤2,圈出相邻为1的包围圈,共两个,每个含有两个方格,即圈出m3、m7和m4、m6两个包围圈。 步骤3,合并圈出的相邻项并相加,两个相邻最小项,可以消去一个变量,合并成一个与项,m3和m7相邻最小项合并得一个与项BC,m4和m6合并后的与项为AC,相加后得到最简表达式,即 F=BC+AC 注意: 画虚线的圈内,没有新的为1的方格,因此无效。 例3.3.2试用卡诺图化简函数F(A,B,C,D)=∑m(0,1,2,4,5,6,8,9,12,13,14)。 解画出卡诺图,圈出相邻项,如图3.3.7所示。 卡诺图中,一组为8个1的相邻项,这8个最小项中只有变量C的取值均为0,其他变量取值均成对为0和1,故可以消去三个变量合并成一个与项C,两组为4个1的相邻最小项,其中一组中的变量B和C的取值均成对为0和1,故被消去,合并成AD,而另一组按同样的原则消去A和C,合并成BD,化简后的函数为 F=C+AD+BD 例3.3.3试用卡诺图化简函数F(A,B,C,D)=ABCD+ABCD+ABCD+ABCD+ABCD。 解画出卡诺图,圈出相邻项,如图3.3.8所示。 卡诺图中,4个角上的1可以圈在一起,形成与项BD,独立的1直接形成与项ABCD,化简后的函数为 F=+BD 图3.3.7例3.3.2卡诺图 图3.3.8例3.3.3卡诺图 利用卡诺图表示逻辑函数式时,如果卡诺图中各小方格被1占去了大部分,虽然可用包围1的方法进行化简,但由于要重复利用1项,往往显得零乱而易出错。这时采用包围0的方法简化更为简单。求出反函数F后,再对反函数求非,其结果相同,下面举例说明。 例3.3.4化简逻辑函数F(A,B,C,D)=∑m(0~3,5~11,13~15)。 解(1) 由F画出卡诺图,如图3.3.9(a)所示。 (2) 用包围1的方法化简,如图3.3.9(b)所示,得 F=B+C+D (3) 用包围0的方法化简,如图3.3.9(c)所示,得 F=BCD F=F=B+C+D 两种方法结果相同。 图3.3.9例3.3.4卡诺图 3. 含有无关项的逻辑函数化简 实际中经常会遇到这样的问题,在变量的某些取值下,函数的值可以是任意的,或者函数的某些变量的取值根本不会出现。例如,用4个变量ABCD表示8421BCD码,其中6个变量取值1010~1111在8421BCD码中不存在,这些变量取值所对应的最小项称为无关项或约束项。在逻辑函数表达式中无关项通常用∑d(…)表示。例如,∑d(10,11,15)说明最小项d10、d11、d15是无关项。有时也用逻辑表达式表示函数中的无关项。例如d=AB+AC=0,表示AB+AC所包含的最小项为无关项。因此,含有无关项的逻辑函数可表示为 F(A,B,…)=∑m(…)+∑d(…) 或 F=F(A,B,…) d=d(A,B,…)=0 在化简时,无关项的值可以为1,也可以为0。具体取什么值,可以根据使函数尽量得到简化而定。下面举例说明含有无关项的逻辑函数的化简。 例3.3.5试用卡诺图化简逻辑函数F(A,B,C,D)=∑m(4,6,8,9,10,12,13,14)+∑d(0,2,5)。 图3.3.10例3.3.5卡诺图 解画出函数F的卡诺图,如图3.3.10所示。将无关项d0和d2视为1,参与“圈1”过程,可使函数简化为F=D+AC。 例3.3.6要求设计一个逻辑电路,能够判断用8421BCD码表示的一位十进制数是奇数还是偶数。当十进制数为奇数时,电路输出为1; 当十进制数为偶数时,电路输出为0。 解第一步,列出真值表。4位码ABCD即为输入变量,当对应的十进制数为奇数时,函数值F为1,反之为0,由此得到如表3.3.4所示的真值表。注意,8421BCD码只有10个,表中4位二进制码的后6种组合是无关项,通常以 ×表示。 表3.3.4例3.3.6真值表 对应十进制数输 入 变 量输出 ABCDF 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0 1 0 1 0 1 0 1 0 1 无关项 1010 1011 1100 1101 1110 1111 × × × × × × 图3.3.11例3.3.6卡诺图 第二步,将真值表的内容填入四变量卡诺图,如图3.3.11所示。 第三步,画包围圈,此时应利用无关项,将d13、d15、d11对应的方格视为1,可以得到最大的包围圈,由此写出F=D。 若不利用无关项,F=AD+B CD,结果要复杂得多。 3.3.6逻辑函数的卡诺图变换 卡诺图是数字电路中广泛使用的重要工具,它除了进行逻辑函数的化简外,还可用于逻辑函数的变换。 1. 将与或式转换为或与式 先画出函数的卡诺图,如图3.3.12(a)所示。在卡诺图中方格1表示函数F为1,而方格0表示函数F为0,所以,按照“圈1”的方法,通过图3.3.12(b)“圈0”可以求得反函数F的与或式,即 F=AB+CD 图3.3.12与或式转换为或与式 利用反演规则,求反后即得或与式 F=(A+B)(C+D) 因此,通过卡诺图“圈0”可以直接得到F的或与式,具体步骤如下: (1) 将为0的相邻方格用线包围起来,包围圈内的0越多越好,但应满足2k个,包围圈内的数目越少越好。 (2) 每个为0的方格可重复使用,每个包围圈内至少含有一个新的为0的方格,每个为0的方格都要圈起来。 (3) 将所有包围圈内的最小项化简成对应或项,化简原则与圈1的原则相同,每一个或项构成的方法是变量取值为0则用原变量,反之,变量取值为1则用反变量。 (4) 所有或项相与便得到最简或与式。 2. 将与或式转换为与或非式 为了得到函数的与或非式,先画出该函数与或式的卡诺图,然后在卡诺图上“圈0”得到反函数的与或式,再将反函数F等式两边求反得到函数的与或非式。 例3.3.7试将函数F=AC+AD+BC+BD转换为与或非式。 解画出函数F的卡诺图并在卡诺图上“圈0”,如图3.3.13所示,然后求出F的反函数 F=AB+CD 再将反函数F等式两边求反,即得到F函数的与或非式 F=AB+CD 3. 将与或式转换为或非式 先将与或式转换为或与式,然后利用摩根定理即可方便地转换为与或式。例如F=ABD+AD+BD+ABC,其“圈0”后的卡诺图如图3.3.14所示。先按与或式转换为或与式的方法求出 F=(A+B+D)(B+D)(A+C+D) 然后利用摩根定理求出或非式,即 F=(A+B+D)(B+D)(A+C+D)=(A+B+D)+(B+D)+(A+C+D) 图3.3.13转换为与或非式 图3.3.14转换为或非式 3.4逻辑函数门电路的实现 逻辑函数经过化简之后,得到了最简逻辑表达式,根据逻辑表达式,就可采用适当的逻辑门来实现逻辑函数。逻辑函数的实现是通过逻辑电路图表现出来的。逻辑电路图是由逻辑符号以及其他电路符号构成的电路连接图。逻辑电路图是除真值表、逻辑表达式和卡诺图之外,表达逻辑函数的另一种方法。逻辑电路图更接近于逻辑电路设计的工程实际。 由于采用的逻辑门不同,实现逻辑函数的电路形式也不同。例如,逻辑函数F=AB+AC+BC,可用三个与门和一个或门,连接成先“与”后“或”的逻辑电路,实现F逻辑函数,如图3.4.1(a)所示。若将F函数变换成与非式,即F=ABACBC,可用4个与非门组成的逻辑电路实现该函数,如图3.4.1(b)所示。如果允许电路输入采用反变量,对逻辑函数进行变换,即F=AB+AC+BC=A+B+C+D+B+D,可用4个或非门实现,逻辑电路如图3.4.1(c)所示; 对逻辑函数F=AC+AB,可用两个与门和一个或非门实现,逻辑电路如图3.4.1(c)、图3.4.1(d)所示。在所有基本逻辑门中,与非门是工程中大量应用的逻辑门,单独使用与非门可以实现任何组合的逻辑函数。 图3.4.1逻辑电路图 例3.4.1试用两输入与非门实现函数F=AC+AB的逻辑关系,画出逻辑电路图,输入仅为原变量。 解将函数转换为与非式,即 图3.4.2例3.4.1图 F=AC+AB= ACAB 由于表达式里有反变量,可用一个与非门,将其输入端接在一起,输出即为输入的反变量,F函数的逻辑电路如图3.4.2所示。 例3.4.2求图3.4.3(a)的最简或与式,并用或非门实现,输入允许反变量。 解将如图3.4.3(a)所示的卡诺图“圈0”,如图3.4.3(b)所示,求出最简或与式,即 F=(D+B)(D+B) 然后利用摩根定理转换为或非式,即 F=B+D+B+D 最后画出逻辑电路如图3.4.3(c)所示。 图3.4.3例3.4.2图 3.5各种逻辑函数表示方法的特点及转换 将实际中因果关系问题转换为逻辑关系问题,就可用逻辑函数来表示,以便进行分析和处理。前面讨论的逻辑函数表示方法共有5种,即真值表、表达式、卡诺图、波形图和逻辑图。它们既有各自的特点,又可互相转换,满足于不同的需要。 1. 真值表 将输入变量的各种取值与其对应的输出变量值列入同一个表格,即为真值表。真值表全面、直观、唯一地体现了变量之间的逻辑关系,是实际应用中的因果关系问题转换为逻辑关系问题直接描述,表达式逻辑关系的全面体现。 真值表能方便地与表达式、卡诺图和波形图互相转换。 例3.5.1图3.5.1为两地控制一盏灯的电路,A、B为单刀双掷开关,装在两地, 图中A、B两地开关的位置使灯F断电,灯F不亮,若在A开关所在地上、下拨动开关,灯F可熄、可亮; 当A开关向下拨动时,电源与灯F接通,灯F亮,若走到B开关所在地,将B开关向上拨动时,可熄灭灯F,向下拨动开关,可点亮灯F。所以无论在哪一个开关所在地,都能控制灯F熄或亮。试描述两地控制一盏灯电路的逻辑关系。 解分析图3.5.1电路,设A、B开关为输入变量,灯F为输出变量,F=1为灯亮,F=0为灯熄,开关向上,A=1、B=1; 开关向下,A=0、B=0,这样将开关与灯的因果关系问题很容易地转换为变量F与A、B的逻辑关系问题,即可列出真值表如表3.5.1所示。 图3.5.1例3.5.1图 表3.5.1例3.5.1真值表 ABF 001 010 100 111 由真值表得知,两地控制一盏灯电路中灯F与开关A和B之间的逻辑关系是: 输入相同即A=B,输出F=1; 输入相异即A≠B,输出F=0。由真值表很容易写出最小项表达式,即真值表中函数值为1对应的最小项之和,表3.5.1对应的表达式为 F=AB+AB 例3.5.2某逻辑电路的表达式为F=AB+BC+AC,试指出该电路所实现的逻辑关系(即逻辑功能)。 解虽然表达式已是最简与或式,但仍较为复杂,难以直观全面体现函数逻辑关系,所以先将其转换为真值表,即将A、B、C三个变量的所有取值代入表达式中求出函数值并列入表格,如表3.5.2所示。由真值表方便得知,表达式实现的逻辑功能是: 输入变量相同,输出为0; 输入变量相异,输出为1。 表3.5.2例3.5.2真值表 ABCF 0000 0011 0101 0111 1001 1011 1101 1110 2. 表达式 由逻辑变量和逻辑运算符所组成的逻辑运算式即为表达式。利用逻辑代数的公式和定理,通过表达式可以对数字信号进行处理,如逻辑函数的变换与化简。表达式是唯一能与逻辑图直接互转的函数形式。 例3.5.3在与门、或门、非门、与非门、或非门和异或门6个逻辑门中,试用最少的逻辑门实现逻辑函数F=ABC+ABC+ABC+ABC,允许输入有反变量,画出逻辑图。 解原函数表达式已是最简与或式,利用摩根定律变换为与非式 F=ABC·ABC·ABC·ABC 利用摩根定律变换为或非式 F=A+B+C+A+B+C+A+B+C+A+B+C 利用逻辑代数变换为异或式 F=(AB+AB)C+(AB+AB)C=AB+ABC+(AB+AB)C =ABC+(AB)C=ABC 图3.5.2例3.5.3图 分析逻辑函数变换的结果,要实现逻辑函数F=ABC+ABC+ABC+ABC需要用三个与门和一个或门,或者5个与非门,或者5个或非门,或者两个异或门,显然使用最少的逻辑门是两个异或门,其逻辑图如图3.5.2所示。 3. 卡诺图 卡诺图用按一定规则画出来的方格图表示逻辑函数,是真值表的图形转换,比真值表排列紧凑。真值表中每一行输入变量取值对应的最小项与卡诺图中每一个小方格号对应,小方格里的内容是与方格号对应的最小项的逻辑取值,即真值表中由与最小项有关的输入变量取值得到的函数值。卡诺图的主要用途是逻辑函数的化简和变换,特别适合少于5个输入变量的各种复杂的逻辑函数。卡诺图可以与表达式、真值表和波形图互相转换。 例3.5.4将逻辑函数Z=DEFG+D(E+F+G)+BC(A+D)+D(A+B)(B+C)化简为最简与或式。 解由于逻辑函数有7个变量,不便于直接用卡诺图法化简,分析逻辑函数的构成,可先用反演律将(E+F+G)变换为与非形式EFG,然后利用分配率消去E、F、G变量。 Z=DEFG+D(E+F+G)+BC(A+D)+D(A+B)(B+C) =DEFG+DEFG+ABC+BCD+ABD+ACD+BCD =D(EFG+ EFG+BC)+ ABC+ABD+ACD+BCD =D+ ABC+ABD+ACD+B CD 图3.5.3例3.5.4图 消去E、F、G变量后,逻辑函数剩下4个变量,再用卡诺图法化简,卡诺图和“圈 1”结果如图3.5.3所示,化简的表达式为 Z=C+D+AB 4. 波形图 波形图将逻辑函数输入和输出变量的变化用高、低电平的波形来表示。波形图可以把逻辑函数输入和输出变量在时间上的对应关系直观地表示出来,因而波形图又称为时序图。利用示波器观察逻辑电路的波形图,可以检验逻辑电路的逻辑功能是否正确。波形图可以直接互转为真值表、卡诺图和表达式。 例3.5.5已知某电路的输入A、B、C及输出F的波形如图3.5.4(a)所示,试分析该电路的逻辑功能,用与非门画出其等效的逻辑图。 图3.5.4例3.5.5图 解(1) 根据波形图画出的卡诺图和列出的真值表如图3.5.4(b)、图3.5.4(c)所示,显然卡诺图比真值表排列紧凑,而且便于化简。 (2) 化简、变换逻辑函数。 F=AB+AC =ABAC (3) 画出的逻辑图如图3.5.4(d)所示。 5. 逻辑图 由逻辑符号以及其他电路基本单元符号构成的电路连接图称为逻辑电路图,简称逻辑图。逻辑图更接近于工程实际,可直接与表达式互转。 3.6小结 (1) 逻辑代数是分析和设计逻辑电路的数学工具。一个实际中的逻辑问题可用逻辑函数来描述,逻辑函数可用真值表、逻辑表达式、卡诺图、波形图和逻辑电路图表示,虽然它们有着各自的特点,但本质相通,可以互相转换。 (2) 用真值表和最小项表达式表示逻辑函数,其形式是唯一的。 (3) 运用逻辑代数的基本运算可以对逻辑函数进行化简和变换。这种方法适用于各种复杂的逻辑函数,但需要熟练地运用公式和定理,且具有一定的运算技巧。 (4) 利用卡诺图也可实现逻辑函数化简及变换。这种方法简单直观,易于掌握,在对逻辑函数化简时,还可进行含有无关项的函数的化简,使结果更简单,但不适于太多变量的函数化简及变换。 习题 31用代数法化简下列逻辑函数。 (1) XY+XY (2) (X+Y)(X+Y) (3) XYZ+XY+XYZ (4) XZ+XYZ (5) X+Y·X+Y (6) Y(WZ+WZ)+XY (7) ABC+ABC+ABC+ABC+ABC (8) BC+AC+AB+BCD (9) CD+A+A+AB+CD (10) (A+C+D)(A+C+D)(A+C+D)(A+B) (11) ABC+ABC+ABC+ABC (12) (A+B)·C+AC+AB+ABC+BC 32写出下列函数的反函数。 (1) 表示逻辑函数的4种方法是、、和。 (2) 在真值表、表达式和逻辑电路图三种表示方法中,形式唯一的是。 (3) 与最小项ABC相邻的最小项有、和。 33写出下列函数的反函数。 (1) F=A+B+C+D+E (2) F=B[(CD+A)+E] (3) F=AB+CD (4) F=(AB+AB)(C+D)(E+CD) 34根据表题3.4写出函数T1和T2的最小项表达式,然后化简为最简与或式。 表题3.4 输 入 变 量输 出 变 量 ABCT1T2 000 001 010 011 100 101 110 111 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 35把下列函数表示为最小项表达式。 (1) F=D(A+B)+BD (2) F=YZ+WXY+WXZ+WXZ (3) F=(A+B)(B+C) (4) F(A,B,C)=1 36用卡诺图化简下列函数,并求出最简与或式。 (1) F(X,Y,Z )=∑(2,3,6,7) (2) F(A,B,C,D )=∑(7,13,14,15) (3) F(A,B,C,D )=∑(4,6,7,15) (4) F(A,B,C,D )=∑(2,3,12,13,14,15) (5) F(A,B,C,D)=∑m(0,1,4,5,6,7,9,10,13,14,15) (6) F(A,B,C,D)=∑m(1,2,4,11,13,14)+∑d(8,9,10,12,15) 37用卡诺图化简下列函数,并求出最简与或式。 (1) F=XY+XYZ+XYZ (2) F=AB+BC+BC (3) F=AB+BC+ABC (4) F=XYZ+ XYZ+XYZ+XYZ (5) F=D(A+B) +B(C+AD) (6) F=ABD+ACD+AB+ACD+ABD (7) F=XZ+WXY+W(XY+XY) (8) F(A,B,C,D)=ABC+ABD+ABC+BD+ABCD (9) F(A,B,C,D)=ABC+ABC+ABCD+∑d,式中∑d=AB (10) F=ABCD+ABCD+ABCD+ABCD+ABCD,ABCD+ABCD+ABCD+ABCD+ABCD=0 (11) F=ABCD+ABCD+ABCD+ABCD,ABCD+ABCD+ABCD=0 (12) F(A,B,C,D)=A·B·C·D+A·BCD+ABC·D+AB·CD,ABCD+ABCD+ABCD+ABCD+ABCD+ABCD=0 (13) F=CD(AB)+ABC+A·C·D,AB+CD=0 (14) F(A,B,C,D)=∑m(0,1,2,4,5,9)+∑d(7,8,10,11,12,13) 38给定逻辑函数F=XY+XY+YZ。 (1) 用与或电路实现; (2) 用与非电路实现; (3) 用或非电路实现。 39用两个或非门实现下列函数,并画出逻辑电路图。 F=ABC+ABD+ABCD,无关项d=ABC+ABD 310化简逻辑函数F,用两级与非电路实现之,并画出逻辑电路图。 F=BD+BC+ABCD,d=ABD+ABCD 311用4个与非门实现下列函数,画出逻辑电路图(注: 输入端只提供原变量)。 F=WXZ+WYZ+XYZ+WXYZ,d=WYZ 312试用与非门实现下列多输出逻辑函数。 Y1=F1(A,B,C,D)=∑(0,2,3,6,7,8,14,15) Y2=F2(A,B,C,D)=∑(2,3,10,11,14,15) 313已知某电路的输入A、B、C及输出F的波形如图题3.13所示,试分析该电路的逻辑功能,并用与非门画出其等效的逻辑电路。 314已知某电路的输入A、B、C及输出F的波形如图题3.14所示,试分析该电路的逻辑功能,并用与非门画出其等效的逻辑电路。 图题3.13 图题3.14 315已知某电路的输入A、B、C及输出F的波形如图题3.15所示,试分析该电路的逻辑功能。 (1) 用与非门画出其等效的逻辑电路。 (2) 用或非门画出其等效的逻辑电路。 316已知某电路的输入A、B、C及输出F的波形如图题3.16所示,试分析该电路的逻辑功能,并用两输入的或非门画出其等效的逻辑电路。 图题3.15 图题3.16 317用卡诺图化简下列函数,写出最简与或式及最简或与式,并用与非门及或非门实现。 (1) F(A,B,C,D)=∑(3,4,5,7,9,13,14,15) (2) F(A,B,C,D)=∑(0,1,4,5,6,7,9,10,13,14,15) 318设F=∑m(2,4,8,9,10,12,14),用最简单的方法和最简单的电路实现。要求分别用下列逻辑门,即 (1) 与非门。 (2) 或非门。 (3) 与或非门。 319将下列函数化简为最简与或非式。 F1=CD+BC+AD+ABD F2=ABC+ABD+ABC+ACD,且BC+BCD=0 320用卡诺图将下列函数化简为最简或与表达式。 (1) F(A,B,C,D)=∑(6,7,8,9,12,13) (2) F(A,B,C,D)=∑(0,2、5,7,8,10,13,15) (3) F=AB+(AB+AB+AB)C (4) F=(A+B)(A+B+C)(A+C)(B+C+D)