CN106202890A - 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置 - Google Patents

基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置 Download PDF

Info

Publication number
CN106202890A
CN106202890A CN201610503153.7A CN201610503153A CN106202890A CN 106202890 A CN106202890 A CN 106202890A CN 201610503153 A CN201610503153 A CN 201610503153A CN 106202890 A CN106202890 A CN 106202890A
Authority
CN
China
Prior art keywords
algorithm
cordic
arctan
taylor
module
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
CN201610503153.7A
Other languages
English (en)
Other versions
CN106202890B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201610503153.7A priority Critical patent/CN106202890B/zh
Publication of CN106202890A publication Critical patent/CN106202890A/zh
Application granted granted Critical
Publication of CN106202890B publication Critical patent/CN106202890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass

Landscapes

  • Complex Calculations (AREA)

Abstract

一种基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,包括:预处理模块,用来根据输入角度Z判断泰勒展开算法是否被启用,把输入角度Z从双精度浮点格式转化成定点格式;cordic算法计算通路模块,用来完成对输入角度Z的正余弦结果计算,当N小于13时得到的是精确结果并被输出;taylorr算法计算通路模块,用来完成对输入角度Z的正弦或者余弦的计算,当N大于等于13时算法才被选择启用;后处理模块,用来对cordic算法的计算结果规格化处理,并选择输出正余弦的计算结果。本发明具有低延迟、低误差、全流水等优点。

Description

