HLSBOOK学习笔记(二) CORDIC


写在最前: 这一章介绍的HLS优化方式,是为变量选择正确的数据表示,这也是(一)中所铺垫过的

CORDIC算法简介及优化

CORDIC(Coordinate Rotation Digital Computer),坐标旋转数字计算法,能够计算三角、双曲和其他数学函数,可以根据需求调整精度(有些像工数讲的数值分析,学过不动点迭代法的同学应该能更好理解这里的CORDIC算法)CORDIC只使用加法、减法、移位和查找表实现简单算法,在FPGA中实现效率高,在硬件算法中经常用到。
要权衡运算结果精度、性能、设计资源利用率
向量旋转公式
这样就会把向量正转θ.
如果θ是45°,那么
向量逆时针旋转45°
但是这样计算,计算效率不高。将旋转矩阵强制转化成易于乘法的常数,比如,设置为2的幂数,就尅通过移位来计算而不需要计算乘法。这样则需要乘上一个因子,对旋转矩阵进行一个缩放。可以将旋转矩阵变化成如下的形式:
变化旋转矩阵
(图里右上角元素写错了)
取tan2θi = 2-i,与2-i相乘等价于右移i位,这基本上不需要任何资源。则此旋转矩阵变成了
在这里插入图片描述
在这里插入图片描述
这是正转,反转只需要在将2-i换成-2-i即可。
因为每一个旋转矩阵都是被缩放了的,因此最终结果还要乘上一个比例因子还原回来,这个比例因子为
在这里插入图片描述
这是个收敛级数,收敛于0.607252935.可以将每一个θi对应的值存储到片上内存中,随用随找。下表是前七次迭代的旋转角度、比例因子和CORDIC增益(就是累积,比如1.41421*1.11803=1.58114)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值