bitGateLab Digital · 学习
中文(简体)
打开模拟器

学习 › 第 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 是行号。

行号ABC最小项最大项
0000m0 = ABCM0 = A + B + C
1001m1 = ABCM1 = A + B + C
2010m2 = ABCM2 = A + B + C
3011m3 = ABCM3 = A + B + C
4100m4 = ABCM4 = A + B + C
5101m5 = ABCM5 = A + B + C
6110m6 = ABCM6 = A + B + C
7111m7 = ABCM7 = A + B + C

如果把函数值为 1 的所有行对应的最小项加(OR)起来,就得到一个恰好在这些行上取值为 1 的表达式。这就是标准与或式(与或式又称“积之和”,英文缩写为 SOP),也叫第一标准形式。用简写记法写作 F = Σm(函数值为 1 的行号列表)。

最大项及或与式

最大项是一个包含全部变量的和项(OR)。规则正好相反:在该行取值为 0 的变量不加横线,取值为 1 的变量加横线。最大项只在它自己那一行取值为 0。它记作 Mi(M 大写)。

如果把函数值为 0 的所有行对应的最大项乘(AND)起来,就得到一个恰好在这些行上为 0、在其余各行为 1 的表达式:标准或与式(POS,即“和之积”),也叫第二标准形式。写作 F = ΠM(函数值为 0 的行号列表)。

同一行的最小项和最大项互为反:mi = Mi。因此,只要知道一个函数的 Σm 列表,它的 ΠM 列表就由所有没有出现在其中的编号组成。

例 1:从真值表得到两种形式。一个三变量函数在第 1、3、6、7 行取值为 1。

#ABCF
00000
10011
20100
30111
41000
51010
61101
71111
  1. 简写记法:F = Σm(1, 3, 6, 7) = ΠM(0, 2, 4, 5)。
  2. 标准与或式:F = ABC + ABC + ABC + ABC。
  3. 标准或与式:F = (A + B + C)(A + B + C)(A + B + C)(A + B + C)。
  4. 化简 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。当出现物理上不可能的组合,即较高的传感器有效而较低的某个传感器无效时,“液位无效”指示灯应点亮。

  1. 有效组合(ABC):000、100、110、111,也就是第 0、4、6、7 行。
  2. 指示灯在其余各行点亮:F = Σm(1, 2, 3, 5)。
  3. 等价写法:F = ΠM(0, 4, 6, 7)。
  4. 化简: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 的结果相同。

想深入了解这些变换,请复习布尔代数;想用图形方法化简,请继续学习卡诺图。

常见错误

在模拟器中试一试

真值表模块可以让你逐行输入一个函数,并立即看到它的标准形式和化简后的表达式,这样你就能核对手算的每一步。

  1. 新建一个三输入、一输出的真值表。
  2. 按例 1,把第 1、3、6、7 行标为 1,其余保持为 0。
  3. 观察生成的 Σm 和 ΠM 表达式,并与你自己写的比较。
  4. 把真值表转换成电路,改变输入,确认输出与真值表一致。
  5. 用水箱问题重复上述步骤,验证指示灯只在不可能出现的组合下点亮。

练习

  1. 写出四变量函数(变量为 A、B、C、D)的最小项 m9 和最大项 M9。
    答案

    9 = 1001。m9 = ABCD,M9 = A + B + C + D。

  2. 若 F(A, B, C) = Σm(0, 1, 5),请用 ΠM 记法写出 F。
    答案

    F = ΠM(2, 3, 4, 6, 7)。

  3. 一个两变量函数只在 A 和 B 相等时取值为 1,求它的标准与或式,能化简的话请化简。
    答案

    F = Σm(0, 3) = AB + AB。无法再化简:它就是 XNOR。

  4. 写出 F(A, B, C) = Σm(1, 2, 3, 4, 5, 6, 7) 的标准或与式。
    答案

    它只在第 0 行为 0,所以 F = ΠM(0) = A + B + C。只需一个三输入 OR 门。