必威电竞|足球世界杯竞猜平台

加法器
來源:互聯(lián)網(wǎng)

加法器是產(chǎn)生數(shù)的和的裝置。加數(shù)和被加數(shù)為輸入,和數(shù)與進(jìn)位為輸出的裝置為半加器。若加數(shù)、被加數(shù)與低位的進(jìn)位數(shù)為輸入,而和數(shù)與進(jìn)位為輸出則為全加器。常用作計(jì)算機(jī)算術(shù)邏輯部件,執(zhí)行邏輯操作、移位與指令調(diào)用。在電子學(xué)中,加法器是一種數(shù)位電路,其可進(jìn)行數(shù)字的加法計(jì)算。三碼,主要的加法器是以二進(jìn)制作運(yùn)算。由于負(fù)數(shù)可用二的補(bǔ)數(shù)來表示,所以加減器也就不那么必要。

簡介

加法器是為了實(shí)現(xiàn)加法的。

即是產(chǎn)生數(shù)的和的裝置。

對于1位的二進(jìn)制加法,相關(guān)的有五個(gè)的量:1,被加數(shù)A,2,加數(shù)B,3,前一位的進(jìn)位CIN,4,此位二數(shù)相加的和S,5,此位二數(shù)相加產(chǎn)生的進(jìn)位COUT。前三個(gè)量為輸入量,后兩個(gè)量為輸出量,五個(gè)量均為1位。

對于32位的二進(jìn)制加法,相關(guān)的也有五個(gè)量:1,被加數(shù)A(32位),2,加數(shù)B(32位),3,前一位的進(jìn)位CIN(1位),4,此位二數(shù)相加的和S(32位),5,此位二數(shù)相加產(chǎn)生的進(jìn)位COUT(1位)。

要實(shí)現(xiàn)32位的二進(jìn)制加法,一種自然的想法就是將1位的二進(jìn)制加法重復(fù)32次(即逐位進(jìn)位加法器)。這樣做無疑是可行且易行的,但由于每一位的CIN都是由前一位的COUT提供的,所以第2位必須在第1位計(jì)算出結(jié)果后,才能開始計(jì)算;第3位必須在第2位計(jì)算出結(jié)果后,才能開始計(jì)算,等等。而最后的第32位必須在前31位全部計(jì)算出結(jié)果后,才能開始計(jì)算。這樣的方法,使得實(shí)現(xiàn)32位的二進(jìn)制加法所需的時(shí)間是實(shí)現(xiàn)1位的二進(jìn)制加法的時(shí)間的32倍。

基本方法

可以看出,上法是將32位的加法1位1位串行進(jìn)行的,要縮短進(jìn)行的時(shí)間,就應(yīng)設(shè)法使上敘進(jìn)行過程并行化。

逐位進(jìn)位加法器,在每一位的計(jì)算時(shí),都在等待前一位的進(jìn)位。那么不妨預(yù)先考慮進(jìn)位輸入的所有可能,對于二進(jìn)制加法來說,就是0與1兩種可能,并提前計(jì)算出若干位針對這兩種可能性的結(jié)果。等到前一位的進(jìn)位來到時(shí),可以通過一個(gè)雙路開關(guān)選出輸出結(jié)果。這就是進(jìn)位選擇加法器的思想。提前計(jì)算多少位的數(shù)據(jù)為宜?同為32位的情況:線形進(jìn)位選擇加法器,方法是分N級,每級計(jì)算32/N位;平方根進(jìn)位選擇加法器,考慮到使兩個(gè)路徑(1,提前計(jì)算出若干位針對這兩種可能性的結(jié)果的路徑,2,上一位的進(jìn)位通過前面的結(jié)構(gòu)的路徑)的延時(shí)達(dá)到相等或是近似。方法,或是2345666即第一級相加2位,第二級3位,第三級4位,第四級5位,第五級6位,第六級6位,第七級6位;或是345677即第一級相加3位,第二級4位,第三級5位,第四級6位,第五級7位,第六級7位。

進(jìn)一步分析加法進(jìn)行的機(jī)制,可以使加法器的結(jié)構(gòu)進(jìn)一步并行化。

令G = AB,P = A⊕B,則COUT(G,P) = G + PCIN,S(G,P)=P⊕CIN。由此,A,B,CIN,S,COUT五者的關(guān)系,變?yōu)榱薌,P,CIN,S,COUT五者的關(guān)系。

