一、进位旁边加法器

进位旁路加法器(Carry Skip Adder,CSA),也称Carry Bypass Adder。需要注意的是,CSA也是另外一种加法器——进位保存加法器(Carry Save Adder)的简称,关于这种加法器后期会介绍。

此前介绍了行波进位加法器RCA,第k位的进位Ck必须等待之前的Ck-1的结果才能计算出来,如下图进位c16必须等到前一级全加器的c15输出才可以计算,所以行波进位加法器的特点便是超长的进位传播链。

16比特RCA进位链示意图

进位旁边加法器的思想在于加速进位链的传播,在某种情况下,到达第i位的进位无需等待第i-1位进位。在16比特RCA中,最长的进位链为c0->c1->c2->…->c16,也就是说,每一位全加器都有进位,这条路径也是最长的关键路径。进位旁边加法器通过加入旁路逻辑来缩短这条最长路径,该旁路逻辑由2选1数据选择器,第x级进位和第y级进位和进位bypass信号组成。

4比特CSA结构

CSA结构如上,紫色部分为数据选择器,橙色部分为数据选择信号,数据来源为进位c0和第3个全加器的进位输出。

P3&P2&P1&P0=1c4=c0;进位c0直接传播至c4,而不需再经过4级全加器的延迟,这就是进位旁路加法器的核心。

为什么P3&P2&P1&P0=1时c0可以直接传播至c4?乍一看这个问题有点让人困扰。

先看c4的生成逻辑:

P3&P2&P1&P0=1时,则P3=P2=P1=P0=1,所以c4生成逻辑如下:

在介绍超前进位加法器中,我们定义了PG:

P是a与b异或的结果,只有a=0,b=1或者a=1,b=0时,P才可能等于1,而G=ab,所以只要P=1,G则一定为0,所以G3=G2=G1=G0=0。

最后结论与上述一致:当P3&P2&P1&P0=1时,c4的生成逻辑最终变成c4=c0。

二、进位旁路加法器关键路径与优化

将N比特加法器,以m比特为一组,分成N/m组,如下式16比特进位旁路加法器,N=16,m=4,共有4组,该16比特CSA由4比特CSA级联而成,其中4比特CSA由4个全加器组成的Block,进位逻辑Skip logic和2选1数据选择器三部分组成。

16比特CSA结构

以上关键路径发生在:

n c0走第一级Block,经过4级全加器,进位从bit0到bit3生成c4。

n 中间进位经过bypass逻辑。

n 最后一级走Block逻辑,经过4级全加器,进位从bit12到bit15生成c16.

基于此结构通用的关键路径延迟公式为:

其中:

Tsetup:A,B低位到第一级block的时间

tcarry:每个进位传播Block中全加器产生进位的时间

Tskip:进位通过skip逻辑的时间

Tsum:从最后个进位到S输出的时间

可能在此处读者会有一个疑问,为什么最长的delay会是中间两级路径,如果加法器进位全部走Block逻辑,应该具有更长的延迟啊?其实走最长的路径,中间路径会被旁路,也就是执行0111_1111_1111_1111 + 0000_0000_0000_0001的情况。第一级进位产生后,中间两级被旁路,最后一级经过RCA进位链,也就是下图中红色描绘出的路径图。

16比特CSA关键路径图

三、进位旁路加法器Verilog设计

以下参数化cska(Carry Skip Adder, 为防止混淆取名cska)基于4比特cska设计,width可参数化定义为4的倍数,如20,24,32,64,128等。

默认16比特进位旁路加法器,由4个进位旁路加法器级联而成,每个进位旁路加法器中由4个全加器级联,且有进位旁路逻辑。

cska_4bit模块中进位链和进位旁路逻辑:

Verilog源码公众号回复004。

欢迎指正错误,更多阅读,关注“纸上谈芯”,不定期更新,共同学习:

