2.2.4 逻辑函数的化简与实现

2.2.4 逻辑函数的化简与实现

同一个逻辑函数,可以写成不同的表达式。表达式越简单,则实现该逻辑函数所需的元器件数目越少,其成本越低。逻辑电路越简单,电路的可靠性稳定性也会相应的越高。因此,在设计逻辑电路时,首先要对逻辑函数进行必要的化简。

由于逻辑函数表达式的形式不同,对函数表达式“最简”的理解也将有所不同。这里用最常用的与—或表达式为例来介绍最简的标准。

一般而言,与—或表达式需要满足下列两个条件,才能称为最简:

(1)与项最少,即表达式中“+”号最少;

(2)每个与项中的变量数最少,即表达式中“.”号最少。

与项最少,可以使电路实现时所需的逻辑门的个数最少;每个与项中的变量数量最少,可以使电路实现时所需逻辑门的输入端个数最少,从而使逻辑电路相对简单、稳定。对于其他类型的电路,也可以得出类似的最简标准。例如,或—与表达式,最简的标准可以变更为:或项最少;每个或项中的变量数最少。

目前主要的逻辑函数化简方法主要有如下几种:

1.代数化简法

代数化简法就是反复使用逻辑代数的基本定律和常用公式,消去函数式中多余的乘积项和多余的因子,以求得最简逻辑函数式。下面通过几组例子来了解常用的代数化简方法:

(1)并项法

利用公式A+=1,两项合并为一项,消去一个因子。

【例2.5】 试用并项法化简下列逻辑函数。

解:

在化简过程中应用了代入规则,即X=B B+=X+=1。

(2)吸收法

利用公式A+AB=A,A+B=A+B,AB+C+BC=AB+C,消去多余的乘积项或多余的因子。

【例2.6】 化简下面的逻辑表达式。

解:

(3)添项法

利用公式A+A=A,A·=0,AB+C=AB+C+BC,在函数表达式中重复书写某一项,以便简化函数表达式。

【例2.7】 试用添项法化简下列逻辑函数:

解:

(4)配项法

利用公式A+=1及A·=0,将某个与项乘以(A+)项或加上A·=0,进而将其拆成两项,以便与其他项配合化简。

【例2.8】 试用配项法化简下列逻辑函数:

解:

从以上例子可以看到,利用逻辑函数基本定律和常用公式化简逻辑函数,需要熟悉逻辑代数公式和定理,并且需要具有一定的化简经验和技巧。但这一化简方法的弊端是其化简的结果往往不易判定是否为最简逻辑表达式。

2.卡诺图化简法

卡诺图是按一种相邻原则排列而成的最小项方格图,利用相邻可合并规则,使逻辑函数得到化简。卡诺图也可视为真值表的图形表示,因为卡诺图同样呈现了输入变量所有可能的组合及其对应的输出值(图2.8)。在化简过程中需要了解什么是最小项。对于一个n 变量逻辑函数,若与项m 包含n 个变量,每个变量以原变量或反变量的形式出现且仅出现一次,则称与项m 为此n 变量逻辑函数的一个最小项。

图2.8 二变量、三变量、四变量逻辑函数的卡诺图

(1)最小项相关概念

最小项的定义:在n个变量的逻辑函数中,包含全部变量的乘积项称为最小项。其中每个变量在该乘积项中可以以原变量或是反变量的形式出现,但只能出现一次。即n 变量逻辑函数的全部最小项共有2n个。任何一个逻辑函数表达式都可以转换为一组最小项之和,这样由最小项组成的“与—或”表达式称为最小项表达式。

以2n个小方块分别代表n 变量的所有最小项,并将它们排列成矩阵,而且使几何位置相邻的两个最小项在逻辑上也是相邻的(只有一个变量不同),就得到表示n 变量全部最小项的卡诺图。

所谓几何相邻项,包含三种情况:一是相接,即紧挨着的最小项;二是相对,即任意一行或一列的两头;三是相重,即对折起来位置重合。所谓逻辑相邻,是指两个最小项中只有一个变量形式不同。

合并最小项的原则如下:

①两个相邻最小项可合并为一项,消去一对因子;

