论文部分内容阅读
针对数字信号处理,目前已经有了不少有效的硬件算法。在这些算法中,CORDIC(坐标旋转数字计算机)算法是很有特色的一种,这种算法仅使用移位和加法运算,就能够实现三角函数、双曲线函数、线性函数和超越函数的计算功能。
本文首先介绍了CORDIC算法的原理,以及可以用CORDIC算法计算的函数,并且总结了要得到这些函数将怎样使用合适的初值和CORDIC模式。考虑到CORDIC算法是一种迭代算法,论文中还搭建了c++的实验平台,对两种模式下的相对误差和迭代次数的关系作了分析。接下来,论文中还对CORDIC算法的两种典型结构:迭代结构和流水线结构,进行了实现,并且在仿真、综合以及布局布线之后,比较了两者在吞吐率、硬件资源以及工作速度等方面的主要性能。
每次CORDIC迭代都要在分析前一次迭代结果的基础上,对下一次旋转的方向进行判断。为了减少或者避免这种每一次都要顺序执行的方向判断,本文引入了一种新的可预测旋转方向的策略。应用这种策略,可以使硬件复杂度下降,并且提升速度。在论文中,应用这种策略实现了正弦/余弦三角函数发生器。这种三角函数发生器,可以用于直接数字频率合成器的设计。