曹劍英 葛俊峰
摘要:本文在CORDIC算法理論的基礎(chǔ)上實現(xiàn)正切余切函數(shù)的計算,結(jié)合了圓周旋轉(zhuǎn)運算算法模式(Circular)和線性旋轉(zhuǎn)運算(Linear)算法模式,引入了M倍降速遞歸流水線技術(shù),提高運算速度和減少系統(tǒng)芯片占用的邏輯資源,同時仿真了正切余切計算模塊的RTL綜合電路及Modelsim的波形,在硬件資源FPGA上實現(xiàn)正切余切函數(shù)的計算。
關(guān)鍵詞:算法 正切余切函數(shù) FPGA
中圖分類號:TP322.2 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)08-0160-02
Abstract:Based on CORDIC tangent cotangent implementation, combined with structural Circular CORDIC algorithm and Linear CORDIC, the introduction of the M-fold deceleration recursive pipeline technology, improve processing speed and reduce system chip logic resources consumed to achieve the angle in the hardware FPGA compute the tangent cotangent function.
Key Words:algorithm; tangent cotangent function; FPGA
1 CORDIC算法
CORDIC算法是坐標(biāo)旋轉(zhuǎn)的方法,假設(shè)初始坐標(biāo)為,旋轉(zhuǎn)角度后,得到終點坐標(biāo)為,如圖1所示。由三角函數(shù)可知,得如下公式:
表示迭代(),由,分別稱為圓周旋轉(zhuǎn)運算、雙曲旋轉(zhuǎn)運算和線性旋轉(zhuǎn)運算,然后根據(jù)取值的判讀方式,CORDIC算法結(jié)構(gòu)可分為旋轉(zhuǎn)模式和向量模式。當(dāng)m取不同的值時,即可得到三種不同計算方式,并在各種計算方式下通過多次迭代,三角函數(shù)、實現(xiàn)乘法、除法、指數(shù)、雙曲函數(shù)、開方及對數(shù)等運算。
2 Cordic算法正切余切函數(shù)的模塊設(shè)計
2.1 系統(tǒng)設(shè)計
系統(tǒng)采用圓周Cordic與線性Cordic相結(jié)合的方式實現(xiàn)正、余切的運算,如圖2所示。
2.2 算法結(jié)構(gòu)及RTL綜合電路(圖3)
3 仿真驗證
對整個TanCtgCalcuSys系統(tǒng)模塊選用了Xilinx Virtex-4的器件。各個計算模塊能夠較為精確地獲得角度的正切余切計算結(jié)果。圖4是Modelsim上的仿真波形。
圖5描繪了內(nèi),從理論值與計算結(jié)果的對比曲線可知,理論值和仿真結(jié)果是非常的接近。
4 硬件實現(xiàn)
通過上述在綜合軟件上的對比分析,將子模塊內(nèi)部在FPGA上仿真驗證。下面是子模塊Verilog HDL主要代碼。
參考文獻(xiàn)
[1]孔德元.針對正弦余弦計算的CORDIC算法優(yōu)化及其FPGA實現(xiàn)[D].中南大學(xué)碩士論文,2008.P.1-P.3.
[2]Xiaobo Hu, Ronald G. Harber, and Steven C. Bass, Expanding the Range of Convergence of the CORDIC Algorithm, IEEE Trans. on Computers,[J].vol.40, no.1, 1991 .Jan.P. 13-P.21.
[3]曹劍英.M倍降速遞歸流水線技術(shù)實現(xiàn)正切余切函數(shù)[J].通信技術(shù),2013.05.