Note
本章讨论组合逻辑电路:输出只由当前输入决定,不依赖过去状态。学习主线是“功能定义 → 真值表 → 布尔表达式 → 门电路/标准 IC → 实际应用与时序问题”。文中保留教材全部 Worked Example(例题)及原图,并将图题改为中文。
本章导航
- 6.1 半加器与全加器
- 6.2 并行二进制加法器
- 6.3 逐位进位与超前进位
- 6.4 比较器
- 6.5 译码器
- 6.6 编码器
- 6.7 代码转换器
- 6.8 多路复用器(数据选择器)
- 6.9 解复用器(数据分配器)
- 6.10 奇偶校验发生器/检查器
- 6.11 译码器毛刺与排障
- 交通信号控制器综合案例
- 自测题
Success
先记住三条主线:加法器处理“数值运算”;译码器/编码器处理“代码与符号”;MUX/DEMUX 处理“数据路由”。比较器判断关系,奇偶校验检测传输错误。
6.1 半加器与全加器
半加器:两个位相加
半加器(Half-Adder,HA)只有两个输入 A、B,输出和位 Σ 与进位 。二进制加法规则是:
| A | B | 和 Σ | 进位 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
因此:
也就是说,XOR 负责“不同则 1”的和位,AND 负责“同时为 1”的进位。半加器不能接收来自低位的输入进位。

图 6-2:半加器由 XOR 产生和位、AND 产生输出进位。
全加器:把输入进位也加进去
全加器(Full-Adder,FA)有 A、B、 三个输入,输出 Σ 和 。它相当于“两个半加器 + 一个 OR 门”:
| A | B | Σ | ||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |

图 6-3:全加器逻辑符号。

图 6-4(a):两个 XOR 串联形成三位相加的和位。

图 6-4(b):全加器完整逻辑(阴影区域分别是半加器)。

图 6-5:两个半加器的级联结构。
Worked Example 6-1:判断三个全加器的输出
- (a) A=1,B=0,:,所以 Σ=1,。
- (b) A=1,B=1,:,所以 Σ=0,。
- (c) A=1,B=0,:,所以 Σ=0,。

图 6-6:例 6-1 的三个全加器输入。
Warning
常见误区:把全加器的 Σ 当成 OR。Σ 是三个输入的奇偶和(XOR),而 才表示“至少两项为 1”。
6.2 并行二进制加法器
要相加 n 位二进制数,需要 n 个全加器。最低位没有外部进位,可使用半加器,或将最低位全加器的 接地。每一级的 接到左侧更高位级的 ,形成并行加法器。

图 6-7 前置说明:处理器对操作数执行加法。

图 6-7:由两个全加器组成的 2 位并行加法器。
Worked Example 6-2:3 位并行加法器
计算 :从最低位开始,依次得到:
- ,向高位进 1;
- ,继续进 1;
- ,最高位产生进 1。
因此结果为 。

图 6-8:例 6-2 的 3 位并行加法及中间进位。
4 位加法器与级联
4 位加法器常用芯片 74HC283/74LS283。符号中的 是最低位输入进位, 是最高位输出进位,Σ1~Σ4 是和输出。两个 4 位加法器级联即可得到 8 位加法器,四个则可得到 16 位加法器。

图 6-9(a):4 位并行加法器框图。

图 6-9(b):4 位并行加法器逻辑符号。

图 6-10(a):74HC283/74LS283 引脚图。

图 6-10(b):74HC283/74LS283 逻辑符号。
Worked Example 6-3:用真值表相加 1100 与 1100
最低两位先得到 Σ1=0、Σ2=0,第三位 得 Σ3=0 且 ,第四位 得 Σ4=1 且 。所以:
Worked Example 6-4:两个 74HC283 构成 8 位加法器
低位芯片处理 A1~A4 与 B1~B4,高位芯片处理 A5~A8 与 B5~B8;低位芯片的进位输出连接高位芯片的进位输入,低位 接地。题给:
逐位相加得到:

图 6-11:两片 4 位加法器级联成 8 位加法器。

图 6-12:例 6-4 的两片 74HC283 连接与引脚号。
应用:投票计数器
每个全加器把最多三张“赞成/反对”票相加,再将 Σ 与进位送入并行加法器,最后通过 BCD—七段译码器显示票数。

图 6-13:用全加器和并行加法器实现投票计数。
6.3 逐位进位与超前进位
逐位进位(Ripple Carry)
逐位进位加法器把前一级 直接接到后一级 。最坏情况下,最低位进位必须依次穿过全部级,延迟约为各级进位传播延迟之和。

图 6-14:4 位逐位进位加法器的最坏传播延迟。
超前进位(Look-Ahead Carry)
定义:
由此可直接展开各级进位,例如:
超前进位用更多门电路换取更短延迟。74HC283 内部采用超前进位;多片级联时,芯片内部是超前进位,而芯片之间仍表现为逐位进位。

图 6-15:进位产生与进位传播条件。

图 6-16:4 位加法器中各级的进位产生和传播。

图 6-17:4 级超前进位加法器逻辑图。
6.4 比较器
相等比较
XNOR 在输入相等时输出 1,因此可比较一位。比较多位数时,每一位使用一个 XNOR,所有 XNOR 输出再送入 AND: