8 / 63 · 概念
从真值表到逻辑表达式:最小项、最大项、SOP、POS
分别从输出为 1 和输出为 0 的行推导同一函数,并与卡诺图记法对应。
课时内容可免费阅读,选课后可保存学习进度。
只选择真值表中的一行
固定输入顺序为 ,并令 A 为最高位。第 5 行是 ABC=101,只在这一行取 1 的乘积项为 。这种将所有变量恰好各包含一次的项称为最小项(minterm),并不是“门数最少”的意思。
若函数 在第 1、3、5、6、7 行为 1,就将这些最小项最小项 每个输入变量恰好出现一次,并且只在某一种输入组合为 1 的 AND 项。可将输出为 1 的各行最小项用 OR 合并。用 OR 连接。
这是与或式,即积之和(SOP)。标准 SOP 的每一项都包含所有变量;一般的 SOP 则可以省略部分变量。
也可从输出为 0 的行构造同一函数
只在第 2 行 ABC=010 为 0 的和项为 。选择各文字,使它们在该行都为 0。最大项最大项 每个输入变量恰好出现一次,并且只在某一种输入组合为 0 的 OR 项。将输出为 0 的各行最大项用 AND 结合。(maxterm)就是仅在某一个输入组合为 0 的 OR 项。
F 为 0 的行是 0、2、4,因此可得到以下或与式,即和之积(POS)。
Σ 和 Π 是对真值表真值表 完整列出所有可能输入组合及每种组合输出的表格。随时间的变化需要另行通过波形检查。了解更多行号集合的紧凑记法。Σm 列出输出为 1 的行,ΠM 列出输出为 0 的行。
- 输出为 1 的行: 将第 1、3、5、6、7 行的最小项 OR 起来
- 相同的 F: 为 1 的条件:C=1 或 A=B=1
- 输出为 0 的行: 将第 0、2、4 行的最大项 AND 起来
标准形式是起点,下一步才是简化
上述函数可简化为 。C=1 的四行构成一组;C=0 时剩余的 110 由 AB 覆盖。表达式中的 AB 项没有 C,因此它是 SOP,但不是标准 SOP。
下一节用卡诺图直观地找出这些组。分组时应注意哪些变量随输入变化而被消去。
实验 · 连接同一函数的三种表示
F = C + A · B
| ABC | F |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 0 |
| 011 | 1 |
| 100 | 0 |
| 101 | 1 |
| 110 | 1 |
| 111 | 1 |
上方 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,但仍必须满足其余所有行的要求。