1、第二章 逻辑代数与硬件描述语言基础第三讲 教学要求: 掌握逻辑代数的基本逻辑运算及逻辑运算的描述方法;逻辑函数的表示方法;基本公式、基本定律和常用公式;用公式法化简逻辑函数。 教学要求: 掌握逻辑函数的几种表示方法; 掌握逻辑代数的基本公式; 理解逻辑代数的基本定律; 掌握用公式法化简逻辑函数的方法。教学难点: 编码的概念、逻辑函数的变换与化简。前一章我们学习了门电路。对于一个数字系统或数字电路来讲,有了这些门电路就相当于一个建筑工程有了所需的砖瓦和预制件。从现在起,我们就可以用门电路来搭接一个具有某一功能的数字电路了。正像建一座高楼,不仅需要砖瓦和预制件等建筑材料,还需要有效的工具和合理的工
2、艺一样,数字电路的分析与设计也需要一定的数学工具和一套有效的方法。本章首先介绍分析和设计数字电路时常用的数学工具-逻辑代数和卡诺图,包括逻辑代数的基本公式和基本定律,逻辑函数的代数化简法和卡诺图化简法。然后介绍组合逻辑电路的分析方法与设计方法。另外,按其结构和工作原理不同,数字电路可分为两大类,组合逻辑电路和时序逻辑电路。第三、四章介绍组合逻辑电路,第五、六章介绍时序逻辑电路,请大家在学习过程中体会两者的区别及特点。一逻辑代数的基本公式包括 9 个定律,其中有的定律与普通代数相似,有的定律与普通代数不同,使用时切勿混淆。表 2.1.1 逻辑代数的基本公式名称 公式 1 公式 201 律A0A0
3、1互补律重叠律 AA交换律 BB结合律 C)( CA)()(分配律 ( C反演律 A吸收律B)( ABCA)()()( CABCAB对合律表中略为复杂的公式可用其他更简单的公式来证明。例 2.1.1 证明吸收律 BA证: BA BAA)()(表中的公式还可以用真值表来证明,即检验等式两边函数的真值表是否一致。例 2.1.2 用真值表证明反演律 BA和 A证:分别列出两公式等号两边函数的真值表即可得证,见表 2.1.2 和表 2.1.3表 2.1.2 证明 A B ABBA0 00 11 01 111101110表 2.1.3 证明 BAA B BA0 00 11 01 110001000反演律
4、又称摩根定律,是非常重要又非常有用的公式,它经常用于逻辑函数的变换,以下是它的两个变形公式,也是常用的。BA BA二 逻辑代数的基本规则代入规则代入规则的基本内容是:对于任何一个逻辑等式,以某个逻辑变量或逻辑函数同时取代等式两端任何一个逻辑变量后,等式依然成立。 利用代入规则可以方便地扩展公式。例如,在反演律 BA中用 BC 去代替等式中的 B,则新的等式仍成立: CBAABC对偶规则 将一个逻辑函数 L 进行下列变换:, 0 1,1 0所得新函数表达式叫做 L 的对偶式,用 L表示。 对偶规则的基本内容是:如果两个逻辑函数表达式相等,那么它们的对偶式也一定相等。利用对偶规则可以帮助我们减少公
5、式的记忆量。例如,表 2.1.1 中的公式 l 和公式 2 就互为对偶,只需记住一边的公式就可以了。因为利用对偶规则,不难得出另一边的公式。 反演规则 将一个逻辑函数 L 进行下列变换:, ;0 1,1 0 ;原变量 反变量, 反变量 原变量。所得新函数表达式叫做 L 的反函数,用 L表示。 利用反演规则,可以非常方便地求得一个函数的反函数 例 2.1.3 求函数 DBCA的反函数。解: )()(L 例 2.1.4 求函数 的反函数。解: BA 在应用反演规则求反函数时要注意以下两点:(1)保持运算的优先顺序不变,必要时加括号表明,如例 2.1.3。(2)变换中,几个变量(一个以上)的公共非号
6、保持不变,如例 2.1.4。 三 逻辑函数的代数化简法1逻辑函数式的常见形式一个逻辑函数的表达式不是唯一的,可以有多种形式,并且能互相转换。常见的逻辑式主要有 5 种形式,例如:BACL 与或表达式)( 或与表达式 与非与非表达式 CAB 或非或非表达式与或非表达式在上述多种表达式中,与或表达式是逻辑函数的最基本表达形式。因此,在化简逻辑函数时,通常是将逻辑式化简成最简与或表达式,然后再根据需要转换成其他形式。2最简与或表达式的标准(1)与项最少,即表达式中“+”号最少。(2)每个与项中的变量数最少,即表达式中“ ”号最少。3用代数法化简逻辑函数用代数法化简逻辑函数,就是直接利用逻辑代数的基本
7、公式和基本规则进行化简。代数法化简没有固定的步骤,常用的化简方法有以下几种。(1)并项法。运用公式 1A,将两项合并为一项,消去一个变量。如BCABCL)( )()()( CBACBA((2)吸收法。运用吸收律 AB消去多余的与项。如DECBAL)((3)消去法。运用吸收律 消去多余的因子。如CABCBAL )(EEBA(4)配项法。先通过乘以 (=1)或加上 (=0) ,增加必要的乘积项,再用以上方法化简。如CABDABCABCDABCDAL )( )()(在化简逻辑函数时,要灵活运用上述方法,才能将逻辑函数化为最简。下面再举几个例子。例 2.1.5 化简逻辑函数 ABCDBAL解: ACD
8、BAL )()(例 2.1.6 化简逻辑函数 EFBL解: EFBAL(利用 1A)BDCA (利用 )EF (利用 )例 2.1.7 化简逻辑函数 )(GFADEBCBAL 解: )(GFDEBCAL (利用反演律)(利用 )(利用 AB))()( CDBCDA(配项法)(利用 AB)DBCA)((利用 1A)例 2.1.8 化简逻辑函数 L解法 1: CBBA(增加冗余项 A)AC (消去 1 个冗余项 CB)(再消去 1 个冗余项 )解法 2: BBAL(增加冗余项 A)CA (消去 1 个冗余项 CB)(再消去 1 个冗余项 )由上例可知,逻辑函数的化简结果不是唯一的。代数化简法的优点
9、是不受变量数目的限制。缺点是:没有固定的步骤可循;需要熟练运用各种公式和定理;需要一定的技巧和经验;有时很难判定化简结果是否最简。3.2 逻辑函数的卡诺图化简法本节介绍一种比代数法更简便、直观的化简逻辑函数的方法。它是一种图形法,是由美国工程师卡诺(Karnaugh)发明的,所以称为卡诺图化简法。一最小项的定义与性质1最小项的定义在 n 个变量的逻辑函数中,包含全部变量的乘积项称为最小项。其中每个变量在该乘积项中可以以原变量的形式出现,也可以以反变量的形式出现,但只能出现一次。n 变量逻辑函数的全部最小项共有 2n 个。如三变量逻辑函数 L=f(A ,B,C)的最小项共有 23=8 个,列入表
10、中。表 2.2.1 三变量逻辑函数的最小项及编号变量取值最小项A B C编号CBACBA0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1m0m1m2m3m4m5m6m72最小项的基本性质以三变量为例说明最小项的性质,列出三变量全部最小项的真值表如表 2.2.2 所示。表 2.2.2 三变量全部最小项的真值表变量 m0 m1 m2 m3 m4 m5 m6 m7A B C ACBABCACBABC0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 11000000001000000101000001001000010001000100001
11、001000001010000001从表 2.2.2 中可以看出最小项具有以下几个性质:(1)对于任意一个最小项,只有一组变量取值使它的值为 1,而其余各种变量取值均使它的值为 0。(2)不同的最小项,使它的值为 1 的那组变量取值也不同。(3)对于变量的任一组取值,任意两个最小项的乘积为 0。 (4)对于变量的任一组取值,全体最小项的和为 1。二 逻辑函数的最小项表达式任何一个逻辑函数表达式都可以转换为一组最小项之和,称为最小项表达式。例 2.2.1 将逻辑函数 L(A,B,C) A转换成最小项表达式解: 该函数为三变量函数,而表达式中每项只含有两个变量,不是最小项。要变为最小项,就应补齐缺
12、少的变量,办法为将各项乘以 1,如 AB 项乘以 )(C。L(A,B,C ) BAABCAB)()(=m7+m6+m3+m1为了简化,也可用最小项下标编号来表示最小项,故上式也可写为L(A,B,C )= m(1,3,6,7)要把非“与或表达式”的逻辑函数变换成最小项表达式,应先将其变成“与或表达式”再转换。式中有很长的非号时,先把非号去掉。例 2.2.2 将逻辑函数 F(A,B,C ) CBA转换成最小项表达式解:F(A ,B,C) CBA )(CABBCA)(=m7+m6+m3+m5=m (3,5,6,7)三卡诺图1相邻最小项如果两个最小项中只有一个变量不同,则称这两个最小项为逻辑相邻,简称
13、相邻项。如果两个相邻最小项出现在同一个逻辑函数中,可以合并为一项,同时消去互为反变量的那个量。如ACBCAB)(可见,利用相邻项的合并可以进行逻辑函数化简。有没有办法能够更直观地看出各最小项之间的相邻性呢?有。这就是卡诺图。卡诺图是用小方格来表示最小项,一个小方格代表一个最小项,然后将这些最小项按照相邻性排列起来。即用小方格几何位置上的相邻性来表示最小项逻辑上的相邻性。卡诺图实际上是真值表的一种变形,一个逻辑函数的真值表有多少行,卡诺图就有多少个小方格。所不同的是真值表中的最小项是按照二进制加法规律排列的,而卡诺图中的最小项则是按照相邻性排列的。2卡诺图的结构(1)二变量卡诺图。 m m1m0
14、 3 A愨 利 1 戨 (2)三变量卡诺图。0C C 3 C 2 4C mC 愨 戨 ) 24 5 7 6 A01BCA(3)四变量卡诺图。m0ABCD ABCDm1ABCDm3 mABCD2m5 67 mmABCDABCDmABCD4 ABCDABCDmm13ABCD ABCD 1412m15mABCDABCD ABCDmABCD8m1011m9mABCDABCD0 1 3 27 65413 14151298 11 10ABCD0000010111111010(a) (b)仔细观察可以发现,卡诺图具有很强的相邻性。首先是直观相邻性,只要小方格在几何位置上相邻(不管上下左右) ,它代表的最小项
15、在逻辑上一定是相邻的。其次是对边相邻性,即与中心轴对称的左右两边和上下两边的小方格也具有相邻性。四 用卡诺图表示逻辑函数1从真值表到卡诺图例 2.2.3 某逻辑函数的真值表如表 2.2.3 所示,用卡诺图表示该逻辑函数。解: 该函数为三变量,先画出三变量卡诺图,然后根据表 2.2.3 将 8 个最小项 L 的取值 0 或者 1 填入卡诺图中对应的 8 个小方格中即可,如图 2.2.4 所示。2从逻辑表达式到卡诺图(1)如果逻辑表达式为最小项表达式,则只要将函数式中出现的最小项在卡诺图对应的小方格中填入 1,没出现的最小项则在卡诺图对应的小方格中填入 0。例 2.2.4 用卡诺图表示逻辑函数 A
16、BCCBAF解: 该函数为三变量,且为最小项表达式,写成简化形式 7630mF然后画出三变量卡诺图,将卡诺图中 m0、m 3、m 6、m 7对应的小方格填 1,其他小方格填 0。(2)如果逻辑表达式不是最小项表达式,但是“与或表达式” ,可将其先化成最小项表达式,再填入卡诺图。也可直接填入,直接填入的具体方法是:分别找出每一个与项所包含的所有小方格,全部填入 1。例 2.2.5 用卡诺图表示逻辑函数 DCBAG图 2.2.5 例 3.2.4 的卡诺图 图 2.2.6 例 3.2.5 的卡诺图(3)如果逻辑表达式不是“与或表达式” ,可先将其化成“与或表达式”再填入卡诺图。2.2.5 逻辑函数的
17、卡诺图化简法1卡诺图化简逻辑函数的原理(1)2 个相邻的最小项结合(用一个包围圈表示) ,可以消去 1 个取值不同的变量而合并为 l 项,如图 2.2.7 所示。(2)4 个相邻的最小项结合(用一个包围圈表示) ,可以消去 2 个取值不同的变量而合并为 l 项,如图 2.2.8 所示。(3)8 个相邻的最小项结合(用一个包围圈表示) ,可以消去 3 个取值不同的变量而00 A F 011 0CDAB1 1 1 111G0 0 0 0000000合并为 l 项,如图 2.2.9 所示。ABCDABCD111 11 1111111111ABDABCABDBCDBCCDBD( 四 角 )图 2.2.
18、7 2 个相邻的最小项合并 图 2.2.8 4 个相邻的最小项合并DABC111111111 11 1BC图 2.2.9 8 个相邻的最小项合并总之,2 n 个相邻的最小项结合,可以消去 n 个取值不同的变量而合并为 l 项。2用卡诺图合并最小项的原则用卡诺图化简逻辑函数,就是在卡诺图中找相邻的最小项,即画圈。为了保证将逻辑函数化到最简,画圈时必须遵循以下原则:(1)圈要尽可能大,这样消去的变量就多。但每个圈内只能含有 2n(n=0,1,2,3)个相邻项。要特别注意对边相邻性和四角相邻性。(2)圈的个数尽量少,这样化简后的逻辑函数的与项就少。(3)卡诺图中所有取值为 1 的方格均要被圈过,即不
19、能漏下取值为 1 的最小项。(4)取值为 1 的方格可以被重复圈在不同的包围圈中,但在新画的包围圈中至少要含有 1 个末被圈过的 1 方格,否则该包围圈是多余的。3用卡诺图化简逻辑函数的步骤(1)画出逻辑函数的卡诺图。(2)合并相邻的最小项,即根据前述原则画圈。(3)写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为 l 的变量用原变量表示,取值为 0 的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与或表达式。 例 2.2.6 用卡诺图化简逻辑函数:L(A,B,C ,D)=m(0,2,3,4,6,7,10,11,13,14,15)解:(1)由表达式画出卡诺图如图 2.2.10 所示(2)画包围圈合并最小项,得简化的与或表达式:ABDCL注意图中的包围圈 DA是利用了对边相邻性。例 2.2.7 用卡诺图化简逻辑函数: DCBAF解:(1)由表达式画出卡诺图如图 2.2.11 所示。(2)画包围圈合并最小项,得简化的与或表达式:DBABA 11 111 0000 01 11 11 11 10 0 0 0 0 F图 2.2.10 例 2.2.6 卡诺图 图 2.2.11 例 2.2.7 卡诺图