加法器電路是產生數的和的裝置。

1.加法器電路作用

加法器是為了實現加法的。

 

即是產生數的和的裝置。加數和被加數為輸入,和數與進位為輸出的裝置為半加器。若加數、被加數與低位的進位數為輸入,而和數與進位為輸出則為全加器。常用作計算機算術邏輯部件,執行邏輯操作、移位與指令調用。

 

對于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倍。

 

2.加法器電路圖

 

加法器電路

圖片來源于網絡

 

3.加法器電路原理

設一個n位的加法器的第i位輸入為ai、bi、ci,輸出si和ci+1,其中ci是低位來的進位,ci+1(i=n-1,n-2,…,1,0)是向高位的進位,c0是整個加法器的進位輸入,而cn是整個加法器的進位輸出。則和
si=aiii+ibii+iici+aibici 。


(1)進位ci+1=aibi+aici+bici 

(2)令 gi=aibi 

(3)令 gi=aibi

(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比較大的時候)超前進位加法器的延遲時間大大縮短了。

 

以單位元的加法器來說,有兩種基本的類型:半加器和全加器,半加器有兩個輸入和兩個輸出,輸入可以標識為 A、B 或 X、Y,輸出通常標識為合 S 和進制 C。A 和 B 經 XOR 運算后即為 S,經 AND 運算后即為 C。

 

全加器引入了進制值的輸入,以計算較大的數。為區分全加器的兩個進制線,在輸入端的記作 Ci 或 Cin,在輸出端的則記作 Co 或 Cout。半加器簡寫為 H.A.,全加器簡寫為 F.A.。

 

半加器:半加器的電路圖半加器有兩個二進制的輸入,其將輸入的值相加,并輸出結果到和(Sum)和進制(Carry)。半加器雖能產生進制值,但半加器本身并不能處理進制值。

 

全加器:全加器三個二進制的輸入,其中一個是進制值的輸入,所以全加器可以處理進制值。全加器可以用兩個半加器組合而成。

 

注意,進制輸出端的最末個OR閘,也可用XOR閘來代替,且無需更改其余的部分。因為 OR 閘和 XOR 閘只有當輸入皆為 1 時才有差別,而這個可能性已不存在。