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

2020-12-05 電子產品世界

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


  另外,從超前進位加法器(Carry-Look-Ahead Adder)[3]獲得提示,在超前進位加法器中引入中間變量G和P用於加速進位鏈的速度。而G和P在邏輯表達式上與前一級的進位無關,只與每一級的操作數輸入有關,而且它們又是構成本級進位的必要部分。在微處理器的數據通道上,數據傳輸是並行進行的,即兩個32位操作數幾乎同一時間到達加法器。所以,G和P不論是加法器的最低位還是加法器的最高位,幾乎都可以在相同的時間內得到,因而在進位鏈上就可以借鑑這個特點加速進位的傳遞。以一個四位加法器為例,有如下的邏輯推導過程:
  
  令上式中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外,輸入(i和i)都是由圖2的一位加法器產生的,所有4位進位鏈Ci都按超前進位加法器連接方式[3]直接接入相應位置。由此可以看出,進位信號到達各位的邏輯級數是相當的,只要在進位信號到達之前使所有的中間信號i和i都能及時產生,就能及時得到每一位的和(SUM)。


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


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


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


  設計得到的32位加法器在SMIC流片後,經測試,運算速度在400MHz以上,滿足設計要求,為後續浮點加法器的設計提供了很好的鋪墊。

電氣符號相關文章:電氣符號大全

p2p機相關文章:p2p原理


