《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 設(shè)計高性能定點DSP位處理單元BMU
設(shè)計高性能定點DSP位處理單元BMU
摘要: 高性能定點DSP位處理單元BMU的設(shè)計,1功能概述位處理單元(BitManipulatiONunit,,BMU)主要由取指電路、移位數(shù)據(jù)處理電路、移位選擇處理電路,、桶形移位電路和輸出電路等幾部分組成。BMU的輸入數(shù)據(jù)是36位的BMUi,,經(jīng)過處理后輸出36位的數(shù)據(jù)B
關(guān)鍵詞: DSP BMU 定點DSP
Abstract:
Key words :

1 功能概述
  
  位處理單元(Bit ManipulatiON unit,,BMU)主要由取指電路、移位數(shù)據(jù)處理電路,、移位選擇處理電路,、桶形移位電路和輸出電路等幾部分組成。BMU的輸入數(shù)據(jù)是36位的BMUi,,經(jīng)過處理后輸出36位的數(shù)據(jù)BMUo作為DSP的一次運算結(jié)果,。

      本文設(shè)計的BMU是36位的,主要功能包括邏輯/算術(shù)移位,、取指,、歸一化等,以下是對控制信號及相關(guān)功能較為詳細(xì)的描述,。
  
  邏輯/算術(shù)左移 相應(yīng)的控制信號是in arithshf,,inleftshf,in_shift,。將36位數(shù)據(jù)左移,,低位補0;

  邏輯右移 控制信號同上,,他執(zhí)行的是低32位數(shù)據(jù)右移,,同時高位補0;

      算術(shù)右移 控制信號如上,,36位數(shù)據(jù)右移,,高位由原最高位填充;

      取指 控制信號是in_exp,取36位數(shù)據(jù)的指數(shù),,也即冗余的符號位的個數(shù),;

      歸一化 控制信號是in_norm,將輸入數(shù)據(jù)進(jìn)行歸一化,,得到去除冗余符號位后的結(jié)果,。
  
      指數(shù)提取的目的是進(jìn)行類似于定點到浮點的數(shù)據(jù)轉(zhuǎn)換。一個定點數(shù)可以用一個包含尾數(shù)和指數(shù)的浮點數(shù)來表示,,這樣可以提高數(shù)據(jù)的表示范圍,,同時使得定點DSP具有某種浮點運算的能力。取指的結(jié)果相當(dāng)于浮點數(shù)的指數(shù),,而歸一化的結(jié)果可以看成浮點數(shù)的尾數(shù),。這使得定點DSP能在不增加浮點算法開銷的情況下獲得某些浮點DSP的能力。
  
      2 單元電路設(shè)計
  
      2.1 桶形移位器的設(shè)計
  
      移位和歸一化操作都需要用到桶形移位器,,因此桶形移位器是BMU的核心單元,。通常,桶形移位器可以實現(xiàn)邏輯左移,、右移,,算術(shù)左移、右移等,,一般為了減少晶體管和連線的數(shù)目以節(jié)省面積,,通常只實現(xiàn)左移或右移中的一種。本文中只采用左移操作來實現(xiàn)桶形移位,。設(shè)36位移位數(shù)據(jù)為BMUi,36位移位選擇信號為shfsel,,當(dāng)shfsel[i]為1時,桶形移位器的輸入數(shù)據(jù)(即經(jīng)過移位數(shù)據(jù)處理后得到的數(shù)據(jù))左移i位,。
  
      下面是實現(xiàn)右移的原理:
  
      BMUi從高位到低位依次是BMUi[35],,BMUi[34],…,,BMUi[1],,BMUi[0],BMUi重復(fù)排列兩次構(gòu)成72位數(shù)據(jù)BMUi[35],,BMUi[34],,…,BMUi[1],,BMUi[0],,BMUi[35],BMUi[34],,…,,BMUi[1],,BMUi[0],將72位數(shù)據(jù)經(jīng)過移位(左移)后的高36位作為桶形移位器的輸出,。當(dāng)要求桶形移位器實現(xiàn)右移shfnum位時,,只要將該72位數(shù)據(jù)左移(36-shfnum)位即可實現(xiàn)。當(dāng)然在實現(xiàn)移位操作時,,必須對72位數(shù)據(jù)的高36位(右移時)或低36位(左移時)進(jìn)行處理,這個處理過程在移位數(shù)據(jù)處理電路中將會介紹,。同時由于36位的shfsel最多只能選擇左移35位(shfsel[35]=1時),,所以72位桶形移位器的輸入數(shù)據(jù)的中間2位可以合并成1位,成為71位輸入數(shù)據(jù)(此時實現(xiàn)右移操作時應(yīng)該將71位數(shù)據(jù)左移35-shfnum位),。
  
      移位的實現(xiàn)主要通過移位開關(guān)網(wǎng)絡(luò)來實現(xiàn),。移位網(wǎng)絡(luò)(以8位移位數(shù)據(jù)為例,則移位器的輸入數(shù)據(jù)需要處理成15位)的結(jié)構(gòu)如圖2所示,,他是一個NMOS傳輸管陣列,,行數(shù)等于數(shù)據(jù)字長,列數(shù)等于最大的移位數(shù),。這個移位器結(jié)構(gòu)的主要優(yōu)點是數(shù)據(jù)信號至多只經(jīng)過一個傳輸管,,移位的傳輸延時理論上是一個常數(shù),并且與移位位數(shù)及移位器大小無關(guān),,同時結(jié)構(gòu)比較規(guī)整,,利于后端版圖實現(xiàn)。但是NMOS傳輸管在傳輸高電平時有一個閾值電壓損耗,,降低了電路的噪聲容限,,因此需要在輸出端增加電平提升電路。

      2.2 取指電路的設(shè)計
  
      指數(shù)(exp)指的是冗余符號位的個數(shù),,他對于二進(jìn)制補碼數(shù)的歸一化是十分重要的,,歸一化是將原二進(jìn)制補碼左移exp位(也就是將冗余的符號位移出),例如對于二進(jìn)制補碼00001100,,他冗余的符號位個數(shù)是3,,所以exp=3,歸一化就是將00001100左移3位的過程,,即變成01100000,。對于本文設(shè)計的BMU,符號位是BMui[31],,如果高5位不完全相同,,則exp為負(fù)值。表1列舉了幾個數(shù)據(jù)的例子,。

      指數(shù)的提取過程分成兩步:
  
      (1)找出從BMUi[34]到BMUi[0]第一個與BMUi[35]不同的位i,。
  
      (2)對i進(jìn)行編碼,得到指數(shù)值。
  
      第一步可以通過BMUi[35]與BMUi[34-i](i=0,,1,,…,33,,34)異或來實現(xiàn),,找出第一個與BMUi[35]相異的位。同時本級產(chǎn)生的移位選擇信號必須能夠屏蔽下一級的移位選擇信號信號,。設(shè)BMUi[34-i]位與.BMUi[35]異或的結(jié)果記為XOR[i](i=0,,1,2,,…,,33,34),,前一級產(chǎn)生的屏蔽信號為C[i-1],,這樣第i位(i=0,1,,2,,…,33,,34)的移位選擇信號可以表示成XOR[i]和C[i-1]的函數(shù),,指數(shù)選擇信號的最高位exp sel[35]可以表示成C[34]的反信號,這表示如果前35位屏蔽信號都為0,,則屏蔽信號C[34]無效,,此時exp sel[35]=1;如果前35位已經(jīng)有一個為1,,則說明36位二進(jìn)制位中存在與BMUi[35]相異的位,,此時屏蔽信號C[34]有效,exp-sel[35]被屏蔽,。

  屏蔽信號最多將會經(jīng)過30幾級傳輸門,,是取指電路的關(guān)鍵路徑,經(jīng)過30幾級的傳輸門后,,信號驅(qū)動能力較弱,,延時較大,不符合高性能DSP的要求,??梢钥紤]將這最長路徑打斷,提高速度,。類似與超前進(jìn)位加法器的進(jìn)位傳遞,,將屏蔽信號鏈打斷,,每4位提供一個超前屏蔽信號,用來屏蔽下一級的移位選擇信號,,這樣隔斷了最長路徑,,提高了驅(qū)動能力,進(jìn)而提高取指電路的工作速度,。
 2.3 移位選擇處理
  
      移位選擇處理是根據(jù)移位數(shù)目shfnum和指數(shù)exp來產(chǎn)生移位選擇信號shfsel,。移位選擇處理過程主要是根據(jù)輸入控制信號(in norm,in shift,,in leftshf)以及移位數(shù)目shfnum和指數(shù)exp產(chǎn)生兩種信號:最終左移信號left和最終左移數(shù)目leftnum,。經(jīng)過分析,left和leftnum都可以寫成輸入控制信號,、指數(shù)exp和移位數(shù)目shfnum的邏輯表達(dá)式。進(jìn)一步分析表明,,可以用6 b(因為最終的移位選擇信號是36位,,至少需用6位來表示)的加法器來產(chǎn)生leftnum。最終移位信號left以及加法器的被加數(shù)addA,、加數(shù)addB和進(jìn)位c[i]的邏輯表達(dá)式(下式),。將leftnum進(jìn)行譯碼后就可以得到移位選擇信號shfsel。

      2.4 移位數(shù)據(jù)處理
  
      該處理過程主要是產(chǎn)生桶形移位器的71位輸入數(shù)據(jù)D[70:0],,將71位數(shù)據(jù)位分成兩部分,,一部分叫原數(shù)據(jù)位(36位,放置經(jīng)過處理的輸入數(shù)據(jù)),,另一部分叫擴(kuò)展數(shù)據(jù)位(35位,,放置考慮了邏輯右移等的擴(kuò)展位)。由桶形移位器的原理可以知道,,當(dāng)最終左移信號有效(即left=1)時,,D[70:35]為原數(shù)據(jù)位,由原36位輸入數(shù)據(jù)填充,,低35位D[34:0]為擴(kuò)展數(shù)據(jù)位,,用0來填充。而當(dāng)最終左移信號無效(即left=0)時,,此時需分兩種情況考慮:
  
      (1)如果是算術(shù)移位,,則D[35:0]為原數(shù)據(jù)位,由原36位輸入數(shù)據(jù)填充,,而D[70:36]是擴(kuò)展數(shù)據(jù)位,,由符號位擴(kuò)展形成;
  
      (2)如果是邏輯移位,,此時是將原36位數(shù)據(jù)的低32位右移,,高位補0,,鑒于此,需要將原36位數(shù)據(jù)的高4位清零后賦給原數(shù)據(jù)位D[35:0],,高35位(即D[70:36])由0擴(kuò)展形成,。
  
      由上述分析,移位數(shù)據(jù)處理電路可以分成3部分設(shè)計:原36位輸入數(shù)據(jù)的高4位處理電路,,擴(kuò)展數(shù)據(jù)位電路,,數(shù)據(jù)選擇電路。

      3 電路模擬
  
      電路模擬工作在Sun Fire V880 Solaris系統(tǒng)環(huán)境下完成,,模擬采用CSMC.5單阱CMOS工藝模型,,環(huán)境溫度25℃,工作電壓為5 V,。電路模擬采用VCS+NanoSim混合仿真的方法進(jìn)行,,由VerilogHDL提供激勵給BMU的網(wǎng)表。模擬結(jié)果如圖5所示:當(dāng)bmui=0x1478f73時,exp=6,,bmui=0x105fb31b4時,,歸一化后bmuo=417ecc6d,當(dāng)bmui=0x603a09b12,shfnum=7左移時bmuo=ld04d8900,。這表明BMU功能符合設(shè)計目標(biāo),,同時測得BMU的最大延時是8.78 ns,即極限工作頻率是114 MHz,。NanoSim自動生成的狀態(tài)記錄文檔指出本文設(shè)計的BMU共使用了4 527個晶體管,。

      4 結(jié) 語
  
      本文設(shè)計了用于定點DSP的位處理單元電路,他有效地實現(xiàn)了邏輯/算術(shù)移位,、取指,、歸一化等操作,解決了利用定點DSP進(jìn)行浮點運算的問題,。該BMU包括桶形移位器,、取指電路、移位數(shù)據(jù)處理電路和移位選擇處理電路等幾部分,。在設(shè)汁取指電路時,,借鑒超前進(jìn)位加法器中超前進(jìn)位的概念.采用了超前屏蔽,將最長路徑打斷,,提高了電路的工作速度,。另外,該BMU僅包含4 527個晶體管,,資源消耗較少,,在5 V工作電壓下,電路速度達(dá)到114 MHz,,完全符合高性能DSP的要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。