再定義點(diǎn)運(yùn)算(·),(G,P)·(G’,P’)=(G + PG’,PP’),可以分解(G 3:2,P3:2) =(G3,P3)·(G2,P2)。點(diǎn)運(yùn)算服從結(jié)合律,但不符合交換律

點(diǎn)運(yùn)算只與G,P有關(guān)而與CIN無關(guān),也就是可以通過只對前面若干位G,P進(jìn)行點(diǎn)運(yùn)算計(jì)算,就能得到第N位的GN:M,PN:M值,當(dāng)取M為0時(shí),獲得的GN:0,PN:0即可與初使的CIN一起代入COUT(G,P) = G + PCIN,S(G,P)=P⊕CIN,得到此位的COUT,S;而每一位的G,P值又只與該位的A,B值即輸入值有關(guān),所以在開始進(jìn)行運(yùn)算后,就能并行的得到每一位的G,P值。

以上分析產(chǎn)生了超前進(jìn)位加法器的思想:三步運(yùn)算,1,由輸入的A,B算出每一位的G,P;2,由各位的G,P算出每一位的GN:0,PN:0;3,由每一位的GN:0,PN:0與CIN算出每一位的COUT,S。其中第1,3步顯然是可以并行處理的,計(jì)算的主要復(fù)雜度集中在了第2步。

第2步的并行化,也就是實(shí)現(xiàn)GN:0,PN:0的點(diǎn)運(yùn)算分解的并行化。

工作原理

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

si=aiii+ibii+iici+aibici ,(1) 進(jìn)位ci+1=aibi+aici+bici ,(2)

令 gi=aibi, (3)

pi=ai+bi, (4)

則 ci+1= gi+pici, (5)

只要aibi=1,就會(huì)產(chǎn)生向i+1位的進(jìn)位,稱g為進(jìn)位產(chǎn)生函數(shù);同樣,只要ai+bi=1,就會(huì)把ci傳遞到i+1位,所以稱p為進(jìn)位傳遞函數(shù)。把式(5)展開,得到:ci+1= gi+ pigi-1+pipi-1gi-2+…+ pipi-1…p1g0+ pipi-1…p0c0(6)。

隨著位數(shù)的增加式(6)會(huì)加長,但總保持三個(gè)邏輯級的深度,因此形成進(jìn)位的延遲是與位數(shù)無關(guān)的常數(shù)。一旦進(jìn)位(c1~.cn1)算出以后,和也就可由式(1)得出。

使用上述公式來并行產(chǎn)生所有進(jìn)位的加法器就是超前進(jìn)位加法器。產(chǎn)生gi和pi需要一級門延遲,ci 需要兩級,si需要兩級,總共需要五級門延遲。與串聯(lián)加法器(一般要2n級門延遲)相比,(特別是n比較大的時(shí)候)超前進(jìn)位加法器的延遲時(shí)間大大縮短了。

類型

以單位元的加法器來說,有兩種基本的類型:半加器和全加器,半加器有兩個(gè)輸入和兩個(gè)輸出,輸入可以標(biāo)識為 A、B 或 X、Y,輸出通常標(biāo)識為合 S 和進(jìn)制 C。A 和 B 經(jīng) XOR 運(yùn)算后即為 S,經(jīng) AND 運(yùn)算后即為 C。

全加器引入了進(jìn)制值的輸入,以計(jì)算較大的數(shù)。為區(qū)分全加器的兩個(gè)進(jìn)制線,在輸入端的記作 Ci 或 Cin,在輸出端的則記作 Co 或 Cout。半加器簡寫為 H.A.,全加器簡寫為 F.A.。

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

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

注意,進(jìn)制輸出端的最末個(gè)OR閘,也可用XOR閘來代替,且無需更改其余的部分。因?yàn)?OR 閘和 XOR 閘只有當(dāng)輸入皆為 1 時(shí)才有差別,而這個(gè)可能性已不存在。

結(jié)構(gòu)設(shè)計(jì)

直接使用式(6)形成的電路是不規(guī)則的,并且需要長線驅(qū)動(dòng),需要大驅(qū)動(dòng)信號和大扇入門。當(dāng)位數(shù)較多時(shí),這種實(shí)現(xiàn)方式不太現(xiàn)實(shí)。