相關焦點

  • FPU加法器的設計與實現
    文章從浮點加法器算法和電路實現的角度給出設計方法,通過VHDL語言在OuartusII中進行設計和驗證,此加法器通過狀態機控制運算,有效地降低了功耗,提高了速度,改善了性能。關鍵詞:浮點運算;加法器;設計;VHDL;狀態機 在一般的處理器中,浮點加法、減法、轉換和傳送最終都是可以轉換為採用浮點加法器實現,所以浮點加法器的使用頻率高達55%,是使用頻率最高的浮點運算模塊。浮點加法的兩個特點,一是它複雜,二是它被使用的頻率在所有操作裡面是最高的,所以它是現代微處理器和數位訊號處理器中非常關鍵的部分。
  • 加法器和乘法器簡介及設計
    簡單加法器簡單加法器是一個3輸入2輸出的邏輯單元,輸入是兩個相加位和一個前級進位,輸出是和,以及本級進位。功能就是實現帶進位的1位加法。Carry=AB+Cin(A+B) 用組合邏輯來實現的話有下面幾種方法 一是普通方法,將上面的邏輯表達式轉換成只有與或非的形式(便於電路實現) SUM=ABC+A(not B)(not C)+(not A)(not B)C+(not A)B(not C) 需要16個管子 Carry=AB+BC+AC 需要10個管子 另外A、
  • 加法器是什麼?加法器電路原理
    對於32位的二進位加法,相關的也有五個量:1,被加數A(32位),2,被加數B(32位),3,前一位的進位CIN(1位),4,此位二數相加的和S(32位),5,此位二數相加產生的進位COUT(1位)。  要實現32位的二進位加法,一種自然的想法就是將1位的二進位加法重複32次(即逐位進位加法器)。
  • 基於STM32F107的嵌入式POS系統設計
    針對目前嵌入式收款機系統在功能和性價比方面存在不足的問題,介紹了一種基於Cortex M3晶片的嵌入式收款機系統。該系統功能全面、性能良好、界面完善、具有故障分析和機器自檢功能。運行結果表明,該系統實現了預期目標。
  • 大師教你如何製作一個簡單的16位CPU
    CPU,eax是32位寄存器所以必然是加到4294967295然後回0,而後面那個c程序則看不同編譯器和不同平臺不一樣),後面那個例子則看你用的是什麼樣的加法器和多少個D觸發器那問題就來了,我假設要一個遞減的序列怎麼辦呢?
  • 瑞薩電子採用Andes RISC-V 32位CPU內核 開發其首款RISC-V架構ASSP...
    打開APP 瑞薩電子採用Andes RISC-V 32位CPU內核 開發其首款RISC-V架構ASSP產品 瑞薩電子 發表於 2020-10-10 11:20:44
  • 超前進位集成4(四)位加法器74LS283
    打開APP 超前進位集成4(四)位加法器74LS283 佚名 發表於 2009-04-07 10:36:35 超前進位集成4位加法器74LS283  由於串行進位加法器的速度受到進位信號的限制,人們又設計了一種多位數超前進位加法邏輯電路,使每位的進位只由加數和被加數決定,而與低位的進位無關。
  • 嵌入式導航系統的組成與設計流程
    因此,以嵌入式系統為主要平臺的數碼地理整合性應用與其因應方案,也就是手持式、車載GPS全球衛星導航系統,便可解決對此人們急迫的需求性。基於S3C2440A微處理器和Win CE 5.0嵌入式作業系統,設計了一套可靠且實用的嵌入式導航系統,所提供的功能可以滿足人們現階段日常生活的需要。 1 嵌入式導航系統主要組成 嵌入式導航系統由硬體層、軟體層和中間層組成。
  • 電腦系統32位和64位的區別在哪裡
    系統32位與64位之間的區別:1、要求配置不同64位作業系統只能安裝在64位電腦上(cpu必須是64位的)。同時需要安裝64位常用軟體才能夠發揮64位(x64)的最佳性能。32位作業系統則可以安裝在32位(32位CPU)或64位(64位CPU)電腦上。
  • 加法器
    2008-12-17 01:35     實現多位二進位數相加的電路稱為加法器
  • 基於32位高性能數位訊號處理器實現飛機測控終端系統的設計
    基於32位高性能數位訊號處理器實現飛機測控終端系統的設計 郭曉康,姬勞,謝拴 發表於 2020-12-25 10:20:39 引言 作為飛機電氣系統的重要組成部分,飛機配電系統主要用於實現電功功率的合理分配和控制
  • 「中國青年五四獎章集體」、天津飛騰嵌入式CPU研發團隊:趁青春 做...
    這是天津飛騰嵌入式CPU研發團隊隊員們的普遍心聲。天津北方網訊:在青春的「字典」裡,奮鬥與夢想並駕齊驅。「趁青春,做對國家有意義的事,多麼令人幸福!」這是天津飛騰嵌入式CPU研發團隊隊員們的普遍心聲。「吾令鳳鳥飛騰兮,繼之以日夜」,天津飛騰嵌入式CPU研發團隊是一支平均年齡只有32歲的年輕團隊。
  • 基於嵌入式WinCE的CAN總線控制器驅動設計
    嵌入式作業系統(:Real-time Embedded OperatingSystem,RTOs或EOs)作為一種實時的、支持嵌入式系統應用的作業系統軟體,成為嵌入式系統(包括硬、軟體系統)極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器Browser等。
  • 嵌入式智能化傳感器的設計
    摘 要: 給出了智能化傳感器嵌入式控制器的開發環境、典型嵌入式微控制器硬體結構和軟體結構及設計方法,同時對智能化傳感器的信號處理方法作了簡單介紹,最後提供了一些目前廣泛應用的嵌入式微控制器晶片。
  • 加法器晶片74ls283中文資料匯總(74ls283引腳圖及功能_極限值及...
    >   本文主要詳解加法器晶片74ls283中文資料匯總,首先介紹了74ls283引腳圖及功能,其次介紹了74ls283邏輯功能圖及極限值,最後介紹了兩款基於加法器晶片74ls283的應用電路圖,具體的跟隨小編一起來了解一下。
  • 關於溫度控制中衰減器嵌入式系統的設計
    關於溫度控制中衰減器嵌入式系統的設計 工程師之餘 發表於 2018-11-12 15:58:03 高功率微波衰減器的最基本原理就是將微波功率通過衰減吸波材料轉化為熱量
  • 基於Yocto Project的嵌入式應用設計
    本設計主要基於Yocto Project在嵌入式設備上輕鬆定製嵌入式Linux應用,並實現Yocto Project的定製過程。但現有的嵌入式Linux市場開始分化,現有的選擇包括半導體廠商提供的實例方案、嵌入式OSV提供商應用的嵌入式Linux產品、嵌入式產品開發商的自有方案和開源項目等。由於缺乏一致性,造成了嵌入式開發高昂的維護成本,不僅嵌入式開發缺乏足夠的專業人員,而且開發過程存在安全漏洞問題。在Yocto Project項目中,可以使用許多高效的工具,從而輕鬆定製嵌入式Linux產品。
  • 嵌入式整流模塊控制器設計
    單片機+μC/OS-II嵌入式實時作業系統作為軟硬體開發平臺的嵌入式整流模塊控制器的統一化設計方法。關鍵詞:AVR單片機;μC/OS-II;嵌入式控制器引言  雖然目前通信電源產品中嵌入式控制系統的研發技術比較成熟,但是同一系列(如DUM系列)不同功率型號的產品具有不同的性能參數,以致控制系統採用不同的控制方法;同時,在以往的產品研發過程中,不同的嵌入式系統工程師具有不同的軟硬體設計思想,帶來了晶片應用、電路體系、軟體結構的差異
  • 一分鐘了解CPU性能:AMD速龍X4 860K
    AMD速龍X4 860K這款處理器採用四核心四線程設計,默認主頻3.7GHz,最大可智能超頻至4.0GHz。同時該處理器採用不鎖頻設計,支持用戶對其超頻,以便進一步提昇平臺整體性能。目前這款產品的電商報價為399元。
  • Android開放式架構平臺在物聯網嵌入式中的解決方案
    閉源意味著僅能讓一組較少的創新者進行自由創造,就像開發資源和許可意味著設計人員需要作出更多承諾一樣。 在開源情況下,每個人都通常能免費或者支付很少費用後,在一個傘形框架下開發產品。 閉源產品看起來從一開始就做得很好,這是因為其背後(通常)有一個紀律更嚴明的團隊。