2.6 逻辑函数的化简方法

2.6 逻辑函数的化简方法

2.6.1 公式化简法

在进行逻辑运算时常常会看到,同一个逻辑函数可以写成不同的逻辑式,而这些逻辑式的繁简程度又相差甚远。逻辑式越是简单,它所表示的逻辑关系越明显,同时也有利于用最少的电子器件实现这个逻辑函数。因此,经常需要通过化简的手段找出逻辑函数的最简形式。

例如,有两个逻辑函数:

𝑌1=𝐴𝐵𝐶+𝐵′𝐶+𝐴𝐶𝐷Y1​=ABC+B′C+ACD 𝑌2=𝐴𝐶+𝐵′𝐶Y2​=AC+B′C

将它们的真值表分别列出后即可见到,它们是同一个逻辑函数。显然, 𝑌2Y2​ 比 𝑌1Y1​ 简单得多。在与或逻辑函数式中,若其中包含的乘积项已经最少,而且每个乘积项里的因子也不能再减少时,则称此逻辑函数式为最简形式。对与或逻辑式最简形式的定义对其他形式的逻辑式同样也适用,即函数式中相加的乘积项不能再减少,而且每项中相乘的因子不能再减少时,则函数式为最简形式。

化简逻辑函数的目的就是要消去多余的乘积项和每个乘积项中多余的因子,以得到逻辑函数式的最简形式。常用的化简方法有公式化简法、卡诺图化简法以及适用于编制计算机辅助分析程序的 Q-M 法等。

公式化简法的原理就是反复使用逻辑代数的基本公式和常用公式消去函数式中多余的乘积项和多余的因子,以求得函数式的最简形式。公式化简法没有固定的步骤。现将经常使用的方法归纳如下。

一、并项法

利用表 2.3.3 中的公式 𝐴𝐵+𝐴𝐵′=𝐴AB+AB′=A 可以将两项合并为一项,并消去 𝐵B 和 𝐵′B′ 这一对因子。而且,根据代入定理可知,A 和 B 均可以是任何复杂的逻辑式。

例 2.6.1 试用并项法化简下列逻辑函数:

𝑌1=𝐴(𝐵′𝐶𝐷)′+𝐴𝐵′𝐶𝐷Y1​=A(B′CD)′+AB′CD 𝑌2=𝐴𝐵′+𝐴𝐶𝐷+𝐴′𝐵+𝐴′𝐶𝐷Y2​=AB′+ACD+A′B+A′CD 𝑌3=𝐴′𝐵𝐶′+𝐴𝐶′+𝐵′𝐶′Y3​=A′BC′+AC′+B′C′

解:

𝑌1=𝐴(𝐵′𝐶𝐷)′+𝐴𝐵′𝐶𝐷=𝐴Y1​=A(B′CD)′+AB′CD=A 𝑌2=𝐴𝐵′+𝐴(𝐶𝐷+𝐶𝐷′)+𝐵′=𝐴𝐵′+𝐴(𝐶𝐷+𝐶𝐷′)+𝐵′=𝐴𝐵′+𝐴+𝐵′=𝐴+𝐵′Y2​=AB′+A(CD+CD′)+B′=AB′+A(CD+CD′)+B′=AB′+A+B′=A+B′ 𝑌3=𝐴′𝐵𝐶′+(𝐴+𝐵′)𝐶′=𝐴′𝐵𝐶′+𝐴𝐶′+𝐵′𝐶′=𝐶′Y3​=A′BC′+(A+B′)C′=A′BC′+AC′+B′C′=C′

二、吸收法

利用表 2.3.3 中的公式 𝐴+𝐴𝐵=𝐴A+AB=A 可将 AB 项消去。A 和 B 同样也可以是任何一个复杂的逻辑式。

例 2.6.2 试用吸收法化简下列逻辑函数:

𝑌1=((𝐴′𝐵)′+𝐶)𝐴𝐵𝐷+𝐴𝐷Y1​=((A′B)′+C)ABD+AD 𝑌2=𝐴𝐵+𝐴𝐵𝐶′+𝐴𝐵𝐷+𝐴𝐵(𝐶+𝐷′)Y2​=AB+ABC′+ABD+AB(C+D′) 𝑌3=𝐴+(𝐴(𝐵𝐶)+(𝐴′+(𝐵𝐶′+𝐷)′)+𝐵𝐶)Y3​=A+(A(BC)+(A′+(BC′+D)′)+BC)

