数字逻辑设计中卡诺图的使用

时间:2024-04-01 10:18:33

卡诺图,也称K图,是一种图形化化简布尔表达式的方法。
K图化简对于不多于4变量的问题非常好,特别是它可视化的特点,十分直观。

数字逻辑设计中卡诺图的使用

上图是一个逻辑真值表,它的对应的K图是:

数字逻辑设计中卡诺图的使用
请注意:
(1)顺序是00->01->11->10,这是格雷码顺序。
(2)K图可以环绕,相当于把纸卷起来,围成一个圆柱体。连接圆柱体的末端构成一个圆环,仍然保持了相邻方格只有一个元素不同。

下图展示了K图的最小项:

数字逻辑设计中卡诺图的使用
显然按照布尔代数化简方法有:Y=A’B’C’+A’B’C=A’B’(C’+C)=A’B’

K图化简要求用尽可能少的圈数圈住K图所有为1的方格。每个圈应该尽可能大,然后读取每个圈的蕴含项。
正式的说,布尔表达式写成最少数量的主蕴含项相或时,布尔表达式得到最终化简。K图每一个圈代表一个蕴含项。最大的圈是主蕴含项。
如上式A’B’C’和A’B’C都是蕴含项但不是主蕴含项,A’B’才是。

总结K图化简规则如下:
(1)用最少的圈圈住所有的1;
(2)圈中所有方格都必须为1;
(3)每一个圈都必须是矩形,其每个边长必须是2的整数次幂(如1、2、4、8);
(4)每一个圈必须尽可能大;
(5)圈可以环绕K图边界;
(6)如果可以使用数量更少的圈,K图中一个为1的方格可以被多次圈住。

用K图化简,如下图:

数字逻辑设计中卡诺图的使用
显然结果是相同的,即Y=A’B’

下面给出一个三变量K图化简的例子:

数字逻辑设计中卡诺图的使用
我们化简它,画圈如下图:

数字逻辑设计中卡诺图的使用
所以化简结果是:Y=AC’+B’

补充一下K图化简中无关项X的处理:

有些变量对输出没有影响时,我们可以减少真值表的行数。
无关项符号表示为X,它的含义是输入可能是0或1。
当输出值不重要或者输入值从不会出现,无关项也会出现在真值表的输出,由设计师决定是0还是1。
K图中,无关项X可以帮助进一步简化逻辑。如果可以用较小和较大的圈覆盖1,这些无关项也可以被圈起来。但如果它们没有帮助,也可以不被圈起来。
所以对K图中X的处理很“佛系”,完全依据具体需要,可以有也可以没有。
圈起来就是相当于1使用 ;不圈起来就相当于0使用。

比如说7段数码管,如果我们不考虑10~15的无关输出,K图的处理可以是下面的样子:

数字逻辑设计中卡诺图的使用
数字逻辑设计中卡诺图的使用
下面做一下例题补充(图不清楚见谅)

例1
数字:2、3、6、7
结果:y

例2
数字:1、2、3、6、7
结果:y+x’z
数字逻辑设计中卡诺图的使用
例3
数字:1、3、6、7
结果:x’z+xy

例4
数字:0、1、2、3、4、6
结果:x’+z’
数字逻辑设计中卡诺图的使用例5
数字:0、2、3、4、5、6、7、8、10、12、13
结果:x’z’+w’y+xy’
数字逻辑设计中卡诺图的使用例6
数字:1、9、11、14、15
结果:x’y’z+wxy+wyz (或者x’y’z+wxy+wx’z)
数字逻辑设计中卡诺图的使用例7
数字:1、9、11、14、15
结果:(x+y+z’)(w’+x’+y’)(w’+y’+z’) (或者(x+y+z’)(w’+x’+y’)(w’+x+z’))
数字逻辑设计中卡诺图的使用例8
数字:0、1、2、5、8、9、14
结果:(x+y)(w+x+z)(w+y+z’)(w’+x’+y’+z)
数字逻辑设计中卡诺图的使用

相关文章