《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 浮點反正切函數的FPGA實現
浮點反正切函數的FPGA實現
來源:電子技術應用2010年第8期
李 全
桂林電子科技大學 信息與通信學院,廣西 桂林541004
摘要: 設計了一種基于CORDIC算法計算浮點反正切函數的的硬件結構,并在Altera公司的FPGA芯片上進行了驗證,最后在Nios II處理器系統中以用戶自定義指令的形式實現,通過C語言程序驗證了浮點反正切模塊的正確性。
中圖分類號: TP301
文獻標識碼: A
The implementation of floating arc tangent function based on FPGA
LI Quan
Information and Communication Institute,Guilin University of Electronic Technology,Guilin 541004,China
Abstract: This paper presents a architecture of arc tangent calculate circuit based on CORDIC algorithm. Software simulation and hardware experiment has been done for this module on Altera FPGA. Finally, we accomplish the hardware module by adding custom instruction on the Nios II processor system of Altera corporation. The floating-point arc tangent module′s correctness is proved by C program running in the Nios II processor.
Key words : CORDIC;arc tangent;floating-point;Nios II

    在數字信號處理、導航通訊等許多領域會大量使用反正切函數進行必要的計算,當FPGA系統應用于上述領域時常常會遇到如何使用硬件來完成反正切函數計算的問題。本文設計了基于CORDIC算法的反正切函數計算模塊,并且根據IEEE-754單精度浮點數據格式對輸入輸出數據進行處理,實現了高精度的浮點反正切函數的計算。
1 反正切函數實現原理
    CORDIC算法有旋轉模式和向量模式兩種計算模式。旋轉模式可以用來計算一個輸入角的正弦、余弦,向量模式可以計算給定向量的角度和長度。
    CORDIC算法的基本迭代公式為:
 
    從上式可以看出,CORDIC算法在向量模式可以計算出給定向量(X,Y)的長度和角度,即從平面坐標到極坐標的變換。
2 數據格式轉換接口模塊
    本文設計的反正切函數硬件模塊輸入為IEEE-754單精度浮點數據,而模塊內部迭代使用的是定點整型數據,因此需要進行轉換。
    在圖1的輸入數據轉換接口示意圖中,X、Y為輸入的IEEE-754浮點數據格式,輸入范圍是(-∞,+∞),經過接口模塊轉換為整型定點數據Xn、Yn,其表示范圍是[-1 +1]。

    矢量(X,Y)在平面坐標系中的角度為arctan(Y/X),它只與Y和X的比值有關,與Y和X的實際長度無關。用這個性質可以以X和Y中絕對值最大的值作為歸一化數值,將X和Y的范圍重新映射在[-1 +1]之間,實現(X,Y)到(Xn,Yn)的轉換。
    計算結束后輸出結果Z。Z是32位定點整型數據,且232被定義為2π,將其規格化為IEEE-754格式的過程如圖2所示。在對Z進行規格化之前,需要進行前導零檢測,以確定規格化時尾數左移的位數和指數位的大小,前導零的檢測硬件上可以用casex語句實現。

3 整體設計以及仿真綜合
    浮點反正切函數的硬件結構包括了三個主要部分,即浮點數據格式轉換接口模塊、CORDIC內核計算模塊和浮點輸出數據轉換接口模塊,如圖3所示。

    采用Quartus II對設計進行FPGA綜合,FPGA芯片選擇EP2C70F896C6,硬件環境為Altera公司的DE2-70平臺,總共需要1 522個邏輯單元,占用芯片資源的2%,最高工作頻率為100 MHz。
4 Nios II中反正切函數的自定義指令實現
    反正切函數與Nios II CPU的接口采用multi-cycle custom instruction,dataa和datab為輸入數據,result為結果輸出,要從C語言中直接調用自定義指令,需要一個宏定義接口。可以在system.h文件中找到自定義指令的宏定義,如:
#define ALT_CI_CORDIC_ATAN2_N 0x00000000
#define ALT_CI_CORDIC_ATAN2(A,B) __builtin_custom_inii
(ALT_CI_CORDIC_ATAN2_N,(A),(B))
    為了正確調用自定義指令,在主程序中重新做以下宏定義:
