学习 › 第 3 讲
真值表与标准形式:Σm 和 ΠM
阅读约 8 分钟 · bitGateLab 团队
几乎所有数字设计问题都从一段文字描述开始(“当……时警报响起”),然后把它转化成真值表。下一步,就是从这张表中得出一个可以用逻辑门实现的表达式。本文将带你学习完成这一步的系统方法:最小项和最大项,与或式和或与式这两种标准形式,以及教材、模拟器和卡诺图都在使用的 Σm 和 ΠM 简写记法。
真值表的排列顺序
n 个变量共有 2n 行。各行按二进制数递增的顺序书写,第一个变量作为最高位。这样,每一行都对应一个十进制编号:在 A、B、C 的真值表中,A = 1,B = 0,C = 1 这一行是 1012 = 5。这个编号就是你要用作最小项或最大项下标的数,所以变量的顺序很重要:顺序一变,编号也跟着变。
最小项及与或式
最小项是一个包含全部变量的乘积项(AND),每个变量恰好出现一次,或者取反,或者不取反。它的写法是:在该行取值为 1 的变量不加横线,取值为 0 的变量加横线。最小项只在它自己那一行取值为 1,在其余各行都为 0。它记作 mi,其中 i 是行号。
| 行号 | A | B | C | 最小项 | 最大项 |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | m0 = ABC | M0 = A + B + C |
| 1 | 0 | 0 | 1 | m1 = ABC | M1 = A + B + C |
| 2 | 0 | 1 | 0 | m2 = ABC | M2 = A + B + C |
| 3 | 0 | 1 | 1 | m3 = ABC | M3 = A + B + C |
| 4 | 1 | 0 | 0 | m4 = ABC | M4 = A + B + C |
| 5 | 1 | 0 | 1 | m5 = ABC | M5 = A + B + C |
| 6 | 1 | 1 | 0 | m6 = ABC | M6 = A + B + C |
| 7 | 1 | 1 | 1 | m7 = ABC | M7 = A + B + C |
如果把函数值为 1 的所有行对应的最小项加(OR)起来,就得到一个恰好在这些行上取值为 1 的表达式。这就是标准与或式(与或式又称“积之和”,英文缩写为 SOP),也叫第一标准形式。用简写记法写作 F = Σm(函数值为 1 的行号列表)。
最大项及或与式
最大项是一个包含全部变量的和项(OR)。规则正好相反:在该行取值为 0 的变量不加横线,取值为 1 的变量加横线。最大项只在它自己那一行取值为 0。它记作 Mi(M 大写)。
如果把函数值为 0 的所有行对应的最大项乘(AND)起来,就得到一个恰好在这些行上为 0、在其余各行为 1 的表达式:标准或与式(POS,即“和之积”),也叫第二标准形式。写作 F = ΠM(函数值为 0 的行号列表)。
例 1:从真值表得到两种形式。一个三变量函数在第 1、3、6、7 行取值为 1。
| # | A | B | C | F |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 |
| 2 | 0 | 1 | 0 | 0 |
| 3 | 0 | 1 | 1 | 1 |
| 4 | 1 | 0 | 0 | 0 |
| 5 | 1 | 0 | 1 | 0 |
| 6 | 1 | 1 | 0 | 1 |
| 7 | 1 | 1 | 1 | 1 |
- 简写记法:F = Σm(1, 3, 6, 7) = ΠM(0, 2, 4, 5)。
- 标准与或式:F = ABC + ABC + ABC + ABC。
- 标准或与式:F = (A + B + C)(A + B + C)(A + B + C)(A + B + C)。
- 化简 SOP:ABC + ABC = AC,ABC + ABC = AB。于是 F = AC + AB。
在第 5 行(A = 1,B = 0,C = 1)验证:AC = 0,AB = 0,所以 F = 0,与真值表一致。
选哪种形式更合适?
两种形式描述的是同一个函数,但长短不同。应选项数较少的那一种:如果函数中 1 很少,Σm 更短;如果 0 很少,ΠM 更短。对于 8 行的真值表,一个只有 2 个 1 的函数,其 SOP 有 2 项,而 POS 有 6 项。
实现方式也要考虑。与或式用若干 AND 门驱动一个 OR 门来实现,这种两级结构可以直接转换成 NAND-NAND 结构。或与式用若干 OR 门驱动一个 AND 门来实现,可以转换成 NOR-NOR 结构。
例 2:从文字描述到表达式。一个水箱装有三个液位传感器:A(低位)、B(中位)和 C(高位)。水面到达某个传感器时,该传感器输出 1。当出现物理上不可能的组合,即较高的传感器有效而较低的某个传感器无效时,“液位无效”指示灯应点亮。
- 有效组合(ABC):000、100、110、111,也就是第 0、4、6、7 行。
- 指示灯在其余各行点亮:F = Σm(1, 2, 3, 5)。
- 等价写法:F = ΠM(0, 4, 6, 7)。
- 化简:m1 + m3 = AC,m1 + m5 = BC,m2 + m3 = AB。把 m1 和 m3 各用两次(重叠律),得 F = BC + AB。
检查:第 1 行(001)BC = 1;第 2 行(010)AB = 1;第 3 行(011)AB = 1;第 5 行(101)BC = 1。在 000、100、110 和 111 这几行,两项都为 0。这个结果可以读作“C 有效而 B 无效”或“B 有效而 A 无效”。
反函数
若 F = Σm(1, 3, 6, 7),则它的反函数在 F 为 0 的地方取值为 1:F = Σm(0, 2, 4, 5)。当你想得到化简后的 POS 时这很有用:先把 F 作为与或式化简,再应用德摩根定理。例如,F = AC + AB(请用第 0、2、4、5 行验证),取反后得到 F = (A + C)(A + B)。如果把它乘开:AB + AC + BC,根据共识定理它等于 AB + AC,与例 1 的结果相同。
想深入了解这些变换,请复习布尔代数;想用图形方法化简,请继续学习卡诺图。
常见错误
- 把加横线的规则弄反:在最小项中是 0 对应加横线;在最大项中则是 1 对应加横线。
- 把函数值为 1 的行写进 ΠM。ΠM 列出的是 0 所在的行,Σm 列出的是 1 所在的行。
- 真值表和表达式中变量的顺序不一致。若按 C、B、A 的顺序,第“5”行就不再是原来那一行了。
- 在标准项中漏掉一个变量。四变量的最小项一定有四个文字;如果少于四个,说明它已经被化简过,不再是标准项。
在模拟器中试一试
真值表模块可以让你逐行输入一个函数,并立即看到它的标准形式和化简后的表达式,这样你就能核对手算的每一步。
- 新建一个三输入、一输出的真值表。
- 按例 1,把第 1、3、6、7 行标为 1,其余保持为 0。
- 观察生成的 Σm 和 ΠM 表达式,并与你自己写的比较。
- 把真值表转换成电路,改变输入,确认输出与真值表一致。
- 用水箱问题重复上述步骤,验证指示灯只在不可能出现的组合下点亮。
练习
- 写出四变量函数(变量为 A、B、C、D)的最小项 m9 和最大项 M9。
答案
9 = 1001。m9 = ABCD,M9 = A + B + C + D。
- 若 F(A, B, C) = Σm(0, 1, 5),请用 ΠM 记法写出 F。
答案
F = ΠM(2, 3, 4, 6, 7)。
- 一个两变量函数只在 A 和 B 相等时取值为 1,求它的标准与或式,能化简的话请化简。
答案
F = Σm(0, 3) = AB + AB。无法再化简:它就是 XNOR。
- 写出 F(A, B, C) = Σm(1, 2, 3, 4, 5, 6, 7) 的标准或与式。
答案
它只在第 0 行为 0,所以 F = ΠM(0) = A + B + C。只需一个三输入 OR 门。