逻辑代数基础 下载本文

表1 真值表 A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 L 0 0 0 1 0 1 1 1 LBC00 A

00 10

010111111001 图1 例1的卡诺图

2.从逻辑表达式到卡诺图

(1)如果逻辑表达式为最小项表达式,则只要将函数式中出现的最小项在卡诺图对应的小方格中填入1,没出现的最小项则在卡诺图对应的小方格中填入0。 例2 用卡诺图表示逻辑函数F?ABC?ABC?ABC?ABC

解: 该函数为三变量,且为最小项表达式,写成简化形式F?m0?m3?m6?m7然后画出三变量卡诺图,将卡诺图中m0、m3、m6、m7对应的小方格填1,其他小方格填0。 (2)如果逻辑表达式不是最小项表达式,但是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入,直接填入的具体方法是:分别找出每一个与项所包含的所有小方格,全部填入1。

例3 用卡诺图表示逻辑函数G?AB?BCD

FA0110001101AGBCC00010111D00010001B00011110 图2 例2的卡诺图 图3 例3的卡诺图

(3)如果逻辑表达式不是“与—或表达式”,可先将其化成“与—或表达式”再填入卡诺图。

1.7.2 用卡诺图化简逻辑函数

1.卡诺图化简逻辑函数的原理

(1)2个相邻的最小项结合(用一个包围圈表示),可以消去1个取值不同的变量而合并为l项,如图4所示。

(2)4个相邻的最小项结合(用一个包围圈表示),可以消去2个取值不同的变量而合并为l项,如图5所示。

(3)8个相邻的最小项结合(用一个包围圈表示),可以消去3个取值不同的变量而合并为l项,如图6所示。

C1BCDA1ABDD1ABC11B1A1BD(四角)D1BC11A1C1ABD1111B1C11111CCD1B11D11B

图4 2个相邻的最小项合并 图5 4个相邻的最小项合并 图6 8个相邻的最小项合并

21

总之,2n个相邻的最小项结合,可以消去n个取值不同的变量而合并为一项。 2.用卡诺图合并最小项的原则

用卡诺图化简逻辑函数,就是在卡诺图中找相邻的最小项,即画圈。为了保证将逻辑函数化到最简,画圈时必须遵循以下原则:

n(1)圈要尽可能大,这样消去的变量就多。但每个圈内只能含有2(n=0,1,2,3??)个相邻项。要特别注意对边相邻性和四角相邻性。

(2)圈的个数尽量少,这样化简后的逻辑函数的与项就少。

(3)卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。

(4)取值为1的方格可以被重复圈在不同的包围圈中,但在新画的包围圈中至少要含有1个末被圈过的1方格,否则该包围圈是多余的。 3.用卡诺图化简逻辑函数的步骤

(1)画出逻辑函数的卡诺图。

(2)合并相邻的最小项,即根据前述原则画圈。 (3)写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为l的变量用原变量表示,取值为0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。

例4 用卡诺图化简逻辑函数:

L(A,B,C,D)=∑m(0,2,3,4,6,7,10,11,13,14,15)

解:(1)由表达式画出卡诺图如图7所示 画包围圈合并最小项,得简化的与—或表达式:

L?C?AD?ABD

注意图中的包围圈AD是利用了对边相邻性。

例5 用卡诺图化简逻辑函数:F?AD?ABD?ABCD?ABCD 解:(1)由表达式画出卡诺图如图8所示。

(2)画包围圈合并最小项,得简化的与—或表达式: F?AD?BD

L110A00D11001111C11B1A11D11011F100000C100B

图7 例4卡诺图 图8 例5卡诺图

注意:图中的虚线圈是多余的,应去掉;图中的包围圈BD是利用了四角相邻性。 例6 某逻辑函数的真值表如表2所示,用卡诺图化简该逻辑函数。

22

解法1:(1)由真值表画出卡诺图,如图9所示

(2)画包围圈合并最小项,如图9(a)所示,得简化的与—或表达式: L?BC?AB?AC

表2 例6真值表

A B C 0 0 0 0 0 1 L 0 1 0 1 0 1

LB0 1 1 1

1 0 0 1 00011 0 1 1

0A111 1 1 0 1 1 1 1 0 C

解法2:(1)由表达式画出卡诺图,如图9所示

(2)画包围圈合并最小项,如图9(b)所示,得简化的与—或表达式: L?AB?BC?AC

L0A111C¨a££?10B11AL0111C¨b££?10B11

图9 例6卡诺图 (a)解法1 (b)解法2

通过这个例子可以看出,一个逻辑函数的真值表是唯一的,卡诺图也是唯一的,但化简结果有

时不是唯一的。

4.卡诺图化简逻辑函数的另一种方法——圈0法

如果一个逻辑函数用卡诺图表示后,里面的0很少且相邻性很强,这时用圈0法更简便。但要注意,圈0后,应写出反函数L,再取非,得原函数。

例7 已知逻辑函数的卡诺图如图10所示,分别用“圈0法”和“圈1法”写出其最简与—或式。

解:(1)用圈0法画包围圈如图10(a)所示,得

L?BCD 对L取非,得: L?BCD?B?C?D (2)用圈1法画包围圈如图10(b)所示,得: L?B?C?D

LC100A11D¨a££?1111111111B1A111D£b£¨?10111L101111C11B

23

图10 例7的卡诺图 (a)圈0的卡诺图 (b)圈1的卡诺图

1.8 具有无关项的逻辑函数及其化简 1.什么是无关项

例8:在十字路口有红绿黄三色交通信号灯,规定红灯亮停,绿灯亮行,黄灯亮等一等,试分析车行与三色信号灯之间逻辑关系。

解:设红、绿、黄灯分别用A、B、C表示,且灯亮为1,灯灭为0。车用L表示,车行L=1,车停L=0。列出该函数的真值表如表3所示。

表3 真值表

红灯 绿灯 黄灯 车 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 L ? 0 1 ? 0 ? ? ? 显而易见,在这个函数中,有5个最小项是不会出现的,如ABC(三个灯都不亮)、ABC(红灯绿灯同时亮)等。因为一个正常的交通灯系统不可能出现这些情况,如果出现了,车可以行也可以停,即逻辑值任意。

无关项;在有些逻辑函数中,输入变量的某些取值组合不会出现,或者一旦出现,逻辑值可以是任意的。这样的取值组合所对应的最小项称为无关项、任意项或约束项,在卡诺图中用符号×来表示其逻辑值。

带有无关项的逻辑函数的最小项表达式为: L=∑m( )+∑d( )

如本例函数可写成L=∑m(2)+∑d(0,3,5,6,7) 2.具有无关项的逻辑函数的化简

化简具有无关项的逻辑函数时,要充分利用无关项可以当0也可以当1的特点,尽量扩大卡诺圈,使逻辑函数更简。

画出例8的卡诺图如图11所示,如果不考虑无关项,包围圈只能包含一个最小项,如图11(a)所示,写出表达式为L?ABC

如果把与它相邻的三个无关项当作1,则包围圈可包含4个最小项,如图11(b)所示,写出表达式为L?B,其含义为:只要绿灯亮,车就行。

注意,在考虑无关项时,哪些无关项当作1,哪些无关项当作0,要以尽量扩大卡诺圈、减少圈的个数,使逻辑函数更简为原则。

LLBB

?á?á?á?á0011

?á?á?á?á?á?á00AA

C¨a££?24

C¨b££?