第44 期: 面向未来十年的“All Programmable” - Xilinx
第44 期: 面向未来十年的“All Programmable” - Xilinx
第44 期: 面向未来十年的“All Programmable” - Xilinx
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CORDIC 应用<br />
设计人员在从数字信号处理和图像处<br />
理 到 工 业 控 制 等 多 种 应 用 中 采 用<br />
CORDIC 算法。最基本的用法是将<br />
CORDIC 与相位累加器结合,以生成<br />
正弦波和余弦波,供 I 调制和 Q 调制<br />
使用。使用该算法生成这些波形,如<br />
果生成正确,可以实现高度的无杂散<br />
动态范围 (SFDR)。对大多数信号处<br />
理应用而言,需要良好的无杂散动态<br />
范围。<br />
在机器人技术领域,CORDIC 被<br />
用于运动学领域,对判断机器人的关<br />
节、四肢的位置和运动非常有用。在<br />
该应用中,可以使用圆函数向量模式<br />
的 CORDIC 算法轻松将坐标值与新<br />
坐标值相加。在图像处理领域,像光<br />
照和向量旋转这样的三维运算最好选<br />
用该算法来实现。<br />
在 EXCEL 中建模<br />
在横切代码前,建立 CORDIC 算法<br />
模型最直观的方法之一是填制简单的<br />
Excel 数据表。这样可以先用浮点数<br />
系统,再用可扩展的定点数系统为迭<br />
代次数和增量(An)建模,以便为仿<br />
真过程中的代码验证提供参考。<br />
从表 4 的 Excel 模型中可以看<br />
到,将初始的 X 输入设为 An,可以<br />
减少结果后处理工作量。初始自变量<br />
手 把 手 课 堂 : F P G A 1 0 1<br />
模式 x y z 方向 增量<br />
初始 0.607253 0.000000 0.017453<br />
0 0.607253 0.607253 -0.767945 1 0.707107<br />
1 0.910879 0.303626 -0.304298 -1 0.894427<br />
2 0.986786 0.075907 -0.059319 -1 0.970143<br />
3 0.996274 -0.047442 0.065036 -1 0.992278<br />
4 0.999239 0.014826 0.002617 1 0.998053<br />
5 0.998776 0.046052 -0.028623 1 0.999512<br />
6 0.999496 0.030446 -0.012999 -1 0.999878<br />
7 0.999734 0.022637 -0.005186 -1 0.999969<br />
8 0.999822 0.018732 -0.001280 -1 0.999992<br />
9 0.999859 0.016779 0.000673 -1 0.999998<br />
10 0.999842 0.017756 -0.000304 1 1<br />
11 0.999851 0.017268 0.000185 -1 1<br />
12 0.999847 0.017512 -0.000060 1 1<br />
13 0.999849 0.017390 0.000063 -1 1<br />
14 0.999848 0.017451 0.000001 1 1<br />
余弦 正弦 An 0.607253<br />
CORDIC 0.999848 0.017451<br />
实际 0.999848 0.017452<br />
表 4 - 圆函数旋转模式的 CORDIC 的 Excel 模型<br />
设为 Z,单位为弧度,和结果一样。<br />
实现 CORDIC<br />
如果没有其他更好的选择,在 FPGA<br />
中实现 CORDIC 算法的最简单方法<br />
就是使用像赛灵思 CORE Generator ®<br />
这样的工具。CORE Generator 提供<br />
了全面的接口,供用户定义 CORDIC<br />
的确切功能(旋转、向量等),如图<br />
1 所示。<br />
令 人 遗 憾 的 是,CORE<br />
Generator 不提供 CORDIC 在线性<br />
模式下工作的选项(该工具确实提供<br />
有执行这些功能的独立内核)。不过<br />
只需要几行就可以编写出实现该算法<br />
2012 年第二季度 赛灵思中国通讯 44 <strong>期</strong> 43