您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《电子技术基础》 > 第1章 数字逻辑基础

第6节 卡诺图及化简法

 

一、逻辑函数的卡诺图表示法

1. 表示最小项的卡诺图

将n变量的全部最小项各用一个小方块表示,并使具有逻辑相邻性的最小项在几何位置上也相邻的排列起来,所得到的图形叫做n变量最小项的卡诺图。因为这种表示方法是由美国工程师卡诺(Karnaugh)首先提出来的,所以把这种图形叫做卡诺图。下图画出了二到五变量最小项的卡诺图。

 

二到五变量最小项的卡诺图

图形两侧标注的0和1表示使对应小方格内的最小项为1的变量取值。同时,这些0和1组成的二进制数所对应的十进制数大小也就是对应的最小项的编号。

为了保证图中几何位置相邻的最小项在逻辑上也具有相邻性,这些数码不能按自然二进制数从小到达地顺序排列,而必须按图中的方式排列,以确保相邻的两个最小项仅有一个变量是不同的。

从二到五变量卡诺图上还可以看到,处在任何一行或一列两端的最小项也仅有一个变量不同,所以他们也具有逻辑相邻性。因此,从几何位置上应当把卡诺图看成是上下、左右闭合的图形。

在变量数大于等于5以后 ,仅仅用几何图形在两维空间的相邻性来表示逻辑相邻性已经不够了。如在五变量最小项的卡诺图中,除了几何位置相邻的最小项具有逻辑相邻性以外,以图中双竖线为轴左右对称位置上的两个最小项也具有逻辑相邻性。

2. 卡诺图表示逻辑函数

既然任何一个逻辑函数都能表示为若干最小项之和的形式,那么自然也就可以设法用卡诺图来表示任意一个逻辑函数。具体的方法是首先把逻辑函数化为最小项之和的形式,然后在卡诺图上与这些最小项对应的位置上填入1,在其余的位置上填入0,就得到了表示该逻辑函数的卡诺图。即任何一个逻辑函数都等于它的卡诺图中填入1的那些最小项之和。

例1:用卡诺图表示逻辑函数 

解:首先将Y化为最小项之和的形式

 

画出四变量最小项的卡诺图,在对应于函数式中各最小项的位置上填入1,其余位置上填入0,就得到如图所示的Y的卡诺图。

 

 

例2:已知逻辑函数的卡诺图如下,试写出该函数的逻辑式。

 

解:因为函数Y等于卡诺图中填入1的那些最小项之和,所以有

 

二、  卡诺图化简逻辑函数

利用卡诺图化简逻辑函数的方法称为卡诺图化简法或图形化简法。化简时依据的基本原理就是具有相邻性的最小项可以合并,并消去不同的因子。由于在卡诺图上几何位置相邻与逻辑上的相邻性是一致的,因而从卡诺图上能直观地找出那些具有相邻性的最小项并将其合并化简。

 

1.合并最小项的规则

(1) 若两个最小项相邻,则可合并为一项并消去一对因子。合并后的结果中只剩下公共因子。

(2)若四个最小项相邻并排列成一个矩形组,则可合并为一项并消去两对因子。合并后的结果中只包含公共因子。

(3)若八个最小项相邻并且排列成一个矩形组,则可合并为一项并消去三对因子。合并后的结果中只包含公共因子。

l 下图给出了最小项相邻的几种情况

 

最小项相邻的几种情况图

(a)(b) 两个最小项相邻 (c)(d) 四个最小项相邻 (e) 八个最小项相邻

至此,可以归纳出合并最小项的一般规则:如果有  个最小项相邻(n=1,2,…)并排列成一个矩形组,则它们可以合并为一项,并消去n 对因子。合并后的结果中仅包含这些最小项的公共因子。

2. 卡诺图化简法的步骤

用卡诺图化简逻辑函数时可按如下步骤进行:

(1)将函数化为最小项之和的形式。

(2)画出表示该逻辑函数的卡诺图。

(3)找出可以合并的最小项。

(4)选取化简后的乘积项。选取的原则:

n         这些乘积项应包含函数式中所有的最小项(应覆盖卡诺图中所以的1)

n         所用的乘积项数目最少,即可合并的最小项组成的矩形组数目最少

n         每个乘积项包含因子最少,即各可合并的最小项矩形组中应包含尽量多的最小项

例1:用卡诺图化简法将式  化简为最简与—或函数式