#define ATAN2(A,B) __builtin_custom_fnff(ALT_CI_CORDIC_ATAN2_N,(A),(B))
    與system.h文件中系統自動生成的宏定義不同之處在于將宏定義的接口說明由“__builtin_custom_inii”改為了“__builtin_custom_fnff”。系統自動生成的宏定義默認輸入輸出皆為整型數據,改為“__builtin_custom_fnff”就是通知系統這是一條輸入輸出都是單精度浮點數據類型的用戶自定義指令。這樣由CPU調用時就不會出現數據類型不匹配的錯誤。
    通過在Nios II CPU中加入的JTAG_UART模塊,可以從調試終端窗口中獲得運行結果。硬件IP核平均計算用時73個周期,而軟件計算平均用時21 000個周期,計算速度提升300倍以上。此時CPU工作頻率為100 MHz,且配置為最高性能,浮點反正切函數硬件模塊僅工作在50 MHz。浮點反正切函數硬件模塊的計算精度完全可以滿足單精度浮點數據的要求,計算誤差小于10e-6,因此可以用于對精度和速度都要求很高的各種信號處理領域。
    反正切函數是應用范圍最廣的一個反三角函數,而用硬件實現浮點反正切函數對相應算法的速度會起到一個很大的提升作用,硬件浮點反正切函數可以很方便地作為一個IP核被系統調用,實現高速并行的超越函數計算。目前,已經設計完成并用Nios II處理器驗證過浮點超越函數計算IP,包括浮點正弦函數、浮點余弦函數、浮點反正切函數和浮點反正弦函數。Nios II處理器通過加入這些IP核模塊就能實現大部分浮點超越函數計算,使用硬件IP核計算比用軟件計算在速度上至少可以提升300~1 000倍,這樣就可以將Nios II處理器用于原先只有用DSP才能處理的一些場合,可以充分發揮FPGA系統的靈活性以及并行數據處理的能力。

