CORDIC算法正切余切函数的FPGA实现

2016-05-14 01:12曹剑英葛俊峰
数字技术与应用 2016年8期
关键词:算法

曹剑英 葛俊峰

摘要:本文在CORDIC算法理论的基础上实现正切余切函数的计算,结合了圆周旋转运算算法模式(Circular)和线性旋转运算(Linear)算法模式,引入了M倍降速递归流水线技术,提高运算速度和减少系统芯片占用的逻辑资源,同时仿真了正切余切计算模块的RTL综合电路及Modelsim的波形,在硬件资源FPGA上实现正切余切函数的计算。

关键词:算法 正切余切函数 FPGA

中图分类号:TP322.2 文献标识码: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算法是坐标旋转的方法,假设初始坐标为,旋转角度后,得到终点坐标为,如图1所示。由三角函数可知,得如下公式:

表示迭代(),由,分别称为圆周旋转运算、双曲旋转运算和线性旋转运算,然后根据取值的判读方式,CORDIC算法结构可分为旋转模式和向量模式。当m取不同的值时,即可得到三种不同计算方式,并在各种计算方式下通过多次迭代,三角函数、实现乘法、除法、指数、双曲函数、开方及对数等运算。

2 Cordic算法正切余切函数的模块设计

2.1 系统设计

系统采用圆周Cordic与线性Cordic相结合的方式实现正、余切的运算,如图2所示。

2.2 算法结构及RTL综合电路(图3)

3 仿真验证

对整个TanCtgCalcuSys系统模块选用了Xilinx Virtex-4的器件。各个计算模块能够较为精确地获得角度的正切余切计算结果。图4是Modelsim上的仿真波形。

图5描绘了内,从理论值与计算结果的对比曲线可知,理论值和仿真结果是非常的接近。

4 硬件实现

通过上述在综合软件上的对比分析,将子模块内部在FPGA上仿真验证。下面是子模块Verilog HDL主要代码。

参考文献

[1]孔德元.针对正弦余弦计算的CORDIC算法优化及其FPGA实现[D].中南大学硕士论文,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倍降速递归流水线技术实现正切余切函数[J].通信技术,2013.05.

猜你喜欢
算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于增强随机搜索的OECI-ELM算法
一种改进的整周模糊度去相关算法