当前位置: 首页 > news >正文

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

目录

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

http://www.lryc.cn/news/573161.html

相关文章:

  • 启动hardhat 项目,下载依赖的npm问题
  • GitHub Copilot快捷键
  • 【unitrix】 3.7 类型级加一计算(Add1.rs)
  • AI大模型学习之基础数学:微积分-AI大模型的数学引擎
  • Spring Boot的自动装配和自动配置
  • MySQL 数据库操作完整指南
  • ubuntu24.4 + ros2 jazzy 安装gazebo
  • vue3+arcgisAPI4案例:智慧林业资源监测分析平台(附源码下载)
  • C++ 的设计模式
  • 跟着AI学习C# Day29
  • 网站并发访问量达到1万以上需要注意哪些事项
  • 单点登录(SSO)系统
  • 海伯森3D闪测传感器,工业检测领域的高精度利器
  • JavaEE:使用JMeter进行接口并发测试
  • 跨平台轻量级RTSP服务:重构内网超低延迟直播体验
  • 区块链是什么
  • AI与SEO关键词协同进化
  • 【StarRocks系列】查询语句执行全流程
  • 1. 常见K线组合
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 03(题目+回答)
  • 智慧医院核心引擎:IBMS 系统守护医疗环境高效与安全​
  • 内容搜索软件AnyTXT.Searcher忘记文件名也能搜,全文检索 1 秒定位文件
  • Python中字符串常用的操作方法
  • mysql导入大sql(比如10GB的sql文件)
  • 开源AI智能名片链动2+1模式S2B2C商城小程序:破解微商代理模式困局的数字化创新路径
  • MySQL存储引擎与架构
  • 在AI普及的大环境下神经网络在新能源汽车热管理系统中的应用简介
  • CLion开发Qt桌面程序_git的简单使用_小团体
  • opencv try-catch
  • day38-Django(4)