可以改進(jìn)超前進(jìn)位電路,使其具有規(guī)則性。對于一個(gè)n位(n>4)的加法器,按4位一組的形式對其分組,組內(nèi)實(shí)行超前進(jìn)位,組間也實(shí)行超前進(jìn)位。相應(yīng)地超前進(jìn)位邏輯需要分級,級的數(shù)目L=Log4(n)。如圖1所示,第m(0~n-1)位的g,p可以表示為:g4k+j=a4k+jb4k+j,p4k+j=a4k+j+b4k+j;k為(m/4)的商,代表組的 位置;j為余數(shù),代表該位在該組中的位置。各個(gè)4位CLA的組進(jìn)位產(chǎn)生函數(shù)G4k+3, 4k = g4k+3 + p4k+3 g4k+2 + p4k+3p4k+2g4k+1 +p4k+3p4k+2p4k+1g4k ;組進(jìn)位傳遞函數(shù)P4k+3, 4k = p4k+3 p4k+2 p4k+1 p4k ;組進(jìn)位C4k+4 = G4k+3, 4k + P4k+3, 4k c4k。

每個(gè)4位的CLA模塊分別計(jì)算各組內(nèi)每一位的p、 g和組間的P、G,第二級LACG(look ahead carry generator)根據(jù)各組(包含第一級LACG邏輯)的P、G和c0計(jì)算出各組間的進(jìn)位C4k+4 ,同樣,第三級LACG則根據(jù)第二級的P、G和c0計(jì)算出向高4組的進(jìn)位C16k+16,依此類推。計(jì)算出的所有組進(jìn)位都要送回各個(gè)4位的CLA模塊,并行算出每一位的和。

改造后,CLA的延時(shí)包括:用式(3)和式(4)產(chǎn)生pi和gi的1級門延時(shí);用超前進(jìn)位電路產(chǎn)生所有進(jìn)位的2(2L-1)級門延時(shí);用 (1) 式計(jì)算si的2級門延時(shí)。于是總的延時(shí)為 :

Delay(中國麻風(fēng)防治協(xié)會(huì) adder)=1+4Log4(n) (7)

與簡單的串聯(lián)加法器相比,超前進(jìn)位加法器需要較多的邏輯電路來產(chǎn)生進(jìn)位位。但它的延遲時(shí)間的數(shù)量級為log4(n)。當(dāng)n較大時(shí),速度的改進(jìn)是很明顯的。

邏輯優(yōu)化

邏輯優(yōu)化設(shè)計(jì)的主要目的是減少信號的翻轉(zhuǎn)活動(dòng),它通過將電路的邏輯功能盡可能的分解、優(yōu)化,減少邏輯深度,減少信號假翻轉(zhuǎn),從而使翻轉(zhuǎn)活動(dòng)最小,減小電路的功耗。

令gsi=ai⊙bi ,則式(1)可以改寫為si= gsi⊙ci ,先考察第一組CLA

s0=gs0⊙c0 (8)

s1=gs1⊙c1=gs1⊙(g0+p0c0) (9)

s2=gs2⊙c2=gs2⊙(g1+p1g0+p1p0c0) (10)

s3=gs3⊙C3=gs3⊙(g2+p2g1+p2p1g0+p2p1p0c0)(11)

因?yàn)間, p的值只有“00”、“01”、“11”這三種組合,結(jié)合布爾代數(shù)性質(zhì)A⊙0=、A⊙1=A可知,s3的值最終可以歸結(jié)為3個(gè)表達(dá)式:gs3, 3和(gs3⊙c0),同樣,s2值的3個(gè)表達(dá)式為gs2, 2和(gs2⊙c0),s1為gs1, 1和(gs1⊙c0)。于是式(8)至式(11)就可以化為

s0=c0(gs0)+ 0 (0) (12)

s1=c0(gs1⊙p0)+0(gs1⊙g0) (13)

s2=c0(gs2⊙(g1+p1p0))+ 0 (gs2⊙(g1+p1g0))(14)

s3=c0(gs3⊙(G2+p2g1+p2p1p0))

+0(gs3⊙(g2+p2g1+p2p1g0)) (15)

其他組,如s4~s7、s8~s11等,情況和s0~s3一樣。

