APP下载

基于扩展CORDIC算法的正切余切函数的设计

2013-07-24曹剑英

赤峰学院学报·自然科学版 2013年22期
关键词:降速流水线运算

曹剑英

(集宁师范学院 物理系,内蒙古 乌兰察布 012000)

基于扩展CORDIC算法的正切余切函数的设计

曹剑英

(集宁师范学院 物理系,内蒙古 乌兰察布 012000)

传统的坐标旋转算法(Cordinate Rotational Digital Computer,CORDIC)已经能够在硬件上较为满意地计算三角函数,但是依然存在范围过窄的限制;需要进一步改进和完善的地方.本文基于扩展的CORDIC算法原理对正切余切函数在硬件上的设计.

坐标旋转算法;正切余切函数;设计

1 CORDIC算法原理

1.1 算法推导[1]

图1 平面坐标的旋转

CORDIC算法是一种旋转坐标的方法.设起点坐标为P0=(x(1),y(1)),旋转θ角度,得到终点坐标,设为Pn=(x(2),y(2)),如图1所示.由三角函数知识,旋转后的坐标由式(1-1)计算得到

其中

矩阵R可以写成

把cosθ去掉后相当于把旋转后矢量的模减小了,为了保证最终的结果正确,一般在结果的后面乘上一个系数K.对于某一个角度β,假定初始角度为z0,可以通过z0经过若干个小角度θi的旋转获得,β=z0+Σθi;并可以得到如下所示的迭代公式:

1.2 传统CORDIC的模型

以上所作的Cordic理论分析,只是Cordic算法提出时的理论雏形;之后,John Walther于1971年对其进行了扩展引申,进一步的完备了Cordic算法,得到以下Cordic的迭代模型[2].

这里,

根据δi取值的判读方式,CORDIC算法又分为旋转模式和向量模式.当m取不同的值时,可以得到CORDIC的三种不同计算方式,在各个计算方式下,通过多次迭代,可以计算得到多个函数的值,比如三角函数、双曲函数以及开方运算等.

1.3 扩展CORDIC算法

我们可以知道传统CORDIC迭代算法可以实现乘法、除法、三角函数、双曲函数、指数、对数以及开方等运算.但是传统CORDIC算法存在求值受限的问题,比如Circular下的CORDIC算法只能进行0°~99°范围内三角函数运算,弧度还不能涵盖0~π.针对CORDIC的这类问题,Xiaobo Hu等3位教授在在Expanding the Range of Convergence of the Cordic Algorithm[3]中提出了改进型的CORDIC算法.

2 扩展CORDIC算法正切余切的设计方式

CORDIC迭代算法并不能直接被用于计算正切和余切函数.由于圆周CORDIC算法能被用于计算正弦与余弦函数,而线性CORDIC算法能实现两变量的乘法与除法操作,基于此,本论文拟采用圆周CORDIC与线性CORDIC相结合的方式来实现正切与余切的操作,如图2所示.

图2 基于CORDIC的正切余切的实现

本文采用的定点数据格式如图3所示,使用16位二进制来表示小数部分,8位表示整数部分,还有一位是符号位.

图3 定点数据格式(一位符号位,8位整数位以及16位小数位)

在本文中,我们引入M倍降速递归流水线技术(这里M=2),在一个模块中同时实现正切与余切运算.该模块的内部结构如图4所示.从而可知,通过增加较为简单的控制电路,可以使整个模块能够节省将近5%的LUTs[4].

图4 基于M倍降速递归流水线技术的正切余切模块

4.5.2仿真验证.

表1 测试用例以及仿真结果分析

在Modelsim中编写了TestBench文件进行测试,测试用例如表1所示.由于在模块内部,针对符号位是做了特殊处理的,因此会出现在多次迭代后,±θ的正切或余切只是符号位有差别,而不会因为迭代的原因导致有绝对值上的偏差.此外,从表1的误差比率来看,本文所设计的正切余切计算模块能较为精确地获得角度θ的正切余切值.

〔1〕孔德元.针对正弦余弦计算的CORDIC算法优化及其FPGA实现[D].中南大学硕士论文,2008.1-3.

〔2〕J.E.Volder.The CORDIC trigonometric computing technique [J].IRE Trans.on Electron.Computers,vol. EC-8,1959.P.330-P.334.

〔3〕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.

〔4〕曹剑英.M倍降速递归流水线技术实现正切余切函数[J].通信技术,2013(05).

O174

A

1673-260X(2013)11-0005-02

猜你喜欢

降速流水线运算
重视运算与推理,解决数列求和题
固体推进剂降速剂研究现状及发展趋势
对改装说NO!为骑手“降速”!
有趣的运算
流水线
重庆“降速”
直流电力机车过分相降速问题的分析与研究
“整式的乘法与因式分解”知识归纳
报废汽车拆解半自动流水线研究
流水线生产杀死艺术