💻 章节学习笔记:逻辑门

你好,未来的计算机架构师!欢迎来到驱动你身边每一台电子设备的微观世界。本章“逻辑门”是“计算机组成与架构”部分的绝对核心。

你可能觉得计算机的工作原理像魔法一样,但它们实际上是建立在层层极其简单且可靠的决策逻辑之上的。逻辑门就是这些电子构建模块——它们是执行基本布尔代数运算的微型电路。掌握了它们,就等于理解了 CPU 如何执行每一次计算、指令以及内存存储操作。让我们开始吧!

1. 数字基础:二进制与布尔逻辑

计算机利用电来运行,电信号只有两种状态:通(ON)或断(OFF)。我们使用二进制系统来表示这些状态:

  • ON 或高电压 = 1 (真/True)
  • OFF 或低电压 = 0 (假/False)

逻辑门接收一个或多个二进制输入,并根据特定的逻辑规则产生单个二进制输出。

关键概念:布尔代数

布尔代数是逻辑的数学基础。它只处理真 (1) 和假 (0)。每一个逻辑门都直接对应一个布尔运算符。

什么是真值表?

真值表至关重要。它是一种数学表格,用于计算并展示逻辑电路在所有可能的输入组合(A, B 等)下的输出结果 (Q)。

快速复习:前置检查
如果你有 N 个输入,真值表中就会有 \(2^N\) 种可能的组合。例如,2 个输入(A 和 B)意味着有 \(2^2 = 4\) 行。

2. 三种核心逻辑门

这三种门构成了所有数字电子技术的基础。

2.1. AND 门(与门)

AND 门仅在所有输入均为 1 时产生输出 1(真)。

  • 布尔表达式: \(Q = A \cdot B\)(读作“A 与 B”)
  • 符号: “D”形符号。(参考大纲图 3.7.6)
  • 类比: 银行金库需要同时转动两把钥匙(A 和 B)。只有当钥匙 A 和钥匙 B 同时使用时,金库才会打开(Q=1)。

AND 门真值表(2 个输入)

输入 A | 输入 B | 输出 Q
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

2.2. OR 门(或门)

OR 门只要至少有一个输入为 1,就会产生输出 1(真)。

  • 布尔表达式: \(Q = A + B\)(读作“A 或 B”)
  • 符号: 弧形符号。(参考大纲图 3.7.6)
  • 类比: 房间的灯有两个开关(A 和 B)。如果按下开关 A 或者开关 B,灯就会亮起(Q=1)。

OR 门真值表(2 个输入)

输入 A | 输入 B | 输出 Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

2.3. NOT 门(非门 / 反相器)

NOT 门只接受一个输入,并简单地将其反转(将 0 变为 1,或将 1 变为 0)。

  • 布尔表达式: \(Q = \bar{A}\)(读作“非 A”或“A 的反”)
  • 符号: 一个三角形,输出端带有一个小圆圈(“气泡”)。(参考大纲图 3.7.6)
  • 类比: 这是一个“反向”开关。如果输入为激活状态 (1),输出则为非激活状态 (0)。

NOT 门真值表(1 个输入)

输入 A | 输出 Q
0 | 1
1 | 0


核心要点: 小圆圈(气泡)始终代表反转非 (NOT) 逻辑。你在其他逻辑门中也会看到它!

3. 衍生逻辑门

这些门是通过组合核心逻辑门创建的,但由于它们非常常用,因此拥有自己独立的符号和规则。

3.1. XOR 门(异或门)

XOR 门在输入不同时产生输出 1(真),如果输入相同(全为 0 或全为 1),则输出 0。

  • 布尔表达式: \(Q = A \oplus B\)(读作“A 异或 B”)
  • 符号: 类似于 OR 门,但在输入端多了一条弧线。(参考大纲图 3.7.6)
  • 类比: 解释 XOR 最好的例子是双向走廊的灯控系统。如果只按了 A 或者只按了 B,灯的状态就会改变(Q=1)。如果两个都按了,状态不变(Q=0)。

XOR 门真值表(2 个输入)

输入 A | 输入 B | 输出 Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

3.2. NAND 门(与非门)

NAND 门就是一个 AND 门后面跟着一个 NOT 门。它的输出是 AND 输出的反转

  • 布尔表达式: \(Q = \overline{A \cdot B}\)
  • 符号: AND 符号加一个输出气泡。(参考大纲图 3.7.6)

NAND 门真值表(2 个输入)

输入 A | 输入 B | 输出 Q
0 | 0 | 1
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

常见误区: NAND 常被称为通用门,因为任何其他逻辑门(AND、OR、NOT)都可以仅用 NAND 门构建。虽然这很有趣,但复习时重点应放在记住 NAND 是 AND 的取反,从而快速构建其真值表。
3.3. NOR 门(或非门)

NOR 门就是一个 OR 门后面跟着一个 NOT 门。它的输出是 OR 输出的反转

  • 布尔表达式: \(Q = \overline{A + B}\)
  • 符号: OR 符号加一个输出气泡。(参考大纲图 3.7.6)

NOR 门真值表(2 个输入)

输入 A | 输入 B | 输出 Q
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0
1 | 1 | 0