基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置
技术领域
本发明主要涉及到三角函数产生器的设计领域,特指一种基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置。
背景技术
在音频通信、视频通信、信号处理、雷达图像处理等的信号处理系统中,需要快速高精度的三角函数(尤其是三角正弦/余弦函数)的数值计算。为了满足图像和数字信号处理的要求,加快数据处理能力,有必要探索快速的三角正弦/余弦函数硬件实现电路。
三角正弦/余弦函数的计算方法分为:查表法、多项式近似方法和数字迭代方法。传统的三角正弦/余弦的计算通常采用查找表和多项式近似结合的方法。查表法适用于精度要求低的情况,查找表的硬件开销将以计算精度的指数方式增长,当精度要求较高时,查找表的硬件消耗大;多项式近似(如Taylor级数)在自变量较小时,收敛较快,当变量增大时,收敛速度迅速减小,所需的乘和加运算的次数增多,执行时间增长;通常采用查表法与Taylor展开相结合,通过查找表将自变量压缩到一个较小的区域,然后通过多项式展开快速计算出结果。然而这种实现方法需要多个乘法器和加法器,硬件资源需求高。Taylor算法中,计算三角函数的公式:
sinx=x-x3/3!+x5/5!-x7/7!+(-1)nx(2n+1)/(2n+1)!
cosx=x-x2/2!+x4/4!-x6/6!+(-1)nx(2n)/(2n)!
当x接近0时,cosx,sinx的收敛速度很快,只需要计算展开式的前几项就可以得到指定精度的计算结果。
CORDIC算法是一种实现多种超越函数的数字迭代方法,在旋转模式圆周坐标下能够实现三角正弦/余弦函数的计算。CORDIC算法采用迭代的思想,用一系列与运算基数相关的角度的不断偏摆从而逼近所需旋转的角度。这是一个数值逼近的算法,通过简单的移位运算和加减运算就可完成三角正弦/余弦函数的计算。因此,CORDIC算法非常适合硬件实现。
圆周坐标下向量旋转的基本迭代公式如下:
X [ j + 1 ] = K j ( X [ j ] - σ j 2 - j y [ j ] ) Y [ j + 1 ] = K j ( Y [ j ] + σ j 2 - j X [ j ] ) Z [ j + 1 ] = Z [ j ] - σ j α j σ j ∈ { - 1 , 1 } , j = 0 , 1 , ... n - 1
迭代结果为:
X n = 1 K n ( X 0 * cosZ 0 - Y 0 * sinZ 0 )
Y n = 1 K n ( Y 0 * cosZ 0 + X 0 * sinZ 0 )
X0=Kn,Y0=0,Z0∈[0,π/2],迭代结果等于正弦余弦的值。
CORDIC算法是一种线性收敛算法,每次迭代计算结果精确一位,在计算过程中存在两种误差:
1、角度误差:每一次CORDIC迭代计算结果精确一位,然而,使用CORDIC算法计算时,CORDIC迭代次数是有限的,定义被忽略的迭代所产生的误差称为角度误差。角度误差是随迭代次数增加而线性降低的。
2、截断误差:截断误差由有限的操作数位宽引起的,在计算过程中截断误差是不可避免的,对于N次迭代,截断误差可能引起log2(N)位不精确,为了消除这种误差,必须在有效位后面增加足够多的保护位(guard bits)。
对于上述的两种误差,有研究在绝对误差的前提下进行了控制。在相对误差的层面上,上述的截断误差并不能通过增添保护位来解决,当输入角度接近0和π/2,利用CORDIC计算出的三角函数结果的相对误差会变的很大。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种低延迟、低误差、全流水的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置。
为解决上述技术问题,本发明采用以下技术方案:
一种基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其包括:
预处理模块,用来根据输入角度Z判断泰勒展开算法是否被启用,把输入角度Z从双精度浮点格式转化成定点格式;
cordic算法计算通路模块,用来完成对输入角度Z的正余弦结果计算,当N小于13时得到的是精确结果并被输出;
taylorr算法计算通路模块,用来完成对输入角度Z的正弦或者余弦的计算,当N大于等于13时算法才被选择启用;
后处理模块,用来对cordic算法的计算结果规格化处理,并选择输出正余弦的计算结果。
所述N为Taylor启用阀值,用于确定三角函数计算过程中是否需要启动Taylor计算通路;当输入角度的首0个数小于N时,采用CORDIC算法计算通路计算三角函数,否则启用Taylor算法计算通路计算正弦或余弦值。
作为本发明的进一步改进:基于ZIEEE-754标准双精度浮点格式所述输入角度包括指数部分Ez和尾数部分Mz,所述预处理模块根据输入角度Z判断是否启用泰勒展开算法,如果1023-Ez大于11,则启用泰勒展开算法计算sin(z)的值;如果1023-Ez为0,则计算π/2-Mz′,判断结果的高12位是否全为0;如果是,则通过规格化处理得到π/2-Mz′的浮点表示,同时启用泰勒展开式进行计算sin(π/2-Mz′)的值,即最后的cos(z);如果上述情况不满足,则不启用泰勒展开算法,按照cordic算法将输入角度z预处理,把输入角度Z从IEEE-754标准双精度浮点格式转化成定点格式;通过计算Ez和1023的差值作为尾数部分移位的大小得到输入角度的定点格式Mz’。
作为本发明的进一步改进:所述cordic算法计算通路模块包括X,Y,Z通路,在Z通路中包括第一旋转方向预测单元、第二旋转方向预测单元、第三旋转方向预测单元、Z通路压缩模块和进位保留加法器,第二旋转方向预测单元包括2个基本旋转角度查找表;基本旋转角度查找表的输入是z4的4位,输出需要旋转的角度,即累加的值,它的是±arctan-1(2-i),±arctan-1(2-i-1),±arctan-1(2-i-2),±arctan-1(2-i-3)四组数中每组选择一个相加所得,事先被计算储存在基本旋转角度查找表;z4[59:52]用来预测出向量旋转的方向,为X、Y通路的计算提供加/减选择,且输入到基本旋转角度查找表,得到Z通路需要累加的arctan_4、arctan_8;利用CSA压缩累加,最后利用超前进位加法器得到Z12。
作为本发明的进一步改进:在第三旋转方向预测单元中的Z12完成σ12到σ36值的预测,同时利用Z12[51:28]查找基本旋转角度表,得到累加arctan_12,arctan_16,arctan_20,arctan_24,arctan_28,arctan_32的值,之后利用CSA完成压缩计算,得到z37,作为cordic后半部分并行计算的乘数。
作为本发明的进一步改进:所述进位保留加法器包括(4:2)加法器,所述(4:2)加法器为一个5输入、3输出的编码器,它的5个输入是同权重的,其中,In1~In4为本级输入的4个用于相加的操作数,cin来自前面一级的进位输入,cout是本级的进位输出,carry和sum是本级加法的输出结果。
作为本发明的进一步改进:所述taylorr算法计算通路模块包括3个乘法器和一个超前进位加法器,每个乘法器由两个时钟周期完成,34*34乘法器并行,共需5个时钟周期完成;所述34*34位乘法器输出38位,其中精确的32位参与32*32乘法器的计算,接下来输出36位,取其精确30位和尾数求和。
作为本发明的进一步改进:所述后处理模块包括前导0模块、左移位器及结果选择模块,所述前导0模块计算定点数前导0的个数,所述左移位器根据前导0的输出结果完成规格化1,所述结果选择模块根据泰勒展开算法的使能信号,决定输出结果由泰勒展开提供还是cordic迭代提供。
与现有技术相比,本发明的优点在于:
本发明的硬件结构采用旋转方向预测、并行迭代计算、定制乘法器、进位节省加法器和全流水实现的技术,大大减少CORDIC算法的功耗和延迟。并且,通过合理选择Taylor算法的启用条件,以及乘法器的位宽,选择了开销最小的方案。该硬件结构可以应用于集成电路的设计中,以处理应用程序中的三角正弦/余弦函数的计算,具有低延迟、低开销、全流水的特点。
附图说明
图1是本发明在具体应用实例中的全流水结构原理示意图。
图2是本发明在具体应用实例中预处理模块的结构原理示意图。
图3是本发明在具体应用实例中cordic算法计算通路的结构原理示意图。
图4是本发明在具体应用实例中cordic算法计算通路中Z4旋转方向预测模块的结构原理示意图。
图5是本发明cordic算法计算通路中Z通路的压缩计算结构原理示意图。
图6是本发明在具体应用实例中进位保留加法器的结构原理示意图。
图7是本发明在具体应用实例中cordic算法计算通路中X、Y通路传统的压缩的结构原理示意图。
图8是本发明在具体应用实例中cordic算法计算通路中X、Y通路中ROT模块的结构原理示意图。
图9是本发明在具体应用实例中taylorr算法计算通路模块的结构原理示意图。
图10是本发明在具体应用实例中后处理模块的结构原理示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,输入IEEE-754标准双精度浮点格式的角度Z,可以在X、Y通路分别输出IEEE-754标准双精度浮点格式的计算结果cos(z)、sin(z);它包括:
预处理模块,用来根据输入角度Z判断泰勒展开算法是否被启用,把输入角度Z从双精度浮点格式转化成定点格式;
cordic算法计算通路模块,用来完成对输入角度Z的正余弦结果计算,当N小于13时得到的是精确结果并被输出。
taylorr算法计算通路模块,用来完成对输入角度Z的正弦或者余弦的计算,当N大于等于13时算法才被选择启用。
后处理模块,用来对cordic算法的计算结果规格化处理,并选择输出正余弦的计算结果。
所述N为Taylor启用阀值,用于确定三角函数计算过程中是否需要启动Taylor计算通路;当输入角度的首0个数小于N时,采用CORDIC算法计算通路计算三角函数,否则启用Taylor算法计算通路计算正弦或余弦值。
如图2所示,为本发明在具体应用实例中预处理模块的结构原理示意图。对于IEEE-754标准双精度浮点格式输入角度Z,包括指数部分Ez和尾数部分Mz,预处理模块根据输入角度Z判断是否启用泰勒展开算法,如果1023-Ez大于11,则启用泰勒展开算法计算sin(z)的值,如果1023-Ez为0,则计算π/2-Mz′,判断结果的高12位是否全为0,如果是则通过规格化处理得到π/2-Mz′的浮点表示,同时启用泰勒展开式进行计算sin(π/2-Mz′)的值,即最后的cos(z)。如果上述情况不满足,则不启用泰勒展开算法,只需按照cordic算法将输入角度z预处理,把输入角度Z从IEEE-754标准双精度浮点格式转化成定点格式。通过计算Ez和1023的差值作为尾数部分移位的大小得到输入角度的定点格式Mz’。在迭代初值分别取X0=1,Y0=0,经扩展因子K=0.607252935008881280扩展之后,X1=K,Y1=K。
如图3所示,为本发明在具体应用实例中cordic算法计算通路的结构原理示意图。因为CSA的面积、时间都优于传统的超前进位加法器,所以,在cordic算法迭代过程大量的加法计算中,本发明使用CSA代替超前进位加法器。在迭代过程中,X,Y,Z通路的整体结构如图所示,为能在一个时钟周期完成多次迭代,本发明中采用了Z通路的符号预测单元。X、Y的每个ROT占一个时钟周期,超前进位加法器占一个时钟周期。Z通路中Z4,Z12的计算各占一个时钟周期,Z36的计算占两个时钟周期。
如图4所示,为本发明在具体应用实例中前32次CORDIC迭代计算中Z4旋转方向预测模块的结构原理示意图。Z通路决定着向量的旋转方向,且需要增加校正迭代进行准确的符号预测,所以不能全部使用CSA。本发明中混合使用CSA和超前进位加法器,需要增加校正迭代的位置,使用超前进位加法器,不需要校正迭代的位置使用CSA。另外,Z通路相加的是一系列已知的定值,本发明采用分段查表的方法,每次根据符号预测的部分位查表得到需要累加的值,这样就将数次加法迭代变成了查表和一次累加迭代。符号预测可以消除XY和Z之间的数据相关,这样为利用CSA压缩并行计算Z通路提供了条件。对于前12次迭代,需要在i=1,4,12的位置增加校正迭代,旋转方向预测2模块的结构请请参见图1,其中有2个基本旋转角度查找表。基本旋转角度查找表的输入是z4的4位,输出需要旋转的角度,即累加的值,它的是±arctan-1(2-i),±arctan-1(2-i-1),±arctan-1(2-i-2),±arctan-1(2-i-3)四组数中每组选择一个相加所得,事先被计算储存在基本旋转角度查找表。z4[59:52]一方面可以预测出向量旋转的方向,为X、Y通路的计算提供加/减选择,另一方面输入到基本旋转角度查找表,得到Z通路需要累加的arctan_4、arctan_8。利用CSA压缩累加,最后利用超前进位加法器可得Z12。
如图5所示,为本发明在具体应用实例中前36次CORDIC迭代计算中Z通路的压缩计算实施结构示意图。在旋转方向预测3模块中,Z12可以完成σ12到σ36值的预测,同时可以利用Z12[51:28]查找基本旋转角度表,得到累加arctan_12,arctan_16,arctan_20,arctan_24,arctan_28,arctan_32的值,之后利用CSA完成压缩计算,得到z37,作为cordic后半部分并行计算的乘数。
如图6所示,为本发明在具体应用实例中进位保留加法器的实施结构示意图;(4:2)加法器实际上是一个5输入、3输出的编码器,它的5个输入是同权重的,其中,In1~In4为本级输入的4个用于相加的操作数,cin来自前面一级的进位输入,cout是本级的进位输出,carry和sum是本级加法的输出结果。图6是本发明中用两个(3:2)CSA实现的(4:2)加法器。进位保留加法器因其加法进位和位长无关,采用CSA可以消除因为位长带来的进位延迟。
如图7所示,为本发明在具体应用实例中cordic算法计算通路模块中X、Y通路传统的压缩的实施结构示意图;在XY通路的设计中,传统的结构在每次迭代时利用移位和2个超前进位加法器完成。
如图8所示,为本发明在具体应用实例中cordic算法计算通路模块中X、Y通路中ROT模块的实施结构示意图;一路是X通路压缩,一路是Y通路压缩,压缩得到的是中间两个保留数据sum和carry,当sum和carry的符号位都为1时,实际上最终结果(sum+carry)符号位为0,此时需要将sum和carry的符号位都变为0。
如图9所示,在具体应用实例中,本发明cordic算法计算通路模块的Taylor通路中由3个乘法器和一个超前进位加法器构成,每个乘法器由两个时钟周期完成,34*34乘法器并行,共需5个时钟周期完成。34*34位乘法器输出38位,其中精确的32位参与32*32乘法器的计算,接下来输出36位,取其精确30位和尾数求和。
如图10所示,为本发明在具体应用实例中后处理模块的结构原理示意图;后处理模块中主要是规格化模块,用来完成将cordic迭代计算结果从定点数转换成IEEE-754标准中双精度浮点格式。前导0模块计算定点数前导0的个数,左移位器根据前导0的输出结果完成规格化1。另外,结果选择模块,根据泰勒展开算法的使能信号,决定输出结果由泰勒展开提供还是cordic迭代提供。
本发明采用优化的cordic算法。旋转方向预测的基本思想是根据数据通路Z的剩余角度来预测接下来的若干次迭代的旋转方向,这样旋转方向已经预测的迭代可以同时计算,减少cordic算法中的第二种数据相关带来的延时。
旋转角度αm,i与对应位置二进制权值2-i近似相等,根据输入角度Z0的二进制表示直接推导出各次基本迭代的旋转方向。假设初始输入角度Z0的二进制表示为:Z0=b0.b1b2...bN,其中b0为符号位,bi∈{0,1},即
其中σi∈{-1,1},m=1,α1,i=arctan2-i,上式中αm,i不等于2-i,但是αm,i与2-i之间的差距会随着迭代索引i的增加而减小,可以采用分段预测和增加校正迭代来实现符号预测。下面是二进制值bi∈{0,1}转换为相应的两极表示σi∈{-1,1}的一般形式:假设Zj=b0.b1...bj-1bj...bk,其中b0=b1=...=bj-1。则第j位到第k位的转换规则定义如下:如果Zj为正数,即bj-1为0,则σj为1,反之σj为-1;对i>j-1,如果bi为0,则σi+1为-1,否则σi+1为1。
当迭代索引时,2-im,i<2-N。因此,当时,可用2-i代替αm,i而直接使用转换规则得到后2/3次迭代的旋转方向。
当迭代索引时,在迭代序列中加入校正迭代以保证旋转方向的预测正确。转换规则j到k次迭代的旋转方向,其中j和k满足的关系表如表1所示:
表1 j和k的关系表(k<=3j+1)
j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
k 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64
可以根据表1在适当的位置增加校正迭代,就可以使得增加的迭代次数最少,且预测所使用的硬件资源最少。
在前半部分中,采用迭代压缩的方式,后半部分利用展开迭代和线性近似的方法转换成定点乘法运算。在大量的迭代算法中,本发明尽量多的使用CSA来代替传统的超前进位加法器。为了在不增加迭代次数的情况下利用CSA代替超前进位加法器,可以把X、Y分成sum、carry两部分之和。
X &lsqb; i &rsqb; = X c &lsqb; i &rsqb; + X s &lsqb; i &rsqb; Y &lsqb; i &rsqb; = Y c &lsqb; i &rsqb; + Y s &lsqb; i &rsqb;
迭代公式变为:
X c &lsqb; j + 1 &rsqb; + X s &lsqb; j + 1 &rsqb; = X c &lsqb; j &rsqb; + X s &lsqb; j &rsqb; - &sigma; j 2 - j ( y c &lsqb; j &rsqb; + y s &lsqb; j &rsqb; ) Y c &lsqb; j + 1 &rsqb; + Y s &lsqb; j + 1 &rsqb; = Y c &lsqb; j &rsqb; + Y s &lsqb; j &rsqb; + &sigma; j 2 - j ( X c &lsqb; j &rsqb; + X s &lsqb; j &rsqb; ) &sigma; j &Element; { - 1 , 1 } , j = 0 , 1 , ... n - 1
在每次迭代中同样是只需要简单的移位和加法运算,将原来的超前进位加法器替换4:2CSA。
后半部分可以利用迭代展开的方法,进行并行计算。
第N/2+1到N次迭代展开在不影响精度时可以化简为:
X N + 1 = X N / 2 + 1 - Y N / 2 + 1 &Sigma; i = N / 2 + 1 N &sigma; i 2 - i Y N + 1 = Y N / 2 + 1 + X N / 2 + 1 &Sigma; i = N / 2 + 1 N &sigma; i 2 - i
次的迭代可以看成是对旋转角度即Zn/2+1的旋转即为:
X = ( X n / 2 + 1 - Z n / 2 + 1 * Y n / 2 + 1 ) Y = ( Y n / 2 + 1 + Z n / 2 + 1 * X n / 2 + 1 )
可用两个(N/2)*(N/2)乘法器和两个加法器来完成后N/2次迭代计算,这能显著减少电路的级数,提高计算性能。此处是2个39*39位乘法器输出42位取其精确的36位参与运算。
在taylor算法计算通路模块中,共有3个定制乘法器。2个34*34位的乘法器输出38位取其精确的32位,1个32*32位的乘法器输出36位取其精确的30位。
在预处理模块通过对源操作数的判断选择taylor算法是否启用,后处理模块中主要是规格化模块,同时会根据预处理模块的判断结果选择性输出三角函数的值。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (7)

