参考:b站教学视频FPGA:Cordic算法介绍与实现_哔哩哔哩_bilibili
FPGA硬件实现加减法、移位等操作比较简单,但是实现乘除以及函数计算复杂度高且占用资源多,常见的计算三角函数/平方根的求解方式有①查找表:先把函数对应结果存在存储器中,根据输入地址确定计算结果;②泰勒展开:把三角函数等函数求解展开成乘、除、加法进行求解。这两种方法耗费ram/乘法器的资源巨大,为了仅用简单的移位/加减法运算求解出复杂三角函数,提出了cordic算法。
cordic算法:coordinate rootation digital computer 坐标旋转数字计算方法(硬件加速算法)。
类似于二分法,反复迭代,逐次逼近最终值,计算结果达到一定精度即可终止。与二分法不同的是,这里不是每次都改变二分之一的角度,而是改变二分之一的tan值,计算出对应角度,从而把复杂运算转换为简单的移位运算。
问题:已知某点坐标,①求旋转到X轴需要的角度(向量模式);②求旋转某角度后的坐标(旋转模式);

对于旋转模式:
模块输入为:坐标(x,y),要旋转的角度z。输出为:新

本文介绍了在FPGA中使用Cordic算法实现复杂的三角函数和相位角计算,通过迭代逼近简单运算,减少RAM和乘法器资源。Cordic算法包括向量模式和旋转模式,适用于串行和并行模块,Quartus的CordicIP核提供了关键函数如Sincos和Atan2用于设计。
最低0.47元/天 解锁文章

1390

被折叠的 条评论
为什么被折叠?



