<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 高性能定點(diǎn)DSP位處理單元(BMU)設計

高性能定點(diǎn)DSP位處理單元(BMU)設計

——
作者: 時(shí)間:2007-12-04 來(lái)源: 收藏

  1 功能概述

  (Bit Manipulation unit,)總體結構如圖1所示??梢钥闯?,主要由取指電路、移位數據處理電路、移位選擇處理電路、桶形移位電路和輸出電路等幾部分組成。的輸入數據是36位的BMUi,經(jīng)過(guò)處理后輸出36位的數據BMUo作為的一次運算結果。

  

  本文設計的BMU是36位的,主要功能包括邏輯/算術(shù)移位、取指、歸一化等,以下是對控制信號及相關(guān)功能較為詳細的描述。

  邏輯/算術(shù)左移 相應的控制信號是in arithshf,inleftshf,in_shift。將36位數據左移,低位補0;

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

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

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

  歸一化 控制信號是in_norm,將輸入數據進(jìn)行歸一化,得到去除冗余符號位后的結果。

  指數提取的目的是進(jìn)行類(lèi)似于定點(diǎn)到浮點(diǎn)的數據轉換。一個(gè)定點(diǎn)數可以用一個(gè)包含尾數和指數的浮點(diǎn)數來(lái)表示,這樣可以提高數據的表示范圍,同時(shí)使得定點(diǎn)具有某種浮點(diǎn)運算的能力。取指的結果相當于浮點(diǎn)數的指數,而歸一化的結果可以看成浮點(diǎn)數的尾數。這使得定點(diǎn)能在不增加浮點(diǎn)算法開(kāi)銷(xiāo)的情況下獲得某些浮點(diǎn)DSP的能力。

  2 單元電路設計

  2.1 桶形移位器的設計

  移位和歸一化操作都需要用到桶形移位器,因此桶形移位器是BMU的核心單元。通常,桶形移位器可以實(shí)現邏輯左移、右移,算術(shù)左移、右移等,一般為了減少晶體管和連線(xiàn)的數目以節省面積,通常只實(shí)現左移或右移中的一種。本文中只采用左移操作來(lái)實(shí)現桶形移位。設36位移位數據為BMUi,36位移位選擇信號為shfsel,當shfsel[i]為1時(shí),桶形移位器的輸入數據(即經(jīng)過(guò)移位數據處理后得到的數據)左移i位。

  下面是實(shí)現右移的原理:

  BMUi從高位到低位依次是BMUi[35],BMUi[34],…,BMUi[1],BMUi[0],BMUi重復排列兩次構成72位數據BMUi[35],BMUi[34],…,BMUi[1],BMUi[0],BMUi[35],BMUi[34],…,BMUi[1],BMUi[0],將72位數據經(jīng)過(guò)移位(左移)后的高36位作為桶形移位器的輸出。當要求桶形移位器實(shí)現右移shfnum位時(shí),只要將該72位數據左移(36-shfnum)位即可實(shí)現。當然在實(shí)現移位操作時(shí),必須對72位數據的高36位(右移時(shí))或低36位(左移時(shí))進(jìn)行處理,這個(gè)處理過(guò)程在移位數據處理電路中將會(huì )介紹。同時(shí)由于36位的shfsel最多只能選擇左移35位(shfsel[35]=1時(shí)),所以72位桶形移位器的輸入數據的中間2位可以合并成1位,成為71位輸入數據(此時(shí)實(shí)現右移操作時(shí)應該將71位數據左移35-shfnum位)。

  移位的實(shí)現主要通過(guò)移位開(kāi)關(guān)網(wǎng)絡(luò )來(lái)實(shí)現。移位網(wǎng)絡(luò )(以8位移位數據為例,則移位器的輸入數據需要處理成15位)的結構如圖2所示,他是一個(gè)NMOS傳輸管陣列,行數等于數據字長(cháng),列數等于最大的移位數。這個(gè)移位器結構的主要優(yōu)點(diǎn)是數據信號至多只經(jīng)過(guò)一個(gè)傳輸管,移位的傳輸延時(shí)理論上是一個(gè)常數,并且與移位位數及移位器大小無(wú)關(guān),同時(shí)結構比較規整,利于后端版圖實(shí)現。但是NMOS傳輸管在傳輸高電平時(shí)有一個(gè)閾值電壓損耗,降低了電路的噪聲容限,因此需要在輸出端增加電平提升電路。

  

  2.2 取指電路的設計

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

  

  指數的提取過(guò)程分成兩步:

  (1)找出從BMUi[34]到BMUi[0]第一個(gè)與BMUi[35]不同的位i。

  (2)對i進(jìn)行編碼,得到指數值。

  第一步可以通過(guò)BMUi[35]與BMUi[34-i](i=0,1,…,33,34)異或來(lái)實(shí)現,找出第一個(gè)與BMUi[35]相異的位。同時(shí)本級產(chǎn)生的移位選擇信號必須能夠屏蔽下一級的移位選擇信號信號。設BMUi[34-i]位與.BMUi[35]異或的結果記為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]的函數,指數選擇信號的最高位exp sel[35]可以表示成C[34]的反信號,這表示如果前35位屏蔽信號都為0,則屏蔽信號C[34]無(wú)效,此時(shí)exp sel[35]=1;如果前35位已經(jīng)有一個(gè)為1,則說(shuō)明36位二進(jìn)制位中存在與BMUi[35]相異的位,此時(shí)屏蔽信號C[34]有效,exp-sel[35]被屏蔽。綜上所述,得到第i級的指數選擇信號exp-sel[i]和提供給下一級的屏蔽信號C[i]如下式所示,設計電路如圖3所示。

  

  由圖3可以看出,屏蔽信號最多將會(huì )經(jīng)過(guò)30幾級傳輸門(mén),是取指電路的關(guān)鍵路徑,經(jīng)過(guò)30幾級的傳輸門(mén)后,信號驅動(dòng)能力較弱,延時(shí)較大,不符合高性能DSP的要求??梢钥紤]將這最長(cháng)路徑打斷,提高速度。類(lèi)似與超前進(jìn)位加法器的進(jìn)位傳遞,將屏蔽信號鏈打斷,每4位提供一個(gè)超前屏蔽信號,用來(lái)屏蔽下一級的移位選擇信號,這樣隔斷了最長(cháng)路徑,提高了驅動(dòng)能力,進(jìn)而提高取指電路的工作速度。

  

  指數選擇信號產(chǎn)生后,只要經(jīng)過(guò)相應的編碼就可以得到相關(guān)的指數值(二進(jìn)制補碼),編碼表如表2所示。

  

  2.3 移位選擇處理

  移位選擇處理是根據移位數目shfnum和指數exp來(lái)產(chǎn)生移位選擇信號shfsel。移位選擇處理過(guò)程主要是根據輸入控制信號(in norm,in shift,in leftshf)以及移位數目shfnum和指數exp產(chǎn)生兩種信號:最終左移信號left和最終左移數目leftnum。經(jīng)過(guò)分析,left和leftnum都可以寫(xiě)成輸入控制信號、指數exp和移位數目shfnum的邏輯表達式。進(jìn)一步分析表明,可以用6 b(因為最終的移位選擇信號是36位,至少需用6位來(lái)表示)的加法器來(lái)產(chǎn)生leftnum。最終移位信號left以及加法器的被加數addA、加數addB和進(jìn)位c[i]的邏輯表達式(下式)。將leftnum進(jìn)行譯碼后就可以得到移位選擇信號shfsel。

  

  2.4 移位數據處理

  該處理過(guò)程主要是產(chǎn)生桶形移位器的71位輸入數據D[70:0],將71位數據位分成兩部分,一部分叫原數據位(36位,放置經(jīng)過(guò)處理的輸入數據),另一部分叫擴展數據位(35位,放置考慮了邏輯右移等的擴展位)。由桶形移位器的原理可以知道,當最終左移信號有效(即left=1)時(shí),D[70:35]為原數據位,由原36位輸入數據填充,低35位D[34:0]為擴展數據位,用0來(lái)填充。而當最終左移信號無(wú)效(即left=0)時(shí),此時(shí)需分兩種情況考慮:

  (1)如果是算術(shù)移位,則D[35:0]為原數據位,由原36位輸入數據填充,而D[70:36]是擴展數據位,由符號位擴展形成;

  (2)如果是邏輯移位,此時(shí)是將原36位數據的低32位右移,高位補0,鑒于此,需要將原36位數據的高4位清零后賦給原數據位D[35:0],高35位(即D[70:36])由0擴展形成。

  由上述分析,移位數據處理電路可以分成3部分設計:原36位輸入數據的高4位處理電路,擴展數據位電路,數據選擇電路。分別設計這3部分電路如圖4所示。

  

  3 電路模擬

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

  

  4 結 語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>