2.7 具有无关项的逻辑函数及其化简

 

2.7 具有无关项的逻辑函数及其化简

2.7.1 约束项、任意项和逻辑函数式中的无关项

在处理具体的逻辑问题时,有时会遇到两种特殊情况。第一种情况是输入变量的取值不是任意的,对输入变量取值的限制称为约束。我们把具有这种特点的逻辑函数称为具有约束的逻辑函数,同时把这一组输入变量称为具有约束的一组逻辑变量。

下面让我们来讨论一下图 2.7.1 给出的一个实例。图中的水箱由大、小两台水泵 M 和 M₁ 供水。水箱中设置了 3 个水位检测元件 A、B、C。水位低于检测元件时,检测元件给出低电平;水位高于检测元件时,检测元件给出高电平。

现以 Y₁ 和 Y₂ 分别表示 M 和 M₁ 的启动控制信号,取值为 1 时水泵启动,取值为 0 时水泵停止。根据要求,当水位超过 C 点时(ABC 的取值为 111)水泵停止工作,Y₁ = 0,Y₂ = 0;水位低于 C 点而高于 B 点时(ABC 的取值为 110),小水泵 M₁ 单独工作,Y₂ = 1;水位低于 B 点面高于 A 点时(ABC 的取值为 100),大水泵 M 单独工作,Y₁ = 1;水位低于 A 点时(ABC 的取值为 000),M 和 M₁ 同时工作,Y₁ = 1,Y₂ = 1。因此,M 和 M₁ 的启动控制信号 Y₁ 和 Y₂ 是 A、B、C 这三个逻辑变量的逻辑函数,并可写成:

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

由于不可能出现水位高于 C 点而低于 B 点和 A 点的情况,也不可能出现水位高于 B 点而低于 A 点的情况,所以 ABC 的取值不可能出现 001、010、011、101 这四种情况。由此可见,A、B、C 是一组具有约束的逻辑变量,Y₁ 和 Y₂ 是两个具有约束的逻辑函数。

通常用约束条件来描述约束的具体内容。显然,用上面的这样一段文字叙述约束条件是很不方便的,最好能用简单、明了的逻辑语言表述约束条件。由于每一组输入变量的取值都使一个且仅有一个最小项的值为 1,所以当限制某些输入变量的取值不能出现时,可以用它们对应的最小项恒等于 0 来表示。这样,上面例子中的约束条件可以表示为:

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

同时,将这些恒等于 0 的最小项称为函数 Y₁ 和 Y₂ 的约束项。

在存在约束项的情况下,由于约束项的值始终等于 0,所以既可以将约束项写进逻辑函数式中,也可以将约束项从函数式中删掉,而不影响函数值。

有时还会遇到另外一种情况,就是在输入变量的某些取值下函数值是 1 还是 0 皆可,并不影响电路的功能。在这些变量取值下,其值等于 1 的那些最小项称为任意项。

为了进一步说明任意项的物理概念,让我们来看一个电动机控制的例子。现以三个逻辑变量 A、B、C 分别表示一台电动机的正转、反转和停止的命令,A = 1 表示正转,B = 1 表示反转,C = 1 表示停止。表示正转、反转和停止工作状态的逻辑函数可写成:

𝑌1=𝐴𝐵′𝐶Y1​=AB′C (正转) 𝑌2=𝐴′𝐵𝐶′Y2​=A′BC′ (反转) 𝑌3=𝐴′𝐵′𝐶Y3​=A′B′C (停止)

因为任何时候电动机只能执行其中的一种命令,所以 A、B、C 当中出现两个以上为 1 时,电动机将无法工作。为此,将实际的电路设计成当 A、B、C 三个控制变量出现两个以上同时为 1 或者全部为 0 时电路能自动切断供电电源,那么这时 Y₁、Y₂ 和 Y₃ 等于 1 还是等于 0 已无关紧要,电动机肯定会受到保护而停止运行。例如,当出现 A = B = C = 1 时,对应的最小项 ABC(m₇) = 1。如果把最小项 ABC 写入 Y₁ 式中,则当 A = B = C = 1 时 Y₁ = 1;如果没有把 ABC 这一项写入 Y₁ 式中,则当 A = B = C = 1 时 Y₁ = 0。因为这时 Y₁ = 1 还是 Y₁ = 0 都是允许的,所以既可以把 ABC 这个最小项写入 Y₁ 式中,也可以不写入。因此,我们把 ABC 称为逻辑函数 Y₁ 的任意项。同理,在这个例子中 A'B'C'、A'BC、AB'C、ABC' 也是 Y₁、Y₂ 和 Y₃ 的任意项。这种存在任意项的逻辑函数也叫做不完全定义的逻辑函数。

因为使约束项的取值等于 1 的输入变量取值是不允许出现的,所以约束项的值始终为 0。而任意项则不同,在函数的运行过程中,有可能出现使任意项取值为 1 的输入变量取值。我们将约束项和任意项统称为逻辑函数式中的无关项。这里所说的“无关”是指是否把这些最小项写入逻辑函数式无关紧要,可以写入也可以删除。

