论文部分内容阅读
ASIC和FPGA由于其特有的硬件结构而被认为是各种专用快速计算的理想平台。各类复杂运算在该平台上的逻辑实现成为国内外研究热点。CORDIC算法能将基础函数分解为简单的移位和加/减操作,为复杂运算的逻辑实现奠定了基础。因此,如何设计高性能的CORDIC算法受到了研究者的广泛关注。在CORDIC算法的研究中,迭代次数多、延时大一直是影响其应用的重要因素。本文针对CORDIC算法复杂度高、迭代次数多、收敛范围有限的问题,结合旋转角度的特点和圆周区间的对称性,分别对角度编码CORDIC算法和免缩放因子CORDIC算法进行研究和改进。具体工作如下:针对角度编码CORDIC算法角度选择函数过于复杂,导致算法面积消耗大、延时大的问题,本文分析了角度选择函数实现的原理,结合ASIC/FPGA的并行性和常数角二进制表示的特点,提出了一种改进的角度编码CORDIC算法。该算法用重编码机制对角度的二进制位进行重新编号,利用常数角的索引值和剩余角最高非零位的位置之间的关系,能快速确定距离剩余角最近的常数角,减少角度选择函数对加法器和比较器的消耗,降低了算法的硬件实现复杂度,减少延时。针对免缩放因子CORDIC算法迭代次数多、收敛范围有限的问题,本文通过分析免缩放因子CORDIC算法旋转角度的特点,结合圆周区间的对称性,提出了免缩放因子双步旋转CORDIC算法。该算法使用双步旋转策略,大大减少免缩放因子CORDIC算法的迭代次数;使用区间折叠技术,将算法的收敛区间扩展到整个圆周区间;由于合并了相邻两次迭代,减少了圆整操作的次数,算法的计算精度也得以提高。为了验证上述算法,本文基于Verilog硬件描述语言分别实现了改进的角度编码CORDIC和免缩放因子双步旋转CORDIC算法,并用统计的方法从计算精度、面积消耗、迭代次数、延时等方面分别对这两个算法进行对比分析。实验结果证明了本文改进方案的有效性,具有一定的理论价值和实际应用价值。