4. 理解并绘制逻辑电路

本主题的核心技能是在三种表现形式之间进行转换:布尔表达式逻辑图真值表

4.1. 从电路图写出布尔表达式

从左侧的输入端开始,一步步向右推进,直到到达最终输出 Q。

电路示例(A 和 B 是 AND 门的输入,C 是 NOT 门的输入。两个门的输出共同进入一个 OR 门)。

第 1 步: 确定第一个门(AND)的输出: \(X = A \cdot B\)
第 2 步: 确定第二个门(NOT)的输出: \(Y = \bar{C}\)
第 3 步: 最终门(OR)接收 X 和 Y 作为输入: \(Q = X + Y\)
最终布尔表达式: \(Q = (A \cdot B) + \bar{C}\)

4.2. 为复杂电路补全真值表

对于复杂电路,在真值表中创建中间列,分别对应每个内部门的输出。这可以将问题分解为易于处理的步骤!

对于电路 \(Q = (A \cdot B) + \bar{C}\)(有 3 个输入,所以共有 \(2^3=8\) 行):

  • 第 1, 2, 3 列:输入 A, B, C(所有 8 种组合)。
  • 第 4 列:中间值 X (A AND B 的输出)。
  • 第 5 列:中间值 Y (NOT C 的输出)。
  • 第 6 列:最终值 Q (X OR Y 的输出)。

步骤详解: 对于输入行 A=1, B=0, C=1:

  1. X = A AND B = 1 AND 0 = 0
  2. Y = NOT C = NOT 1 = 0
  3. Q = X OR Y = 0 OR 0 = 0

记忆助手: 始终在真值表中绘制对应布尔表达式中括号内部的中间列。

5. 逻辑的应用:算术与存储

逻辑门不仅仅是理论;它们是处理器内部算术逻辑单元 (ALU) 的基本组件。

5.1. 半加器 (Half-Adder)

半加器是一个将两个单二进制位(A 和 B)相加的电路。由于 \(1+1 = 10_2\),我们需要两个输出:和 (Sum, S)进位 (Carry, C)

  • 输入: A 和 B(两个相加的位)。
  • 输出: 和 (S) 和 进位 (C)。

逻辑与构建:

1. 当且仅当 A 和 B 不同时,和 (S) 为 1。这正是 XOR 门的定义!
S = \(A \oplus B\)

2. 当且仅当 A 和 B 都为 1 时,进位 (C) 为 1(因为 $1+1$ 会产生进位)。这正是 AND 门的定义!
C = \(A \cdot B\)

构建半加器电路,你需要画一个 XOR 门和一个 AND 门,两者都以 A 和 B 为输入,其中 XOR 的输出为 S,AND 的输出为 C。

5.2. 全加器 (Full-Adder)

进行多位二进制加法时,需要包含来自前一位的进位。全加器执行三个输入的加法:

  • 输入 A、输入 B(两个被加的位)
  • 进位输入 ($C_{in}$)(来自前一位加法的进位)

输出依然是和 (S) 和进位输出 ($C_{out}$)。

(你必须能够识别和推导全加器的逻辑,但不需要手动构建它。)


冷知识: 8 位计算机使用 8 个串联起来的全加器电路来计算 8 位二进制数的和!这种结构称为行波进位加法器 (Ripple-carry adder)

5.3. 边沿触发 D 型触发器 (D-Type Flip-Flop)(存储单元)

逻辑门不仅用于计算,还用于构建存储器。D 型触发器是我们必须理解的最简单的时序逻辑(存储)电路。

它被称为 1 位存储单元,因为它正好可以存储一位(0 或 1)。

关键组件与操作:

  • 数据输入 (D): 你想要存储的位(0 或 1)。
  • 时钟输入 (CLK): 该输入决定了何时存储数据。
  • 输出 (Q): 存储的值。

边沿触发机制:

D 型触发器是边沿触发 (Edge-triggered) 的,这意味着它仅在时钟信号改变状态的瞬间(例如从 0 变为 1,称为上升沿)才会处理数据输入 (D)。

  1. 时钟信号变高(例如上升沿)。
  2. 读取数据输入 (D) 的当前状态并立即在内部存储。
  3. 这个存储的值会在输出 Q 上显示。
  4. 无论数据输入 (D) 发生什么变化,输出 Q 始终保持不变,直到下一次时钟信号变高。

把它想象成一台相机:数据输入就是场景,时钟信号就是快门按钮。相机只在按下按钮的那一瞬间捕捉场景;在再次按下按钮之前,存储的照片内容不会改变。


✔ 章节总结:逻辑门

你已经看到了简单的二进制决策是如何转化为 CPU 和内存核心组件的。请记住:

  • 六种逻辑门(AND、OR、NOT、XOR、NAND、NOR)定义了所有基础数字逻辑。
  • 使用真值表来系统地推导任何电路的输出。
  • 半加器使用 XOR 计算和 (Sum),使用 AND 计算进位 (Carry)。
  • D 型触发器是由时钟信号控制的存储单元,它在时钟边沿瞬间捕获数据输入,并保持该值不变直到下一个时钟边沿。

不断练习布尔表达式、电路图和真值表之间的转换——这是考试成功的关键!