解:首先画出表示函数Y的卡诺图,如图  

通过合并最小项,得出结果,

左图: 

右图: 

注:

l         在填写Y的卡诺图时,并不一定要将Y化为最小项之和的形式。

l         需要找出可以何并的最小项,将可能合并的最小项用线圈出,有时存在多种可能合并最小项的方案,所以有时一个逻辑函数的化简结果不是唯一的。

例2:用卡诺图法将  化为最简与—或逻辑式

解:首先画出Y的卡诺图,然后把可能合并的最小项圈出,并按照前面所述的原则选择化简与—或式中的乘积项

最后得到结果 

l         补充说明:在以上的两个例子中,我们都是通过合并卡诺图中的1来求得化简结果的。

但有时也可以通过合并卡诺图中的0先求出  的化简结果,然后再将  求反得到Y。夫妻其原理是因为全部最小项之和为1,所以若将全部最小项之和分成两部分,一部分(卡诺图中填入1的那些最小项)之和记作Y,则根据  可知,其余一部分(卡诺图中填入0的那些最小项)之和必为  。在多变量逻辑函数的卡诺图中,当0的数目远小于1的数目时,采用合并0的方法有时会比合并1来得简单。仍以上例为例,在卡诺图中如果将0合并,则可立即写出  ,则

    

与合并1得到的化简结果一致。

 此外,在需要将函数化为最简的与或非式时,采用合并0的方式最为适宜,因为得到的结果正是与或非形式。如果要求得到  的化简结果,则采用合并0的方式就更简便了。

三、具有无关项的逻辑函数及其化简

1. 约束项、任意项和逻辑函数式中的无关项

在分析某些具体的逻辑函数时,经常会遇到这样一种情况,即输入变量的取值不是任意的。对输入变量取值所加的限制称为约束。同时,把这一组变量称为具有约束的一组变量。

例如,有三个逻辑变量A、B、C,它们分别表示一台电动机的正转、反转和停止的命令,A=1表示正转,B=1表示反转,C=1表示停止。因为电动机任何时候只能执行其中的一个命令,所以不允许两个以上的变量同时为1。ABC 的取值只可能是001、010、100当中的某一种,而不能是000、011、101、110、111 中的任何一种。因此,A、B、C 是一组具有约束的变量。通常用约束条件来描述约束的内容,为方便起见采用逻辑语言表述约束条件。

由于每一组输入变量的取值都使一个、而且仅有一个最小项的值为1,所以当限制某些输入变量的取值不能出现时,可以用它们对应的最小项等于0来表示。这样,上述例子中的约束条件可以表示为

或写成 : 

同时,把这些恒等于0的最小项叫做约束项。

有时还会遇到另外一种情况:在输入变量的某些取值下函数值是1还是0皆可,并不影响电路的功能。在这些变量取值下,其值等于1的那些最小项称为任意项。

由于约束项和任意项都不影响函数值,所以又把两者统称为逻辑函数式中的无关项,既可以写入函数式中,也可以不写进去。一般情况在用卡诺图表示逻辑函数时,首先将函数化为最小项之和的形式,然后在卡诺图中这些最小项对应的位置上填入1,其他位置上填入0。既然无关项可以包含也可以不包含在函数式中,那么在卡诺图中对应的位置上填1或0都可以。为此,规定在卡诺图中用×(或  )表示无关项。在化简逻辑函数时既可以认为它是1,也可以认为它是0。

四、无关项在化简逻辑函数中的应用

化简具有无关项的逻辑函数时,如果能合理利用这些无关项,一般都可得到更加简单的化简结果。

为达到此目的,加入的无关项应与函数式中尽可能多的最小项(包含原有的最小项和已写入的无关项)具有逻辑相邻性。合并最小项时,究竟把卡诺图上的×作为1(即认为函数式中包含了这个最小项)还是作为0(即认为函数式中不包含这个最小项)对待,应以得到的相邻最小项矩形组合最大、而且矩形组合数目最少为原则。

例3:化简逻辑函数

 ,

给定其约束条件

解:如果不利用约束项,则Y已无可化简。但适当地加进一些约束项以后,可以得到

利用了约束项以后,使逻辑函数得以进一步化简。但是代数法表示不够直观。从逻辑函数的卡诺图上则表示得更清晰。

例4: 试化简逻辑函数:

已知其约束条件为:

解:画出函数Y的卡诺图,

于是得到 :