大多數(shù)數(shù)字功能可分為:數(shù)據(jù)通道、儲(chǔ)存器、控制單元、I/O。加法器和乘法器屬于數(shù)據(jù)通道部分。
一般對(duì)數(shù)據(jù)通道有如下要求:首先是規(guī)整性以優(yōu)化版圖,其次是局域性(時(shí)間、空間,算子相鄰布置)以使版圖緊湊,正交性(數(shù)據(jù)流、控制流)以便規(guī)整布線,另外還需要層次化和模塊化。
- 簡單加法器
簡單加法器是一個(gè)3輸入2輸出的邏輯單元,輸入是兩個(gè)相加位和一個(gè)前級(jí)進(jìn)位,輸出是和,以及本級(jí)進(jìn)位。功能就是實(shí)現(xiàn)帶進(jìn)位的1位加法。邏輯表達(dá)式是:
SUM=A xor B xor Cin (異或的符號(hào)我不知道怎么弄出來,只好用xor代替了。)
Carry=AB+Cin(A+B)用組合邏輯來實(shí)現(xiàn)的話有下面幾種方法
一是普通方法,將上面的邏輯表達(dá)式轉(zhuǎn)換成只有與或非的形式(便于電路實(shí)現(xiàn))
SUM=ABC+A(not B)(not C)+(not A)(not B)C+(not A)B(not C) 需要16個(gè)管子
Carry=AB+BC+AC 需要10個(gè)管子
另外A、B、C都需要反相信號(hào)(每個(gè)反相器2個(gè)管子)所以還需要6個(gè)。
總共32個(gè)管子。上面計(jì)算管子的時(shí)候,邏輯是按管子串聯(lián)算的,這樣省管子,但是因?yàn)榇?lián)也會(huì)帶來問題(閾值電壓損失?)。另外一種稍微使用了一點(diǎn)技巧,它利用輸出的進(jìn)位產(chǎn)生“和”位
SUM=ABC+(A+B+C)(not Carry)
Carry=AB+(A+B)C
這樣總共需要28個(gè)管子。這種形式的電路重復(fù)利用Carry-out信號(hào)來產(chǎn)生 SUM,不需要異或門,節(jié)省了管子。但是它也有缺點(diǎn):SUM信號(hào)比Carry遲產(chǎn)生。不過話又說回來,這未嘗不是一個(gè)優(yōu)點(diǎn),因?yàn)樵诩臃ㄆ麈溨?,關(guān)鍵路徑是進(jìn)位信號(hào)的傳遞,也就是說通常加法器鏈的延時(shí)取決于每個(gè)加法器進(jìn)位信號(hào)的產(chǎn)生時(shí)間(下面將要討論這方面的問題),而不是“和”信號(hào)的延時(shí)。所以這種電路的這個(gè)特點(diǎn)不會(huì)對(duì)速度造成太大的影響。對(duì)組合邏輯加法器可以進(jìn)行如下的優(yōu)化:
- 加大Carry Stage中管子的尺寸以提高Carry out的驅(qū)動(dòng)能力。
- 減小Carry out信號(hào)驅(qū)動(dòng)的管子的尺寸(在Sum Stage中),以減小Carry out信號(hào)的負(fù)載。
- 盡量使Carry out的線短,并少用擴(kuò)散層作為布線層。
- 把Carry in信號(hào)驅(qū)動(dòng)的管子放在靠近輸出端(減少Body Effect)。
- 通過仔細(xì)模擬決定管子尺寸。
除了使用組合邏輯以外,還可以使用傳輸門邏輯來實(shí)現(xiàn)簡單加法器。這里就不細(xì)談了。傳輸門加法器共需24個(gè)管子。它的特點(diǎn)是:輸出既有SUM、Carry,又有它們的反信號(hào); SUM和Carry的延時(shí)時(shí)間相同;無閾值損失。當(dāng)然,它的速度不如組合邏輯。
- 串行進(jìn)位加法器
串行進(jìn)位加法器可以說是最簡單的一種多位加法器,它是由n個(gè)一位加法器(也就是上面分析的簡單加法器)串聯(lián)而成,第i級(jí)的Carry-out用來產(chǎn)生第i+1級(jí)的 SUM和Carry。
這種加法器結(jié)構(gòu)簡單,但是速度慢,n位加法器的延時(shí)=n * (一位延時(shí))。這種加法器可以通過同時(shí)利用正信號(hào)和反信號(hào)來達(dá)到優(yōu)化進(jìn)位鏈的效果。(這種方法很巧妙,不過空口說好像不大容易說清楚,以后把圖畫出來就清楚了,:-P)
- 超前進(jìn)位加法器
- 曼徹斯特進(jìn)位鏈
- 條件求和加法器
- 進(jìn)位選擇加法器
- 其他加法器
- 加法器小結(jié)
評(píng)論
查看更多