上两节内容分别介绍了卡诺图构成以及化简原理,在变量较少时使用非常方便,特别是4个变量以内的卡诺图化简形象直观,不易出错。含有无关项的卡诺图化简相比逻辑表达式化简也极具优势。但当变量持续增多时,卡诺图的构成和化简的复杂度和难度几乎成几何制数增加。为了降低多变量卡诺图化简一般采用降维卡诺图的方法。
1. 多维卡诺图
以5维卡诺图为例介绍多维卡诺图的特点,设5维卡诺图输入变量为A 、B、C、D、E,输出为Y,卡诺图如图1所示,函数值为1时在图中的方格填写1,为0时省略不填。
图1
对图1所示的卡诺图进行相邻项标注,最直观的标注如图2所示,
图2
对图2进行卡诺图化简得 图中(1)的部分为, 图中(2)的部分为,两个部分相加(或)得, 那么Y是最简表达式吗?仔细观察,发现Y并没有得到最简表达式,还可以继续化简,消去变量B,得到
可见利用图2相邻项的标注方法,卡诺图并没有得到最简表达式,但由于标注时没有漏项(包含了所有为1的项),因此并不是错误的表达式,只不过不是最简表达式,是局部化简的中间结果。这与设计卡诺图的设计初衷不符。原因在哪里呢?其实,仔细观察卡诺图,我们会发现图3也是该标注的相邻最小项。
图3
图2,图3合在一起得到图4,
图4
由于虚线部分与圆标注的的相邻项彼此相互关联,因此形成了一个整体,在这个整体中变量A出现(0,0,1,1),0,1对称,A变量可以消去;B出现的次序为(0,1,0,1), 因此B也可以消去。E变量次序为(0,0,0,0),因此E变量的结果为反变量(~E)。再观察纵向,D为(0,1)可以消去,C为(0,0),因此C变量的最终结果也是反变量 (~C),因此由图4可以直接得到:
可见虽然利用卡诺图可以化简5变量以上逻辑函数,但在标注时已经不直观,而且最终是否为最简表达式也不直观。
2.降维卡诺图
以图1为例,在横向ABE的组合中将3变量的格雷码排列降维到只有AB组合的2变量格雷码,这样就将5变量的卡诺图降到4维。如图5所示。
图5
图5 实现了5变量卡诺图从Ka到Kb的映射。观察(1)的部分可以看到ABE为000,001,其中AB为00,E为0、1,而方格内Y的值恰好与E相反。因此从表Ka到Kb的映射为,其它部分如(2),(3),(4)的情况类似。观察(5)的部分可以看出在CD为11,10时,Y的值为0,与E无关,因此映射到表格Kb后,Y的值也为0。如此可以完成从Ka到Kb的整体映射,从而得到图6。
图6
图6中将所有的项标注相邻最小项,可以消除变量A、B、D,C作为反变量保留,作为带入的变量,因此最终结果为:
注意:在降维卡诺图化简时,由于Y=0的最小项不能确定与降维变量关系,因此一般不用反变量的方式进行化简。
例1: 利用降维卡诺图化简图7所示的逻辑关系,并写出化简后的逻辑表达式。
图7
从5变量到4变量降维卡诺图映射如图8所示,
图8
在图9中重新标注相邻最小项。
图9
图9中标注*的部分由于出现了E的正、反变量,因此该项的变量E可以消去。得到:
(1)
根据公式(1)可以继续转换成与或,与或非,或与非等各种形式的表达式,这里不再累述。
至于4变量以下的降维卡诺图比较简单,感兴趣的读者可以自己练习。多于5变量的卡诺图化简于5变量类似,可以逐级降维实现逻辑化简。
你好,我在学习本文时、发现最后一个公式存在一个冲突点,在此请教一下。
文中提到:图9中【标注*的部分】由于出现了E的正、反变量,因此该项的变量E可以消去。
于是得到Y=(B’+A’D’+AD)C’E’+A’B’D。
同时、我在不将变量E先消去的情况下、写出【图中标注*部分】的逻辑表达式为:Y=A’B’C’DE’+A’B’CDE=A’B’D(C’E’+CE),
最后得到整个卡诺图的逻辑表达式为:Y=(B’+A’D’+AD)C’E’+A’B’D(C’E’+CE)。
两个结果的不一样的地方就是 【图中标注*部分】的逻辑表达式,文中得到的是A’B’D,我得到的是A’B’D(C’E’+CE)。
由于(C’E’+CE)+C’E+CE’=1,所以(C’E’+CE)不能保证横为1,因此A’B’D(C’E’+CE)不能化简为A’B’D,也就是说这两个结果不相等。但我也无法发现我写【图中标注*部分】的逻辑表达式时有什么问题,请指教。
你好,我发现文中最后一个表达式应该是Y=(B’+A’D’+AD)C’E’+A’B’D(C’E’+CE),文中的结果是不对的。
可以用卡诺图中的值去验证这一点,也就是说:图中的E虽然出现正反变量,但不能消去。