各种加法器的比对分析与Verilog实现(4)

       本文将介绍进位旁路加法器和进位选择加法器的原理。在下一篇博客中将使用Verilog进行实现。

1. 进位旁路加法器(Carry-Skip Adder)

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

4bit CSA结构

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

       当P3&P2&P1&P0=1c4=c0;进位c0直接传播至c4,而不需再经过4级全加器的延迟,这就是进位旁路加法器的核心(因为由P、G定义, P=1时G一定为0,所以由递推式Ci=Gi+PiCi-1可得该结论)。

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

16bit CSA结构

       关键路径(延时最长)发生在:c0走第一级Block,经过4级全加器,进位从bit0到bit3生成c4。中间进位经过bypass逻辑。最后一级走Block逻辑,经过4级全加器,进位从bit12到bit15生成c16。

       关键路径延时:(起步和结束各有一个t carry其他都是t skip)

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

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

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

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

2. 进位选择加法器(Conditional-Select Adder, CSA)

       进位选择加法器由2个行波进位加法器和1个选择器构成,其中一个RCA加法器假定进位为0,另外一个RCA加法器假定进位为1,其结构如下:

4bit进位选择加法器结构

       由4个蓝色全加器组成的RCA,假定进位输入c0=0;由4个绿色全加器组成的RCA假定进位输入c0=1。如果来自低级的进位Cin为0,则选择蓝色RCA的进位c4作为该加法器的进位输出;如果来自低级的进位Cin为1,则选择绿色RCA的进位c4作为该加法器的进位输出。同时Cin作为选择器选择信号,控制S3~S0的输出来自于蓝色RCA还是绿色RCA。

       如下图16比特进位选择加法器,以4比特进位选择加法器为结构级联,每一级的进位可以同时经过4个全加器延迟同时生成,而选择信号在经过最低位的4比特RCA后生效,经过三个数据选择器的延迟,c16就会生成。所以,相比于同等16比特的行波进位加法器,进位选择加法器极大地提高了速度,是面积换取速度设计的典型代表。     

16bit 进位选择加法器

       进位选择加法器总结:

       优势:对于更大位宽加法器高位进位不取决于进位传播,速度更快。但正确的输出必须等待正确的进位选择信号输出。

       缺点:电路面积花费巨大。

       体会:我认为,不论是进位旁路加法器还是进位选择加法器本质上都是通过提前获取进位的方式,加快电路的运算速度,对于这一点,我的理解是,每一级的运算都是同步进行的,但只有当上一级进位成功输入下一级,下一级电路的运算结果才有意义,因此越早传递进位就能越早得到有效结果。当然提前获取进位需要付出空间代价。

参考链接:

进位旁边加法器原理与设计

进位选择加法器原理与设计

求学路上,你我共勉(๑•̀ㅂ•́)و✧ 

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值