16位超前进位加法器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16位超前进位加法器设计
目录
摘要 (1)
1需求分析
1.1加法器的发展........................................................................ 错误!未定义书签。
1.2几种串行加法器性能比较 (3)
1.2.1串行进位加法器 (3)
1.2.1超前进位加法器 (3)
2主要内容 (4)
2.1设计原理 (6)
2.2设计思路 (4)
3 设计思想 (5)
4 实现方法 (6)
4.1顶层方案图的设计与实现 (6)
.4.1.1顶层方案的整体设计 (6)
4.1.2元器件选择和引脚锁定 (7)
4.2功能模块的设计与实现 (8)
4.2.1设计描述 (8)
4.2.2创建RTL代码并得到电路图....................................................... .9
4.3功能仿真 (11)
4.4编程与下载 (12)
4.5硬件仿真结果 (12)
5小结 (13)
参考文献 (13)
附录 (14)
摘要:加法运算是最重要最基本的运算,所有的其他基本算术运算乘除等都最终可以用加法运算来表示在不同的场合对加法器的要求
不同,要的要求速度快有的要求面积小超前进位加法器相比于串行进位加法器是一种快速加法运算器,根据用户的要求追求速度与面积的平衡。
关键词:超前进位加法器串行进位加法器速度面积
1需求分析
1.1 加法器的发展
加法运算是最基本的运算,所有其他基本算术运算都是以加法运算为基础。但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关,因此,为了减少进位传输所耗的时间提高计算速度人们设计了多种类型的加法器。如跳跃进位加法器,进位选择加法器,超前进位加法器等他们都是利用各位之间的状态来预先产生高位进位信号从而减少进位从低位到
高位的传递时间
1.2 几种加法器的性能比较
1.2.1串行进位加法器
串行进位加法器的每一位加和值都依赖于上一位进位信号,即进位信号是串行的经过加法器的每一位。所以进位链的长度与整个加法器的位数有关;加法器的位数越宽,进位链越长,计算延迟越大。串行进位加法器的计算函数如下
S=a异或b异或c
C=p+qc
P=ab
q=a+b
串行进位加法器的进位链是串行的,进位链的长度直接与加法器的位宽有关。所以当加法器位宽很大时,进位计算的延迟也将随之变得很大。
1.2.2超前进位加法器
超前进位加法器,不同于串行进位加法器,对于每一位的结果是否有进位,不需要等前一位的进位结果计算出来,而是只要输入A B 到来就可以经过一些列的逻辑运算同时计算出各位是否有进位。理论上讲无论多少位的加法器都可以设计成为超前进位加法器,但是当位数很大的时候,超前进位加法器的逻辑会变得异常复杂,而失去了使用的意义,所以大多数超前进位加法器做到4位,而多于4位的要求,就用多个超前进位加法器级联实现所以在大多数有时间限制的加法器一般选用超前进位加法器。
2主要内容
1.1 设计原理
将n个全加器相连可得n位加法器,但是加法时间较长。解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的。四位超前进位加法器的设计:
首先做两个传递函数;进位产生函数Pi和进位传送函数Qi
Pi=Ai Bi
Qi=Ai+Bi
则第0级进位的进位端C0就是电路的进位输入Ci
第1级,C1=P1+Q1C0
第2级C2=P2+Q2C1=P2+Q2(P1+Q1C0)=P2+Q2P1+Q2Q1C0
第3级C3=P3+Q3C2=P3+P2Q3+P1Q3Q2+Q3Q2Q1C0
第4级C4=P4+Q4C3=P4+Q4P3+Q4Q3P2+Q4Q3Q2P1+Q4Q3Q2Q1C0这样经过函数Pi和函数Qi产生一级时间延迟,经过计算C产生一级时延迟,则A,B输入一旦产生即可算出结果
2.2 设计思路
进行16位超前进位加法器设计时由于位数太多如果采用全部超前进位则电路的逻辑结构极其复杂并且电路的规模会很大可以考虑用4个4位超前进位加法器来实现16位超前进位加法器的设计。
3设计思想
为了避免过于复杂的逻辑电路采用4个4位的超前进位加法器来实现,若4个4位超级进位加法器串联也可以实现功能但是仍要等4个进位的逐次产生所以本次实验采用了另一种方法
将4个超前进位模块进一步组合,使当A,B及Ci信号到来的时候可以进一步计算出各位间的进位信息。
该模块
Pi=Ai Bi
Qi=Ai+Bi
设置中间变量值QXi和PXi其中
QXi=Q4Q3Q2Q1
PXi=P4+Q4P3+Q4Q3P2+Q4Q3Q2P1
其中PX,QX为下一级进位计算的输入
QX1=Q4Q3Q2Q1
QX2=Q8Q7Q6Q5
QX3=Q12Q11Q10Q9
QX4=Q16Q15Q14Q13
PX1=P4+Q4P3+Q4Q3P2+Q4Q3Q2P1
PX2=P8+Q8P7+Q8Q7P6+Q8Q7Q6P5
PX3=P12+Q12P11+Q12Q11P10+Q12Q11Q10P9
PX4=P16+Q16P15+Q16Q15P14+Q16Q15Q14P13
C4=PX1+QX1C0
C8=PX2+QX2C4=PX2+QX2(PX1+QX1C0)
=PX2+QX2PX1+QX2QX1C0
同理
C12=PX3+QX3PX2+QX3QX2PX1+QX3QX2QX1C0
C16=PX4+QX4PX3+QX4QX3PX2+QX4QX3QX2PX1+QX4QX3QX2QX1C0原理图如下