基于并行流水线设计的cordic加速器的制作方法

文档序号:6373002阅读:498来源:国知局
专利名称:基于并行流水线设计的cordic加速器的制作方法
技术领域
本发明涉及一种基于并行流水线设计的坐标旋转数字计算(CoordinateRotation Digital Computer, CORDIC)加速器,具体的说是一种能快速计算超越函数的运算器,主要用于航空航天技术、机器人技术、图像信号处理、滤波技术等的运算器。
背景技术
在日常生活中,无论是涉及航空航天、图像信号处理、数字通信、视频技术或制图应用还是实际测量计算、数值分析、概率统计运动矢量估值等各个科学技术领域,高精确的三角函数运算在实际工程中有相当广泛的应用。因此,研究并用硬件设计实现较高精度和快速的三角函数运算是十分重要的。硬件实现的数学函数算法,按照数学公式和对应的实 现方式的不同,可分为以下几类查表方式、多项式近似方式、查表与多项式结合的方式、有理数近似方式和逐位方式以及CORDIC算法。CORDIC是由J.D. Volde于1959年首次提出,该算法是一种递归算法,通过引入确定的初值,结合上简单的移位和加减法,就能实现这些复杂的函数运算。为了扩展可解决的基本函数的个数,J. Walter于1971年提出了统一的CORDIC算法。现有的CORDIC迭代运算装置用于浮点协处理器,能支持的函数种类繁多,包括算术运算、三角运算、指数运算等等,为节省资源,采用统一形式的CORDIC算法来实现所有函数的运算,如公告号为CN102073472A,授权
公开日2008年4月9日的中国发明专利说明书公开的一种名为“一种三角函数CORDIC迭代运算迭代处理器及运算处理方法”。该专利提供一种三角函数CORDIC迭代协处理器及运算处理方法,通过三角函数的输入变换电路使输入参数变换到CORDIC算法允许的输入范围之内,从而达到支持全角度的三角函数运算,并且没有输入范围的限制,但是该专利在进行CORDIC运算之前需要一个54*54的乘法器,这极大增加了面积和延迟时间。相对于实时要求和面积需求上,与常规的CORDIC迭代运算方法及相关电路实现技术相比,本发明的优势在于同时协调满足了全角度计算、低时延、小面积、高精度这四方面要求。解决了在高精度的保证下,做到最小面积且快速计算出所需的三角函数值。

