卡诺图及逻辑化简
以降低电路的价格为目标,对逻辑表达式进行变换的过程,称为逻辑化简。
逻辑化简的实际目标是尽可能地减少表达式中包含的项数以及各项包含的变量数。
真值表是一维的,自变量的2n个取值组合自上而下地排列,排列的顺序是自然二进制码。
卡诺图是二维的,它把自变量分成两组,一组自变量的各取值组合自左向右水平地排列,另一组则自上而下垂直地排列,排列的顺序是格雷码。
如函数 z=f(a,b,c)的卡诺图:
图 2-4-1 卡诺图
表2-4-1 函数的真值表
若函数z(a,b,c)具有表2-4-1所示的真值表,把真值表各行的函数值依次填在对应的小方格中,即得对应的卡诺图如图2-4-1(c)所示。由图可见,卡诺图中的每一个填1(0)的小方格均对应了该函数的一个最小(大)项。
第一,如果有两个积项:p1=pxi和p2=pxi,则称这两个积项在逻辑上是相邻的。
第二,任何两个相邻的积项pxi和pxi均可合并成一个积项p,p比p1和p2少一个变量xi或xi。
卡诺图的特点是,任何两个在几何位置上相邻的小方格,或者任何两个处于对称位置的小方 格,它们所对应的最小项在逻辑上也是相邻的。
由于积项的对偶式为和项,1的对偶为0,0的对偶为1, 由此,可直接给出和项与它包含的含0小方格的关系。设和项为a+b,则它将包含a=0(原变量对应0)和b=1(反变量对应1)的全部格子,相应的小方格的函数值应为0。
欲从卡诺图导出描述该函数的积之和表达式,则该表达式应占有卡诺图上全部函数值为1的小方格,而不能占有任何一个函数值为0的小方格。
图 2-4-8 函数的卡诺图
上图给出了同一函数的4张卡诺图,由此写出下述(a),(b),(c)和(d)4个表达式:
(a) z = b d + a c d + a b c
(b) z = b d + a b c + a b d + a c d
(c) z = b d + a c d + a b c + a b c
(d) z = b d + a c d + a c d +a b c d
式(a)和(b)是无冗余表达式,式(a)为最简表达式。由卡诺图写积之和表达式时,希望该表达式不但是无冗余的,而且是最简的。为达到此目的,总力图用最少的卡诺圈把卡诺图中的填1小方格全部包含起来且尽可能使各卡诺圈包含尽可能多的填1小方格。从合并可能性最少的填1小方格开始画卡诺圈有助于得最简的表达式。
函数的和之积表达式,应占有卡诺图上的全部函数值为0的小方格而未占有任何一个函数值为 1 的小方格。用最少的卡诺圈把全部填0小方格包含起来,且尽可能把更多的填0小方格合并成最大的卡诺圈,可得最简表达式。从合并可能性最少的填0小方格开始伙卡诺圈,有助于得到最简的和之积表达式。
在许多实际问题中,由于具体条件的限制,某些取值组合下的函数值,可任意取0或1。这些取值组合称为无关项或约束项。这类函数称为未完全规定的逻辑函数或未完全描述的逻辑函数。
图 2-4-13(a) 四舍五入电路
上图所示为四舍五入电路。该电路的输入为采用8421BCD码的1位十进制数
当(b3b2b1b0)8421BCD>(4)10时,z=1;否则,z=0。8421BCD码中,1010-1111为非法,这6个取值组合是不会出现的,所以可以不为它们规定电路的输出值。由此可以得到电路的真值表如表2-4-2及卡诺图如下图示:
表 2-4-2 四舍五入电路真值表
图 2-4-13(b)真值表
由于1010这一取值组合是不会出现的,从而 b3b2b1b0=0, 同理
b3b2b1b0=0 b3b2b1b0=0 b3b2b1b0=0 b3b2b1b0=0 b3b2b1b0=0
进而 b3b2b1b0+b3b2b1b0+b3b2b1b0+b3b2b1b0+b3b2b1b0+b3b2b1b0=0
即 b3b1+b3b2=0
上式规定了不可能出现的各种取值组合,称为四舍五入电路的约束条件或约束方程。
由于未完全规定的逻辑函数的某些取值组合的函数值可取0或1,从而为简化该函数提供了更多的可能性。
图2-4-13(b)给出了充分利用这一特性的一种卡诺圈的画法,它对应了最简的积之和表达式
z(b3,b2,b1,b0)=b3+b2b1+b2b0
图2-4-14所示为对应的逻辑图。
图2-4-14 四舍五入电路的逻辑图