上一节中曾经讲到,在用卡诺图表示逻辑函数时,首先将函数化为最小项之和的形式,然后在卡诺图中这些最小项对应的位置上填入 1,其他位置上填入 0。既然可以认为无关项包含于函数式中,也可以认为不包含在函数式中,那么在卡诺图中对应的位置上就可以填入 1,也可以填入 0。为此,在卡诺图中用 ×(或 d)表示无关项。在化简逻辑函数时既可以认为它是 1,也可以认为它是 0。

2.7.2 无关项在化简逻辑函数中的应用

化简具有无关项的逻辑函数时,如果能合理利用这些无关项,一般都可得到更加简单的化简结果。为达到此目的,加入的无关项应与函数式中尽可能多的最小项(包括原有的最小项和已写入的无关项)具有逻辑相邻性。合并最小项时,究竟把卡诺图中的 × 作为 1(即认为函数式中包含了这个最小项)还是作为 0(即认为函数式中不包含这个最小项)对待,应以得到的相邻最小项矩形组合最大,而且矩形组合数目最少为原则。

例 2.7.1 化简具有约束的逻辑函数:

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

给定约束条件为:

𝐴′𝐵′𝐶𝐷+𝐴′𝐵𝐶′𝐷+𝐴𝐵𝐶′𝐷′+𝐴𝐵′𝐶′𝐷+𝐴𝐵𝐶𝐷+𝐴𝐵𝐶𝐷′+𝐴𝐵′𝐶𝐷′=0A′B′CD+A′BC′D+ABC′D′+AB′C′D+ABCD+ABCD′+AB′CD′=0

在用最小项之和形式表示上述具有约束的逻辑函数时,也可写成如下形式:

𝑌(𝐴,𝐵,𝐶,𝐷)=Σ𝑚(1,7,8)+𝑑(3,5,9,10,12,14,15)Y(A,B,C,D)=Σm(1,7,8)+d(3,5,9,10,12,14,15)

式中以 d 表示无关项,d 后面括号内的数字是无关项的最小项编号。

解:如果不利用约束项,则 𝑌Y 已无可化简。但适当地加进一些约束项以后,可以得到:

𝑌=(𝐴′𝐵′𝐶′𝐷+𝐴′𝐵′𝐶𝐷)+(𝐴′𝐵𝐶𝐷+𝐴𝐵𝐶𝐷)Y=(A′B′C′D+A′B′CD)+(A′BCD+ABCD) +(𝐴𝐵′𝐶′𝐷+𝐴𝐵𝐶′𝐷)+(𝐴𝐵𝐶𝐷′+𝐴𝐵′𝐶𝐷)+(AB′C′D+ABC′D)+(ABCD′+AB′CD) =(𝐴′𝐵′𝐷+𝐴′𝐵𝐷)+(𝐴𝐶′𝐷′+𝐴𝐶𝐷′)=(A′B′D+A′BD)+(AC′D′+ACD′) =𝐴′𝐷+𝐴𝐷=A′D+AD

可见,利用了约束项以后,使逻辑函数得以进一步化简。但是,在确定该写入哪些约束项时尚不够直观。

如果改用卡诺图化简法,则只要将表示 𝑌Y 的卡诺图画出,就能从图上直观地判断对这些约束项应如何取舍。图 2.7.2 是例 2.7.1 的逻辑函数的卡诺图。从图中不难看出,为了得到最大的相邻最小项的矩形组合,应取约束项 𝑚3、𝑚9m3​、m9​ 为 1,与 𝑚1、𝑚7m1​、m7​ 组成一个矩形组。同时取约束项 𝑚10m10​ 为 1,与 𝑚8m8​ 组成一个矩形组。将两组相邻的最小项合并后得到的化简结果与上面推演的结果相同。卡诺图中没有被圈进去的约束项(𝑚5m5​ 和 𝑚12m12​)是当作 0 对待的。

例 2.7.2 试化简具有无关项的逻辑函数:

𝑌(𝐴,𝐵,𝐶,𝐷)=Σ𝑚(2,4,6,8)+𝑑(10,11,12,13,14,15)Y(A,B,C,D)=Σm(2,4,6,8)+d(10,11,12,13,14,15)

解:画出函数 𝑌Y 的卡诺图,如图 2.7.3 所示。

由图可见,若认为其中的无关项 𝑚10,𝑚11,𝑚12m10​,m11​,m12​ 为 1,而无关项 𝑚13,𝑚14,𝑚15m13​,m14​,m15​ 为 0,则可将 𝑚2,𝑚10,𝑚6m2​,m10​,m6​ 和 𝑚4m4​ 合并为 𝐵𝐷′BD′,将 𝑚10,𝑚6,𝑚11m10​,m6​,m11​ 和 𝑚2m2​ 合并为 𝐴𝐷′AD′,将 𝑚11,𝑚2,𝑚13m11​,m2​,m13​ 和 𝑚4m4​ 合并为 𝐶𝐷′CD′,于是得到:

𝑌=𝐵𝐷′+𝐴𝐷′+𝐶𝐷′Y=BD′+AD′+CD′

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏驰和徐策

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

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

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

打赏作者

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

抵扣说明:

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

余额充值