四位行波进位加法器_【HDL系列】进位旁边加法器原理与设计相关推荐

  1. 四位行波进位加法器_【HDL系列】硬件加法器原理与设计小结

    硬件加法器种类繁多,对于不同的设计,加法器的需求也不一样.在前端设计中,使用符号"+"便可轻而易举地实现加法器.只是在特殊的情况下,指定选择加法器类型,或许可以用到.其他情况,可以 ...

  2. 四位行波进位加法器_【HDL系列】Sklansky加法器原理与设计

    Sklansky加法器是另一种并行高速的树形加法器,由Sklansky于1959年发表,该加法器对比特位进位层级分组,根据对不同比特组所有可能的进位计算所有可选的和与进位,所以也叫Conditiona ...

  3. verilog加法器_【HDL系列】Kogge-Stone加法器原理与设计

    Kogge-Stone加法器是利用Peter M. Kogge和Harold S.Stone于1972年提出的一种并行算法生成的一种树形加法器. 一.Kogge-Stone并行算法 Kogge和Sto ...

  4. 行波iq调制器_低功率IQ调制器的基带设计实例—电路精选(1)

    标签:基带(41)调制器(16)滤波器(821) 调制参数 在本设计实例中,系统规格指标如下: 符号率 = 30 ksps 数字滤波器 = 0.35 下一步是确定基带滤波器要求: 总的信号 BW = ...

  5. 行波iq调制器_矢量信号源中IQ调制器的设计与实现

    龙源期刊网 http://www.qikan.com.cn 矢量信号源中 IQ 调制器的设计与实现 作者:饶金玲 聂伟 来源:<现代电子技术> 2014 年第 21 期 摘 要: 实现了一 ...

  6. python 微服务架构实战_《分布式服务架构:原理、设计与实战》第一章分布式微服务架构设计原理...

    1.从传统单体架构到服务化架构 1.1 JEE架构 JEE将企业级软件架构分为三个层级 : Web 层.业务逻辑层和数据存取层.对应的职能团队,主要包括:用户 交互 UI 团队.后台业务逻辑处理团 队 ...

  7. 四位行波进位加法器_【HDL系列】超前进位加法器原理与设计

    上期介绍了半加器.全加器以及行波进位加法器(RCA),本文介绍超前进位加法器(Lookahead Carry Adder,简称LCA).在介绍超前进位加法器前,我们先来分析下行波进位加法器的关键路径. ...

  8. 四位行波进位加法器_【HDL系列】进位选择加法器原理与设计

    前期已介绍了行波进位加法器(Ripple Carry Adder, RCA)依赖于低位进位,所以具有超长的进位链和关键路径.对于RCA的改进中,进位选择加法器(Carry Select Adder)是 ...

  9. 四位行波进位加法器_超前进位加法器amp;行波进位加法器

    超前进位加法器&行波进位加法器 八位超前进位加法器 原理 设计文件 综合电路 测试文件 仿真波形 八位行波进位加法器 原理 设计文件 测试文件 仿真波形 总结 八位超前进位加法器 原理 有学弟 ...

最新文章

  1. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置填充色)实战
  2. 一些软件软件开发原则
  3. java Thread 类的几种方法
  4. python 之 前端初识 html
  5. Java基础查漏补缺:(String篇)一个面试题问倒了我,原来String并不简单
  6. 阿里巴巴(alibaba)系列_druid 数据库连接池_监控(一篇搞定)记录执行慢的sql语句...
  7. 力扣-202 快乐数
  8. Java操作Linuxshell并且获取返回值
  9. android日历的使用技巧,android日历控件的使用
  10. 计算机网络常用端口号大全
  11. 自定义AutoTextView实现公告栏 文字3D 翻转动画
  12. 常用统计量及其常见分布
  13. 【modlearts】华为人工智能平台_modelarts平台系列教程3_预置算法_图像识别1
  14. Windows域提权漏洞CVE-2021-442287
  15. python 声音强度检测_python检测音频中的静音
  16. MySQL8.0 之SQL(DQL)单表、多表查询(详细回顾篇)
  17. WiFI Display介绍
  18. 如何让绘画灵气十足-张聪-专题视频课程
  19. 【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能
  20. 3000字读懂腾讯音乐垄断案处罚决定书

热门文章

  1. 使用计算机进行生产流水线控制属于,毕业设计(论文)-饮料罐装生产流水线的PLC控制精选.docx...
  2. Rails:通过IP地址确定城市
  3. 不用CSDN博客了,用博客园。。。
  4. intellij idea 无法使用复制,粘贴按钮
  5. VB6.0安装鼠标滚轮
  6. 详解自注意力机制及其在LSTM中的应用
  7. 马上2023年了,《北上广深杭》有哪些值得加入的软件测试大厂公司呢?花了三天三夜整理出各大互联网公司
  8. CSAPP-处理器体系架构
  9. ERROR: cannot launch node of type [joint_state_publisher_gui/joint_state_publisher_gui]
  10. stagefright框架(三)-選擇Video Decoder