卡诺图 Karnaugh Map
#电子电路/数字电路
卡诺图是根据 [[真值表]] ,按照一定的规则画出来的方格图。
$n$ 个变量的卡诺图,由 $2^n$ 个方块组成。
卡诺图的画法
卡诺图的画法遵循下面三条规则:
- 每个变量都把全图分为两半,一半代表原变量,一半代表反变量。
- 将变量符号($A$、$B$、...)标注在方格图的左上角斜线两侧,并在方格图的上方和左侧的每个方块边沿标注每个变量的取值。取值的原则是:在任何两个相邻或轴对称(称逻辑相邻对称)的方块中,其自变量的组合之间,有且仅有一个变量取值不同。
- 每个方块的编号,就是真值表中每种变量组合的二进制对应的十进制数,也就是[[最小项]]的编号。
![[Attachment/Pasted image 20210803222332.png]]
这是来自 维基百科 的卡诺图示例。
缺少4、5变量的图
逻辑相邻对称
在卡诺图中,凡是相邻或与轴线对称的方块,都叫逻辑相邻对称。可以理解为处于 $n$ 阶张量中的“相邻”位置。
满足逻辑相邻对称的两个方块之间,有且仅有一个变量的取值不同,因此可以利用[[吸收律]]($AB+A\overline{B}=A$)进行合并。
例如,在 2 变量卡诺图中,0 与 1、2 相邻;
在 3 变量卡诺图中,0 与 1、4、2 相邻;
在 4 变量卡诺图中,0 与 1、4、2、8 相邻;
在 5 变量卡诺图中,0 与 1、8、2、16、4 相邻;
在 $n$ 变量卡诺图中,每方块与 $n$ 个其他方块相邻;
逻辑函数的卡诺图法化简
基本原理:满足逻辑相邻对称的两个方块之间,可以利用吸收律进行合并。$2^n$ 个对称方块可以消去 $n$ 个变量。
方法是根据下列规则画圆圈,注意它们的主要性递减,必须先满足前一条的基础上考虑后一条规则。我们以圈 1
为例:
- 卡诺图中的所有
1
的方块必须至少被一个圈圈过,不能有遗漏; - 画得圈尽可能少,其次每个圈尽可能大;
- (衍生)画新的圆圈时,至少应包含一个未被圈过的
1
,否则这个圈一定是多余的。
在画的时候,一定要注意哪些方块是逻辑相邻对称的,这对于5变量以上的卡诺图更加不直观(虽然也不常用)。
例题,多来几道。
其实,这种方法并不限制于圈 1
,圈 0
也是可以的,圈出来的结果是 $\overline{F}$,根据 [[反演规则]] 求出 $F$ 即可。
如卡诺图中有 ”x“, 即不关心其值的方块,它们可以看作 1
或0
,在圈圈的时候可以包含在圈中,只要这样做可以使圈变少,或者使圈变大,即需要满足原则2。如果包含某个 x
后结果更加复杂,则不应包含。在圈 1
或 0
时都可以包含 x
。
例题,圈1,圈0,圈x