首页 > 编程知识 正文

行波进位加法器原理,logisim四位加法器

时间:2023-05-06 20:29:42 阅读:140455 作者:4415

一.进位旁边的加法器

进位旁路加法器(Carry Skip Adder,CSA )还称作进位旁路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和第三个全加器的进位输出。

P3P2P1P0=1时c4=c0; 进位c0不经过4级全加法器的延迟,直接传播到c4。 这是进位旁路加法器的核心。

为什么P3P2P1P0=1时c0可以直接传播到c4? 乍一看这个问题有点困扰。

首先来看看c4的生成逻辑:

如果P3P2P1P0=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。

最后的结论与上述一致: P3P2P1P0=1时,c4的生成逻辑最终变为c4=c0。

二.进位旁路加法器的关键路径及优化

将n位加法器以m位为1组,分为N/m组的话,成为下式的16位进位旁路加法器,N=16,m=4共计4组,该16位CSA是将4位CSA级联连接而成的,其中4位

16位CSA结构

上述主要路径如下

n c0进行第1段的Block,经过第4段的全加法器,进位后从bit0到bit3生成c4。

n中间进位通过bypass逻辑。

n最后一级遵循模块逻辑,经过4级全加法器,进位后从bit12到bit15生成c16。

基于此结构,关键路径延迟的典型表达式如下:

其中:

Tsetup:A,b从下位到第一级块的时间

tcarry :各进位传播Block的全加法器发生进位的时间

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

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

在这里读者可能会怀疑,为什么最长的delay会成为中间的两阶段路径呢? 如果加法器的进位全部进入Block逻辑,应该会有更长的延迟。 实际上,如果走最长的路径,中间路径将被绕过。 也就是说,执行0111 _ 1111 _ 1110000 _ 0000 _ 0000 _ 0001时。 第一级进位发生后,中间两级被绕过,最后一级经由RCA进位链。 也就是说,是下图中用红色画的路径图。

16位CSA关键路径图

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

以下参数cska(carryskipadder,为了防止混淆而命名为cska )基于4比特的cska设计,width的参数定义是20、24、32、64、128等4的倍数。

默认的16位进位旁路加法器级联4个进位旁路加法器,每个进位旁路加法器级联4个全加器,有进位旁路逻辑。

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

Verilog源代码公开号返回004。

指出错误,多读,关注“纸上谈兵”,不定期更新,合作学习:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。