1.一种基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,包括:
预处理模块,用来根据输入角度Z判断泰勒展开算法是否被启用,把输入角度Z从双精度浮点格式转化成定点格式;
cordic算法计算通路模块,用来完成对输入角度Z的正余弦结果计算,当N小于13时得到的是精确结果并被输出;
taylorr算法计算通路模块,用来完成对输入角度Z的正弦或者余弦的计算,当N大于等于13时算法才被选择启用;
后处理模块,用来对cordic算法的计算结果规格化处理,并选择输出正余弦的计算结果。
2.根据权利要求1所述的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,基于ZIEEE-754标准双精度浮点格式所述输入角度包括指数部分Ez和尾数部分Mz,所述预处理模块根据输入角度Z判断是否启用泰勒展开算法,如果1023-Ez大于11,则启用泰勒展开算法计算sin(z)的值;如果1023-Ez为0,则计算π/2-Mz',判断结果的高12位是否全为0;如果是,则通过规格化处理得到π/2-Mz'的浮点表示,同时启用泰勒展开式进行计算sin(π/2-Mz')的值,即最后的cos(z);如果上述情况不满足,则不启用泰勒展开算法,按照cordic算法将输入角度z预处理,把输入角度Z从IEEE-754标准双精度浮点格式转化成定点格式;通过计算Ez和1023的差值作为尾数部分移位的大小得到输入角度的定点格式Mz’。
3.根据权利要求1或2所述的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,所述cordic算法计算通路模块包括X,Y,Z通路,在Z通路中包括第一旋转方向预测单元、第二旋转方向预测单元、第三旋转方向预测单元、Z通路压缩模块和进位保留加法器,第二旋转方向预测单元包括2个基本旋转角度查找表;基本旋转角度查找表的输入是z4的4位,输出需要旋转的角度,即累加的值,它的是±arctan-1(2-i),±arctan-1(2-i-1),±arctan-1(2-i-2),±arctan-1(2-i-3)四组数中每组选择一个相加所得,事先被计算储存在基本旋转角度查找表;z4[59:52]用来预测出向量旋转的方向,为X、Y通路的计算提供加/减选择,且输入到基本旋转角度查找表,得到Z通路需要累加的arctan_4、arctan_8;利用CSA压缩累加,最后利用超前进位加法器得到Z12。
4.根据权利要求3所述的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,在第三旋转方向预测单元中的Z12完成σ12到σ36值的预测,同时利用Z12[51:28]查找基本旋转角度表,得到累加arctan_12,arctan_16,arctan_20,arctan_24,arctan_28,arctan_32的值,之后利用CSA完成压缩计算,得到z37,作为cordic后半部分并行计算的乘数。
5.根据权利要求3所述的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,所述进位保留加法器包括(4:2)加法器,所述(4:2)加法器为一个5输入、3输出的编码器,它的5个输入是同权重的,其中,In1~In4为本级输入的4个用于相加的操作数,cin来自前面一级的进位输入,cout是本级的进位输出,carry和sum是本级加法的输出结果。
6.根据权利要求1或2所述的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,所述taylorr算法计算通路模块包括3个乘法器和一个超前进位加法器,每个乘法器由两个时钟周期完成,34*34乘法器并行,共需5个时钟周期完成;所述34*34位乘法器输出38位,其中精确的32位参与32*32乘法器的计算,接下来输出36位,取其精确30位和尾数求和。
7.根据权利要求1或2所述的基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置,其特征在于,所述后处理模块包括前导0模块、左移位器及结果选择模块,所述前导0模块计算定点数前导0的个数,所述左移位器根据前导0的输出结果完成规格化1,所述结果选择模块根据泰勒展开算法的使能信号,决定输出结果由泰勒展开提供还是cordic迭代提供。
CN201610503153.7A 2016-06-30 2016-06-30 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置 Active CN106202890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610503153.7A CN106202890B (zh) 2016-06-30 2016-06-30 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610503153.7A CN106202890B (zh) 2016-06-30 2016-06-30 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置

Publications (2)

Publication Number Publication Date
CN106202890A true CN106202890A (zh) 2016-12-07
CN106202890B CN106202890B (zh) 2020-01-21

Family

ID=57463883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610503153.7A Active CN106202890B (zh) 2016-06-30 2016-06-30 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置

Country Status (1)

Country Link
CN (1) CN106202890B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657078A (zh) * 2017-08-28 2018-02-02 天津大学 基于fpga的超声相控阵浮点聚焦发射实现方法
CN108037906A (zh) * 2017-12-14 2018-05-15 中国人民解放军国防科技大学 基于tcordic算法的浮点基本函数实现方法及装置
CN108196822A (zh) * 2017-12-24 2018-06-22 北京卫星信息工程研究所 一种双精度浮点开方运算的方法及系统
CN108416311A (zh) * 2018-03-14 2018-08-17 电子科技大学 一种基于可编程门阵列和坐标旋转处理的方位角获取方法
CN111666065A (zh) * 2020-06-03 2020-09-15 合肥工业大学 基于cordic的三角函数流水线迭代求解方法和装置
CN111949934A (zh) * 2020-08-20 2020-11-17 桂林电子科技大学 一种基于fpga的cordic优化方法
CN113138749A (zh) * 2021-04-09 2021-07-20 中科亿海微电子科技(苏州)有限公司 基于cordic算法的三角函数计算装置及方法
CN113176571A (zh) * 2021-04-23 2021-07-27 中国科学院空天信息创新研究院 星载sar实时数字波束形成方法
CN117573069A (zh) * 2023-11-23 2024-02-20 北京国科天迅科技股份有限公司 Cordic算法芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059215A1 (en) * 2001-12-20 2006-03-16 Koushik Maharatna Cordic unit
CN103150137A (zh) * 2013-03-01 2013-06-12 北京理工大学 一种覆盖全圆周角度的单精度浮点三角函数的实现方法
CN103677737A (zh) * 2013-09-26 2014-03-26 中国人民解放军国防科学技术大学 基于进位节省加法器的低延时cordic三角函数实现的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059215A1 (en) * 2001-12-20 2006-03-16 Koushik Maharatna Cordic unit
CN103150137A (zh) * 2013-03-01 2013-06-12 北京理工大学 一种覆盖全圆周角度的单精度浮点三角函数的实现方法
CN103677737A (zh) * 2013-09-26 2014-03-26 中国人民解放军国防科学技术大学 基于进位节省加法器的低延时cordic三角函数实现的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王擎宇等: "三维电子罗盘在太阳双轴跟踪系统角度测量中的应用", 《电测与仪表》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657078B (zh) * 2017-08-28 2021-01-19 天津大学 基于fpga的超声相控阵浮点聚焦发射实现方法
CN107657078A (zh) * 2017-08-28 2018-02-02 天津大学 基于fpga的超声相控阵浮点聚焦发射实现方法
CN108037906A (zh) * 2017-12-14 2018-05-15 中国人民解放军国防科技大学 基于tcordic算法的浮点基本函数实现方法及装置
CN108037906B (zh) * 2017-12-14 2021-07-13 中国人民解放军国防科技大学 基于tcordic算法的浮点基本函数实现方法及装置
CN108196822B (zh) * 2017-12-24 2021-12-17 北京卫星信息工程研究所 一种双精度浮点开方运算的方法及系统
CN108196822A (zh) * 2017-12-24 2018-06-22 北京卫星信息工程研究所 一种双精度浮点开方运算的方法及系统
CN108416311A (zh) * 2018-03-14 2018-08-17 电子科技大学 一种基于可编程门阵列和坐标旋转处理的方位角获取方法
CN111666065A (zh) * 2020-06-03 2020-09-15 合肥工业大学 基于cordic的三角函数流水线迭代求解方法和装置
CN111666065B (zh) * 2020-06-03 2022-10-18 合肥工业大学 基于cordic的三角函数流水线迭代求解方法和装置
CN111949934A (zh) * 2020-08-20 2020-11-17 桂林电子科技大学 一种基于fpga的cordic优化方法
CN113138749A (zh) * 2021-04-09 2021-07-20 中科亿海微电子科技(苏州)有限公司 基于cordic算法的三角函数计算装置及方法
CN113138749B (zh) * 2021-04-09 2023-09-26 中科亿海微电子科技(苏州)有限公司 基于cordic算法的三角函数计算装置及方法
CN113176571A (zh) * 2021-04-23 2021-07-27 中国科学院空天信息创新研究院 星载sar实时数字波束形成方法
CN113176571B (zh) * 2021-04-23 2023-03-07 中国科学院空天信息创新研究院 星载sar实时数字波束形成方法
CN117573069A (zh) * 2023-11-23 2024-02-20 北京国科天迅科技股份有限公司 Cordic算法芯片
CN117573069B (zh) * 2023-11-23 2024-04-19 北京国科天迅科技股份有限公司 Cordic算法芯片

Also Published As

Publication number Publication date
CN106202890B (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
CN106202890A (zh) 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置
CN109062540B (zh) 一种基于cordic算法的可重构浮点运算装置
CN102722352B (zh) 一种Booth乘法器
CN106155627A (zh) 基于t_cordic算法的低开销迭代三角函数装置
CN103677738B (zh) 基于混合模式cordic算法的低延时基本超越函数实现方法及装置
CN103677737B (zh) 基于进位节省加法器的低延时cordic三角函数实现的方法及装置
US20160313976A1 (en) High performance division and root computation unit
CN101174200A (zh) 一种浮点乘加融合单元的五级流水线结构
CN102073472A (zh) 一种三角函数cordic迭代运算协处理器及运算处理方法
CN104991757A (zh) 一种浮点处理方法及浮点处理器
Hsiao et al. A memory-efficient and high-speed sine/cosine generator based on parallel CORDIC rotations
Krasnobayev et al. The data errors control in the modular number system based on the nullification procedure.
CN107423026A (zh) 一种正余弦函数计算的实现方法及装置
Bruguera et al. Design of a pipelined radix 4 CORDIC processor
CN104536720A (zh) 基于fpga的待测角三角函数值的测算方法及系统
CN108037906A (zh) 基于tcordic算法的浮点基本函数实现方法及装置
CN112783469A (zh) 一种用于执行浮点指数运算的方法及装置
CN111831257A (zh) 一种用于计算正弦或余弦函数的实现方法及装置
CN116627379A (zh) 可重构的支持多精度浮点或定点运算的方法及系统
CN104615404A (zh) 一种基于查表操作的高速浮点除法部件装置
Akhil et al. Delay and Area analysis of hardware implementation of FFT using FPGA
Zhou et al. Approximate comparator: Design and analysis
Pande et al. Design and implementation of floating point divide-add fused architecture
Hou et al. A Low Latency Floating Point CORDIC Algorithm for Sin/Cosine Function
Inguva et al. FPGA based Implementation of Low power CORDIC architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant