曹劍英 葛俊峰
摘要:本文在CORDIC算法理論的基礎(chǔ)上實(shí)現(xiàn)正切余切函數(shù)的計(jì)算,結(jié)合了圓周旋轉(zhuǎn)運(yùn)算算法模式(Circular)和線性旋轉(zhuǎn)運(yùn)算(Linear)算法模式,引入了M倍降速遞歸流水線技術(shù),提高運(yùn)算速度和減少系統(tǒng)芯片占用的邏輯資源,同時(shí)仿真了正切余切計(jì)算模塊的RTL綜合電路及Modelsim的波形,在硬件資源FPGA上實(shí)現(xiàn)正切余切函數(shù)的計(jì)算。
關(guān)鍵詞:算法 正切余切函數(shù) FPGA
中圖分類號(hào):TP322.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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)角度后,得到終點(diǎn)坐標(biāo)為,如圖1所示。由三角函數(shù)可知,得如下公式:
表示迭代(),由,分別稱為圓周旋轉(zhuǎn)運(yùn)算、雙曲旋轉(zhuǎn)運(yùn)算和線性旋轉(zhuǎn)運(yùn)算,然后根據(jù)取值的判讀方式,CORDIC算法結(jié)構(gòu)可分為旋轉(zhuǎn)模式和向量模式。當(dāng)m取不同的值時(shí),即可得到三種不同計(jì)算方式,并在各種計(jì)算方式下通過多次迭代,三角函數(shù)、實(shí)現(xiàn)乘法、除法、指數(shù)、雙曲函數(shù)、開方及對(duì)數(shù)等運(yùn)算。
2 Cordic算法正切余切函數(shù)的模塊設(shè)計(jì)
2.1 系統(tǒng)設(shè)計(jì)
系統(tǒng)采用圓周Cordic與線性Cordic相結(jié)合的方式實(shí)現(xiàn)正、余切的運(yùn)算,如圖2所示。
2.2 算法結(jié)構(gòu)及RTL綜合電路(圖3)
3 仿真驗(yàn)證
對(duì)整個(gè)TanCtgCalcuSys系統(tǒng)模塊選用了Xilinx Virtex-4的器件。各個(gè)計(jì)算模塊能夠較為精確地獲得角度的正切余切計(jì)算結(jié)果。圖4是Modelsim上的仿真波形。
圖5描繪了內(nèi),從理論值與計(jì)算結(jié)果的對(duì)比曲線可知,理論值和仿真結(jié)果是非常的接近。
4 硬件實(shí)現(xiàn)
通過上述在綜合軟件上的對(duì)比分析,將子模塊內(nèi)部在FPGA上仿真驗(yàn)證。下面是子模塊Verilog HDL主要代碼。
參考文獻(xiàn)
[1]孔德元.針對(duì)正弦余弦計(jì)算的CORDIC算法優(yōu)化及其FPGA實(shí)現(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ù)實(shí)現(xiàn)正切余切函數(shù)[J].通信技術(shù),2013.05.