发明内容
本发明的目的是为了解决在速度保证的情况下,面积偏大与精度不高的问题,提供一种基于并行流水线设计的CORDIC加速器,具有低成本、高吞吐量、小面积、高精度的特点。本发明的技术方案是一种基于并行流水线设计的CORDIC加速器,包括一个角度预处理模块,一个CORDIC内核模块,一个后端数据处理模块,一个控制器模块。其基本特征在于所述的CORDIC内核模块前端连接角度预处理模块,后端连接数据处理模块,所述控制器模块连接角度预处理模块、CORDIC内核模块和数据处理模块,将外部数据线、控制线读入相关的数据信号和控制信号至控制器模块,随后将待求的角度传输至角度预处理模块,然后将处理好的角度与从控制器模块读入的初值一起传送至CORDIC内核模块,CORDIC内核模块采用并行流水线结构,快速计算出通过角度预处理模块后角度的正弦和余弦这两个数值,随后将计算出的数据和从控制器模块输出的相位控制信号一同传送至后端数据处理模块,判定出所对应初始相位的正余弦值的正负,最后将正弦值、余弦值传送至控制器模块,根据外部控制信号需要正弦值或余弦值,给出相关的结果,如图I所示通过外部数据线,控制线读入相关的数据信号和控制信号至控制器模块,随后再将待求的角度传输至角度预处理模块,将全角度模块压缩至
,而不局限于(-99.8°,99.8° ),然后将处理好的角度与从控制器模块读入的初值一起传送至CORDIC内核模块,CORDIC采用并行流水线结构,快速计算出通过角度预处理模块后角度的正弦和余弦这两个数值,随后将计算出的数据和从控制器模块输出的相位控制信号一同传送至后端数据处理模块,判定出所对应初始相位的正余弦值的正负,最后将正弦值,余弦值传送至控制器模块,根据外部控制信号需要正弦值或余弦值,给出相关的结果。每计算完一次正余弦值,控制器便会给出一个响应信号给外部,便于调控。上述的CORDIC内核模块采用并行流水线的模式,可以同时快速地计算出所需角度的正弦,余弦值,具有较高的吞吐量。选用32次的迭代,可以使得到的正余弦值精度达 到10_8。对应移位寄存器,每一次迭代均只需移动一位,由于采用流水线的结构,可直接将上一级流水线的数据送入至下一级,所以错位相连即可实现,因此降低了移位寄存器的面积。此外在CORDIC算法的计算过程中每一次迭代都需要通过查找表找到相应的反正切的角度值,而本发明由于迭代次数固定,可以直接将各级的正切值对应相应的高低电平,即无需再向外部调用数值,一方面提高硬件的运算速度,另一方面也减小了所需的ROM面积。在CORDIC内核模块中,为保证尽可能小的面积,较高速度计算出相关函数值,本发明采用了32次迭代,16级流水线形式。上述的角度预处理模块由四个加法器和一个四选一选择器组成。其特征在于所述的四选一选择器的输入端连接四个加法器的输出结果;根据不同的角度输入,通过一级加减运算,再配合相位控制信号选择输出就能够将任意的输入角度均转化到
范围内,使得CORDIC整个模块运算过程不再受角度范围的约束。上述的后端数据处理模块由2个反相器、2个四选一选择器和4个寄存器组成,其特征在于2个四选一选择器前端连接经CORDIC内核模块处理完的数据,后端连接正余弦寄存器及误差寄存器,相位寄存器用来控制四选一选择的输出结果。对从CORDIC模块输出的数据结果根据相位控制信号进行正负号划分。上述的控制器模块,主要由一些寄存器和选择器组成,用来调控整个CORDIC模块中各个子模块的协调运算,并根据外部的控制信号,给出状态值和结果值。本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著进步
(I)本发明各模块的体积较小,结构简单,所以总体体积小,便于在实现。(2)本发明的CORDIC模块,采用并行流水线结构方式实现,特别是内部的移位寄存器,采用折线实现,使得整个模块时延小,面积小。(3)本发明的CORDIC模块,所需的正切值直接对应固定的高低电平,无需在通过查表调用,使整个模块快速执行,且所占面积小。(4)本发明的CORDIC模块采用的是32次迭代,得到的数据精度可到达10_8。采用16级流水线,整体计算的吞吐量大,达到快速计算的目的。


