论文部分内容阅读
CORDIC算法采用角度旋转逐次逼近的方法,将函数的运算用三种模型(圆周模型、线性模型、双曲线模型)来实现,并把三种模型统一到一种形式中,最终把复杂的运算转换成简单的移位和加法操作,从而适合硬件实现,克服了其他方法不能兼顾速度、精度、简单性和高效的缺陷,因此,得到了广泛的应用。目前CORDIC算法被应用在数字信号处理、移动通信、图像处理、天气预报等各个领域,然而随着其应用范围的扩大,对算法的速度和精度也提出了更高的要求。如何在保证精度的前提下,提高速度,降低面积和功耗成为研究这一算法的关键。本文针对以上需求对CORDIC算法性能进行了优化。整体上运用迭代法和查表法相结合的方式完成函数的实现,具体设计上,由于乘法的数量较少,并且,一般综合库都可以生成性能很好的乘法器,所以乘法采用库自动生成的乘法器。相比较而言,加法器的运用较多,在加法器的选择过程中,对行波进位加法器,超前进位加法器,Brent-kung加法器,Kogge-stone加法器,Ladner-fischer加法器五种加法器性能进行了比较,最终选用32位的超前进位加法器,利用华虹基于TSMC-0.13μm工艺库,综合出来的面积是5168.26μm2,平均功耗是313.608mW,延时是6.02ns。最后在以上基础上实现了全流水、部分流水和不流水三种结构,并利用TSMC-0.13μm工艺库进行了综合,发现采用的流水级数越高,面积越大,但计算速度越快,吞吐率越高。本论首先采用IEEE754标准,用Verilog HDL(Hardware Design Language,硬件描述编程语言)对基于浮点数的CORDIC算法进行RTL级语言描述,接着运用Debussy对数据流和内部结构进行分析,并运用Modelsim仿真波形,实现了32位单精度浮点数的函数运算。然后,用matlab仿真进行验证,并跟Modelsim仿真的数据结果进行比较,证明了设计的算法达到了预期的精度(2-23)要求。最后,用综合工具进行了综合,实现了高性能的CORDIC算法。