解:

𝑌1=((𝐴′𝐵)′+𝐶)𝐴𝐵𝐷+𝐴𝐷=𝐴𝐷Y1​=((A′B)′+C)ABD+AD=AD 𝑌2=𝐴𝐵+𝐴𝐵(𝐶′+𝐷+(𝐶′+𝐷′))=𝐴𝐵Y2​=AB+AB(C′+D+(C′+D′))=AB 𝑌3=𝐴+𝐵𝐶+(𝐴′+(𝐵𝐶′+𝐷)′)=𝐴+𝐵𝐶Y3​=A+BC+(A′+(BC′+D)′)=A+BC

三、消项法

利用表 2.3.3 中的公式 𝐴𝐵+𝐴′𝐶+𝐵𝐶=𝐴𝐵+𝐴′𝐶AB+A′C+BC=AB+A′C 及 𝐴𝐵+𝐴′𝐶+𝐵𝐶𝐷=𝐴𝐵+𝐴′𝐶AB+A′C+BCD=AB+A′C 将 BC 或 BCD 项消去。其中 A、B、C、D 均可以是任何复杂的逻辑式。

例 2.6.3 用消项法化简下列逻辑函数:

𝑌1=𝐴𝐶+𝐴𝐵′+(𝐵+𝐶)Y1​=AC+AB′+(B+C) 𝑌2=𝐴𝐵′𝐶𝐷′+(𝐴𝐵′)′𝐸+𝐴′𝐶𝐷′𝐸Y2​=AB′CD′+(AB′)′E+A′CD′E 𝑌3=𝐴′𝐵′𝐶+𝐴𝐵𝐶+𝐴′𝐵𝐷′+𝐴𝐵′𝐷′+𝐴′𝐵𝐶𝐷′+𝐵𝐶𝐷′𝐸′Y3​=A′B′C+ABC+A′BD′+AB′D′+A′BCD′+BCD′E′

解:

𝑌1=𝐴𝐶+𝐴𝐵′+𝐵′𝐶=𝐴𝐶+𝐵′𝐶Y1​=AC+AB′+B′C=AC+B′C 𝑌2=(𝐴𝐵′)𝐶𝐷′+(𝐴𝐵)′𝐸+(𝐶𝐷)(𝐸)𝐴′=𝐴𝐵′𝐶𝐷′+(𝐴𝐵)′𝐸=𝐴𝐵′𝐶𝐷+(𝐴𝐵)′𝐸Y2​=(AB′)CD′+(AB)′E+(CD)(E)A′=AB′CD′+(AB)′E=AB′CD+(AB)′E 𝑌3=(𝐴′𝐵′+𝐴𝐵)𝐶+(𝐴′𝐵+𝐴𝐵′)𝐷′+𝐵𝐶𝐷′(𝐴′+𝐸)=(𝐴′𝐵)′𝐶+(𝐴′𝐵)𝐷′+𝐶𝐷′(𝐵(𝐴′+𝐸))=(𝐴′𝐵)′𝐶+(𝐴′𝐵)𝐷′Y3​=(A′B′+AB)C+(A′B+AB′)D′+BCD′(A′+E)=(A′B)′C+(A′B)D′+CD′(B(A′+E))=(A′B)′C+(A′B)D′

四、消因子法

利用表 2.3.3 中的公式 𝐴+𝐴′𝐵=𝐴+𝐵A+A′B=A+B 可将 A'B 中的 A 消去。A、B 均可以是任何复杂的逻辑式。

例 2.6.4 试利用消因子法化简下列逻辑函数:

𝑌1=𝐵′+𝐴𝐵𝐶Y1​=B′+ABC 𝑌2=𝐴𝐵′+𝐵+𝐴′𝐵Y2​=AB′+B+A′B 𝑌3=𝐴′𝐶+𝐴′𝐷+𝐶′𝐷Y3​=A′C+A′D+C′D

解:

𝑌1=𝐵′+𝐴𝐵𝐶=𝐵′+𝐴𝐶Y1​=B′+ABC=B′+AC 𝑌2=𝐴𝐵′+𝐵+𝐴′𝐵=𝐴+𝐵Y2​=AB′+B+A′B=A+B 𝑌3=𝐴′𝐶+𝐴′𝐷+𝐶′𝐷=𝐴′𝐶+𝐷Y3​=A′C+A′D+C′D=A′C+D

五、配项法

1. 根据基本公式中的 𝐴+𝐴=𝐴A+A=A 可以在逻辑函数式中重复写入某一项,有时能获得更加简单的化简结果。

例 2.6.5 试化简逻辑函数 𝑌=𝐴′𝐵𝐶′+𝐴′𝐵𝐶+𝐴𝐵𝐶Y=A′BC′+A′BC+ABC。

解:若在式中重复写入 𝐴′𝐵𝐶A′BC,则可得到:

𝑌=(𝐴′𝐵𝐶′+𝐴′𝐵𝐶)+(𝐴′𝐵𝐶+𝐴𝐵𝐶)=𝐴′𝐵(𝐶′+𝐶)+𝐵𝐶(𝐴+𝐴′)=𝐴′𝐵+𝐵𝐶Y=(A′BC′+A′BC)+(A′BC+ABC)=A′B(C′+C)+BC(A+A′)=A′B+BC

2. 根据基本公式中的 𝐴+𝐴′=1A+A′=1 可以在函数式中的某一项上乘以 (𝐴+𝐴′)(A+A′),然后拆成两项分别与其他项合并,有时能得到更加简单的化简结果。

例 2.6.6 试化简逻辑函数 𝑌=𝐴𝐵′+𝐴′𝐵+𝐵𝐶′+𝐵′𝐶Y=AB′+A′B+BC′+B′C。

解:利用配项法可将 Y 写成:

𝑌=𝐴𝐵′+𝐴′𝐵(𝐶+𝐶′)+𝐵𝐶′+(𝐴+𝐴′)𝐵′𝐶=𝐴𝐵′+𝐴′𝐵𝐶+𝐴′𝐵𝐶′+𝐵𝐶′+𝐴𝐵′𝐶+𝐴′𝐵′𝐶=(𝐴𝐵′+𝐴𝐵′𝐶)+(𝐵𝐶′+𝐴′𝐵𝐶)+(𝐴′𝐵𝐶+𝐴′𝐵′𝐶)=𝐴𝐵′+𝐵𝐶′+𝐴′𝐵Y=AB′+A′B(C+C′)+BC′+(A+A′)B′C=AB′+A′BC+A′BC′+BC′+AB′C+A′B′C=(AB′+AB′C)+(BC′+A′BC)+(A′BC+A′B′C)=AB′+BC′+A′B

在化简复杂的逻辑函数时,往往需要灵活、交替地综合运用上述方法,才能得到最后的化简结果。

例 2.6.7 化简逻辑函数 𝑌=𝐴𝐶+𝐵′𝐶+𝐵𝐷′+𝐶𝐷′+𝐴(𝐵+𝐶)+𝐴′𝐵𝐶𝐷′+𝐴𝐵′𝐷𝐸Y=AC+B′C+BD′+CD′+A(B+C)+A′BCD′+AB′DE。

解:

𝑌=𝐴𝐶+𝐵′𝐶+𝐵𝐷′+𝐶𝐷′+𝐴(𝐵+𝐶)+𝐴′𝐵𝐶𝐷′+𝐴𝐵′𝐷𝐸Y=AC+B′C+BD′+CD′+A(B+C)+A′BCD′+AB′DE

根据公式 𝐴+𝐴𝐵=𝐴A+AB=A,消去 A'BCD' 项:

=𝐴𝐶+𝐵′𝐶+𝐵𝐷′+𝐶𝐷′+𝐴(𝐵+𝐶)+𝐴𝐵′𝐷𝐸=AC+B′C+BD′+CD′+A(B+C)+AB′DE

根据公式 𝐴+𝐴′𝐵=𝐴+𝐵A+A′B=A+B,消去 𝐴(𝐵′𝐶)A(B′C) 项中的因子:

=𝐴𝐶+𝐵′𝐶+𝐵𝐷′+𝐶𝐷′+𝐴+𝐴𝐵′𝐷𝐸=AC+B′C+BD′+CD′+A+AB′DE

根据公式 𝐴+𝐴𝐵=𝐴A+AB=A,消去 AC 和 AB'DE 项:

=𝐴+𝐵′𝐶+𝐵𝐷′+𝐶𝐷′=A+B′C+BD′+CD′

根据公式 𝐴𝐵+𝐴′𝐶+𝐵𝐶=𝐴𝐵+𝐴′𝐶AB+A′C+BC=AB+A′C,消去 CD:

=𝐴+𝐵′𝐶+𝐵𝐷=A+B′C+BD

通过以上步骤,我们得到了逻辑函数的最简形式。

 

 

2.6.2 卡诺图化简法

从前面公式化简法的例题中可以看出,用公式运算的方法化简不同的逻辑函数时,没有固定的方法和步骤,存在很大的灵活性。用这种方法化简复杂的逻辑函数时,必须具备熟练掌握和灵活运用逻辑代数的公式和定理的能力,方能得到满意的化简结果。因此,我们希望能找到一种对任何逻辑函数都适用的,而且具有固定操作步骤和方法的化简方法。

于是我们想到,既然任何逻辑函数都可以展开为最小项之和的形式,那么采用合并最小项的方法化简逻辑函数,就应当是适用于任何逻辑函数的、通用的化简方法。下面介绍的卡诺图化简法就是一种基于合并最小项的化简方法。

一、逻辑函数的卡诺图表示法

将 𝑛n 变量的全部最小项各用一个小方块表示,并使具有逻辑相邻性的最小项在几何位置上也相邻地排列起来,所得到的图形称为 𝑛n 变量最小项的卡诺图。因为这种表示方法是由美国工程师卡诺 (M.Karnaugh) 首先提出的,所以将这种图形称为卡诺图 (Karnaugh Map)。

图 2.6.1 中画出了二到五变量最小项的卡诺图。图形两侧标注的 0 和 1 表示使对应小方格内的最小项为 1 的变量取值。同时,这些 0 和 1 组成的二进制数所对应的十进制数大小也就是对应的最小项的编号。

为了保证图中几何位置相邻的最小项在逻辑上也具有相邻性,这些数码不能按自然二进制数从小到大的顺序排列,而必须按图中的方式排列,以确保相邻的两个最小项仅有一个变量是不同的。

从图 2.6.1 所示的卡诺图上还可以看到,处在任何一行或一列两端的最小项也仅有一个变量不同,所以它们也具有逻辑相邻性。因此,从几何位置上应当将卡诺图看成是上下、左右闭合的图形。

在变量数大于、等于五以后,仅仅用几何图形在两维空间的相邻性来表示逻辑相邻性已经不够了。例如,在图 2.6.1(d) 所示的五变量最小项的卡诺图中,除了几何位置相邻的最小项具有逻辑相邻性以外,以图中双竖线为轴左右对称位置上的两个最小项也具有逻辑相邻性。

既然任何一个逻辑函数都能表示为若干最小项之和的形式,那么自然也就可以设法用卡诺图来表示任意一个逻辑函数。具体的方法是:首先将逻辑函数化为最小项之和的形式,然后在卡诺图上与这些最小项对应的位置上填入 1,在其余的位置上填入 0,就得到了表示该逻辑函数的卡诺图。也就是说,任何一个逻辑函数都等于它的卡诺图中填入 1 的那些最小项之和。

例 2.6.8 用卡诺图表示逻辑函数:

𝑌=𝐴′𝐵′𝐶′𝐷+𝐴′𝐵𝐷′+𝐴𝐶𝐷+𝐴𝐵′Y=A′B′C′D+A′BD′+ACD+AB′

解:首先将 𝑌Y 化为最小项之和的形式:

𝑌=𝐴′𝐵′𝐶′𝐷+𝐴′𝐵(𝐶+𝐶′)𝐷′+𝐴(𝐵+𝐵′)𝐶𝐷+𝐴𝐵′(𝐶+𝐶′)(𝐷+𝐷′)Y=A′B′C′D+A′B(C+C′)D′+A(B+B′)CD+AB′(C+C′)(D+D′) =𝐴′𝐵′𝐶′𝐷+𝐴′𝐵𝐶𝐷′+𝐴′𝐵𝐶′𝐷′+𝐴𝐵𝐶𝐷+𝐴𝐵′𝐶𝐷+𝐴𝐵′𝐶𝐷′+𝐴𝐵′𝐶′𝐷+𝐴𝐵′𝐶′𝐷′=A′B′C′D+A′BCD′+A′BC′D′+ABCD+AB′CD+AB′CD′+AB′C′D+AB′C′D′ =𝑚0+𝑚4+𝑚8+𝑚10+𝑚12+𝑚14+𝑚3+𝑚2=m0​+m4​+m8​+m10​+m12​+m14​+m3​+m2​