②四个排成矩形的相邻最小项可合并为一项,消去两对因子。

【例2.9】 将逻辑函数L(A,B,C)=AB+C 转换成最小项表达式。

解:该函数为三变量函数,而表达式中每项只含有两个变量,不是最小项。要变为最小项,就应补齐缺少的变量,办法为将各项乘以1,如AB 项乘以(C+)。

为了简化,也可用最小项下标编号来表示最小项,上式也可写为

L(A,B,C)=∑m(1,3,6,7)

(2)用卡诺图表示逻辑函数

用卡诺图表示给定的逻辑函数表达式,其一般步骤是,先求该逻辑函数的最小项表达式;作与其逻辑函数的变量个数相对应的卡诺图;然后在卡诺图上将这些最小项对应的小方块中填入1,在其余的地方则填入0,即可得到表示该逻辑函数表达式的卡诺图。也就是说,任何一个逻辑函数都等于它的卡诺图中填1的那些小方块所对应的最小项之和。

【例2.10】 用卡诺图表示逻辑函数L(A,B,C,D)=ACBC+D+BD。

解:首先求该逻辑函数的最小项表达式,即

做出四变量卡诺图,并在对应函数表达式中最小项的小方块内填入1,其余位置上填入0,即得到所给逻辑函数的卡诺图,如图2.9所示。

【例2.11】 已知逻辑函数的卡诺图,如图2.10所示,试写出该逻辑函数的最小项表达式。

图2.9 【例2.10】卡诺图

图2.10 【例2.11】卡诺图

解:设所求逻辑函数用L 表示,则L 等于卡诺图中填入1的那些小方块所对应的最小项之和,即有:

【例2.12】 化简逻辑函数Y(A,B,C)=AC+C+B

图2.11 【例2.12】卡诺图分析

即经过化简可以看到本例有两种化简结果:

根据上面的例子可以看到,利用卡诺图化简逻辑函数表达式,方便直观。而且可以看到逻辑函数表达式的化简可能结果并不唯一,函数表达式经过化简后可能会有多种结果。

逻辑函数表达式繁简程度不同,所需的逻辑器件的数量及类别也不尽相同。因此,在实际设计逻辑电路中,不仅要考虑电路的逻辑功能,还要考虑电路中所使用的逻辑器件数量、种类等多方面因素,这样考虑的目的是既要降低电路成本,又要兼顾电路工作的可靠性。因此,在逻辑电路的分析和设计中,必然需要对逻辑函数表达式进行化简。例如,有两个逻辑函数:

L 1、L 2对应的逻辑电路图如图2.12所示。

图2.12 逻辑电路图

如果分别列出L 1、L 2对应的逻辑真值表,事实上两个表达式具有相同的逻辑电路功能。在实现同一逻辑功能的情况下,显然第二个逻辑电路图比第一个逻辑电路图简单得多。

对于同一个逻辑问题,逻辑函数表达式和逻辑电路可以有多种形式表示,但与其相对应的逻辑真值表却只能有一种,即对于任意逻辑函数,其真值表是唯一的。

【例2.13】 用卡诺图化简法化简F=AD+

解:①根据所给函数表达式画出卡诺图,如图2.13所示。

②画包围圈合并最小项(图2.14),得简化的与—或表达式:

图2.13 【例2.13】卡诺图

图2.14 【例2.13】卡诺图分析

【例2.14】 已知某逻辑函数的真值表(表2.12),用卡诺图化简该函数。

表2.12 真值表

解:①用真值表画出卡诺图;

②画包围圈合并最小项

有两种围圈方式,如图2.15所示。

图2.15 【例2.14】卡诺图分析

分别写出表达式:

由此可见:一个逻辑函数的真值表是唯一的,卡诺图也是唯一的,但化简结果有时并不唯一。

化简逻辑函数表达式常用的两种方法是代数法和卡诺图法。代数法没有任何条件限制,比较灵活,但其化简过程没有固定的规律可循,有时需要一定的技巧和经验。所以,有些逻辑函数式不容易化成最简式。卡诺图法简单、直观、有规律、易掌握,但不适合用于逻辑变量个数超过五个以上的逻辑函数的化简。