图I是系统控制总框图。图2是平面坐标旋转图。图3是角度预处理模块结构图。图4是CORDIC内核模块结构图。图5是一级流水线的结构框架图。图6是一次迭代的结构框架图。
图7是数据后处理模块结构图。图8是整个CORDIC模块时序图。
具体实施例方式本发明的优选实施例结合附图详细说明如下
实施例一
如图I所示,本发明基于并行流水线设计的CORDIC加速器,包括一个角度预处理模块(I)、一个CORDIC内核模块(2)、一个数据后端处理模块(3)和一个控制器模块(4)。其特征在于先将外部数据线,控制线读入相关的数据信号和控制信号至控制器模块(4),随后将待求的角度传输至角度预处理模块(1),然后将处理好的角度与从控制器模块(4)读入的初值一起传送至CORDIC内核模块(2),CORDIC内核模块(2)采用并行流水线结构,快速计算出通过角度预处理模块(I)后角度的正弦和余弦这两个数值,随后将计算出的数据和从控制器模块(4)输出的相位控制信号一同传送至后端数据处理模块(3),判定出所对应初始相位的正余弦值的正负,最后将正弦值,余弦值传送至控制器模块(4),根据外部控制信号需要正弦值或余弦值,给出相关的结果。实施例二
本实施例与实施例一基本相同,特别之处如下
本发明采用的圆周旋转模式下的CORDIC算法,图2是CORDIC算法的圆周系统完成的一个平面坐标旋转。其中,图2.a表示的是从原始A点(xl,yl),经过旋转角度9后到达目标点B(x2,y2),图2. b表示的是经过第一次CORDIC角度旋转之后,达到A’(xl’,yl’),图2. c表示的是经过第二次CORDIC角度旋转之后,到达A”(xl”,yl”),经过多次旋转之后,An将逼近目标点B。〈 一 >、CORDIC 内核模块
参见图4,此模块采用并行,16级流水线结构进行实现,提高了计算吞吐量。每一级由两次32位迭代和一次32位寄存器组成,参见图5,采用32次迭代方式使得整个运算得到的精度达到10_8。每一次迭代由一个32位加减法器和一个32位的移位器组成,参见图6。CORDIC内核模块中主要是32位加减法器、32位寄存器及移位器的设计,其中加减法器是CORDIC内核模块的核心部件。本发明选用的加减法器是以超前进位加法器为基础,并选择组内超前,组间串行的进位方式,每个组的进位传播过程都可以被看作是一个单独的实例单元。本发明选用的寄存器是基于传统的传输门构成的寄存器,外加由与门、或门组合的逻辑控制电路,使寄存器具有控制清零和使能功能。由于采用流水线的结构,参见图4,每次迭代为按序移位,因此数据直接从上一级传送至下一级,本专利仅用折线来表示相应的移位寄存器。另外,CORDIC算法的计算过程中每一次迭代所需要的反正切角度值,本专利均用已连接好高低电平的折线代替,提高硬件的运算速度。〈二〉、角度预处理模块
参见图3,此模块由选择器,加法器组成。作用是对不同的输入角度压缩到
之间,将压缩后的角度值传送给CORDIC内核模块,从而不再受CORDIC内核角度范围的限制,快速的计算出其数据结果。角度预处理模块中的Phase_l, Phase_2, Phase_3, Phase_4信号线为分别代表第一象限,第二象限,第三象限和第四象限,选取输入角度的最高两位为检测符号位,用Ph_c信号线表示。当Ph_c检测到为第二象限的角度时,输出数据选择经过第二象限处理后的角度。
<三 >、后端数据处理模块
参见图7,此模块由选择器,加法器及寄存器组成。作用是对通过CORDIC内核模块得到的正余弦值按相位角度进行符号划分。后端数据处理模块分别与CORDIC内核模块的输出数据端和控制器的使能信号端,清零信号端及相角控制端相连。当控制器模块的清零信号为低,使能信号为高时,后端数据处理模块开始进行正负号判定,并对从CORDIC内核得到的结果进行计算。<四 >、控制器模块
此模块主要由一些选择器和寄存器组成,作用是控制整个CORDIC运算时序。对应整个CORDIC模块,参见图8,其中角度预处理模块占一个时钟周期,CORDIC内核模块占十六个时钟周期,后端数据处理模块占一个时钟周期。当reset信号为低时,使整个CORDIC模块全部清零,当reset信号为高,且启动信号start为高时,开始数据输入计算,经过十八个时钟周期后,输出状态信号ok为高,并输出数据结果。另外,信号线n选择是sin值输出或者cos值输出,根据外部的实际需要,选择输出其对应的结果。由于采用流水线结构,因此吞吐量大,计算速度快。
权利要求
1.一种基于并行流水线设计的CORDIC加速器,包括一个角度预处理模块(I)、一个CORDIC内核模块(2)、一个数据后端处理模块(3)和一个控制器模块(4),其特征在于所述的CORDIC内核模块(2)前端连接角度预处理模块(1),后端连接数据处理模块(3),所述控制器模块(4)连接角度预处理模块(I)、CORDIC内核模块(2)和数据处理模块(3),将外部数据线、控制线读入相关的数据信号和控制信号至控制器模块(4),随后将待求的角度传输至角度预处理模块(1),然后将处理好的角度与从控制器模块(4)读入的初值一起传送至CORDIC内核模块(2),CORDIC内核模块(2)采用并行流水线结构,快速计算出通过角度预处理模块(I)后角度的正弦和余弦这两个数值,随后将计算出的数据和从控制器模块(4)输出的相位控制信号一同传送至后端数据处理模块(3),判定出所对应初始相位的正余弦值的正负,最后将正弦值、余弦值传送至控制器模块(4),根据外部控制信号需要正弦值或余弦值,给出相关的结果。
2.根据权利要求I所述的基于并行流水线设计的CORDIC加速器,其特征在于所述的角度预处理模块(I)由四个加法器和一个四选一选择器组成,四选一选择器的输入端连接四个加法器的输出结果;根据不同的角度输入,通过一级加减运算,再配合相位控制信号选择输出就能够将任意的输入角度均转化到
范围内,使得CORDIC整个模块运算过程不再受角度范围的约束。
3.根据权利要求I所述的基于并行流水线设计的CORDIC加速器,其特征在于所述的CORDIC内核模块(2)由加法器,寄存器组成,将两级加法得到的结果送至寄存器中;采用的的是并行流水线结构模式采用了 16级流水线使运算速度快,吞吐量高,采用32次迭代方式使得整个运算得到的精度达到10Λ
4.根据权利要求I所述的基于并行流水线设计的CORDIC加速器,其特征在于所述的CORDIC内核模块(2)由加法器和寄存器组成,由于CORDIC算法的计算过程中每一次迭代所需要的反正切角度值,且各个正切角度值确定,因此用已连接好高低电平的折线代替寄存器存储数据,提高硬件的运算速度。
5.根据权利要求I所述的基于并行流水线设计的CORDIC加速器,其特征在于所述的CORDIC内核模块(2)由加法器和寄存器组成,采用流水线的结构,每次迭代为按序移位,数据可直接从两级加法器运算结果输入至寄存器,仅用折线来表示相应的移位寄存器,减小了面积。
6.根据权利要求I所述的基于并行流水线设计的CORDIC加速器,其特征在于所述的后端数据处理模块(3)由2个反相器、2个四选一选择器和4个寄存器组成,2个四选一选择器前端连接经⑶RDIC内核模块(2)处理完的数据,后端连接正余弦寄存器及误差寄存器,相位寄存器用来控制四选一选择的输出结果;对从CORDIC模块(2)输出的数据结果根据相位控制信号进行正负号划分。
7.根据权利要求I所述的基于并行流水线设计的CORDIC加速器,其特征在于所述的控制器模块(4)由一个有限状态机组成,对CORDIC整个运算进行调整控制,使整个运算有序进行。
全文摘要
本发明涉及一种基于并行流水线设计的CORDIC加速器。它包括一个角度预处理模块、一个CORDIC内核模块、一个数据后端处理模块和一个控制器模块。本发明先将外部数据线,控制线读入相关的数据信号和控制信号至控制器模块,随后将待求的角度传输至角度预处理模块,然后将处理好的角度与从控制器模块读入的初值一起传送至CORDIC内核模块,其中CORDIC内核模块采用并行16级流水线结构,快速计算出通过角度预处理模块后角度的正弦和余弦这两个数值,随后将计算出的数据和从控制器模块输出的相位控制信号一同传送至后端数据处理模块,判定出所对应初始相位的正余弦值的正负,最后将正弦值,余弦值传送至控制器模块,根据外部控制信号需要正弦值或余弦值,给出相关的结果。
文档编号G06F7/544GK102799412SQ201210234809
公开日2012年11月28日 申请日期2012年7月9日 优先权日2012年7月9日
发明者毕卓, 戴益君, 韩冰, 王镇, 张莹 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1