加法器 :
加法器是为了完成加法的。
便是发生数的和的设备。加数和被加数为输入,和数与进位为输出的设备为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。常用作核算机算术逻辑部件,履行逻辑操作、移位与指令调用。
关于1位的二进制加法,相关的有五个的量:1,被加数A,2,被加数B,3,前一位的进位CIN,4,此位二数相加的和S,5,此位二数相加发生的进位COUT。前三个量为输入量,后两个量为输出量,五个量均为1位。
关于32位的二进制加法,相关的也有五个量:1,被加数A(32位),2,被加数B(32位),3,前一位的进位CIN(1位),4,此位二数相加的和S(32位),5,此位二数相加发生的进位COUT(1位)。
要完成32位的二进制加法,一种天然的主意便是将1位的二进制加法重复32次(即逐位进位加法器)。这样做无疑是可行且易行的,但由于每一位的CIN都是由前一位的COUT供给的,所以第2位有必要在第1位核算出成果后,才干开端核算;第3位有必要在第2位核算出成果后,才干开端核算,等等。而最终的第32位有必要在前31位悉数核算出成果后,才干开端核算。这样的办法,使得完成32位的二进制加法所需的时刻是完成1位的二进制加法的时刻的32倍。
能够看出,上法是将32位的加法1位1位串行进行的,要缩短进行的时刻,就应设法使上叙进行进程并行化。
逐位进位加法器,在每一位的核算时,都在等候前一位的进位。那么无妨预先考虑进位输入的一切或许,关于二进制加法来说,便是0与1两种或许,并提早核算出若干位针对这两种或许性的成果。比及前一位的进位来届时,能够经过一个双路开关选出输出成果。这便是进位挑选加法器的思维。
提早核算多少位的数据为宜?同为32位的状况:线形进位挑选加法器,办法是分N级,每级核算32/N位;平方根进位挑选加法器,考虑到使两个途径(1,提早核算出若干位针对这两种或许性的成果的途径,2,上一位的进位经过前面的结构的途径)的延时到达持平或是近似。办法,或是2345666即榜首级相加2位,第二级3位,第三级4位,第四级5位,第五级6位,第六级6位,第七级6位;或是345677即榜首级相加3位,第二级4位,第三级5位,第四级6位,第五级7位,第六级7位。
进一步剖析加法进行的机制,能够使加法器的结构进一步并行化。
令G = AB,P = A⊕B,则COUT(G,P) = G + PCIN,S(G,P)=P⊕CIN。由此,A,B,CIN,S,COUT五者的联系,变为了G,P,CIN,S,COUT五者的联系。
再界说点运算(•),(G,P)•(G’,P’)=(G + PG’,PP’),能够分化(G 3:2,P3:2) =(G3,P3)•(G2,P2)。 点运算遵守结合律,但不契合交换律。
点运算只与G,P有关而与CIN无关,也便是能够经过只对前面若干位G,P进行点运算核算,就能得到第N位的GN:M,PN:M值,当取M为0时,取得的GN:0,PN:0即可与初使的CIN一同代入COUT(G,P) = G + PCIN,S(G,P)=P⊕CIN,得到此位的COUT,S;而每一位的G,P值又只与该位的A,B值即输入值有关,所以在开端进行运算后,就能并行的得到每一位的G,P值。
以上剖析发生了超前进位加法器的思维:三步运算,1,由输入的A,B算出每一位的G,P;2,由各位的G,P算出每一位的GN:0,PN:0;3,由每一位的GN:0,PN:0与CIN算出每一位的COUT,S。其间第1,3步显然是能够并行处理的,核算的首要复杂度会集在了第2步。
第2步的并行化,也便是完成GN:0,PN:0的点运算分化的并行化。
加法器界说
完成多位二进制数相加的电路称为加法器, 它能处理二进制中1+1=10 的功用(当然还有 0+0、0+1、1+0).
加法器的分类
一、半加器概念:能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。
Ai、Bi:加数, Si:本位的和。
二、全加器
概念:能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。或:不只考虑两个一位二进制数相加,并且还考虑来自低位进位数相加的运算电路,称为全加器。
Ai、Bi:加数, Ci-1:低位来的进位,Si:本位的和, Ci:向高位的进位。
加法器的完成
1、串行进位加法器
构成:把n位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。
特色:进位信号是由低位向高位逐级传递的,速度不高。
2、并行进位加法器(超前进位加法器)
设一个n位的加法器的第i位输入为ai、bi、ci,输出si和ci+1,其间ci是低位来的进位,ci+1(i=n-1,n-2,…,1,0)是向高位的进位,c0是整个加法器的进位输入,而cn是整个加法器的进位输出。则和 si=ai i i+ ibi i+ i ici+aibici (1)
进位ci+1=aibi+aici+bici (2)
令gi=aibi, (3)
pi=ai+bi, (4)
则 ci+1= gi+pici (5)
只需aibi=1,就会发生向i+1位的进位,称g为进位发生函数;相同,只需ai+bi=1,就会把ci传递到i+1位,所以称p为进位传递函数。把(5)式打开,得到
ci+1= gi+ pigi-1+pipi-1gi-2+…+ pipi-1…p1g0+ pipi-1…p0c0 (6) 跟着位数的添加(6)式会加长,但总坚持三个逻辑级的深度,因而构成进位的推迟是与位数无关的常数。一旦进位(c1~cn-1)算出今后,和也就可由(1)式得出。
运用上述公式来并行发生一切进位的加法器便是超前进位加法器。发生gi和pi需求一级门推迟,ci 需求两级,si需求两级,一共需求五级门推迟。与串联加法器(一般要2n级门推迟)比较,(特别是n比较大的时分)超前进位加法器的推迟时刻大大缩短了。