新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 高性能定點DSP位處理單元BMU的設計

        高性能定點DSP位處理單元BMU的設計

        作者: 時間:2011-10-14 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/150117.htm

        本文的BMU是36位的,主要功能包括邏輯/算術移位、取指、歸一化等,以下是對控制信號及相關功能較為詳細的描述。
          
          邏輯/算術左移 相應的控制信號是in arithshf,inleftshf,in_shift。將36位數據左移,低位補0;

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

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

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

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

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

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

          屏蔽信號最多將會經過30幾級傳輸門,是取指電路的關鍵路徑,經過30幾級的傳輸門后,信號驅動能力較弱,延時較大,不符合DSP的要求。可以考慮將這最長路徑打斷,提高速度。類似與超前進位加法器的進位傳遞,將屏蔽信號鏈打斷,每4位提供一個超前屏蔽信號,用來屏蔽下一級的移位選擇信號,這樣隔斷了最長路徑,提高了驅動能力,進而提高取指電路的工作速度。

        電子血壓計相關文章:電子血壓計原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乐安县| 木兰县| 遂宁市| 崇礼县| 札达县| 百色市| 彩票| 红安县| 平塘县| 昌黎县| 新郑市| 商水县| 辰溪县| 鹤峰县| 德庆县| 梁山县| 杭州市| 九台市| 阳原县| 东乡族自治县| 抚宁县| 鲁甸县| 金溪县| 吴桥县| 扎赉特旗| 南宫市| 龙山县| 安平县| 文昌市| 浙江省| 西安市| 桐城市| 成都市| 兴化市| 马龙县| 喀什市| 棋牌| 德化县| 桐柏县| 丹巴县| 鹰潭市|