贵州电子信息职业技术学院实训中心电工电子与控制 · 虚拟仿真

3 位二进制加法器

搭建完整的 3 位加法器,理解全加器、进位传播和二进制算术。

交互式仿真

本地工程状态

原作者完整工程已本地恢复;实际验证范围见交付清单。原远程交互电路已停用。

载入 H03 3 位二进制加法器 的本机副本。载入前会确认当前工程的保存选择。

学习目标

  • 将两个 3 位无符号操作数相加,并解读 4 位结果。
  • 区分第 0 位的半加器门网络与第 1、2 位的全加器网络。
  • 追踪进位从 C_out,0 至 C_out,2 的传播过程。
  • 将五个异或门、五个与门和两个或门对应到各级方程。
  • 说明最终进位为何占据结果位 S3。

工作原理

该 3 位二进制加法器接收 A2A1A0 和 B2B1B0,两个操作数的无符号取值范围均为 0 至 7,并以 S3S2S1S0 驱动一个 4 位数字显示器。另有两个数字显示器分别反映输入操作数。

实际电路由门电路构成,而非三个封装式 FULL_ADDER 元件。由于 C_in,0 为 0,第 0 位使用一个异或门和一个与门构成半加器。第 1 位和第 2 位各使用两个异或门、两个与门和一个或门实现全加器功能。因此,完整的非文本逻辑共包含五个异或门、五个与门和两个或门。

对于每一级 i:

  • Si = Ai ⊕ Bi ⊕ C_in,i
  • C_out,i = AiBi + C_in,i(Ai ⊕ Bi)

C_out,0 送入第 1 位,C_out,1 送入第 2 位,C_out,2 则驱动结果显示器上的 S3。这条串行进位通路使该电路构成行波进位加法器。最大输入情况为 111 + 111 = 1110,即 7 + 7 = 14。

真值表

从 64 种可能的操作数组合中选取五个代表性行。输入按六个物理开关 A2、A1、A0、B2、B1 和 B0 的顺序列出。

输入输出
A2A1A0B2B1B0S3S2S1S0
0000000000000 + 000 = 0000;无进位
0010010010001 + 001 = 0010;第 0 位的进位使 S1 置 1
0110010100011 + 001 = 0100;进位传播至第 2 位
1001001000100 + 100 = 1000;第 2 位产生 S3
1111111110111 + 111 = 1110;3 位无符号数的最大和

布尔表达式

Si=Ai⊕Bi⊕Cin,i,Cin,0=0S_i = A_i \oplus B_i \oplus C_{in,i},\quad C_{in,0}=0

在每一级中,和位等于两个操作数位与输入进位的异或;C_in,0 固定为 0。

Cout,i=AiBi+Cin,i(Ai⊕Bi)C_{out,i} = A_i B_i + C_{in,i}(A_i \oplus B_i)

每个更高位级将直接生成项与进位传播项执行逻辑或,形成其进位输出。

S3=Cout,2S_3 = C_{out,2}

来自第 2 位的最终进位驱动结果显示器的第 3 位,即权值为 8 的数位。

逐步尝试

在上方嵌入式电路中设置输入,然后阅读预期结果并验证。

  1. 1
    A0 = 1A1 = 0A2 = 0B0 = 1B1 = 0B2 = 0
    预期: S3 S2 S1 S0 = 0010(十进制 2)
    观察结果: 001 + 001 得到 0010。第 0 位与门产生使 S1 置 1 的进位。
  2. 2
    A0 = 0A1 = 0A2 = 1B0 = 0B1 = 0B2 = 1
    预期: S3 S2 S1 S0 = 1000(十进制 8)
    观察结果: 100 + 100 得到 1000。操作数的最高有效位直接产生最终进位。
  3. 3
    A0 = 1A1 = 1A2 = 1B0 = 1B1 = 0B2 = 0
    预期: S3 S2 S1 S0 = 1000(十进制 8)
    观察结果: 111 + 001 得到 1000。进位从第 0 位依次经过两个更高位级传播至 S3。
  4. 4
    A0 = 1A1 = 1A2 = 1B0 = 1B1 = 1B2 = 1
    预期: S3 S2 S1 S0 = 1110(十进制 14)
    观察结果: 111 + 111 得到 1110,这是两个 3 位无符号操作数相加的最大结果。

所用元件

实际应用

紧凑型算术单元。 小型控制器和教学处理器使用相同的分级求和与进位方程实现整数加法。

地址与索引生成。 在将设计扩展至更宽的地址字之前,可使用窄位加法器执行递增或短偏移量加法。

算术验证。 门级实现使进位的生成与传播可被直接观察,便于分析测试向量。

可扩展行波进位结构。 当适合采用简洁、规则的实现时,可增加全加器级,将该拓扑扩展至更大字宽。

常见问题

为什么 3 位加法可能产生 4 位结果?

每个操作数最大可为 111₂ = 7,两者的最大和为 14,即 1110₂,因此结果需要第 4 位来表示最终进位。

哪些因素决定最坏情况延迟?

该电路是行波进位网络。第 0 位产生的进位可能必须经过第 1 位和第 2 位的进位逻辑,最高有效结果才能稳定。物理延迟取决于各门电路及其负载;关键的结构特征是各级之间存在串行依赖。

该加法器是否存在溢出条件?

对于无符号运算,若结果限制为 3 位,则作为进位输出的 S3 表示溢出。保留显示的全部 4 位后,0 至 14 的每个无符号和都能得到表示。带符号补码溢出属于另一种条件,不能仅根据最终进位判断。

该电路能否改造为支持减法?

补码减法使用 A + ¬B + 1。该实际电路的最低有效位为半加器,没有可控 Cin;因此若要支持减法,需增加第 0 位进位输入,并对 B 的所有位执行条件取反。

继续学习

先学习这些

进阶课程