32位先行进位加法器的实现

本文详细介绍了32位超前进位加法器的设计思想和实现方法,通过改进传统加法器电路,利用进位产生信号(Gi)和进位传递信号(Pi)来减少进位延迟,提高运算速度。文章包括总体设计、功能模块设计,以及源代码的引用,旨在阐述如何构建一个高效、快速的32位先行进位加法器。
摘要由CSDN通过智能技术生成

一、总体设计:

1.电子计算机是由具有各种逻辑功能的逻辑部件组成的,加法器就属于其中的组合逻辑电路。如果对传统的加法器电路进行改进,在超前进位链的基础上,用一种新的超前进位链树的设计方法不仅可以克服串行进位加法器速度低的缺点,也可以解决单纯的超前进位加法器带负载能力不足等问题,从而在实际电路中使加法器的运算速度达到最优。根据这种理论,可以推导得到最优的任意位加法器。

2.原理如下:

设二进制加法器第i位为Ai,Bi,输出为Si,进位输入为Ci,进位输出为Ci+1

则有:

Si=Ai⊕Bi⊕Ci

Ci+1 =Ai * Bi+ Ai *Ci+ Bi*C=Ai * Bi+(Ai+Bi)* Ci

令Gi = Ai * Bi , Pi = Ai+Bi

则Ci+1= Gi+ Pi *Ci

当Ai和Bi都为1时,G= 1, 产生进位Ci+1 = 1

当Ai和Bi有一个为1时,P= 1,传递进位Ci+1= Ci

因此Gi定义为进位产生信号,Pi定义为进位传递信号。Gi的优先级比Pi高,也就是说:当Gi = 1时(当然此时也有Pi = 1),无条件产生进位,而不管Ci是多少;

当Gi=0而Pi=1时,进位输出为Ci,跟Ci之前的逻辑有关。

3.总体设计思想:设计先行进位加法器的初衷是为了减少甚至消除各个位之间的进位延迟,由上面的原理可思考得到用p和g来表示进位c。但是仅仅求出每个位的p和g是远远不够的,需要进行级联,不同位之间先行进位代替串行,以保证前一个进位可以影响后面多个位的进位,换句话说,就是后面的位的进位可以由很靠前的位的进位求得,以此来减少相邻位之间的进位延迟。进位c得出后,结果s和zero,overflow更是不再话下了。

4.原理图:

二、功能模块设计:

总共9个模块,1个主模块,4个核心模块,4个辅助模块。

1.主模块mu0:即32位先行进位加法器,输入为两个加数32位的x1和x2,输出为结果32位的s,以及判零标识信号和溢出标识信号。内部调用各个子模块以及判零标识信号和溢出标识信号的产生。见3.1之原理图。

2.核心模块mu1:输入为两个加数32位的x1和x2,输出为进位产生信号g和进位传递信号p。功能即由x1和x2求出p和g。p[31:0] = x1[31:0]| x2[31:0],g[31:0] = x1[31:0]&x2[31:0]。见下图:

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值