4529 字
23 分钟
ECE2050-Chapter5
2025-08-24

好的,我们来将这份关于“组合逻辑设计”的PPT演示文稿,转换成一份详尽的中文自学讲义。讲义将包含PPT中的所有核心内容,并补充必要的解释和背景知识,帮助您更好地理解。


自学讲义:ECE 2050 数字逻辑与系统#

第五章:组合逻辑设计#

授课教师: 郑玥博士 (Yue ZHENG, Ph.D.) 学校: 香港中文大学(深圳)


第一部分:上周内容回顾#

在深入学习本章之前,我们首先回顾一下上周涉及的关键概念。这些是理解组合逻辑设计的基础:

  • 组合电路 (Combinational Circuits): 电路的输出仅由其当前的输入值决定,不依赖于过去的状态。它没有记忆功能。
  • 布尔方程 (Boolean Equations): 使用变量和逻辑运算符(与、或、非)来描述电路逻辑关系的数学表达式。
  • 公理与定理 (Axioms & Theorems): 布尔代数的基本规则。
    • 交换律 (Commutative laws): A + B = B + AA · B = B · A
    • 结合律 (Associative laws): (A + B) + C = A + (B + C)(A · B) · C = A · (B · C)
    • 分配律 (Distributive law): A · (B + C) = A · B + A · C
    • 布尔代数基本规则 (Rules of Boolean Algebra):A + 0 = A, A · 1 = A, A + A' = 1 等。
    • 德摩根定律 (DeMorgan’s Theorems): (A + B)' = A' · B'(A · B)' = A' + B'。这是数字逻辑中非常重要的一个定理。
  • 化简布尔方程 (Simplifying Equations): 使用布尔代数的公理和定理来简化复杂的逻辑表达式,从而使用更少的逻辑门实现相同的功能,降低成本和复杂性。
  • SOP和POS (SOP and POS):
    • SOP (Sum of Products) - 积之和: 将多个“与”项(乘积项)通过“或”运算连接起来的形式。例如:Y = AB + A'C
    • POS (Product of Sums) - 和之积: 将多个“或”项(求和项)通过“与”运算连接起来的形式。例如:Y = (A + B) · (A' + C)
  • 卡诺图 (Karnaugh Maps): 一种图形化的方法,用于简化布尔表达式,尤其适用于3到5个变量的情况。
  • 无关项 (Don’t Cares): 在某些输入组合下,输出是无关紧要的(可以是0也可以是1)。在用卡诺图化简时,我们可以利用无关项来获得更简洁的表达式。

第二部分:基本组合逻辑电路#

本部分我们将学习几种由基本逻辑门构成的标准电路结构。

2.1 与或逻辑 (AND-OR Logic)#

与或逻辑是最基础、最直接的组合逻辑形式之一。

  • 结构: 它是一个两级逻辑结构,第一级是多个 与门(AND),第二级是一个 或门(OR)
  • 功能: 这种结构直接实现了 SOP (积之和) 形式的布尔表达式。每一个与门对应一个乘积项,或门将这些乘积项相加。
  • 示例: Y = A'B'C' + A'BC' + ABC'
    • 这个表达式有三个乘积项(minterm):A'B'C', A'BC', 和 ABC'
    • 在电路实现中,我们需要三个三输入的与门来分别实现这三个乘积项。
    • 然后,将这三个与门的输出连接到一个三输入的或门,最终得到输出 Y。

2.2 与或逻辑实例:液位监控电路#

  • 问题描述: 有三个化学储罐(A, B, C),每个储罐都配有一个液位传感器。当液位低于某个特定点时,传感器输出 高电平 (HIGH/1)。请设计一个电路,当 任意两个 储罐的液位低于特定点时,点亮一个低液位指示灯。

  • 设计思路:

    1. 定义输入和输出:
      • 输入: A, B, C (来自三个传感器的信号)。1表示液位低。
      • 输出: Y (低液位指示灯)。1表示点亮。
    2. 构建真值表: 我们需要找出所有满足“任意两个或三个储罐液位低”的输入组合。 | A | B | C | Y (指示灯) | 说明 | | :--- | :--- | :--- | :--- | :---------------------------------- | | 0 | 0 | 0 | 0 | 0个储罐液位低 | | 0 | 0 | 1 | 0 | 1个储罐液位低 | | 0 | 1 | 0 | 0 | 1个储罐液位低 | | 0 | 1 | 1 | 1 | A和B液位低 | | 1 | 0 | 0 | 0 | 1个储罐液位低 | | 1 | 0 | 1 | 1 | A和C液位低 | | 1 | 1 | 0 | 1 | B和C液位低 | | 1 | 1 | 1 | 1 | 三个储罐液位低 |
    3. 写出SOP表达式: 从真值表中找出所有 Y=1 的行,写出对应的乘积项并相加。 Y = A'BC + AB'C + ABC' + ABC
    4. 化简表达式 (可选,但推荐): 使用布尔代数或卡诺图可以化简此表达式: Y = BC(A' + A) + AC(B' + B) + AB(C' + C) … (重复项) 更简单的化简:Y = BC + AC + AB
    5. 绘制电路图: 根据化简后的表达式 Y = AB + AC + BC,我们可以用三个双输入与门和一个三输入或门来实现该电路。

2.3 与或非逻辑 (AND-OR-Invert Logic)#

这是一种与“与或逻辑”密切相关的结构,在集成电路设计中非常常见。

  • 结构: 在一个标准的“与或逻辑”电路的输出端增加一个 非门(Inverter)
  • 功能: 它实现了对SOP表达式的“取反”操作。根据德摩根定律,这个结果等效于一个 POS (和之积) 形式。
  • 示例: Y = (AB + CD)'
    • 电路首先通过两个与门计算 ABCD
    • 然后通过一个或门计算 AB + CD
    • 最后通过一个非门得到最终结果 Y = (AB + CD)'
    • 根据德摩根定律,Y = (AB)' · (CD)' = (A' + B') · (C' + D')。这个最终形式就是一个POS形式,说明了与或非逻辑与POS形式的内在联系。

2.4 异或 (Exclusive-OR / XOR) 逻辑#

异或门是一种非常有用的基本逻辑门。

  • 功能: 当两个输入 不相同时,输出为1;当两个输入 相同时,输出为0。可以理解为“不同为1,相同为0”。
  • 布尔表达式: X = A'B + AB'
  • 符号: X = A ⊕ B
  • 真值表: | A | B | X | | :--- | :--- | :--- | | 0 | 0 | 0 | | 0 | 1 | 1 | | 1 | 0 | 1 | | 1 | 1 | 0 |

2.5 同或 (Exclusive-NOR / XNOR) 逻辑#

同或逻辑与异或逻辑正好相反。

  • 功能: 当两个输入 相同时,输出为1;当两个输入 不相同时,输出为0。可以理解为“相同为1,不同为0”,因此也叫“等价门”。
  • 布尔表达式: X = AB + A'B'
  • 推导: 它是异或的取反,即 X = (A ⊕ B)' = (A'B + AB')'
    • 使用德摩根定律: (A'B)' · (AB')' = (A + B') · (A' + B)
    • 展开: AA' + AB + B'A' + B'B = 0 + AB + A'B' + 0 = AB + A'B'
  • 真值表: | A | B | X | | :--- | :--- | :--- | | 0 | 0 | 1 | | 0 | 1 | 0 | | 1 | 0 | 0 | | 1 | 1 | 1 |

第三部分:奇偶校验码 (Parity Codes)#

奇偶校验是一种简单的数据错误检测技术。

3.1 偶校验 (Even Parity)#

偶校验的规则是:为一个给定的数据位串(data bits)附加一个 校验位(parity bit),使得整个码字(数据位+校验位)中”1”的总数是 偶数

  • 2位偶校验:
    • 数据位: A, B
    • 校验位: X
    • 规则: 如果 A 和 B 中”1”的个数是奇数,则 X=1;如果是偶数,则 X=0。
    • 观察真值表可以发现,这与 异或(XOR) 门的逻辑完全相同。X = A ⊕ B

3.2 3位偶校验码生成器#

对于一个3位的数据码(A, B, C),偶校验位的生成逻辑是所有数据位的异或。

  • 表达式: X = A ⊕ B ⊕ C
  • 电路实现: 可以通过串联两个异或门来实现。第一个门计算 A ⊕ B,其结果再与 C 进行异或。

3.3 4位及更多位的偶校验#

这个原理可以推广到任意位数。一个n位数据的偶校验位 P 是所有数据位 A₀, A₁, ..., Aₙ₋₁ 的异或总和。 P = A₀ ⊕ A₁ ⊕ ... ⊕ Aₙ₋₁

3.4 偶校验检验器 (Parity Checker)#

接收端如何使用校验位来检测错误?

  • 原理: 将接收到的所有位(包括数据位和校验位)全部进行异或运算。
  • 无错误: 如果没有发生错误,接收到的码字中”1”的个数应为偶数,因此所有位的异或结果将是 0
  • 有错误: 如果在传输过程中有一个位发生了翻转(0变1或1变0),则”1”的总数将变为奇数,所有位的异或结果将是 1,表示检测到错误。
  • 电路: 一个n位数据+1位校验位的检验器,就是一个 (n+1) 输入的异或电路。其输出为1时,表示有错误。

注意: 奇偶校验只能检测到奇数个位的错误。如果同时有两个位发生错误,它将无法检测出来。


第四部分:组合电路的实现与化简#

4.1 从表达式到电路#

这是一个直接的翻译过程。

  • 示例: X = AB + CDE
    1. AB 对应一个双输入与门。
    2. CDE 对应一个三输入与门。
    3. 中间的 + 对应一个或门,将上述两个与门的输出连接起来。

4.2 从真值表到电路#

这是一个标准的SOP设计流程。

  1. 在真值表中找出所有输出为1的行。
  2. 为每一行写出其对应的 最小项(minterm),即一个包含了所有输入变量的乘积项。
  3. 将所有这些最小项用“或”运算连接起来,就得到了电路的SOP表达式。
  4. 根据SOP表达式画出“与或逻辑”电路。

4.3 化简实例#

实例1: “恰好三个1”检测电路

  • 问题: 设计一个四输入电路,当且仅当输入中恰好有三个为1时,输出为1。
  • 解法:
    1. 列出所有满足条件的输入组合: (0,1,1,1), (1,0,1,1), (1,1,0,1), (1,1,1,0)。
    2. 写出对应的SOP表达式: X = A'BCD + AB'CD + ABC'D + ABCD'
    3. 这个表达式已经是最简SOP形式,无法再用卡诺图或布尔代数化简。
    4. 根据表达式画出电路图:四个四输入与门和一个四输入或门。

实例2 & 3: 电路化简

  • 重要提示: PPT第18、19页的示例中,电路图、布尔表达式和卡诺图之间存在 不一致。这在教学材料中偶有发生。作为一个好的学习者,关键是掌握化简的方法,而不是死记硬背某个错误的例子。

  • 正确的化简流程:

    1. 从电路图推导表达式: 仔细分析给定的电路图,写出其对应的原始布尔表达式。
    2. 化简表达式:
      • 代数化简法: 应用布尔代数公理和定理,如 A+AB=AA+A'=1 等,一步步消去多余的项和变量。
      • 卡诺图法: 将表达式填入卡诺图,通过圈出相邻的“1”(或无关项“X”)来找到最简的积之和(SOP)或和之积(POS)形式。
    3. 画出最简电路: 根据化简后的表达式,绘制新的、更简单的电路图。

4.4 实例4:优先电路 (Priority Circuit)#

  • 功能: 优先电路有多个输入,但只响应 优先级最高 的有效输入。
  • 示例: 一个4输入优先电路 (A₃, A₂, A₁, A₀),其中A₃优先级最高,A₀最低。输出Y₃, Y₂, Y₁, Y₀表示哪个输入被响应。
  • 逻辑:
    • 如果 A₃=1,则输出响应A₃ (Y₃=1),并忽略其他所有输入。
    • 如果 A₃=0 且 A₂=1,则输出响应A₂ (Y₂=1),并忽略A₁和A₀。
    • 以此类推。
  • 利用无关项化简:
    • Y₃ 的逻辑很简单:Y₃ = A₃
    • Y₂ 的逻辑是:A₂必须为1,且所有比它优先级高的输入(即A₃)必须为0。所以 Y₂ = A₃'A₂
    • Y₁ 的逻辑是:A₁为1,且A₃和A₂都为0。所以 Y₁ = A₃'A₂'A₁
    • Y₀ 的逻辑是:A₀为1,且A₃, A₂, A₁都为0。所以 Y₀ = A₃'A₂'A₁'A₀
    • 在构建真值表时,例如,只要A₃=1,A₂, A₁, A₀的值就是 无关项 (Don’t Cares),这可以极大地简化电路设计。

第五部分:与非门和或非门的通用性 (Universal Property)#

“通用性”意味着仅使用一种逻辑门(与非门或或非门),就可以实现所有的基本逻辑功能(与、或、非)。

5.1 与非门 (NAND) 的通用性#

  • 实现 非 (NOT): 将与非门的两个输入连在一起。 (A · A)' = A'
  • 实现 与 (AND): 在一个与非门的输出端再接一个与非门(作为反相器)。((A · B)')' = A · B
  • 实现 或 (OR): 使用德摩根定律。(A' · B')' = A'' + B'' = A + B。电路实现为:先用两个与非门分别得到A’和B’,再将它们输入到第三个与非门。
  • 实现 或非 (NOR): 在上述“或”电路的输出端再加一个与非门(作为反相器)。

5.2 或非门 (NOR) 的通用性#

  • 实现 非 (NOT): 将或非门的两个输入连在一起。(A + A)' = A'
  • 实现 或 (OR): 在一个或非门的输出端再接一个或非门(作为反相器)。((A + B)')' = A + B
  • 实现 与 (AND): 使用德摩根定律。(A' + B')' = A'' · B'' = A · B。电路实现为:先用两个或非门分别得到A’和B’,再将它们输入到第三个或非门。
  • 实现 与非 (NAND): 在上述“与”电路的输出端再加一个或非门(作为反相器)。

第六部分:气泡推演 (Bubble Pushing)#

这是一种基于德摩根定律的图形化技巧,用于分析和转换电路图,使其逻辑功能更清晰。

  • 核心思想 (德摩根定律的图形化):

    • 一个 与非门 (NAND) 等价于一个 输入端带反相的或门 (Negative-OR)(AB)' = A' + B'
    • 一个 或非门 (NOR) 等价于一个 输入端带反相的与门 (Negative-AND)(A + B)' = A' · B'
    • “气泡” (bubble) 代表反相(非)操作。
  • 推演规则:

    • 向后推 (Backward): 将一个门输出端的气泡向后推到下一级门的输入端。这样做的时候,需要改变下一级门的类型(与↔或)。
    • 向前推 (Forward): 将一个门所有输入端的气泡向前推,汇集到该门的输出端。这样做的时候,也需要改变门的类型(与↔或)。
  • 目的: 通过移动和匹配气泡,使得电路中的气泡能够相互抵消(一个门的输出气泡正好接到下一个门的输入气泡上),从而让电路的逻辑路径(通常是与或或与的结构)变得清晰易读。

示例分析 (PPT第29页):

  1. 原始电路: 两个与非门 (NAND) 的输出,连接到一个输入端带反相的或非门 (Negative-input NOR) 的输入端。
  2. 分析最终门: 一个输入端带反相的或非门,根据德摩根定律,等价于一个 与门 (AND)(A' + B')' = A · B
  3. 使用气泡推演:
    • 将最终门的两个输入气泡向前推,穿过这个门。
    • 门类型从“或非”变为“与非”。
    • 输入气泡消失,输出端出现一个气泡。这个等效变换本身比较复杂。
    • 更简单的方法是直接替换:将最终的“输入反相的或非门”直接替换成它的等效门“与门”。
  4. 简化后的电路: 两个与非门 (NAND) 的输出直接连接到一个与门 (AND) 的输入端。
  5. 读取逻辑表达式: Y = (AB)' · (CD)'

第七部分:章节复习#

  • 基本组合逻辑电路: 学习了与或、与或非、异或、同或逻辑的结构和功能。
  • 通用性: 与非门和或非门都是通用门,可以构建任何逻辑函数。
  • 对偶符号 (Dual Symbols): 基于德摩根定律,任何门都有一个等效的对偶表示形式(例如,NAND ↔ Negative-OR),这是气泡推演的基础。

第八部分:是非题测验 (附答案与解析)#

  1. 与或逻辑只能有两个双输入与门。

    • 错误 (False)。 与或逻辑可以有任意数量的与门,每个与门的输入也可以是任意数量,这取决于需要实现的SOP表达式。
  2. AOI是AND-OR-Invert的缩写。

    • 正确 (True)。 这是该电路结构的通用缩写。
  3. 如果一个异或门的输入相同,则输出为低电平(0)。

    • 正确 (True)。 异或的定义就是“相同为0,不同为1”。 0⊕0=0, 1⊕1=0
  4. 如果一个同或门的输入不同,则输出为高电平(1)。

    • 错误 (False)。 同或的定义是“相同为1,不同为0”。输入不同时,输出应为低电平(0)。
  5. 奇偶校验码生成器不能用异或门实现。

    • 错误 (False)。 奇偶校验生成器恰恰是异或门最经典的应用之一。
  6. 与非门可以用来实现与门的功能。

    • 正确 (True)。 使用两个与非门即可实现一个与门。
  7. 或非门不能用来实现或门的功能。

    • 错误 (False)。 使用两个或非门即可实现一个或门。
  8. 任何SOP表达式都可以只用与非门来实现。

    • 正确 (True)。 因为与、或、非这三种基本运算都可以由与非门实现,所以任何由它们组成的逻辑表达式(如SOP)都可以只用与非门实现。
  9. 一个与非门的对偶符号是一个输入反相的与门。

    • 错误 (False)。 与非门 (AB)' 的对偶符号是输入反相的 或门 (Negative-OR) A' + B'
  10. 输入反相的或门等价于与非门。

    • 正确 (True)。 这就是德摩根定律 A' + B' = (AB)' 的直接描述。
ECE2050-Chapter5
https://chr0mium.link/posts/ece2050-chapter5/
作者
Cr
发布于
2025-08-24
许可协议
CC BY-NC-SA 4.0