CN101082858A - 一种cordic算法的实现装置 - Google Patents

一种cordic算法的实现装置 Download PDF

Info

Publication number
CN101082858A
CN101082858A CN 200710118697 CN200710118697A CN101082858A CN 101082858 A CN101082858 A CN 101082858A CN 200710118697 CN200710118697 CN 200710118697 CN 200710118697 A CN200710118697 A CN 200710118697A CN 101082858 A CN101082858 A CN 101082858A
Authority
CN
China
Prior art keywords
unit
direction vector
output
level
mux
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200710118697
Other languages
English (en)
Other versions
CN100511125C (zh
Inventor
刘荣科
戚达平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CNB2007101186972A priority Critical patent/CN100511125C/zh
Publication of CN101082858A publication Critical patent/CN101082858A/zh
Application granted granted Critical
Publication of CN100511125C publication Critical patent/CN100511125C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

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

Description

一种CORDIC算法的实现装置
技术领域
本发明涉及一种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,同时进入运算器203的还有存储器202内的第1个偏移角度。当δ=0时,运算器203执行减法运算;当δ=1时,运算器203执行加法运算,运算结果寄存于D触发器204中。当ic=0,1,2时,sc=0,多路选择器201将本级D触发器204的输出送入运算器203,同时进入运算器203的还有存储器202内的第2、第3或第4个偏移角度,运算结果同样寄存于D触发器204中。在一个clk1周期内,DGU 20的各级单元产生4个方向向量。
四级角度旋转单元ARU 30的每级旋转角度单元均由一个多路选择器301、一个移位器302、一个运算器303和一个D触发器304组成(如图4所示)。当ic=3时,sc=1,多路选择器301将外部输入复数(对于第一级ARU 30单元)或前级D触发器304的输出(对于第2~4级ARU 30单元)送入运算器303,多路选择器301的输出经过右移位处理后也进入运算器303中。当δ=0时,运算器303通过减法运算得到实部结果,通过加法运算得到虚部结果;当δ=1时,实部与虚部分别通过加法与减法得到。当ic=0,1,2时,sc=0,多路选择器301将本级D触发器304的输出与移位器302的输出一块送入运算器303,运算结果同样寄存于D触发器304中。移位过程中的右移位数由ic控制。
两级模校正单元MRU 40的每级单元均由一个多路选择器401、一个移位器402、一个运算器403和一个D触发器404组成(如图5所示)。当ic=3时,sc=1,多路选择器401将第四级ARU 30单元中D触发器304的输出(对于第一级MRU40单元)或前级D触发器404的输出(对于第二级MRU 40单元)送入运算器403,多路选择器401的输出经过右移位处理后也进入运算器403中,运算器403只执行减法操作。当ic=0,1,2时,sc=0,多路选择器401将本级D触发器404的输出与移位器402的输出一块送入运算器403,运算结果同样寄存于D触发器404中。移位过程中的右移位数由ic控制。
在输出单元OU50中,当sc=1时,对第二级MRU40单元中D触发器404的输出进行接收与寄存,输出最终结果(即输入复数经过角度为θ旋转后的结果)。
上述的CORDIC运算结构采用4级方向向量发生单元、4级角度旋转单元实现了16次迭代计算,采用2级模校正单元实现了8次迭代计算,若采用流水线结构完成同样的迭代计算次数,则分别需要16级方向向量发生单元、16级角度旋转单元以及8级模校正单元,与传统的CORDIC流水线结构相比,4级CORDIC运算结构较大程度上降低了硬件资源消耗。

Claims (8)

1、一种CORDIC算法的实现装置,其特征在于该装置包括:
控制单元,对数据时钟clk1和迭代时钟clk2进行同步,控制迭代计算过程,clk2为clk1的n(n为自然数,一般取2≤n≤8)倍频;
m1级方向向量发生单元,(m1为自然数,一般取3≤m1≤6),根据输入角度θ和存储的偏移角度产生方向向量;
m1级角度旋转单元,根据方向向量对输入复数进行“移位-加”计算;
m2级模校正单元,(m2为自然数,一般取2≤m2≤4),对角度旋转后的输出乘以模校正系数,也采用“移位-加”计算实现;
输出单元,接收并输出模校正的计算结果;
上述的m1级方向向量发生单元之间、m1级角度旋转单元之间、m2级模校正单元之间以及第m1级角度旋转单元与第1级模校正单元之间均采用级联方式进行连接。
2、如权利要求1所述的一种CORDIC算法的实现装置,其特征在于:所述的控制单元由沿检测器与计数器构成,沿检测器实现clk1与clk2的同步,产生选择控制信号,计数器产生迭代计数信号,对迭代过程进行同步和控制。
3、如权利要求1所述的一种CORDIC算法的实现装置,其特征在于:所述的m1级方向向量发生单元,各级单元分别由一个多路选择器、一个存储器、一个运算器和一个D触发器构成,多路选择器输出的符号位作为方向向量输出,存储器用于存储偏移角度,根据控制单元发出的迭代计数信号进行选择并把选择的相应的偏移角度送入运算器,与多路选择器的输出进行计算,计算方式由方向向量确定。
4、如权利要求1所述的一种CORDIC算法的实现装置,其特征在于:所述的m1级角度旋转单元,各级单元分别由一个多路选择器、一个移位器、一个运算器和一个D触发器构成,各级角度旋转单元与方向向量发生单元是对应的,并且工作方式类似,根据控制单元发出的迭代计数信号,移位器对多路选择器的输出进行右移位处理,多路选择器与移位器的输出将被送入至运算器中进行计算,计算方式由方向向量发生单元产生的方向向量确定。
5、如权利要求1所述的一种CORDIC算法的实现装置,其特征在于:所述的m2级模校正单元,各级单元分别由一个多路选择器、一个移位器、一个运算器和一个D触发器构成,各级模校正单元与角度旋转单元的工作方式类似,使用“移位-加”迭代计算实现最后一级角度旋转输出与模校正系数的乘法操作,迭代过程中移位器的右移位数由模校正系数确定,运算器中只进行减法计算。
6、如权利要求1或2或3或4或5所述的一种CORDIC算法的实现装置,其特征在于:在控制单元产生的迭代计数信号的控制下,每个clk1周期内,各级方向向量发生单元、角度旋转单元、模校正单元分别同步完成n次迭代。
7、如权利要求1或3或4或5所述的一种CORDIC算法的实现装置,其特征在于:
所述的多路选择器,当选择控制信号为高电平时,选择外部输入数据或前级D触发器的输出,当选择控制信号为低电平时,选择对本级D触发器的输出。
8、如权利要求1或3或4或5所述的一种CORDIC算法的实现装置,其特征在于:
所述的D触发器,用于寄存运算器的输出。
CNB2007101186972A 2007-07-12 2007-07-12 一种cordic算法的实现装置 Expired - Fee Related CN100511125C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007101186972A CN100511125C (zh) 2007-07-12 2007-07-12 一种cordic算法的实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101186972A CN100511125C (zh) 2007-07-12 2007-07-12 一种cordic算法的实现装置

Publications (2)

Publication Number Publication Date
CN101082858A true CN101082858A (zh) 2007-12-05
CN100511125C CN100511125C (zh) 2009-07-08

Family

ID=38912444

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101186972A Expired - Fee Related CN100511125C (zh) 2007-07-12 2007-07-12 一种cordic算法的实现装置

Country Status (1)

Country Link
CN (1) CN100511125C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908123A (zh) * 2010-06-01 2010-12-08 福建新大陆电脑股份有限公司 一种Hough运算的硬件逻辑实现装置
CN101930351A (zh) * 2009-06-26 2010-12-29 深圳迈瑞生物医疗电子股份有限公司 转换运算方法、装置和坐标旋转的数字计算方法、装置
CN101997533A (zh) * 2009-08-17 2011-03-30 炬力集成电路设计有限公司 算术逻辑电路及其运行方法
CN102323878A (zh) * 2011-05-31 2012-01-18 电子科技大学 一种用于cordic算法模校正的电路装置及方法
CN103488459A (zh) * 2013-09-13 2014-01-01 复旦大学 一种基于改进的高基cordic算法的复数乘法运算单元
CN105978570A (zh) * 2016-06-30 2016-09-28 中工科安科技有限公司 一种正余弦编码器高精度信号处理系统
CN110659014A (zh) * 2018-06-29 2020-01-07 赛灵思公司 乘法器及神经网络计算平台
CN111666064A (zh) * 2020-06-03 2020-09-15 合肥工业大学 基于cordic的三角函数循环迭代求解方法和装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930351A (zh) * 2009-06-26 2010-12-29 深圳迈瑞生物医疗电子股份有限公司 转换运算方法、装置和坐标旋转的数字计算方法、装置
CN101997533B (zh) * 2009-08-17 2014-07-16 炬力集成电路设计有限公司 算术逻辑电路及其运行方法
CN101997533A (zh) * 2009-08-17 2011-03-30 炬力集成电路设计有限公司 算术逻辑电路及其运行方法
CN101908123A (zh) * 2010-06-01 2010-12-08 福建新大陆电脑股份有限公司 一种Hough运算的硬件逻辑实现装置
CN101908123B (zh) * 2010-06-01 2012-06-27 福建新大陆电脑股份有限公司 一种Hough运算的硬件逻辑实现装置
CN102323878A (zh) * 2011-05-31 2012-01-18 电子科技大学 一种用于cordic算法模校正的电路装置及方法
CN102323878B (zh) * 2011-05-31 2014-10-15 电子科技大学 一种用于cordic算法模校正的电路装置及方法
CN103488459A (zh) * 2013-09-13 2014-01-01 复旦大学 一种基于改进的高基cordic算法的复数乘法运算单元
CN103488459B (zh) * 2013-09-13 2017-01-25 复旦大学 一种改进的高基cordic方法及基于其的复数乘法运算单元
CN105978570A (zh) * 2016-06-30 2016-09-28 中工科安科技有限公司 一种正余弦编码器高精度信号处理系统
CN105978570B (zh) * 2016-06-30 2023-04-25 中工科安科技有限公司 一种正余弦编码器高精度信号处理系统
CN110659014A (zh) * 2018-06-29 2020-01-07 赛灵思公司 乘法器及神经网络计算平台
CN110659014B (zh) * 2018-06-29 2022-01-14 赛灵思公司 乘法器及神经网络计算平台
CN111666064A (zh) * 2020-06-03 2020-09-15 合肥工业大学 基于cordic的三角函数循环迭代求解方法和装置

Also Published As

Publication number Publication date
CN100511125C (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
CN100511125C (zh) 一种cordic算法的实现装置
CN100435090C (zh) 可扩展高基蒙哥马利模乘算法及其电路结构
CN102722352B (zh) 一种Booth乘法器
CN106155627B (zh) 基于t_cordic算法的低开销迭代三角函数装置
CN104899182A (zh) 一种支持可变分块的矩阵乘加速方法
CN102945224A (zh) 基于fpga的高速可变点fft处理器及其处理方法
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
CN103677737B (zh) 基于进位节省加法器的低延时cordic三角函数实现的方法及装置
Khan et al. High speed ECC implementation on FPGA over GF (2 m)
KR20110105555A (ko) 효율적인 하드웨어 구성을 갖는 몽고메리 승산기
CN108021781A (zh) 一种可参数化的fft ip核设计和优化方法
CN102184161B (zh) 基于余数系统的矩阵求逆装置及方法
US7634524B2 (en) Arithmetic method and function arithmetic circuit for a fast fourier transform
CN102364456A (zh) 64点fft计算器
CN102129419B (zh) 基于快速傅立叶变换的处理器
Lee et al. Design of low energy, high performance synchronous and asynchronous 64-point FFT
CN104504205A (zh) 一种对称fir算法的并行化二维分割方法及其硬件结构
CN102789446A (zh) 基于cordic算法的dds信号杂散抑制方法及系统
CN108008665B (zh) 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法
CN207115387U (zh) Xiu‑累加寄存器、xiu‑累加寄存器电路、以及电子设备
CN104009733B (zh) 基于fpga的样本重要性重采样粒子滤波器的硬件实现方法
CN104615404A (zh) 一种基于查表操作的高速浮点除法部件装置
CN109284085A (zh) 一种基于fpga的高速模乘和模幂运算方法及模型
CN104951279A (zh) 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
Sutter et al. Comparative study of SRT-dividers in FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090708

Termination date: 20100712