画出四变量最小项的卡诺图,在对应于函数式中各最小项的位置上填入 1,其余位置上填入 0,就得到如图 2.6.2 所示的函数 𝑌Y 的卡诺图。

例 2.6.9 已知逻辑函数 𝑌Y 的卡诺图如图 2.6.3 所示,试写出该函数的逻辑式。

解:因为函数 𝑌Y 等于卡诺图中填入 1 的那些最小项之和,所以有:

𝑌=𝐴𝐵′𝐶′+𝐴′𝐵′𝐶+𝐴𝐵𝐶+𝐴′𝐵𝐶′Y=AB′C′+A′B′C+ABC+A′BC′

二、用卡诺图化简逻辑函数

利用卡诺图化简逻辑函数的方法称为卡诺图化简法或图形化简法。化简时依据的基本原理就是具有相邻性的最小项可以合并,并消去不同的因子。由于在卡诺图上几何位置相邻与逻辑上的相邻性是一致的,因而从卡诺图上能直观地找出那些具有相邻性的最小项并将其合并化简。

1. 合并最小项的原则

若两个最小项相邻,则可合并为一项并消去一对因子。合并后的结果中只剩下公共因子。在图 2.6.4(a) 和 (b) 中画出了两个最小项相邻的几种可能情况。例如,图(a)中 𝐴′𝐵𝐶(𝑚1)A′BC(m1​) 和 𝐴𝐵𝐶(𝑚5)ABC(m5​) 相邻,故可合并为:

𝐴′𝐵𝐶+𝐴𝐵𝐶=(𝐴′+𝐴)𝐵𝐶=𝐵𝐶A′BC+ABC=(A′+A)BC=BC

合并后将 𝐴A 和 𝐴′A′ 一对因子消掉了,只剩下公共因子 𝐵B 和 𝐶C。

若四个最小项相邻并排列成一个矩形组,则可合并为一项并消去两对因子。合并后的结果中只包含公共因子。例如,在图 2.6.4(d) 中,𝐴′𝐵𝐶′𝐷(𝑚8)A′BC′D(m8​)、𝐴′𝐵𝐶𝐷(𝑚9)A′BCD(m9​)、𝐴𝐵𝐶′𝐷(𝑚12)ABC′D(m12​) 和 𝐴𝐵𝐶𝐷(𝑚13)ABCD(m13​) 相邻,故可合并。合并后得到:

𝐴′𝐵𝐶′𝐷+𝐴′𝐵𝐶𝐷+𝐴𝐵𝐶′𝐷+𝐴𝐵𝐶𝐷=𝐴′𝐵𝐷(𝐶+𝐶′)+𝐴𝐵𝐷(𝐶+𝐶′)=𝐵𝐷(𝐴+𝐴′)=𝐵𝐷A′BC′D+A′BCD+ABC′D+ABCD=A′BD(C+C′)+ABD(C+C′)=BD(A+A′)=BD

可见,合并后消去了 𝐴A、𝐴′A′ 和 𝐶C、𝐶′C′ 两对因子,只剩下四个最小项的公共因子 𝐵B 和 𝐷D。

若八个最小项相邻并且排列成一个矩形组,则可合并为一项并消去三对因子。合并后的结果中只包含公共因子。例如,在图 2.6.4(e) 中,上边两行的八个最小项是相邻的,可将它们合并为一项 𝐴′A′。其他的因子都被消去了。

至此,可以归纳出合并最小项的一般规则,这就是:如果有 2𝑛2n 个最小项相邻 (n = 1, 2, ...),并排列成一个矩形组,则它们可以合并为一项,并消去 n 对因子。合并后的结果中仅包含这些最小项的公共因子。

2. 卡诺图化简法的步骤

