APP下载

基于小容量查找表的CORDIC算法设计

2019-06-08姚亚峰徐洋洋侯强钟梁

湖南大学学报·自然科学版 2019年4期
关键词:数字信号处理

姚亚峰 徐洋洋 侯强 钟梁

摘   要:为了对流水线结构的坐标旋转数字计算(Coordinate Rotation Digital Computer,CORDIC)的实现时延和硬件资源消耗进行优化,提出一种仅基于查找表的新的实现方法,完全免除了迭代运算.该方法只需要一个较低容量的ROM表,以及对ROM表输出结果进行简单的移位运算,即可得到高精度的正弦波或余弦波输出.分别在Matlab、Modelsim以及XILINX ISE进行了理论仿真及实际验证,结果表明:这种CORDIC实现方法只需要2个时钟周期的处理延时,硬件资源消耗与其他实现方法相比也有所降低,最大工作频率也有一定提高.

关键词:坐标旋转数字计算;流水线结构;查找表;可编程逻辑门阵列;数字信号处理

中图分类号:TN492;TN911.72                文献标志码:A

Implement of CORDIC Algorithm with a Small Capacity ROM Table

YAO Yafeng,XU Yangyang,HOU Qiang,ZHONG Liang

(School of Mechanical Engineering and Electronic Information,China University of Geosciences,Wuhan 430074,China)

Abstract: In order to optimize the implementation delay and hardware resource consumption of the Coordinate Rotation Digital Computer(CORDIC) in pipeline architecture,a new implementation method based on look-up table was proposed,which completely eliminated the iterative computation. This method requires only a lower capacity ROM table,as well as a simple shift operation on the output of the ROM table,so that sine wave or cosine wave output with high accuracy can be obtained. Theoretical simulation and practical verification were carried out in Matlab,Modelsim and XILINX ISE,and the results show that this method of CORDIC only requires two clock cycles of processing delay,and the hardware resource consumption is also reduced when compared with other methods. Additionally,the circuit output accuracy and maximum working frequency are also improved at a certain level.

Key words: coordinate rotation digital calculation(CORDIC); pipeline architecture; look-up table;

programmable logic gate array; digital signal processing

CORDIC(Coordinate Rotation Digital Computer)算法核心思想是通過迭代来不断逼近目标值,其精度可以通过迭代次数来控制,具有输出结果精度可调、硬件实现简单等特点[1],方便实现坐标变换、三角函数计算、矩阵运算等多种数字信号处理功能,在直接数字频率合成器DDS、数字控制振荡器NCO、快速傅里叶变换FFT等领域都得到广泛应用.

随着现代通信技术不断更新发展,通信系统对CORDIC算法实现要求也在不断提高[2-3].近年来,有关CORDIC算法的高效实现一直得到人们持续关注和研究.文献[4]提出的实现方法虽然有很高的相位分辨率,但是其最大工作频率受到限制并且功耗较大.文献[5]提出的表驱动缩小目标旋转角度的方法虽然迭代次数有所减少,但是其硬件资源消耗和最大输出时延仍然较大.文献[6-7]提出的固定角度旋转CORDIC算法利用混合旋转CORDIC算法原理进行一次角度估计和多次单向角度旋转,虽然减少了迭代次数,但同时也降低了精度.文献[8-9]提出的双步旋转方法虽然免去了校正因子,减少了迭代次数,但是该方法硬件结构比较复杂,硬件资源消耗仍然较大.文献[10-11]提出将整个迭代过程分为三个阶段完成:第一阶段查找4位地址的查找表;第二阶段进行4次蝶形迭代运算;第三阶段通过合并运算得出输出结果.这种典型的实现方法在运算速度、计算精度和电路资源消耗等方面都有一定改善,但是需要7个时钟周期的延时才能得到输出结果,不太适合高速、实时的信号处理与应用.

本文在文献[10-11]的基础上,提出一种只基于查找表的新的实现方法,完全免除了迭代运算.这种实现方法只需要一个6位地址输入的小容量ROM表,然后对查表输出的结果采用简单的移位和相加运算进行结果修正,即可得到满足特定精度要求的正弦波或余弦波输出.这种实现方法在电路资源消耗没有增加,输出精度保持一致的前提下,输出延时从7个时钟周期缩短为2个时钟周期,尤其适合实时性要求高、处理速度快的应用场合.

猜你喜欢

数字信号处理
《数字信号处理》中存在的难点问题解析
电子信息工程专业数字信号处理课程改革与研究
“数字信号处理”课程教学改革研究与探索
数字信号处理课程教学探索
SPTool在数字信号处理课程教学中的应用
基于微课的数字信号处理教学方法的探讨
任务驱动教学法在《数字信号处理》教学中的应用研究
浅谈《数字信号处理》实践教学