邏輯改造后,在進(jìn)位產(chǎn)生邏輯上可以減少一些不必要的翻轉(zhuǎn),減少了節(jié)點(diǎn)開關(guān)活動(dòng)率,并且可以重復(fù)利用g,p積之和的相同部分,達(dá)到路徑平衡的效果,可以有效地消除假翻轉(zhuǎn)(glitch),同時(shí)與門和或門的最大扇入都減少了一個(gè),較大程度地減小了功耗。

設(shè)計(jì)優(yōu)化

邏輯改造后,電路也應(yīng)該相應(yīng)地進(jìn)行優(yōu)化設(shè)計(jì),因?yàn)槿绻闷胀ǖ拈T電路來實(shí)現(xiàn)式(12)~(15)的邏輯,晶體管數(shù)目(面積)會(huì)增加。另外,在電路級也可以采用減少節(jié)點(diǎn)翻轉(zhuǎn)和寄生電容的方法來降低功耗。

式(12)~(15)中多處要用到同或門,設(shè)計(jì)中,我們用基于旁路的靜態(tài)邏輯實(shí)現(xiàn)產(chǎn)生gs的同或門,如圖2。旁路邏輯通過由附加管形成的旁路,可以把“串并交錯(cuò)”的電路結(jié)構(gòu)簡化為單一的串或者并的形式。它的電路和版圖都有很好的規(guī)整性,并且可以減小寄生電容。是兩種同或門N塊版圖不同部分的比較,(b)是基于旁路邏輯實(shí)現(xiàn)的,與(a)相比,少了一條金屬連線和兩個(gè)金屬接觸,使版圖變得十分規(guī)整,擴(kuò)散區(qū)不會(huì)被隔斷。在拓?fù)渖希瑑蓷l分支用公共的漏區(qū),達(dá)到最少的接觸孔和金屬互連,比“串并”和“并串”的晶體管配置方式規(guī)整,且寄生電容小。

加法器電路上的延遲值

旁路邏輯不能實(shí)現(xiàn)傳輸門,因而不能用傳輸門實(shí)現(xiàn)同或和異或,但是容易證明,三態(tài)門在速度和功耗方面都比傳輸門優(yōu)越。參照傳輸門的結(jié)合方式,我們用兩個(gè)三態(tài)反相器和一個(gè)反相器實(shí)現(xiàn)了同或門。

實(shí)現(xiàn)了式(13)括號內(nèi)的兩個(gè)同或邏輯,平均只需要1級門延時(shí),而用普通門實(shí)現(xiàn)的“與非或與非”形式的同或門需要2級或3級門延時(shí)。由上面的同或門設(shè)計(jì)得到啟發(fā),根據(jù)形如式(13)的邏輯,設(shè)計(jì)了一個(gè)10管單元utiandor2。

該單元電路實(shí)現(xiàn)s=c0CK+0CKN,只要把式(12)~(15)中的括號部分從CK和CKN輸入,輸出就相應(yīng)得到了s0~ s3。僅當(dāng)CKN=時(shí),電路(a)兩邊均是三態(tài)反相器,構(gòu)成圖5(b)的同或門,兩個(gè)反相器交替導(dǎo)通,s=c0⊙CK ;當(dāng)CKN=CK(發(fā)生幾率比較大),左邊P管和右邊N管,或者左邊N管和右邊P管交替導(dǎo)通,輸出s=CK,從而屏蔽了c0的變化。考察第一組4位CLA中的進(jìn)位產(chǎn)生邏輯最復(fù)雜的s3,參考式(15),當(dāng)g2,g1,g0均為0,p2,p1,p0均為1時(shí),s3= gs3⊙c0,顯然這是一種特殊情況,即低位各位都不產(chǎn)生進(jìn)位,但可以傳遞進(jìn)位時(shí),直接把c0傳至高位與gs同或即可產(chǎn)生和。c0在各位和生成邏輯的最后一級才加入,可以消除過早加入帶來的不必要的翻轉(zhuǎn)。左右兩塊交替導(dǎo)通,只存在下拉或上拉延時(shí),有類似動(dòng)態(tài)電路延遲小的優(yōu)點(diǎn)。僅用了10個(gè)晶體管,比常規(guī)門實(shí)現(xiàn)的積之和節(jié)省8個(gè)。

參考資料 >

生活家百科家居網(wǎng)