用卡诺图化简逻辑函数时可按如下步骤进行:

  1. 将函数化为最小项之和的形式。
  2. 画出表示该逻辑函数的卡诺图。
  3. 找出可以合并的最小项。
  4. 选取化简后的乘积项。选取的原则是:
    1. 这些乘积项应包含函数式中所有的最小项 (应覆盖卡诺图中所有的 1)。
    2. 所用的乘积项数目最少。也就是可合并的最小项组成的矩形组数目最少。
    3. 每个乘积项包含的因子最少。也就是每个可合并的最小项矩形组中应包含尽量多的最小项。

例 2.6.10 用卡诺图化简法将下式化简为最简与或函数式:

𝑌=𝐴𝐶′+𝐴′𝐶+𝐵𝐶′+𝐵′𝐶Y=AC′+A′C+BC′+B′C

解:首先画出表示函数 𝑌Y 的卡诺图,如图 2.6.5 所示。

事实上,在填写 𝑌Y 的卡诺图时,并不一定要将 𝑌Y 化为最小项之和的形式。例如,式中的 𝐴𝐶′AC′ 一项包含了所有含有 𝐴𝐶′AC′ 因子的最小项,而不管另一个因子是 𝐵B 还是 𝐵′B′。从另外一个角度讲,也可以理解为 𝐴𝐶′AC′ 是 𝐴𝐵𝐶′ABC′ 和 𝐴𝐵′𝐶′AB′C′ 两个最小项相加合并的结果。因此,在填写 𝑌Y 的卡诺图时,可以直接在卡诺图上所有对应 𝐴=1A=1、𝐶=0C=0 的空格里填入 1。按照这种方法,就可以省去将 𝑌Y 化为最小项之和这一步骤了。

其次,需要找出可以合并的最小项。将可能合并的最小项用线圈出。由图 2.6.5(a) 和 (b) 可见,有两种可取的合并最小项的方案。如果按图 2.6.5(a) 的方案合并最小项,则得到:

𝑌=𝐴𝐵′+𝐴′𝐶+𝐵𝐶Y=AB′+A′C+BC

而按图 2.6.5(b) 的方案合并最小项得到:

𝑌=𝐴𝐶′+𝐵′𝐶+𝐴′𝐵Y=AC′+B′C+A′B

两个化简结果都符合最简与或式的标准。此例说明,有时一个逻辑函数的化简结果不是唯一的。

例 2.6.11 用卡诺图化简法将下式化为最简与或逻辑式:

𝑌=𝐴𝐵𝐶+𝐴𝐵𝐷+𝐴𝐶′𝐷+𝐶′𝐷′+𝐴𝐵′𝐶+𝐴′𝐶𝐷′Y=ABC+ABD+AC′D+C′D′+AB′C+A′CD′

解:首先画出 𝑌Y 的卡诺图,如图 2.6.6 所示。然后将可能合并的最小项圈出,并按照前面所述的原则选择化简后与或式中的乘积项。由图可见,应将图中下边两行的 8 个最小项合并,同时将左、右两列最小项合并,于是得到:

𝑌=𝐴+𝐷′Y=A+D′

从图 2.6.6 中可以看到,A 和 D' 中重复包含了 𝑚0,𝑚2m0​,m2​ 和 𝑚3m3​ 这 4 个最小项。但据 𝐴+𝐴=𝐴A+A=A 可知,在合并最小项的过程中允许重复使用函数式中的最小项,以利于得到更简单的化简结果。

另外,还要补充说明一个问题。在以上的两个例子中,我们都是通过合并卡诺图中的 1 来求得化简结果的。但有时也可以通过合并卡诺图中的 0 先求出 𝑌′Y′ 的化简结果,然后再将 𝑌′Y′ 求反而得到 𝑌Y。这种方法所依据的原理我们已在 2.5.4 节中做过说明。因为全部最小项之和为 1,所以若将全部最小项之和分成两部分,一部分 (卡诺图中填入 1 的那些最小项) 之和记作 𝑌Y,则根据 𝑌+𝑌′=1Y+Y′=1 可知,其余一部分 (卡诺图中填入 0 的那些最小项) 之和必为 𝑌′Y′。

在多变量逻辑函数的卡诺图中,当 0 的数目远小于 1 的数目时,采用合并 0 的方法有时会比合并 1 来得简单。例如,在图 2.6.6 所示的卡诺图中,如果将 0 合并,则可立即写出:

𝑌′′=𝐴′𝐷,𝑌=(𝑌′′)′=(𝐴′𝐷)′=𝐴+𝐷′Y′′=A′D,Y=(Y′′)′=(A′D)′=A+D′

