《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 一款32位嵌入式CPU的定點加法器設(shè)計

一款32位嵌入式CPU的定點加法器設(shè)計

2008-08-12
作者:夏有為,, 林正浩,, 楊曉峰

  摘 要: 根據(jù)一款32位嵌入式CPU的400MHz主頻的要求,結(jié)合該CPU五級流水線結(jié)構(gòu),,并借鑒各種算法成熟的加法器,提出了一種電路設(shè)計簡單,、速度快,、功耗低" title="功耗低">功耗低、版圖面積小的32位改進定點加法器的設(shè)計方案,,為后續(xù)浮點加法器" title="浮點加法器">浮點加法器的設(shè)計提供了很好的鋪墊,。
  關(guān)鍵詞: 借鑒 改進 定點 加法器


  從CPU的指令執(zhí)行頻率上看,算術(shù)邏輯單元,、程序計數(shù)器,、協(xié)處理器是CPU中使用頻率最多的模塊,而加法器正是這些模塊的核心部件,,幾乎所有的關(guān)鍵路徑都與之有關(guān),,因而設(shè)計一種通用于這些模塊的加法器是整個CPU設(shè)計中關(guān)鍵的一步。為此,,筆者根據(jù)32位CPU的400MHz主頻的要求,,結(jié)合CPU流水線結(jié)構(gòu),借鑒各種算法成熟的加法器,,提出一種電路設(shè)計簡單,、速度快、功耗低,、版圖面積小的32位改進定點加法器的設(shè)計方案,。
1 設(shè)計思路
  對于高性能CPU中使用的加法器,速度顯然是第一位的,,所以考慮采用并行計算的方法,,并且在電路的設(shè)計上采用少量的器件來獲得速度上的巨大提升。從面積角度出發(fā),,鏈?zhǔn)竭M位加法器(Ripple-Carry Adder)[1]的器件最少,,面積最小,版圖工作量也最小,,可是由于加法器的高位進位要等待低位的運算結(jié)束后才能得到,,所以沒有辦法在速度上達到要求。鑒于此,采用類似于鏈?zhǔn)郊臃ㄆ鞯慕Y(jié)構(gòu),。
  首先從進位選擇加法器(Carry-Select Adder)[2]得到提示,,將32位加法器一分為二,分為低16位加法器和高16位加法器,再將低16位加法器的進位輸出作為選擇信號,,用于選擇高16位加法器的和及第27位的進位輸出(這個進位輸出要在溢出邏輯判斷中使用,,而普通的加法器則不用產(chǎn)生進位)。通過這樣的處理,,將一個32位的加法器簡化就成了兩個16位的加法器,,如圖1所示。


  另外,,從超前進位加法器(Carry-Look-Ahead Adder)[3]獲得提示,,在超前進位加法器中引入中間變量G和P用于加速進位鏈的速度。而G和P在邏輯表達式上與前一級的進位無關(guān),,只與每一級的操作數(shù)輸入有關(guān),,而且它們又是構(gòu)成本級進位的必要部分。在微處理器的數(shù)據(jù)通道" title="數(shù)據(jù)通道">數(shù)據(jù)通道上,,數(shù)據(jù)傳輸是并行進行的,,即兩個32位操作數(shù)幾乎同一時間到達加法器。所以,,G和P不論是加法器的最低位還是加法器的最高位,,幾乎都可以在相同的時間內(nèi)得到,因而在進位鏈上就可以借鑒這個特點加速進位的傳遞,。以一個四位加法器為例,,有如下的邏輯推導(dǎo)過程:
  
  令上式中P1P2P3P4為Pgroup,G1P2P3P4+G2P3P4+G3P4+G4為Ggroup,,如果將32位加法器劃分為若干的小塊,,則每一個小塊都可以有自己相對應(yīng)的Ggroup和Pgroup。由此可知對于整個加法器的時延" title="時延">時延來說,,關(guān)鍵路徑的時延總值可以由三部分組成:①產(chǎn)生Ggroup和Pgroup的時延,;②進位傳遞邏輯上的器件時延;③加法器進位鏈上的導(dǎo)線時延,。對于這三類時延,,時延①與時延(②+③)存在重疊的部分,于是使這兩類時延合理銜接,,可以使得進位鏈上的邏輯級數(shù)最小,,從而使得電路上的傳輸時延達到最小。
