一款32位嵌入式CPU的定點加法器設計
發布時間:2007/8/30 0:00:00 訪問次數:636
作者:夏有為 林正浩 楊曉峰
摘要:根據一塊32位嵌入式CPU的400MHz主頻的要求,結合該CPU五級流水線結構,并借鑒各種算法成熟的加法器,提出了一種電路設計簡單、速度快、功耗低、版圖面積小的32位改進定點加法器的設計方案,為后續浮點加法器的設計提供了很好的鋪墊。
關鍵詞:借鑒 改進 定點 加法器
從CPU的指令執行頻率上看,算術邏輯單元、程序計數器、協處理器是CPU中使用頻率最多的模塊,而加法器正是這些模塊的核心部件,幾乎所有的關鍵路徑都與之有關,因而設計一種通用于這些模塊的加法器是整個CPU設計中關鍵的一步。為此,筆者根據32位CPU的400MHz主頻的要求,結合CPU流水線結構,借鑒各種算法成熟的加法器,提出一種電路設計簡單、速度快、功耗低、版圖面積小的32位改進定點加法器的設計方案。
1 設計思想
對于高性能CPU中使用的加法器,速度顯然是第一位的,所以考慮采用并行計算的方法,并且在電路的設計上采用少量的器件來獲得速度上的巨大提升。從面積有度出發,鏈式進位加法器(Ripple-Carry Adder)的器件最少,面積最小,版圖工作量也最小,可是由于加法器的高位進位要等待低位的運算結束后才能得到,所以沒有辦法在速度上達到要求。鑒于此,采用類似于鏈式加法器的結構。
省先從進位選擇加法器(Carry-Select Adder)得到提示,將32位加法器一分為二,分為低16位加法器和高16位加法器,再將低16位加法器的進位輸出作為選擇信號,用于選擇高16位加法器的和及第27位的進位輸出(這個進位輸出要在溢出邏輯判斷中使用,而普通的加法器則不用產生進位)。通過這樣的處理,將一個32位的加法器簡化就成了兩上16位的加法器,如圖1所示。
另外,從超前進位加法器(Carry-Look-Ahead Adder)獲得提示,在超前進位加法器中引入中間變量G和P用于加速進位鏈的速度。而G和P在邏輯表達式上與前一級的進位無關,只與每一級的操作數輸入有關,而且它們又是構成本級進位的必要部分。在微處理器的數據通道上,數據傳輸是并行進行的,即兩個32位操作數幾乎同一時間到達時加法器。所以,G和P不論是加法器的最低位還是加法器的最高位,幾乎都可以在相同的時間內得到,因而進位鏈上就可以借鑒這個特點加速進位的傳遞。以一個四位加法器為例,有如下的邏輯推導過程:
C4=C3P4+G4=(C2P3+G3)·P4=G4=C2P3P4+G3P4+G4=(C1P2+G2) ·P3·P4+G3P4+G4=C1P2P3P4+G2P3P4+G3P4=(C0P1+G1) ·(P2P3P4)+(G2P3P4+G3P4+G4)=C0·(P1P2P3P4)+(G1P2P3P4+G2P3P4+G3P4+G4)
令上式中P1P2P3P4為Pgroup,G1P2P3P4+G2P3P4+G3P4+G4為Ggroup,如果將32位加法器劃分為若干的小塊,則每一個小塊都可以有自己相對應的Ggroup和Pgroup。由此可知對于整個加法器的時延來說,關鍵路徑的時延總值可以由三部分組成:①產生Ggroup和Pgroup的時延;②進位傳遞邏輯上的器件時延;③加法器進位鏈上的導線時延。對于這三類時延,時延①與時延(②+③)存在重疊的部分,于是使這兩類時延合理銜接,可以使得進位鏈上的邏輯級數最小,從而使得電路上的傳輸時延達到最小上。
2 具體實現
2.1 4位加法器模塊的實現
在具體的電路設計中,先將32位數據通道劃分成了高低兩部分,然后以4位為單位劃分成更小的模塊。這些模塊在結構上是基本一致的,但在功能上要完成本模塊四組操作數(A[k:k+3]和B[k:k+3])與進位Ck的加法運算,并要產生模塊的中間變量Ggroup和Pgroup的運算。
對于單一的每一位,定義它的G和P分別為:Gi=AiBi,Pi=Ai+Bi,加法器的和SUMi=Ai+Bi+Ci-1=Pi+Ci-1,考慮到器件的實際驅動能力,結合加法器的另一個功能——減法運算,設計出如圖2所示的帶減法功能的一位加法器電路。
設計的4位加法器進位鏈如圖3所示,除C0外,輸入(Pi和Gi)都是由圖2的一位加法器產生的,所有4位進位鏈Ci都按超前進位加法器連接方式直接接入相應位置。由此可以看出,進位信號到達各位的邏輯級數是相當的,只要在進位信號到達之間使所有的中間信號Gi和Pi都能及時產生,就能及時得到每一位的和(SUM)。
圖3
圖4是產生4位加法器塊進位及塊的Ggroup和Pgroup信號的電路。借鑒于超前進位加法器的傳遞邏輯電路,可知并不是所有的4位加法器都需要向它的下一個模塊傳送進位信號,而只要產生傳遞進位所需的Ggroup和Pgroup信號即可。而有些位置,由于進位鏈設計的實際需要,要需要利用4位加法器模塊產生的進位信號,而不必采用傳遞邏輯產生的進位信號,而不必采用傳遞邏輯產生的進位信號,具體的情況還是有區別的。為了充分利用圖3中產生的相關信號的復
作者:夏有為 林正浩 楊曉峰
摘要:根據一塊32位嵌入式CPU的400MHz主頻的要求,結合該CPU五級流水線結構,并借鑒各種算法成熟的加法器,提出了一種電路設計簡單、速度快、功耗低、版圖面積小的32位改進定點加法器的設計方案,為后續浮點加法器的設計提供了很好的鋪墊。
關鍵詞:借鑒 改進 定點 加法器
從CPU的指令執行頻率上看,算術邏輯單元、程序計數器、協處理器是CPU中使用頻率最多的模塊,而加法器正是這些模塊的核心部件,幾乎所有的關鍵路徑都與之有關,因而設計一種通用于這些模塊的加法器是整個CPU設計中關鍵的一步。為此,筆者根據32位CPU的400MHz主頻的要求,結合CPU流水線結構,借鑒各種算法成熟的加法器,提出一種電路設計簡單、速度快、功耗低、版圖面積小的32位改進定點加法器的設計方案。
1 設計思想
對于高性能CPU中使用的加法器,速度顯然是第一位的,所以考慮采用并行計算的方法,并且在電路的設計上采用少量的器件來獲得速度上的巨大提升。從面積有度出發,鏈式進位加法器(Ripple-Carry Adder)的器件最少,面積最小,版圖工作量也最小,可是由于加法器的高位進位要等待低位的運算結束后才能得到,所以沒有辦法在速度上達到要求。鑒于此,采用類似于鏈式加法器的結構。
省先從進位選擇加法器(Carry-Select Adder)得到提示,將32位加法器一分為二,分為低16位加法器和高16位加法器,再將低16位加法器的進位輸出作為選擇信號,用于選擇高16位加法器的和及第27位的進位輸出(這個進位輸出要在溢出邏輯判斷中使用,而普通的加法器則不用產生進位)。通過這樣的處理,將一個32位的加法器簡化就成了兩上16位的加法器,如圖1所示。
另外,從超前進位加法器(Carry-Look-Ahead Adder)獲得提示,在超前進位加法器中引入中間變量G和P用于加速進位鏈的速度。而G和P在邏輯表達式上與前一級的進位無關,只與每一級的操作數輸入有關,而且它們又是構成本級進位的必要部分。在微處理器的數據通道上,數據傳輸是并行進行的,即兩個32位操作數幾乎同一時間到達時加法器。所以,G和P不論是加法器的最低位還是加法器的最高位,幾乎都可以在相同的時間內得到,因而進位鏈上就可以借鑒這個特點加速進位的傳遞。以一個四位加法器為例,有如下的邏輯推導過程:
C4=C3P4+G4=(C2P3+G3)·P4=G4=C2P3P4+G3P4+G4=(C1P2+G2) ·P3·P4+G3P4+G4=C1P2P3P4+G2P3P4+G3P4=(C0P1+G1) ·(P2P3P4)+(G2P3P4+G3P4+G4)=C0·(P1P2P3P4)+(G1P2P3P4+G2P3P4+G3P4+G4)
令上式中P1P2P3P4為Pgroup,G1P2P3P4+G2P3P4+G3P4+G4為Ggroup,如果將32位加法器劃分為若干的小塊,則每一個小塊都可以有自己相對應的Ggroup和Pgroup。由此可知對于整個加法器的時延來說,關鍵路徑的時延總值可以由三部分組成:①產生Ggroup和Pgroup的時延;②進位傳遞邏輯上的器件時延;③加法器進位鏈上的導線時延。對于這三類時延,時延①與時延(②+③)存在重疊的部分,于是使這兩類時延合理銜接,可以使得進位鏈上的邏輯級數最小,從而使得電路上的傳輸時延達到最小上。
2 具體實現
2.1 4位加法器模塊的實現
在具體的電路設計中,先將32位數據通道劃分成了高低兩部分,然后以4位為單位劃分成更小的模塊。這些模塊在結構上是基本一致的,但在功能上要完成本模塊四組操作數(A[k:k+3]和B[k:k+3])與進位Ck的加法運算,并要產生模塊的中間變量Ggroup和Pgroup的運算。
對于單一的每一位,定義它的G和P分別為:Gi=AiBi,Pi=Ai+Bi,加法器的和SUMi=Ai+Bi+Ci-1=Pi+Ci-1,考慮到器件的實際驅動能力,結合加法器的另一個功能——減法運算,設計出如圖2所示的帶減法功能的一位加法器電路。
設計的4位加法器進位鏈如圖3所示,除C0外,輸入(Pi和Gi)都是由圖2的一位加法器產生的,所有4位進位鏈Ci都按超前進位加法器連接方式直接接入相應位置。由此可以看出,進位信號到達各位的邏輯級數是相當的,只要在進位信號到達之間使所有的中間信號Gi和Pi都能及時產生,就能及時得到每一位的和(SUM)。
圖3
圖4是產生4位加法器塊進位及塊的Ggroup和Pgroup信號的電路。借鑒于超前進位加法器的傳遞邏輯電路,可知并不是所有的4位加法器都需要向它的下一個模塊傳送進位信號,而只要產生傳遞進位所需的Ggroup和Pgroup信號即可。而有些位置,由于進位鏈設計的實際需要,要需要利用4位加法器模塊產生的進位信號,而不必采用傳遞邏輯產生的進位信號,而不必采用傳遞邏輯產生的進位信號,具體的情況還是有區別的。為了充分利用圖3中產生的相關信號的復