[發明專利]用硬件實現指數運算的電路有效
| 申請號: | 201210175191.6 | 申請日: | 2012-05-31 |
| 公開(公告)號: | CN103455303B | 公開(公告)日: | 2017-10-31 |
| 發明(設計)人: | 王吉健 | 申請(專利權)人: | 上海華虹集成電路有限責任公司 |
| 主分類號: | G06F7/556 | 分類號: | G06F7/556 |
| 代理公司: | 上海浦一知識產權代理有限公司31211 | 代理人: | 戴廣志 |
| 地址: | 201203 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 硬件 實現 指數 運算 電路 | ||
技術領域
本發明涉及一種用硬件實現指數運算的電路。
背景技術
指數運算是一種常用的運算,在支持浮點運算的處理器中,與對數運算一樣,經常被要求實現。目前指數運算在硬件實現的時候,一般是用查找表實現的,這樣需要占用大量的芯片面積。即使用軟件方式實現,也只能通過泰勒展開等方式計算,計算時間比較長。
發明內容
本發明要解決的技術問題是提供一種用硬件實現指數運算的電路,計算速度快、精度高,且能顯著減少所占用的芯片面積。
為解決上述技術問題,本發明的用硬件實現指數運算的電路,包括:
一最高位補“1”電路,其輸入是a[M-1]到a[0],用a[M-1:0]表示,輸出記為b;用于在輸入的最高位前補一個邏輯”1”,使輸出b的最高位為1,其余位從高到低則為a[M-1:0];
一移位電路,其一輸入是所述最高位補“1”電路的輸出b,另一輸入是a[M+N-1]到a[M],記為a[M+N-1:M],表示成十進制數則為k,輸出記為c,如果k-M是負數,則將b右移M-k位,如果k-M是非負數,則將b左移k-M位,補0。
采用本發明的用硬件實現指數運算的電路,在計算2x,x為11位浮點數,高4位為整數部分,低7位是小數部分時,僅僅需要幾十個門電路,由純組合電路即可實現。運算快速而計算結果的最大誤差僅僅是6%。本發明與采用查找表由硬件實現指數運算的電路相比,大大減少了所占用的芯片面積;與采用軟件實現指數運算的方式相比,大大提高了執行速度。
本發明可用于各種需要進行指數運算的產品。
附圖說明
下面結合附圖與具體實施方式對本發明作進一步詳細的說明:
圖1是所述用硬件實現指數運算的電路的原理框圖;
圖2是所述用硬件實現指數運算的電路仿真結果圖。
具體實施方式
參見圖1所示,所述用硬件實現指數運算的電路,在下面的實施例中M=7,N=4,輸入a有7+4=11位,輸出c有24=16位,該電路包括:
一個最高位補”1”電路,其輸入是a[M-1]到a[0],用a[M-1:0]表示,輸出記為b。這個最高位補”1”電路的作用是在輸入的最高位前補一個邏輯”1”,所以b的最高位是1,其余位從高到低就是a[M-1:0]。例如,假設a用二進制表示為10110110101,那么a[M-1:0]就是0110101(M=7),那么b就是10110101。
一個移位電路,其一個輸入是所述最高位補”1”電路的輸出b,另一個輸入是a[M+N-1]到a[M],記為a[M+N-1:M],表示成十進制數就記為k;輸出記為c。這個選擇電路的作用就是,如果k-M是負數,就把b右移M-k位,如果k-M是非負數,就把b左移k-M位,補0。例如,假設a用二進制表示為10110110101,那么a[M+N-1:M]就是1011(M=7,N=4),那么k就是11。由于k-M=11-7=4,是非負數,那么輸出c就是b右移4位補0,c就等于101101010000。
圖2是上述實施例的仿真結果,其中橫軸是輸入數據,M=7,N=4;縱軸是精確計算2x的結果與本發明的運算結果的差同精確值之間的比值。從圖中可見,當輸入x的范圍在1~2047內,用本電路計算2x的結果與2x的精確值之間的差別僅占2x的精確值的0.06即最大計算誤差為6%。
以上通過具體實施方式和實施例對本發明進行了詳細的說明,但這些并非構成對本發明的限制。在不脫離本發明原理的情況下,本領域的技術人員還可做出許多變形和改進,這些也應視為本發明的保護范圍。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海華虹集成電路有限責任公司,未經上海華虹集成電路有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210175191.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:獲取控件的邏輯位置的方法及裝置
- 下一篇:一種電熨斗外殼的噴漆方法