2 具體實現(xiàn)
2.1 4位加法器模塊的實現(xiàn)
  在具體的電路設(shè)計中,,先將32位數(shù)據(jù)通道劃分成了高低兩部分,,然后以4位為單元劃分成更小的模塊,。這些模塊在結(jié)構(gòu)上是基本一致的,但在功能上要完成本模塊四組操作數(shù)(A[k:k+3]和B[k:k+3])與進位Ck的加法運算,,并要產(chǎn)生模塊的中間變量Ggroup和Pgroup的運算,。
  對于單一的每一位,定義它的G和P分別為:Gi=AiBi, Pi=Ai⊕Bi,,加法器的和SUMi=Ai⊕Bi⊕Ci-1=Pi⊕Ci-1,考慮到器件的實際驅(qū)動能力,,結(jié)合加法器的另一個功能——減法運算,,設(shè)計出如圖2所示的帶減法功能的一位加法器電路,。


  設(shè)計的4位加法器進位鏈如圖3所示,除C0外,,輸入(i和i)都是由圖2的一位加法器產(chǎn)生的,,所有4位進位鏈Ci都按超前進位加法器連接方式[3]直接接入相應(yīng)位置。由此可以看出,,進位信號到達各位的邏輯級數(shù)是相當(dāng)?shù)?,只要在進位信號到達之前使所有的中間信號i和i都能及時產(chǎn)生,就能及時得到每一位的和(SUM),。


  圖4是產(chǎn)生4位加法器塊進位及塊的Ggroup和Pgroup信號的電路,。借鑒于超前進位加法器的傳遞邏輯電路" title="邏輯電路">邏輯電路[3],可知并不是所有的4位加法器都需要向它的下一個模塊傳送進位信號,,而只要產(chǎn)生傳遞進位所需的Ggroup和Pgroup信號即可,。而有些位置,由于進位鏈設(shè)計的實際需要,,只需要利用4位加法器模塊產(chǎn)生的進位信號,,而不必采用傳遞邏輯產(chǎn)生的進位信號,具體的情況還是有區(qū)別的,。為了充分利用圖3中產(chǎn)生的相關(guān)信號的復(fù)用,,在進位信號C4的產(chǎn)生電路部分,進位鏈方向上的邏輯級數(shù)只有兩級,,可以說還是比較簡單了,。可是,,綜合前面所談到的4位加法器的電路,,可以發(fā)現(xiàn)有一些中間信號(i和i)的負載是不均衡的,如2的負載比34要重很多,。所以在設(shè)計的時候,,如果考慮到盡量降低版圖的復(fù)雜程度,就要在面積上做出適當(dāng)?shù)臓奚?,盡量以最大負載進行考慮,,使得器件的設(shè)計符合時延上的要求,;同時還要充分考慮到在深亞微米工藝條件下導(dǎo)線的時延問題,即設(shè)計的電路不但要考慮到所承受的器件的負載,,而且還要結(jié)合版圖設(shè)計中實際的導(dǎo)線負載,,定出上述電路的合理尺寸。


2.2 傳遞邏輯電路實現(xiàn)
  完成上述基本4位加法器的電路設(shè)計后,,要構(gòu)造一個完整的32位加法器還需借助于傳遞邏輯電路,。傳遞邏輯電路可以對4位加法器模塊的進位進行傳遞,也可以對由兩個4位加法器模塊組成的8位加法器模塊的進位進行傳遞,。對于8位加法器模塊,,由于低4位的進位可以表示為C4=C0Ggroup+Pgroup,則8位加法器模塊的進位為:
  
  由此可以設(shè)計出如圖5和圖6所示的兩種進位傳遞邏輯電路,。


2.3 溢出邏輯電路實現(xiàn)
  設(shè)計中還采用了判斷溢出的方法[4],。當(dāng)兩個有符號數(shù)進行加減法運算時,若最高的數(shù)值位向符號位的進位(本設(shè)計中的C30)值與符號位產(chǎn)生的進位(本設(shè)計中的C31)輸出值不同,,則表明加減運算產(chǎn)生了溢出,。
  由上述可知,加法器時延的關(guān)鍵路徑在進位鏈上,,而進行溢出判斷所需要的信息C30與C31都在這條路徑上,。于是采用類似于進位跳位加法器(Carry-Skip Adder)[2]的辦法,使得低位的進位快速跳位到高位,,使C30與C31快速產(chǎn)生,。具體實現(xiàn)如下:
  ①溢出的邏輯表達式推導(dǎo)
  由于Overflow=(C30⊕C31)·Overflag(Overflag表示當(dāng)前ALU加法器進行有符號運算),,需要進行溢出判斷(它是ALU控制模塊在譯碼階段產(chǎn)生的,,在指令執(zhí)行階段起始段就輸出到數(shù)據(jù)通道,所以它不在關(guān)鍵路徑上),。
  
  顯然,,分式(1)是和進位鏈無關(guān)的一部分,可以在每一個流水線的指令執(zhí)行階段起始段很快得到,,而分式(2)則是和進位鏈有關(guān)的部分,,其具體邏輯值將取決于進位C27的值。分式(1)中高位的Gi和Pi都可以在進位C27到來之前預(yù)先得到,,只要C27一到就可以進行邏輯判斷,,得到相應(yīng)的邏輯。
  
 ?、谝绯鲞壿嬰娐穼崿F(xiàn)
  根據(jù)式(3)的邏輯表達式,,可設(shè)計出加法器溢出邏輯產(chǎn)生電路,如圖7所示,。


  設(shè)計得到的32位加法器在SMIC流片后,,經(jīng)測試,,運算速度在400MHz以上,滿足設(shè)計要求,,為后續(xù)浮點加法器的設(shè)計提供了很好的鋪墊,。
參考文獻
1 John L Hennessy. David A Patterson. Computer Organization & Design——The Hardware/Software Interface(Second Edition).北京:機械工業(yè)出版社,1998
2 Jan M Rabaey. Digital Integrated Circuits. Person Education Inc. 2003, ISBN 0-13-090996
3 Weste.NeIL H.E., K. Eshraghian. Principles of CMOS VLSI Design. Addison Weley, 1993
4 Koren I. Computer Arithmetic Algorithms. Prentice Hall,1993

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]