當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]一種浮點(diǎn)反正切函數(shù)的FPGA設(shè)計(jì)和實(shí)現(xiàn)

快速精確的反正弦函數(shù)運(yùn)算在現(xiàn)代工程中應(yīng)用廣泛。為了提高反正弦函數(shù)的精度和計(jì)算能力, 研究了基于CORD IC算法的反正弦函數(shù)運(yùn)算器的FPGA 實(shí)現(xiàn), 并通過改進(jìn)算法減小了誤差, 使誤差精度達(dá)到10--4 數(shù)量級。并在X ilinx 的XC5VSX50T芯片上驗(yàn)證, 結(jié)果表明該運(yùn)算器的數(shù)據(jù)處理速度快, 精度較高, 適用于高速大數(shù)據(jù)量的數(shù)據(jù)信號處理領(lǐng)域。

在數(shù)字信號處理領(lǐng)域, 高速高精度的反正弦函數(shù)發(fā)生器有著廣泛的應(yīng)用。目前在FPGA 上實(shí)現(xiàn)反正弦函數(shù)運(yùn)算器采用的主要方法是查找表法和泰勒公式展開法。查找表法所需要的存儲單元隨著精度的增加或輸入值范圍的增大而成指數(shù)增加; 泰勒公式展開法將函數(shù)簡化成一系列的乘法和加法運(yùn)算,但是在FPGA 上實(shí)現(xiàn)乘法運(yùn)算既耗時(shí)又占用大量資源。本文設(shè)計(jì)了基于CORDIC算法的反正切函數(shù)計(jì)算模塊,并且根據(jù)IEEE-754單精度浮點(diǎn)數(shù)據(jù)格式對輸入輸出數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)了高精度的浮點(diǎn)反正切函數(shù)的計(jì)算。

1 反正切函數(shù)實(shí)現(xiàn)原理

CORDIC(Coordinate RotatiON Digital Computer)算法即坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算方法,是J.D.Volder1于1959年首次提出,主要用于三角函數(shù)、雙曲線、指數(shù)、對數(shù)的計(jì)算。該算法通過基本的加和移位運(yùn)算代替乘法運(yùn)算,使得矢量的旋轉(zhuǎn)和定向的計(jì)算不再需要三角函數(shù)、乘法、開方、反三角、指數(shù)等函數(shù)。

CORDIC算法有旋轉(zhuǎn)模式和向量模式兩種計(jì)算模式。旋轉(zhuǎn)模式可以用來計(jì)算一個(gè)輸入角的正弦、余弦,向量模式可以計(jì)算給定向量的角度和長度。

CORDIC算法的基本迭代公式為:

從上式可以看出,CORDIC算法在向量模式可以計(jì)算出給定向量(X,Y)的長度和角度,即從平面坐標(biāo)到極坐標(biāo)的變換。

2 數(shù)據(jù)格式轉(zhuǎn)換接口模塊

本文設(shè)計(jì)的反正切函數(shù)硬件模塊輸入為IEEE-754單精度浮點(diǎn)數(shù)據(jù),而模塊內(nèi)部迭代使用的是定點(diǎn)整型數(shù)據(jù),因此需要進(jìn)行轉(zhuǎn)換。

在圖1的輸入數(shù)據(jù)轉(zhuǎn)換接口示意圖中,X、Y為輸入的IEEE-754浮點(diǎn)數(shù)據(jù)格式,輸入范圍是(-∞,+∞),經(jīng)過接口模塊轉(zhuǎn)換為整型定點(diǎn)數(shù)據(jù)Xn、Yn,其表示范圍是[-1 +1].

矢量(X,Y)在平面坐標(biāo)系中的角度為arctan(Y/X),它只與Y和X的比值有關(guān),與Y和X的實(shí)際長度無關(guān)。用這個(gè)性質(zhì)可以以X和Y中絕對值最大的值作為歸一化數(shù)值,將X和Y的范圍重新映射在[-1 +1]之間,實(shí)現(xiàn)(X,Y)到(Xn,Yn)的轉(zhuǎn)換。