与合并 1 得到的化简结果一致。

此外,在需要将函数化为最简的与或非式时,采用合并 0 的方式最为适宜,因为得到的结果正是与或非形式。如果要求得到 𝑌Y 的化简结果,则采用合并 0 的方式就更简便了。

2.6.3 奎因-麦克拉斯基化简法 (Q-M 法)

从上一小节的内容中不难看出,虽然卡诺图化简法具有直观、简单的优点,但它同时又存在着很大的局限性。首先,在函数的输入逻辑变量较多时 (例如大于 5 后),便失掉了直观的优点。其次,在许多情况下要凭设计者的经验确定应如何合并最小项才能得到最简单的化简结果,因而不便于借助计算机完成化简工作。

公式化简法的使用虽然不受输入变量数目的影响,但由于化简的过程没有固定的、通用的步骤可循,所以同样不适用于计算机辅助化简。

由奎因 (W.V. Quine) 和麦克拉斯基 (E.J. McCluskey) 提出的用列表方式进行化简的方法则有一定的规则和步骤可循,较好地克服了公式化简法和卡诺图化简法在这方面的局限性,因而适用于编制计算机辅助化简程序。通常将这种化简方法称为奎因-麦克拉斯基法,简称 Q-M 法。

Q-M 法的基本原理仍然是通过合并相邻最小项并消去多余因子而求得逻辑函数的最简与或式。下面再结合一个具体的例子简要地介绍一下 Q-M 法的基本原理和化简的步骤。假定需要化简的五变量逻辑函数为:

𝑌(𝐴,𝐵,𝐶,𝐷,𝐸)=𝐴𝐵′𝐶𝐷𝐸′+𝐴′𝐶𝐷′𝐸′+𝐴′𝐵′𝐶′𝐷+𝐴′𝐵𝐷𝐸+𝐵𝐶𝐷𝐸+𝐴𝐵𝐶(𝐷+𝐸)Y(A,B,C,D,E)=AB′CDE′+A′CD′E′+A′B′C′D+A′BDE+BCDE+ABC(D+E)

则使用 Q-M 法的化简步骤如下:

  1. 将函数化为最小项之和形式,列出最小项编码表。

将式 (2.6.3) 化为最小项之和形式后得到:

𝑌(𝐴,𝐵,𝐶,𝐷,𝐸)=𝐴′𝐵′𝐶′𝐷′𝐸′+𝐴′𝐵′𝐶′𝐷𝐸′+𝐴′𝐵′𝐶′𝐷𝐸+𝐴′𝐵𝐶′𝐷′𝐸′+𝐴′𝐵𝐶𝐷𝐸+𝐴′𝐵𝐶𝐷𝐸′+𝐴′𝐵𝐶𝐷𝐸+𝐴𝐵′𝐶𝐷𝐸′+𝐴𝐵𝐶′𝐷′𝐸′+𝐴𝐵𝐶′𝐷𝐸+𝐴𝐵𝐶𝐷𝐸Y(A,B,C,D,E)=A′B′C′D′E′+A′B′C′DE′+A′B′C′DE+A′BC′D′E′+A′BCDE+A′BCDE′+A′BCDE+AB′CDE′+ABC′D′E′+ABC′DE+ABCDE =∑𝑚(0,2,3,8,10,14,15,22,24,27,31)=∑m(0,2,3,8,10,14,15,22,24,27,31)

用 1 表示最小项中的原变量,用 0 表示最小项中的反变量,就得到了表 2.6.1 所示的最小项编码表。

表 2.6.1 式 (2.6.4) 最小项的编码表
最小项编号编码最小项编号编码
0000001501111
2000102210110
3000112411000
8010002711011
10010103111111
1401110--
  1. 按包含 1 的个数将最小项分组,如表 2.6.2 中最左边一列所示。
表 2.6.2 列表合并最小项

| 合并前的最小项 | 编号 | A | B | C | D | E | 合并前的最小项 | 编号 | A | B | C | D | E | |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 0 | 00000 | 8 | 01000 | | 2 | 00010 | 10 | 01010 | | 3 | 00011 | 14 | 01110 | | 15 | 01111 | 22 | 10110 | | 24 | 11000 | 27 | 11011 | | 31 | 11111 | - | - |

  1. 合并相邻的最小项

