首页 > 编程知识 正文

3位超前进位加法器分析,超前进位加法器真值表

时间:2023-05-03 22:30:52 阅读:117134 作者:4052

1.串行加法器

串行加法器即加法器进行位串行运算,在多个时钟周期中进行一次加法运算。 即,输入操作数和输出结果的方式随时为时钟串行输入输出。 位并行加法器速度快,但消耗很多资源。 在许多实际应用中,不需要这种高速化,并且为了降低硬件资源的占有率,可以使用位串行加法器。

在串行加法器中,如图所示为只有一个全加器,数据逐位串行送入加法器进行运算。 图中的FA是全加法器,a、b是具有右移位功能的2个寄存器,c是进位触发。 从移位寄存器向低位到高位串行提供操作数相加。 如果操作数长n位,则加法分为n次进行,每次产生1位的和,并且串行地返回到a寄存器。 进位触发器用于注册进位信号以参与以下运算:

2.串行进位的并行加法器

并行加法器由多个全加器组成中,全加法器个数的多少取决于设备的字长,而并行加法器可以同时加算数据的各位,读者可能认为数据的各位可以同时运算,但实际情况并非如此。 这是因为,虽然同时给出操作数的各位,但下位运算的进位会影响上位的运算结果。 例如,如果将11…11和00…01相加,由于从最低位开始的进位会影响最高位,所以为串行进位的并行加法器需要一个最长运算时间,它主要是由进位信号的传递时间决定的,各全加法器自身的加法延迟只是次要的因素。 显然,提高并行加法器速度的关键是尽量加快进位的发生和传递的速度。 并行加法器的各全加法器中,有从低位传送的进位输入和向上位传送的进位输出。 通常,由传递进位信号的逻辑电路连接而成的进位网络称为进位链。 各位的进位公式如下。

ci=aibi(AIbi ) Ci-1

其中," AiBi "与低位进位无关,依赖于本位参加运算的两个数,所以将AiBi称为进位发生函数[本次的进位发生],如果用Gi表示,则只要本位的两个输入都是1,就意味着一定会向上位发生进位“(AI ) bi ) Ci-1”不仅取决于本位的两个数,还取决于从低位传递的进位,因此将AI ) bi称为进位传递函数),用Pi表示,当两个输入中的一个为1时,从低位传递的进位函数

Ci=Gi PiCi-1

连接n个全加法器,就可以进行2个n位的相加。 该加法器称为串行进位的并行加法器,如图2-16所示。 串行进位又称行波进位,各级进位直接取决于前一级的进位。 也就是说,进位信号是逐步形成的。

其中,C1=G1 P1C0C2=G2 P2C1…

-family:Arial, Helvetica, sans-serif;background-color:rgb(255,255,255);">Cn=Gn+PnCn-1 

串行进位的并行加法器的总延迟时间与字长成正比,字长越长,总延迟时间就越长。假设将一级与门、或门的延迟时间定为ty,从上述公式中可以看出,每一级全加器的进位延迟时间为2ty。在字长为n位的情况下,若不考虑Gi、Pi的形成时间,从C0→Cn的最长延迟时间为2nty(设C0为加法器最低位的进位输入,Cn为加法器最高位的进位输出)。 


显然,串行进位方式的进位延迟时间太长了,要提高加法运算的速度,就要尽可能地减少进位延迟时间,也就是要改进进位方式,这就产生了并行进位方式和分组并行进位方式


3.超前进位加法器

可以想象最简单的加法计算就是每一位都进行一次全加器计算,然后产生一个进行c,下一个全加器在取得进位以后再进行他的位的计算,循环下去直到最后一位。这样的问题是进行一次32位的加法计算就需要至少串行的经过32个全加器,如果CPU的频率是3Ghz,那么一个时钟周期,大约333皮秒内,是无法完成一次简单的加法运算的。


那么超前进位加法器是如何做到高速计算的,可以想象肯定是把计算平行化了,而且是用数量来换了速度。但是具体是怎么做的呢。我们来一起分析下。

首先考虑所有的加法情况

Rowxycincouts000000100101201001301110410001510110611010711111


ci+1 = xiyi + xici + yici这里c表示的是进位,举个列子来说就是第一位的进位c1他是由第零位的x0*y0+x0*c0+y0*c0, 这里很明显c0是始终为0的。那么c1=x0*y0然后这个提取公因子公式就变成了ci+1 = xiyi + ci(xi + yi)然后是不是发现,这样一来只有ci是不确定的。其他的xi和yi都是直接输入。但是ci其实呢通过循环inline的一个替换,其实会变成类似Ci+1 = Xiyi + (Xi + yi)(Xi-1yi-1 + Ci-1(Xi-1 + yi-1))然后可以一直这样替换下去,直到c0这一层。或者是最右端的输入。一般的通常会把这几个变量成为g,p变量 gi = xiyi pi = xi + yi这样理论上可以实现任何位数都在有限次内完成,但是这样的代价是位数越多需要的电路也就越多。以四位超前加法器为例:第一步,所有的4个全加器对每一位计算出自身的和Si, gi和pi然后第二步,超前进位器计算出c1,c2,c3,c4,当然这里的c1,c2,c3,c4计算需要的逻辑门数量是逐步递增的。然后c1,c2,c3对S1,S2,S3进行进位,C4会传递给更上面的位。但是由于成本的问题一般都会把32位或者64位的切割成多个16位的超前进位来进行计算,能保证在一个时钟周期内完成基本就可以了。取得一个成本和性能上得平衡。


   四位超前进位加法器


                                                                            十六位超前进位加法器


                                                                        三十二位超前进位加法器





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