計(jì)算結(jié)束后輸出結(jié)果Z.Z是32位定點(diǎn)整型數(shù)據(jù),且232被定義為2π,將其規(guī)格化為IEEE-754格式的過程如圖2所示。在對Z進(jìn)行規(guī)格化之前,需要進(jìn)行前導(dǎo)零檢測,以確定規(guī)格化時(shí)尾數(shù)左移的位數(shù)和指數(shù)位的大小,前導(dǎo)零的檢測硬件上可以用casex語句實(shí)現(xiàn)。

3 整體設(shè)計(jì)以及仿真綜合

浮點(diǎn)反正切函數(shù)的硬件結(jié)構(gòu)包括了三個(gè)主要部分,即浮點(diǎn)數(shù)據(jù)格式轉(zhuǎn)換接口模塊、CORDIC內(nèi)核計(jì)算模塊和浮點(diǎn)輸出數(shù)據(jù)轉(zhuǎn)換接口模塊,如圖3所示。

采用QUARTus II對設(shè)計(jì)進(jìn)行FPGA綜合,F(xiàn)PGA芯片選擇EP2C70F896C6,硬件環(huán)境為Altera公司的DE2-70平臺,總共需要1 522個(gè)邏輯單元,占用芯片資源的2%,最高工作頻率為100 MHz.

4 Nios II中反正切函數(shù)的自定義指令實(shí)現(xiàn)

反正切函數(shù)與Nios II CPU的接口采用multi-cycle cuSTom instruction,dataa和datab為輸入數(shù)據(jù),result為結(jié)果輸出,要從C語言中直接調(diào)用自定義指令,需要一個(gè)宏定義接口。可以在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))

為了正確調(diào)用自定義指令,在主程序中重新做以下宏定義:
    #define ATAN2(A,B) __builtin_custom_fnff(ALT_CI_CORDIC_ATAN2_N,(A),(B))

與system.h文件中系統(tǒng)自動生成的宏定義不同之處在于將宏定義的接口說明由"__builtin_custom_inii"改為了"__builtin_custom_fnff".系統(tǒng)自動生成的宏定義默認(rèn)輸入輸出皆為整型數(shù)據(jù),改為"__builtin_custom_fnff"就是通知系統(tǒng)這是一條輸入輸出都是單精度浮點(diǎn)數(shù)據(jù)類型的用戶自定義指令。這樣由CPU調(diào)用時(shí)就不會出現(xiàn)數(shù)據(jù)類型不匹配的錯(cuò)誤。

通過在Nios II CPU中加入的JTAG_UART模塊,可以從調(diào)試終端窗口中獲得運(yùn)行結(jié)果。硬件IP核平均計(jì)算用時(shí)73個(gè)周期,而軟件計(jì)算平均用時(shí)21 000個(gè)周期,計(jì)算速度提升300倍以上。此時(shí)CPU工作頻率為100 MHz,且配置為最高性能,浮點(diǎn)反正切函數(shù)硬件模塊僅工作在50 MHz.浮點(diǎn)反正切函數(shù)硬件模塊的計(jì)算精度完全可以滿足單精度浮點(diǎn)數(shù)據(jù)的要求,計(jì)算誤差小于10e-6,因此可以用于對精度和速度都要求很高的各種信號處理領(lǐng)域。

利用CORD IC算法將反正弦函數(shù)轉(zhuǎn)換為加法和移位運(yùn)算, 降低了復(fù)雜度, 容易在硬件上實(shí)現(xiàn)。本文探討了基于CORDIC 算法的反正弦函數(shù)的硬件實(shí)現(xiàn), 實(shí)現(xiàn)過程采用流水線結(jié)構(gòu), 具有速度快、實(shí)現(xiàn)簡單、精度高等優(yōu)點(diǎn)。仿真結(jié)果和實(shí)驗(yàn)結(jié)果表明該運(yùn)算器的輸出誤差為10- 4數(shù)量級, 時(shí)鐘可達(dá)到150MH z, 具有較高的精度和運(yùn)行速度, 因此具有十分重要的工程研究和應(yīng)用意義。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