全面深入理解加法器架构:从全加器到并行前缀优化

目录

1. 加法器基础:全加器与半加器

1.1 半加器 (Half Adder)

1.2 全加器 (Full Adder)

🚯 2. Ripple-Carry Adder (RCA)

🏃 3. Carry-Skip / Carry-Select / Carry-Increment Adders

3.1 Carry-Skip Adder (CSKA)

3.2 Carry-Select Adder (CSLA)

3.3 Carry-Increment Adder (CIA)

🪡 4. Carry Lookahead Adder (CLA)

🌳 5. Parallel-Prefix Adders (PPA)

🔄 6. Carry-Save Adder (CSA)

🌲 7. Multi-Operand Adder & Compressors

⏳ 8. 各类加法器性能总结

📆 9. 设计实战建议


1. 加法器基础:全加器与半加器

1.1 半加器 (Half Adder)

基本元件,输入两个 1-bit:A, B,输出 sum 和 carry:

\text{sum} = A \oplus B, \quad \text{carry} = A \cdot B

应用:基本二输入加法器构成单元


1.2 全加器 (Full Adder)

最基本的三输入 1-bit 加法器,输入为  A,B,Carry_{in}

\text{sum} = A \oplus B \oplus C_{in} \\ C_{out} = (A \cdot B) + (B \cdot C_{in}) + (A \cdot C_{in})

通过链接多个全加器可实现多位加法


🚯 2. Ripple-Carry Adder (RCA)

结构特点

  • N-bit 不透明加法器,由 N 个 full adder 综合

  • carry 从 LSB 传到 MSB

应用示意图:

A[n-1] ---> FA ---> FA ---> FA ---> FA ---> Cout

性能

  • 延迟: O(n)

  • 优点: 简单

  • 缺点: carry 传播慢


🏃 3. Carry-Skip / Carry-Select / Carry-Increment Adders

3.1 Carry-Skip Adder (CSKA)

  • 分组 carry propagation

  • 如果分组内 P = 1,carry 可跳过

应用: 中速/优积实现

3.2 Carry-Select Adder (CSLA)

  • 同时计算 cin=0 和 cin=1

  • MUX 选择最终结果

  • 延迟: O(\sqrt{n})

3.3 Carry-Increment Adder (CIA)

  • 基于 RCA + Increment 单元

  • 解决中段 carry propagation


🪡 4. Carry Lookahead Adder (CLA)

基本思想

预估输入的 generate 和 propagate 信息,得到很快的 carry:

G_i = A_i \cdot B_i, \quad P_i = A_i + B_i \\ C_{i+1} = G_i + (P_i \cdot C_i)

特点

  • 延迟 O(log n)

  • 最后的 sum = P_i \oplus C_i

实现需要 lookahead 模块


🌳 5. Parallel-Prefix Adders (PPA)

工程实现:

  1. Pre-processing

P_i = A_i \oplus B_i,\ G_i = A_i \cdot B_i

  2. Prefix stage

通过 prefix operator 计算第 i 位 carry

         (G_i, P_i) \circ (G_j, P_j) = (G_i + P_i \cdot G_j, P_i \cdot P_j)

  3.Post-processing

        ​​​​S_i = P_i \oplus C_i

常见前缀结构:

结构延迟面积特点
Sklanskylog nfanout 大
Brent-Kung2log n平衡性好
Kogge-Stonelog ndelay 最小

🔄 6. Carry-Save Adder (CSA)

功能

        对于 3 个以上的加数,CSA 用来生成 sum/carry 两个中间结果,最后通过 CPA 合并

Input: A, B, C
-----> CSA
--> Sum (S), Carry (C)
--> Final Sum = S + C (via CPA)

应用

  • Wallace Tree

  • Dadda Tree

  • 上升下降随机与数据模块


🌲 7. Multi-Operand Adder & Compressors

(m,2) Counter 和 Compressor

  • 用于将 m 个输入加数压缩成 2 个输出 (sum/carry)

  • 示例:(3,2)-counter = Full Adder

Wallace Tree

  • 通过展开 CSA Tree 快速压缩

  • 性能高,适合部分积乘的性能压缩


⏳ 8. 各类加法器性能总结

类型延迟面积处理加速适用场景
RCA简单低功耗
CSLA中速结构
CLA高速加法
PPA-KS最低最大最高性能 CPU 核
CSA最低三个以上加数

📆 9. 设计实战建议

  1. 入门初学:RCA/CSKA 更易理解

  2. 性能效率:CLA/CSLA 是常见选择

  3. 项目级 CPU/DSP:PPA + CSA 是标配

  4. 自定义设计:可考虑自定前缀结构 + G/P 传播创新


参考文献: Computer Arithmetic: Principles, Architectures, and VLSI Design

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三贝勒文子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值