一种CORDIC算法的实现装置制造方法及图纸

技术编号:2835936 阅读:196 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种CORDIC算法的实现装置。应用该装置,可对输入复数实施角度为θ(0≤θ<2π)的旋转。该装置由控制单元、m↓[1]级方向向量发生单元、m↓[1]级角度旋转单元、m↓[2]级模校正单元和输出单元构成。在一个数据周期内,各级方向向量发生单元连续产生n个方向向量,可供对应的角度旋转单元对输入数据进行n次偏转,同时各级模校正单元也进行n次迭代计算。参数m↓[1]、m↓[2]与n则可根据计算精度、时延等要求进行配置,参数m↓[1]、m↓[2]、n均为自然数,一般取3≤m↓[1]≤6,2≤m↓[2]≤4,2≤n≤8。在输出数据精度相同的情况下,应用多级CORDIC运算结构,比传统的CORDIC流水线节省资源1/3以上,并减少时延。

【技术实现步骤摘要】

本专利技术涉及一种CORDIC算法的实现装置,属于数字信号处理领域。
技术介绍
CORDIC(坐标旋转数字计算机)算法由J.E.Volder于1959年提出,其思想是通过一系列固定的、与运算基数相关的角度的不断偏摆来逼近所需的旋转角度,用简单的移位、加法运算代替了复杂的乘法运算。该算法最早应用于导航系统,使得矢量旋转和定向运算不再需要做三角函数查表、乘法、开方以及反三角函数等复杂处理。1971年,Walther把CORDIC算法推广到各种初等函数的统一计算中,随着VLSI(超大规模集成电路)技术的发展,CORDIC算法得到了广泛的应用。由于CORDIC算法包括多次迭代过程,为降低时钟要求,其电路实现摒弃了单级结构,一般采用流水线形式。例如,专利技术专利200410013670.3公开了一种基于CORDIC单元的阵列式可重构DSP引擎芯片结构,通过使用模块化的结构实现了对不同字宽CORDIC计算的兼容,但基本结构仍为传统的流水线;专利技术专利200580003296.1公开了一种用于复合相旋转的CORDIC算法的实现,采用复合相矢量旋转实现CORDIC算法虽然减少了流水线级数,但由于计算不能使用简单的“移位-加”实现,硬件资源消耗仍然很大。流水线结构的CORDIC具有速度快、电路实现简单等优点,但是,由于流水线级数多,导致时延和资源消耗亦相当可观,因此有必要寻找一种新的CORDIC算法实现结构,在速度和芯片面积上取得较好的优化。
技术实现思路
本专利技术的目的是提供一种CORDIC算法的实现装置,用于缩短流水线形式的CORDIC时延,并节约资源。本专利技术的一种CORDIC算法实现装置包括控制单元、m1级方向向量发生单元、m1级角度旋转单元、m2级模校正单元和输出单元。该装置能够对输入复数实施角度为θ(0≤θ<2π)的旋转。该装置的输入时钟包括数据时钟clk1和迭代时钟clk2,其中,clk2为clk1的n倍频。根据输出数据精度、时钟要求,可对方向向量发生单元、角度旋转单元的级数m1和模校正单元的级数m2以及参数n进行配置,这里m1、m2、n均为自然数,一般取2≤n≤8,3≤m1≤6,2≤m2≤4。上述的控制单元,包括一个沿检测器和一个计数器。沿检测器对clk1的上升沿进行检测,实现clk1与clk2的同步,产生选择控制信号。计数器对clk2进行计数,对迭代过程进行同步和控制,产生迭代计数信号。上述的m1级方向向量发生单元,各级单元均包括一个多路选择器、一个存储器、一个运算器和一个D触发器。多路选择器对外部输入角度θ(或前级D触发器的输出)和本级D触发器的输出进行选择,然后把输出的符号位作为方向向量δ输出。存储器用于存储偏移角度γi(1≤i≤m1·n),当1 ≤i≤ 6时,γi=π/4;当6<i≤m·n时,γi=arctan(26-i)。其中第k(1≤k≤m1)级方向向量发生单元存储器内的偏移角度为γi((k-1)·n+1≤i≤k·n),存储器根据控制单元发出的迭代计数信号,选择相应的偏移角度送入运算器与多路选择器的输出进行计算,计算方式由方向向量确定。计算结果寄存于D触发器中。上述的m1级角度旋转单元,各级单元均包括一个多路选择器、一个移位器、一个运算器和一个D触发器。角度旋转单元与方向向量发生单元的各级单元一一对应,并且工作方式类似,多路选择器用于输入选择,运算器的计算方式由第k级方向向量发生单元产生的方向向量确定,D触发器用于寄存计算结果。不同之处在于,角度旋转单元在方向向量发生单元中存储器的位置代之以移位器。移位器根据控制单元发出的迭代计数信号,对多路选择器的输出进行右移位处理,与偏移角度γi对应,右移位数si(1≤i≤m1·n)为当1≤i≤6时,si=0;当6<i≤m·n时,si=i-6。其中,第k级角度旋转单元中移位器的右移位数为si((k-1)·n+1≤i≤k·n)。多路选择器与移位器的输出将被送入至运算器中进行计算。上述的m2级模校正单元,各级单元均包括一个多路选择器、一个移位器、一个运算器和一个D触发器。模校正单元用于完成最后一级角度旋转单元输出与模校正系数(0.075906617)的乘法操作。本领域内公知,常数乘法可用“移位-加”计算实现,模校正单元即采用此方式进行。各级模校正单元的工作方式与角度旋转单元类似,不同之处在于,迭代过程中移位器的右移位数由模校正系数确定,运算器中只进行减法计算,不需要提供方向向量。上述的输出单元接收最后一级模校正单元的计算结果,并将其输出到装置外部。上述的m1级方向向量发生单元之间、m1级角度旋转单元之间、m2级模校正单元之间以及第m1级角度旋转单元与第1级模校正单元之间均采用级联方式进行连接,在迭代计数信号的控制下,每个clk1周期内,各级单元同步完成n次迭代。综上所述,本专利技术提供的CORDIC算法实现装置与传统的流水线CORDIC在一个clk1周期内每级单元只进行一次迭代计算相比,该装置通过在每级单元内同步进行多次迭代,减少了CORDIC计算级数,从而降低了资源消耗。该装置可广泛应用于数字信号处理领域。附图说明图1为4级CORDIC运算结构示意图。图2为控制单元示意图。图3为方向向量发生单元示意图。图4为角度旋转单元示意图。图5为模校正单元示意图。其中10是控制单元CU、20是m1级方向向量发生单元DGU、30是m1级角度旋转单元ARU、40是m2级模校正单元MRU、50是输出单元OU、101是CU沿监测器、102是CU计数器、201是DGU多路选择器、202是DGU存储器、203是DGU运算器、204是DGU的D触发器、301是ARU多路选择器、302是ARU移位器、303是ARU运算器、304是ARU的D触发器、401是MRU多路选择器、402是MRU移位器、403是MRU运算器、404是MRU的D触发器。具体实施例方式下面将结合附图和实施例对本专利技术作进一步的详细说明。实施例1以4级CORDIC运算结构(m1=4,m2=2,n=4)为例。4级CORDIC运算结构如图1所示,该运算装置由控制单元CU10、4级方向向量发生单元DGU20、4级角度旋转单元ARU30、2级模校正单元MRU 40以及输出单元OU 50构成。clk2为clk1的4倍频,在一个clk1周期内,各级方向向量发生单元DGU、角度旋转单元ARU与模校正单元MRU进行4次迭代计算。控制单元CU10由沿检测器101与计数器102组成(如图2所示)。在clk1上升沿到达后的第2个clk2周期内,沿检测器101将选择控制信号sc拉高,其余时间则置低,计数器对clk2进行计数,当sc为高电平时开始清零,计数器的输出ic最大值为3,信号sc与ic输入到方向向量发生单元DGU、角度旋转单元ARU和模校正单元MRU单元中,用于迭代计算过程的控制与同步。四级方向向量发生单元DGU 20的每级单元均由一个多路选择器201、一个存储器202、一个运算器203和一个D触发器204组成(如图3所示)。取多路选择器201输出的符号位作为方向向量δ输出。当ic=3,sc=1时,多路选择器201将外部输入角度θ(对于第一级DGU 20单元)或前级D触发器204的输出(对于第2~4级DGU 20单元)送入运算器203,同本文档来自技高网...

【技术保护点】
一种CORDIC算法的实现装置,其特征在于该装置包括:控制单元,对数据时钟clk1和迭代时钟clk2进行同步,控制迭代计算过程,clk2为clk1的n(n为自然数,一般取2≤n≤8)倍频;m↓[1]级方向向量发生单元,(m↓ [1]为自然数,一般取3≤m↓[1]≤6),根据输入角度θ和存储的偏移角度产生方向向量;m↓[1]级角度旋转单元,根据方向向量对输入复数进行“移位-加”计算;m↓[2]级模校正单元,(m↓[2]为自然数,一般取2≤m↓[2] ≤4),对角度旋转后的输出乘以模校正系数,也采用“移位-加”计算实现;输出单元,接收并输出模校正的计算结果;上述的m↓[1]级方向向量发生单元之间、m↓[1]级角度旋转单元之间、m↓[2]级模校正单元之间以及第m↓[1]级角 度旋转单元与第1级模校正单元之间均采用级联方式进行连接。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘荣科戚达平
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利