cordic ip核 vivado_vivado中Cordic IP核使用——计算正余弦(sin/cos)

本文介绍了Cordic算法及其在Vivado中的Cordic IP核应用,用于计算正余弦。通过设置IP核进行正余弦计算,并进行了仿真验证,显示计算结果正确且输出延迟为20个clk。然而,存在的问题是输入到输出之间存在约105ns的延迟,实际应用中需解决此延迟问题。
摘要由CSDN通过智能技术生成

目录

1、Cordic算法介绍

2、Cordic IP核介绍

3、仿真

4、存在的问题

5、参考

1、Cordic算法介绍

cordic算法将正余弦计算转换为简单的迭代过程(一系列的加减和移位操作), 非常适合硬件实现,是对正余弦等数学计算的逼近。

以旋转过程为例,简述cordic算法思想(计算正余弦可以认为起始点P在x轴上,旋转结果的xy坐标即为旋转角度的cos、sin):

和差化积公式:

带入P点:

进一步:

伪旋转:

伪旋转不再考虑

,导致旋转后模值改变(变大):

旋转分解:

将旋转分解成为一系列的微旋转(直接旋转难以计算,将其分解为一系列易于计算的微旋转),实现了一系列加减和移位来逼近正切值计算。

第i+1 次旋转后的结果为:

微旋转角度选择, 正是它使得该算法非常易于硬件实现, 即令:

这里di∈{-1,1}, 结合式( 3.99), 式 (3.98) 可重新改写为:

不难看出, 每次微旋转在xy坐标上带来的影响是1/(2^i),因此只需要加法 、 减法和移位操作即可完成。

结论:

这一系列微旋转角已知,Cordic计算的过程就是通过一系列微旋转角度的旋转(根据理想角度与当前角度大小关系选择顺时针还是逆时针旋转),逼近计算角度的过程。

微旋转角度和存在极值,因此理想角度存在输入范围。超出范围的需要预处理。

伪旋转对模值的影响,近似为放大了1/K倍。K=0.607252935

2、Cordic IP核介绍

1、功能设置,包括旋转、正余弦计算、开方运算等,此处设置为正余弦计算

2、配置设置,选择为并行

3、数据形式设置,选择为有符号小数

4、相位格式设置,包括弧度(-3.14-3.14)和缩放(-1-1)

5、数据位宽设置(精度)

6、配置结束,可以看出输出延迟为20个clk

7、配置结束,对应的数据位宽和分配

3、仿真

可以看出:

1、正余弦计算正确

2、输出延迟确实为20clk

4、存在的问题

经过105ns以后的输入才有对应输出,这105ns如何确定?实际中如何处理这一段时间?

5、参考

CORDIC算法详解(一)-CORDIC 算法之圆周系统之旋转模式

Cordic v6.0 IP CORE使用说明

vivado中cordic IP 6.0 关于sin/cos输入输出位数问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值