在上节中讨论了最小项,相邻最小项以及利用相邻最小项进行化简,并探讨了相邻最小项与真值表的关系。但最终我们发现利用传统真值表的排列规则无法展现相邻最小项的之间的关系。因此需要重新排列真值表以适应将相邻最小项相邻排列的关系。如图:
图1
根据相邻最小项相邻排列的原则得到图1。由于AB排列可以看出当C为确定值(如C=1)时,此时的最小项是否为最小项只决定于AB的值,如(00,01),(01,11),(11,10),(10,00)四组都是相邻项最小项,如果四组中任意一组的函数值都为1,必会消去一个变量A或B。如图2可以消去变量A,
图2
图3
图3可以消去变量B,A为原变量,C为反变量。
图4
图4可以消去变量A,B为原变量。
图5
由于(00,10)也是相邻最小项,因此图5的组合可以消去A, B为反变量。如果4个组合对全都为1,如图6,可以同时消去A、B两个变量。
图6
同样如果变量C也出现在相邻最小项对内,变量C也被消去,如图7,
图7
如果A、B、C的所有组合都出现在最小项相邻对内,则A、B、C三个变量,都将被消去,如图9
图9
可见利用上面展示的方法可以直接从真值表到逻辑函数的化简。将真值表按照要求排列成如上图(图1- -9)的形式,称这种真值表为卡诺图(Karnaugh map)。
上面只是介绍了一些非常有限的组合,没有枚举所有可能出现的组合,下面将从数学的角度给出卡诺图的定义和化简方法。
1. 卡诺图构成
将逻辑函数真值表中的最小项重新排列成矩阵形式,并且使矩阵的横方向和纵方向的逻辑变量的取值按照格雷码的顺序排列,这样构成的图形就是卡诺图。如右图的AB 排列00,01,11,10就是格雷码的排列方式,卡诺图就是相邻最小项的排列方法。
-
卡诺图的特点
- 将输入变量按照矩阵方式排列(如上面的二维图),使相邻最小项左右、上下相邻,
- 每个格对应一个最小项,
- 表格中没有单独标出函数变量,但对应的最小项方格填写对应的函数值,
- 相邻最小项组以方格或椭圆圈标出,
- 真值表与卡诺图之间的关系:只是排列顺序不同,都反应同一逻辑函数的逻辑关系,卡诺图是真值表的一种特殊形式。
思考题:格雷码与相邻最小项的关系。
-
一变量卡诺图
图10
-
2,3变量卡诺图
图11
-
4变量卡诺图
四变量卡诺图再纵向和横向都是按照格雷码排列,因此相邻的最小项都满足相邻最小项的关系。这里m0,m1,…m15表示最小项的顺序号,在实际的卡诺图中会根据实际的最小项数目对应位置填1,其它位置填0,如图12,图13,
图12
图13
- 多于4变量的卡诺图
多于4变量的卡诺图可以依照格雷码的排列依然可以实现,但由于卡诺图表格复杂,因此一般采用降维卡诺图的方式实现。降维卡诺图参照降维卡诺图的原理和方法一节的内容。