參考文獻
[1] Volder.The CORDIC trigonometric computing technique[J]. IRE Trans,1959:334-334.
[2] WALTHER.J.S.A unified algorithm for elementary functions[J].Spring Joint Computer Conf,1971:379-385.
[3] 李全,李曉歡,陳石平.基于CORDIC算法高精度浮點超越函數的FPGA實現.電子技術應用,2009,35(5):166-168.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区二区在线| 免费成人av在线| 欧美怡红院视频| 中文日韩在线| 99国产精品99久久久久久| 亚洲高清精品中出| 精品成人在线观看| 国产一区在线观看视频| 国产亚洲精品久久久久久| 国产精品视频一二三| 国产精品高清在线| 国产精品久久久久久久久免费| 欧美日韩综合精品| 欧美日韩网站| 欧美日韩一区二区视频在线观看 | 欧美精品自拍| 欧美美女日韩| 欧美日韩一区成人| 国产精品国产福利国产秒拍| 国产精品电影网站| 国产美女高潮久久白浆| 国产午夜久久久久| 很黄很黄激情成人| 在线欧美日韩精品| 亚洲激情欧美| 亚洲欧洲一区二区三区久久| 欧美日韩免费一区| 欧美视频三区在线播放| 欧美视频日韩视频在线观看| 欧美性生交xxxxx久久久| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品成人观看视频免费| 国产精品日韩在线播放| 国产亚洲精品高潮| 影音先锋亚洲一区| 亚洲精品日日夜夜| 亚洲色无码播放| 亚洲欧美中文日韩v在线观看| 欧美在线观看日本一区| 亚洲国语精品自产拍在线观看| 亚洲美女免费精品视频在线观看| 亚洲午夜三级在线| 欧美在线免费看| 麻豆成人精品| 欧美日本一区二区高清播放视频| 欧美性猛交xxxx乱大交退制版 | 亚洲精品午夜精品| 一本色道久久综合| 亚洲欧美日韩视频一区| 久久激情中文| 一区二区欧美日韩| 欧美一区综合| 欧美a级片网站| 国产精品99一区| 国产主播一区二区三区| 亚洲精品国精品久久99热一| 亚洲午夜国产一区99re久久 | 欧美三级乱人伦电影| 国产日韩精品久久| 亚洲国产三级| 亚洲主播在线观看| 亚洲国产美女精品久久久久∴| 一区二区三区精品久久久| 久久国产视频网站| 欧美经典一区二区| 国产精品永久免费观看| 亚洲黄色成人久久久| 亚洲欧美日本精品| 亚洲美女视频网| 久久本道综合色狠狠五月| 欧美精品日韩一本| 国产在线国偷精品产拍免费yy| 99国产精品视频免费观看一公开| 性色av一区二区三区| 一本久道久久综合狠狠爱| 久久美女性网| 国产精品无码永久免费888| 亚洲国产精彩中文乱码av在线播放| 在线视频你懂得一区| 亚洲激情精品| 久久国产精品久久久久久| 欧美日韩一区二| 亚洲电影自拍| 欧美一区视频| 亚洲一区二区三区四区中文 | 久久久久se| 欧美人与禽性xxxxx杂性| 国产精品视频网站| 亚洲精品一区二区三区在线观看| 小辣椒精品导航| 亚洲一区二区三区精品在线观看| 免费观看30秒视频久久| 国产日韩久久| 这里只有精品视频| 日韩一级欧洲| 欧美99在线视频观看| 国产亚洲一区在线播放| 亚洲图片欧美午夜| 在线一区二区日韩| 欧美激情1区2区| 精品成人在线| 久久国产精品99精品国产| 香港久久久电影| 欧美午夜激情在线| 亚洲免费观看在线观看| 亚洲精品亚洲人成人网| 蜜桃伊人久久| 伊人蜜桃色噜噜激情综合| 欧美一区二区视频网站| 午夜亚洲视频| 国产精品国产三级国产普通话99 | 国产精品草莓在线免费观看| 亚洲精品视频免费| 亚洲精品乱码| 免费观看在线综合色| 国产综合自拍| 欧美中文在线观看| 久久久久九九视频| 国产在线播精品第三| 欧美一区二区三区四区在线 | 欧美在线地址| 国产精品一级久久久| 中文国产一区| 亚洲无线观看| 国产精品福利在线| 在线一区二区三区四区五区| 亚洲婷婷综合色高清在线| 欧美区视频在线观看| 亚洲精品久久久久久久久久久久| 亚洲精选久久| 欧美日本精品在线| 亚洲精品综合精品自拍| 亚洲深夜福利在线| 欧美特黄一级| 亚洲影院色无极综合| 欧美一区=区| 国产亚洲精品资源在线26u| 久久国产精品久久久| 麻豆成人综合网| 亚洲经典三级| 国产精品99久久久久久久久| 国产精品theporn88| 亚洲综合第一页| 久久www免费人成看片高清| 好看不卡的中文字幕| 91久久在线视频| 欧美日韩国产bt| 亚洲伊人色欲综合网| 久久精品国产2020观看福利| 黄色av日韩| av不卡免费看| 国产精品久久网| 欧美一区二区三区在线播放| 久久综合精品一区| 亚洲精品久久久一区二区三区| 中文欧美在线视频| 国产精品久久久久久久久久尿 | 国产精品久久久久久亚洲调教| 亚洲欧美国产另类| 老司机精品视频网站| 亚洲人体偷拍| 性欧美18~19sex高清播放| 国内精品国产成人| 日韩特黄影片| 国产精品麻豆成人av电影艾秋 | 亚洲大胆美女视频| 欧美人妖在线观看| 午夜精品久久久久| 欧美 日韩 国产一区二区在线视频| 亚洲精品视频中文字幕| 欧美一区二区三区在线观看 | 91久久精品一区二区别| 亚洲一区二区在线| 激情成人在线视频| 一区二区高清在线观看| 国产欧美一区二区精品性色| 亚洲国产美女| 国产精品入口夜色视频大尺度| 久久99伊人| 欧美天堂亚洲电影院在线观看| 欧美一级视频一区二区| 欧美韩日一区二区三区| 亚洲一区在线观看视频| 免费视频最近日韩| 亚洲一区免费网站| 欧美黄色一区二区| 欧美一区午夜精品| 欧美系列精品| 亚洲国产成人久久| 国产精品女主播| 亚洲精品黄色| 国产婷婷色一区二区三区四区 | 欧美日本精品| 久久精品视频免费| 国产精品黄视频| 亚洲伦理在线观看| 国产一区二区三区在线观看免费 | 亚洲一区制服诱惑| 欧美日本国产一区| 久久精品国产欧美激情|