全面深入理解加法器架构:从全加器到并行前缀优化
目录
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:
应用:基本二输入加法器构成单元
1.2 全加器 (Full Adder)
最基本的三输入 1-bit 加法器,输入为 :
通过链接多个全加器可实现多位加法
🚯 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 选择最终结果
-
延迟:
3.3 Carry-Increment Adder (CIA)
-
基于 RCA + Increment 单元
-
解决中段 carry propagation
🪡 4. Carry Lookahead Adder (CLA)
基本思想
预估输入的 generate 和 propagate 信息,得到很快的 carry:
特点
-
延迟 O(log n)
-
最后的
实现需要 lookahead 模块
🌳 5. Parallel-Prefix Adders (PPA)
工程实现:
1. Pre-processing
2. Prefix stage
通过 prefix operator 计算第 i 位 carry
3.Post-processing
常见前缀结构:
结构 | 延迟 | 面积 | 特点 |
---|---|---|---|
Sklansky | log n | 小 | fanout 大 |
Brent-Kung | 2log n | 中 | 平衡性好 |
Kogge-Stone | log n | 大 | delay 最小 |
🔄 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. 设计实战建议
-
入门初学:RCA/CSKA 更易理解
-
性能效率:CLA/CSLA 是常见选择
-
项目级 CPU/DSP:PPA + CSA 是标配
-
自定义设计:可考虑自定前缀结构 + G/P 传播创新
参考文献: Computer Arithmetic: Principles, Architectures, and VLSI Design