Altifigence Academy

8 / 63 · 概念

从真值表到逻辑表达式:最小项、最大项、SOP、POS

分别从输出为 1 和输出为 0 的行推导同一函数,并与卡诺图记法对应。

只选择真值表中的一行

固定输入顺序为 A,B,CA,B,C,并令 A 为最高位。第 5 行是 ABC=101,只在这一行取 1 的乘积项为 m5=AB‾Cm_5=A\overline B C。这种将所有变量恰好各包含一次的项称为最小项(minterm),并不是“门数最少”的意思。

若函数 FF 在第 1、3、5、6、7 行为 1,就将这些最小项最小项 每个输入变量恰好出现一次,并且只在某一种输入组合为 1 的 AND 项。可将输出为 1 的各行最小项用 OR 合并。用 OR 连接。

F=Σm(1,3,5,6,7)=A‾B‾C+A‾BC+AB‾C+ABC‾+ABCF=\Sigma m(1,3,5,6,7)=\overline A\overline B C+\overline A B C+A\overline B C+AB\overline C+ABC

这是与或式,即积之和(SOP)。标准 SOP 的每一项都包含所有变量;一般的 SOP 则可以省略部分变量。

也可从输出为 0 的行构造同一函数

只在第 2 行 ABC=010 为 0 的和项为 M2=A+B‾+CM_2=A+\overline B+C。选择各文字,使它们在该行都为 0。最大项最大项 每个输入变量恰好出现一次,并且只在某一种输入组合为 0 的 OR 项。将输出为 0 的各行最大项用 AND 结合。(maxterm)就是仅在某一个输入组合为 0 的 OR 项。

F 为 0 的行是 0、2、4,因此可得到以下或与式,即和之积(POS)。

F=ΠM(0,2,4)=(A+B+C)(A+B‾+C)(A‾+B+C)F=\Pi M(0,2,4)=(A+B+C)(A+\overline B+C)(\overline A+B+C)

Σ 和 Π 是对真值表真值表 完整列出所有可能输入组合及每种组合输出的表格。随时间的变化需要另行通过波形检查。了解更多行号集合的紧凑记法。Σm 列出输出为 1 的行,ΠM 列出输出为 0 的行。

从同一真值表构造两种表达式
  1. 输出为 1 的行: 将第 1、3、5、6、7 行的最小项 OR 起来
  2. 相同的 F: 为 1 的条件:C=1 或 A=B=1
  3. 输出为 0 的行: 将第 0、2、4 行的最大项 AND 起来

标准形式是起点,下一步才是简化

上述函数可简化为 F=C+ABF=C+AB。C=1 的四行构成一组;C=0 时剩余的 110 由 AB 覆盖。表达式中的 AB 项没有 C,因此它是 SOP,但不是标准 SOP。

下一节用卡诺图直观地找出这些组。分组时应注意哪些变量随输入变化而被消去。

实验 · 连接同一函数的三种表示

真值表行、标准形式与简化表达式

F = C + A · B

三输入真值表 · X 表示规格未指定的输出
ABCF
0000
0011
0100
0111
1000
1011
1101
1111

上方 A、B、C 按钮只改变正在观察的输入;图中的 0、1、X 按钮则改变函数规格本身。请区分这两种操作。虚线标示当前输入,蓝色边框标示所选乘积项覆盖的单元格。

在初始函数中设置 ABC=110,可得到 F=1,因为即使 C=0,AB 项仍为 1。交替点击下方的 C 组与 A·B 组,确认 m7 同时属于两组。将重叠单元格包含两次,不会改变 OR 的结果。

现在点击 m6 的输出两次,使其从 1 → X → 0。最终函数只需用 C 表示。Σm 中应删除 6,ΠM 中应增加 6。中间的 X 状态表示规格不要求该行的输出值。若该输入可能出现且输出已规定,就不能为了降低成本而随意改成 X。

Σm 表示必须为 1 的行,ΠM 表示必须为 0 的行,d 表示无关行集合。若 d 非空,仅凭 Σm 或 ΠM 其中之一就不能指定完整真值表。实验中的“最小 SOP”是先最小化乘积项数、再最小化文字数所得表达式之一,并不意味着它使实际门面积最小。

自己试试

在 F=C+AB 中,若只把 m6 的要求由 1 改为 0,表达式会变成什么?这与把 m6 改为 X 在规格上有什么区别?

阅读解释

F=C。m6=0 要求在该输入下一定输出 0;m6=X 则允许该行输出 0 或 1,但仍必须满足其余所有行的要求。

你的选择适用于此浏览器,可随时在页脚更改。