将表 2.6.2 中最左边一列里每一组的每一个最小项与相邻组里所有的最小项逐一比较,若仅有一个因子不同,则定可合并,并消去不同的因子。消去的因子用 “-” 号表示,将合并后的结果列于表 2.6.2 的第二列中。同时,在第一列中可以合并的最小项右边标以 “√” 号。

按照同样的方法再将第二列中的乘积项合并,合并后的结果写在第三列中。如此进行下去,直到不能再合并为止。

  1. 选择最少的乘积项。

只要将表 2.6.2 中合并过程中没有用过的那些乘积项相加,自然就包含了函数 𝑌Y 的全部最小项,故得:

𝑌(𝐴,𝐵,𝐶,𝐷,𝐸)=𝑃1+𝑃2+𝑃3+𝑃4+𝑃5+𝑃6+𝑃7+𝑃8Y(A,B,C,D,E)=P1​+P2​+P3​+P4​+P5​+P6​+P7​+P8​

然而,上式并不一定是最简的与或表达式。为了进一步将式 (2.6.5) 化简,将 𝑃1−𝑃8P1​−P8​ 各包含的最小项列成表 2.6.3。因为表中带圆圈的最小项仅包含在一个乘积项中,所以化简结果中一定包含它们所在的这些乘积项,即 𝑃1P1​、𝑃2P2​、𝑃3P3​、𝑃4P4​ 和 𝑃5P5​。而且,选取了这五项之和以后,已包含了除 𝑚0m0​ 和 𝑚1m1​ 以外所有 𝑌Y 的最小项。

表 2.6.3 用列表法选择最少的乘积项

| 最小项编号 | P_1 | P_2 | P_3 | P_4 | P_5 | P_6 | P_7 | P_8 | |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 0 | ① | | | | | | | | | 2 | | ① | | | | | | | | 3 | | ① | | | | | | | | 8 | | | ① | | | | | | | 10 | | | ① | | | | | | | 14 | | | | ① | | | | | | 15 | | | | | ① | | | | | 22 | | | | | ① | | | | | 24 | | | | | | | ① | | | 27 | | | | | | | ① | | | 31 | | | | | | | | ① |

剩下的问题就是要确定化简结果中是否应包含 𝑃6P6​、𝑃7P7​ 和 𝑃8P8​ 了。为此,可将表 2.6.3 中有关 𝑃4P4​、𝑃6P6​、𝑃8P8​ 的部分简化成表 2.6.4 的形式。

表 2.6.4 表 2.6.3 的 𝑃4P4​、𝑃6P6​ 部分
最小项编号P_4P_6P_8
1411
15111

由表 2.6.4 中可以看到,𝑃6P6​ 行所有的 1 和 𝑃8P8​ 行所有的 1 皆与 𝑃4P4​ 中的 1 重叠,亦即 𝑃4P4​ 中的最小项包含了 𝑃6P6​ 和 𝑃8P8​ 的所有最小项,故可将 𝑃6P6​ 和 𝑃8P8​ 两行删掉。因此,可将式 (2.6.5) 中的 𝑃6P6​ 和 𝑃8P8​ 两项去掉,从而得到最后的化简结果:

𝑌(𝐴,𝐵,𝐶,𝐷,𝐸)=𝑃1+𝑃2+𝑃3+𝑃4+𝑃5Y(A,B,C,D,E)=P1​+P2​+P3​+P4​+P5​ =𝐴𝐵′𝐶𝐷𝐸′+𝐴′𝐵′𝐶′𝐷+𝐵𝐶′𝐷′𝐸′+𝐴′𝐵𝐶𝐷+𝐴𝐵𝐷𝐸+𝐴′𝐶𝐸=AB′CDE′+A′B′C′D+BC′D′E′+A′BCD+ABDE+A′CE

从上面的例子中可以看到,虽然 Q-M 法的化简过程看起来比较繁琐,但由于它有确定的流程,适用于任何复杂逻辑函数的化简,这就为编制计算机辅助化简程序提供了方便。因此,几乎很少有人用手工方法使用 Q-M 法去化简复杂的逻辑函数,而是使用基于 Q-M 法的基本原理去编制各种计算机软件,然后在计算机上完成逻辑函数的化简工作。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值