CN108037906A - 基于tcordic算法的浮点基本函数实现方法及装置 - Google Patents
基于tcordic算法的浮点基本函数实现方法及装置 Download PDFInfo
- Publication number
- CN108037906A CN108037906A CN201711342559.2A CN201711342559A CN108037906A CN 108037906 A CN108037906 A CN 108037906A CN 201711342559 A CN201711342559 A CN 201711342559A CN 108037906 A CN108037906 A CN 108037906A
- Authority
- CN
- China
- Prior art keywords
- function
- floating
- point
- calculation
- tcordic
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种基于TCORDIC算法的浮点基本函数实现方法及装置,该方法步骤包括:S1.根据待处理函数的类型获取对应的计算边界;将输入角度与计算边界进行比较,当输入角度的绝对值小于计算边界时,转入执行步骤S3,否则转入执行步骤S2;S2.使用定点CORDIC算法进行计算,转入执行步骤S4;S3.使用Taylor展开进行计算,转入执行步骤S4;S4.对计算结果进行规格化处理,输出最终的计算结果;该装置包括预处理模块、CORDIC算法计算模块以及Taylor展开计算模块。本发明能够基于统一TCORDIC算法实现浮点基本函数计算,且具有实现简单、相对误差及开销小及精度高等优点。
Description
技术领域
本发明涉及基本函数实现技术领域,尤其涉及一种基于TCORDIC算法的浮点基本函数实现方法及装置。
背景技术
基本函数计算是科学计算和工程应用程序的重要组成部分,坐标旋转数字计算机(CORDIC)即是一种用于计算多种超越函数的数字迭代算法,CORDIC算法是一种典型的数字迭代算法,基本思想是通过一系列固定的、与运算基数有关的角度不断偏摆迭代以逼近所需要的旋转角度,CORDIC算法通过简单的加法和移位操作就可以完成三角函数、双曲函数、指数对数函数、开方函数的计算,并且该算法规整、结构简单,且易于在硬件上实现。
统一的CORDIC算法即是把圆周坐标、双曲坐标和直线坐标旋转统一到同一迭代方程中,使得在同一硬件实现多种基本超越函数的计算成为可能。向量旋转统一的基本迭代公式如下所示:
其中:m表示坐标系统,当为1表示圆周坐标,当为0表示直线坐标,当为-1表示双曲坐标;
旋转角度
旋转序列
扩展因子
根据旋转方向σj判断的不同可以分为旋转模式和向量模式,在旋转模式下旋转方向σj=-Sign(Zj),即是以角度Z的变化作为每次迭代旋转方向的判断依据,首先初始化角度Z为所需旋转的角度,迭代过程使角度Z的绝对值变小,最终得到初始角度所对应的向量;在向量模式下旋转方向σj=-Sign(Xj*Yj),即是以旋转矢量Y的变化来判断每次迭代的旋转方向,迭代过程使得向量逼近X轴,即旋转矢量Y的绝对值变小,得到初始向量的角度及向量的模长。
假设输入在角度压缩后的范围内,在不同旋转模式下不同坐标系中,基于CORDIC算法来计算基本函数的类型和最大的收敛范围如表1所示,其中对于正余弦函数,Z0≤π/2,对于反正切函数,Y0≤1,对于双曲正余弦函数,Z0≤loge2。对于双曲反正切函数,Y0≤0.75。
表1:统一CORDIC算法的输出函数。
采用如上所述传统的基于定点CORDIC算法计算浮点基本函数时,结果的误差是相对误差,由于有限的操作数位宽和迭代次数的限制,当输入使得浮点基本函数计算结果变小(趋近0)时,相对误差边界会急剧增大;采用如上所述传统的基于浮点CORDIC算法计算浮点基本函数时,虽然相对误差可以被限制,但是由于缩放因子K的变化,必须使用角度查找表和浮点操作,因而硬件开销非常大。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够基于统一TCORDIC算法实现浮点基本函数计算,且实现简单、相对误差及开销小及精度高的基于TCORDIC算法的浮点基本函数实现方法及装置。
为解决上述技术问题,本发明提出的技术方案为:
一种基于TCORDIC算法的浮点基本函数实现方法,步骤包括:
S1.根据待处理函数的类型获取对应的计算边界;将输入数据与所述计算边界进行比较,当输入数据的绝对值小于所述计算边界时,转入执行步骤S3,否则转入执行步骤S2,其中当为正弦、双曲正弦函数时,所述输入数据为输入角度Z0,当为反正切、双曲反正切函数时,所述输入数据为输入值Y0;
S2.使用定点CORDIC算法进行函数计算,输出计算结果并转入执行步骤S4;
S3.使用Taylor展开进行函数计算,输出计算结果并转入执行步骤S4;
S4.对输入的计算结果进行规格化处理,输出最终的计算结果。
作为本发明方法的进一步改进:所述计算边界具体为N={Nsin、Nsinh、Narctan、Narctanh},其中Nsin为对应正弦函数时N的取值,Nsinh为对应双曲正弦函数时N的取值,Narctan为对应反正切函数时N的取值,Narctanh为对应双曲反正切函数时N的取值。
作为本发明方法的进一步改进:当为余弦函数时,所述步骤S1中具体先计算输入角度Z0的互余角度π/2-Z0,以转换为正弦函数的计算,即当转入执行步骤S3,否则转入执行步骤S2,为正弦函数对应的所述计算边界。
作为本发明方法的进一步改进:所述步骤S2的具体步骤为:将输入的浮点数据转换为定点数据,转换得到的定点数据经过nmin次CORDIC迭代计算后进行缩放因子规格化,将规格化后得到的定点数据转换为浮点数据输出,其中nmin为定点CORDIC算法中迭代计算的次数。
作为本发明方法的进一步改进:所述步骤S3中具体使用m=2h-1个乘法器计算Taylor展开h项,其中h>1。
一种基于TCORDIC算法的浮点基本函数实现装置,包括:
预处理模块,用于根据待处理函数的类型获取对应的计算边界;将输入数据与所述计算边界进行比较,当输入数据的绝对值小于所述计算边界时,转入执行步骤S3,否则转入执行步骤S2,其中当为正弦、双曲正弦函数时,所述输入数据为输入角度Z0,当为反正切、双曲反正切函数时,所述输入数据为输入值Y0;
CORDIC算法计算模块,用于使用定点CORDIC算法进行函数计算,输出计算结果并转入执行规格化处理模块;
Taylor展开计算模块,用于使用Taylor展开进行函数计算,输出计算结果并转入规格化处理模块;
规格化处理模块,用于对所述输出的计算结果进行规格化处理,输出最终的计算结果。
作为本发明装置的进一步改进:所述预处理模块包括相互连接的比较器电路、选择电路,所述比较器电路分别输入-Nsin、-Narctanh、-Nsinh、-Narctan、其中当待处理函数为正弦函数时,选择与-Nsin进行比较,当待处理函数为双曲正弦函数时,选择与-Nsinh进行比较,Z0为输入角度,当待处理函数为反正切函数时,选择与-Narctan进行比较,当待处理函数为双曲反正切函数时,选择与-Narctanh进行比较,Y0为输入值;所述选择电路接收所述比较器电路输出的比较结果,若小于0,则置Tvalid指示信号有效以启动所述Taylor展开计算模块,否则置Cvalid指示信号有效以启动所述CORDIC算法计算模块。
作为本发明装置的进一步改进:所述预处理模块还包括互余角度计算电路,所述比较器电路还输入当为余弦函数时,通过所述互余角度计算电路按照π/2-Z0计算输入角度Z0的互余角度Z0′,输出给所述比较器电路,所述比较器电路选择与-Nsin进行比较。
作为本发明装置的进一步改进:所述CORDIC算法计算模块包括依次连接的浮点转定点单元、迭代单元、规格化处理单元以及定点转浮点单元;所述迭代单元包括nmin个迭代子单元,每个迭代子单元执行一次CORDIC迭代计算。
作为本发明装置的进一步改进:所述Taylor展开计算模块包括m=2h-1个截断乘法器,用于计算Taylor展开h项,其中h>1。
与现有技术相比,本发明的优点在于:
1)本发明通过为不同函数类型确定对应的计算边界,由输入数据与计算边界之间的大小关系,分别使用定点CORDIC算法、Taylor展开进行函数计算,由Taylor展开计算作为定点CORDIC算法的补充,能够结合定点CORDIC算法和Taylor展开方式来计算浮点基本函数,实现基于统一TCORDIC算法计算浮点基本函数,相比于传统的基于定点CORDIC算法计算浮点基本函数,能够有效解决相对误差在边界会急剧增大的问题,大大降低了单一定点CORDIC算法计算浮点基本函数时的相对误差,提高计算精度且硬件开销小。
2)本发明可以完成包括浮点正余弦、双曲正余弦、指对数、开方、反正切、双曲反正切函数的多种基本函数计算,适用范围广、使用灵活,且能够满足IEEE-754标准浮点基本函数计算需求。
附图说明
图1是本实施例基于TCORDIC算法的浮点基本函数实现方法的实现流程示意图。
图2是本实施例基于TCORDIC算法的浮点基本函数实现装置的结构示意图。
图3是本发明具体实施例中预处理模块的结构示意图。
图4是本发明具体实施例中CORDIC算法计算模块的结构示意图。
图5是本发明具体实施例中Taylor展开计算模块的结构示意图。
图6是本发明具体实施例中规格化处理模块的结构示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1所示,本实施例基于TCORDIC算法的浮点基本函数实现方法,步骤包括:
S1.根据待处理函数的类型获取对应的计算边界;将输入数据与计算边界进行比较,当输入数据的绝对值小于计算边界时,转入执行步骤S3,否则转入执行步骤S2,其中当为正弦、双曲正弦函数时,输入数据为输入角度Z0,当为反正切、双曲反正切函数时,输入数据为输入值Y0;
S2.使用定点CORDIC算法进行函数计算,输出计算结果并转入执行步骤S4;
S3.使用Taylor展开进行函数计算,输出计算结果并转入执行步骤S4;
S4.对输出的计算结果进行规格化处理,输出最终的计算结果。
本实施例通过为不同函数类型确定对应的计算边界,由输入数据与计算边界之间的大小关系,分别使用定点CORDIC算法、Taylor展开进行函数计算,由Taylor展开计算作为定点CORDIC算法的补充,能够结合定点CORDIC算法和Taylor展开方式来计算浮点基本函数,实现基于统一TCORDIC算法计算浮点基本函数,相比于传统的基于定点CORDIC算法计算浮点基本函数,能够有效解决相对误差在边界会急剧增大的问题,大大降低了单一定点CORDIC算法计算浮点基本函数时的相对误差,提高计算精度且硬件开销小。
为实现统一TCORDIC算法,本实施例预先为定点CORDIC算法、Taylor展开计算确定对应的计算边界,以根据输入数据的大小确定使用定点CORDIC算法或Taylor展开计算方式进行函数计算。本实施例中计算边界具体为Eoffset是定值,所以N决定着TCORIDC算法的计算边界,N具体是一个集合,N={Nsin、Nsinh、Narctan、Narctanh},Nsin为对应正弦函数时N的取值,由Nsin决定正弦函数的计算边界,即正弦函数的计算边界为Nsinh为对应双曲正弦函数时N的取值,由Nsinh决定双曲正弦函数的计算边界,即双曲正弦函数的计算边界为Narctan为对应反正切函数时N的取值,由Narctan决定反正切函数的计算边界,即反正切函数对应的计算边界为Narctanh为对应双曲反正切函数时N的取值,由Narctanh决定双曲反正切函数的计算边界,即双曲反正切函数的计算边界为Nsin、Nsinh、Narctan、Narctanh可以根据需求进行设定,为了能够从有限的数据中分析得到最优的计算边界,本实施例Nsin、Nsinh、Narctan、Narctanh统一取整数。
本实施例步骤S1中,具体当为正弦函数时,若输入正弦函数使用Taylor展开计算得到,若输入正弦函数使用定点CORDIC算法计算得到;
当为双曲正弦函数时,若输入双曲正弦函数使用Taylor展开计算得到;若输入双曲正弦函数使用定点CORDIC算法计算得到;
当为反正切函数时,若输入反正切函数使用Taylor展开计算得到,若输入反正切函数使用定点CORDIC算法计算得到;
当为双曲反正切函数,若输入双曲反正切函数使用Taylor展开计算得到,若输入双曲反正切函数使用定点CORDIC算法计算得到。
对于余弦函数的计算,由于cos(Z0)=sin(π/2-Z0),即可以转化成正弦函数的计算,当输入角度趋近π/2时,Z0所能表示的有效位数最多是位,所以为了得到定点CORDIC算法中有效的操作数位宽d位,加法器最多需要位。本实施例中,当为余弦函数时,步骤S1中具体先计算输入角度Z0的互余角度π/2-Z0,以转换为正弦函数的计算,即当转入执行步骤S3,否则转入执行步骤S2,为正弦函数对应的计算边界。即计算余弦函数时,当输入角度的互余角度余弦函数使用Taylor展开计算得到,当输入角度的互余角度余弦函数使用定点CORDIC算法计算得到。
本实施例通过上述方法,可以完成包括浮点正余弦、双曲正余弦、指对数、开方、反正切、双曲反正切函数的多种基本函数计算,适用范围广、使用灵活,且能够满足IEEE-754标准浮点基本函数计算需求。
本实施例在大于等于计算边界时,基于定点CORDIC算法的坐标和模式完成浮点基本函数的计算,步骤S2执行CORDIC算法计算的具体步骤为:将输入的浮点数据转换为定点数据,转换得到的定点数据经过nmin次CORDIC迭代计算后进行缩放因子规格化,将规格化后得到的定点数据转换为浮点数据输出,得到经过定点CORDIC算法计算得到的结果,其中nmin为定点CORDIC算法中迭代计算的次数,取值具体可以根据实际需求设定为任意正整数。即执行CORDIC算法迭代计算过程中,操作数位宽具体共nmin+1位,其中1位符号位,1位整数位,以及小数位nmin-1。
本实施例在小于计算边界时,通过Taylor展开式的计算完成浮点基本函数的计算,步骤S3中执行Taylor展开计算时,具体使用m=2h-1个乘法器计算Taylor展开h项,其中h>1。为发挥各个乘法操作之间的并行性,在具体实施例中可以采用直接实现法,以充分发挥乘法单元的流水并行的优势。
本实施例完成步骤S2或步骤S3的函数计算后,将计算结果进行进一步的规格化后处理,具体是根据预处理中的信号,输出浮点基本函数的计算结果。
在具体应用实施例中,Nsin具体取9,Nsinh具体取10、Narctan具体取11、Narctanh具体取11,采用本发明上述方法,当计算正弦函数时,若输入|Z0|<2-10+1027,正弦函数使用Taylor展开计算得到,且最少的计算项数为3;若输入|Z0|≥2-10+1027,正弦函数使用定点CORDIC算法计算得到,且最少的迭代次数是nsin=74;
当计算双曲正弦函数时,若输入|Z0|<2-9+1027,双曲正弦函数使用Taylor展开计算得到,且最少的项数是3;若输入|Z0|≥2-9+1027,双曲正弦函数使用定点CORDIC算法计算得到,且最少的迭代次数是nsinh=74;
当计算反正切/双曲反正切函数时,若输入|Y0|<2-11+1027,反正切/双曲反正切函数由Taylor展开计算得到,且最少的展开项数为3;若输入|Y0|≥2-11+1027,反正切、双曲反正切函数由定点CORDIC算法计算得到,且计算反正切函数时,CORDIC算法最少的迭代次数是narctan=75,计算双曲反正切函数时,CORDIC算法最少的迭代次数是narctanh=76;在Taylor展开中,此时最少的项数是3。
在具体应用实施例中,步骤S2中CORDIC算法计算通路中迭代次数是nmin=max{nsinm,nsinhm,narctanm,narctanhm}=76,即nmin=max{74,74,75,76}=76,由于在Taylor展开计算通路中展开项的项数hmin=hsinm=hsinhm=harctanm=harctanhm=3,需要乘法器个数mmin=2hmin-1=5,步骤S3中具体通过5个截断乘法器实现Taylor展开前三项的计算。
如图2所示,本实施例基于TCORDIC算法的浮点基本函数实现装置,包括:
预处理模块,用于根据待处理函数的类型获取对应的计算边界;将输入数据(Z0/Y0)与所述计算边界进行比较,当输入数据的绝对值小于计算边界时,转入执行步骤S3,否则转入执行步骤S2,其中当为正弦、双曲正弦函数时,输入数据为输入角度Z0,当为反正切、双曲反正切函数时,输入数据为输入值Y0;
CORDIC算法计算模块,用于使用定点CORDIC算法进行函数计算,输出计算结果并转入执行规格化处理模块;
Taylor展开计算模块,用于使用Taylor展开进行函数计算,输出计算结果并转入规格化处理模块;
规格化处理模块,用于对所述输出的计算结果进行规格化处理,输出最终的计算结果。
如图3所示,本实施例中预处理模块包括相互连接的比较器电路、选择电路(图中未示出),比较器电路分别输入-Nsin、-Narctanh、-Nsinh、-Narctan、其中当待处理函数为正弦函数时,选择与-Nsin进行比较,当待处理函数为双曲正弦函数时,选择与-Nsinh进行比较,Z0为输入角度,当待处理函数为反正切函数时,选择与-Narctan进行比较,当待处理函数为双曲反正切函数时,选择与-Narctanh进行比较,Y0为输入值;选择电路接收比较器电路输出的比较结果,若小于0,即小于计算边界,则置Tvalid指示信号有效以启动Taylor展开计算模块,否则置Cvalid指示信号有效以启动CORDIC算法计算模块,以完成CORDIC算法计算模块或Taylor展开计算模块的选择。
本实施例中,预处理模块还包括互余角度计算电路,比较器电路还输入当为余弦函数时,通过互余角度计算电路按照π/2-Z0计算输入角度Z0的互余角度Z0′,输出给比较器电路,比较器电路选择与-Nsin进行比较。如图3所示,互余角度计算电路具体包括加法器以及规格化电路,加法器分别输入π/2、Z0,输出经过规格化处理后得到互余角度Z0′。
预处理模块计算正弦/双曲正弦函数时,当输入正弦、双曲正弦函数启动Taylor展开计算模块计算得到,计算反正切/双曲反正切函数时,当输入反正切、双曲反正切函数启动Taylor展开计算模块计算计算得到,且Tvalid指示信号有效,否则启动CORDIC算法计算模块执行计算,且Cvalid指示信号有效;计算余弦函数时,当输入角度的互余角度|π/2-Z0|=|Z0'|<2-10+1027,余弦函数启动Taylor展开计算模块计算得到,且Tvalid指示信号有效,否则启动CORDIC算法计算模块完成基本函数计算,且Cvalid指示信号有效。
如图4所示,本实施例CORDIC算法计算模块具体包括依次连接的浮点转定点单元、迭代单元、规格化处理单元以及定点转浮点单元,以当指示信号Cvalid有效时,在不同的坐标和模式下,将输入数据X0、Y0、Z0依次经过浮点转定点、迭代计算、规格化处理、定点转浮点后输出计算结果;迭代单元包括nmin个迭代子单元,每个迭代子单元执行一次CORDIC迭代计算。本实施例具体包括nmin=76个迭代子单元,以执行nmin=76次迭代。
本实施例中,Taylor展开计算模块包括m=2h-1个截断乘法器,用于计算Taylor展开h项,其中h>1。Taylor展开计算模块具体包括依次连接的第一乘法单元、第二乘法单元、第三乘法单元以及加法单元,第一乘法单元包括两个相同结构的第一截断乘法器,用于对输入数据执行阶段乘法后,输出第一乘法结果;第二乘法单元包括两个相同结构的第二截断乘法器,用于将第一乘法结果经过截断乘法后,输出第二乘法结果;第三乘法单元包括一个第三截断乘法器,用于将第二乘法结果进行截断乘法后,输出最终乘法结果至加法器单元;加法器单元包括第一加法器、第二加法器,第一加法器的输入端分别接入预处理模块、第三乘法单元,输出端连接至第二加法器,第二加法器的另一个输入端连接第二乘法单元,第二加法器输出计算得到的Taylor展开式。
如图5所示,本发明应用实施例中Taylor展开计算模块采用5个截断乘法器和2个超前进位加法器完成展开式前三项的计算,当指示信号Cvalid有效时,前2个42×42位截断乘法器,输出46位,其中低6位是保护位,精确的高40位参与接下来乘法的运算;中间左边的截断乘法器是40×40位,输出44位,其中低6位是保护位,其余是Z0 3/3!精确的高38位,参与最终的加法运算;右边的截断乘法器是26×26位,输出29位,其中低5位是保护位,精确的高24位参与接下来乘法的运算。最后的截断乘法器是24×24位,输出27位,其中低5位是保护位,其余是Z0 5/5!精确的高22位,参与最终的加法运算。
本实施例中规格化处理模块包括选择器电路,如图6所示,本发明具体实施例中选择器电路根据预处理中的信号,输出浮点基本函数的计算结果,其中当指示信号Tvalid有效时,输出的是Taylor展开计算模块的计算结果,其他情况输出的是CORDIC算法计算模块的计算结果。
本实施例通过上述方法、装置实现浮点基本函数计算,可以使计算精度达到小于1ulp(unit in the last place),能够大大降低单一定点CORDIC算法计算浮点基本函数时的相对误差。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (10)
1.一种基于TCORDIC算法的浮点基本函数实现方法,其特征在于,步骤包括:
S1.根据待处理函数的类型获取对应的计算边界;将输入数据与所述计算边界进行比较,当输入数据的绝对值小于所述计算边界时,转入执行步骤S3,否则转入执行步骤S2,其中当为正弦、双曲正弦函数时,所述输入数据为输入角度Z0,当为反正切、双曲反正切函数时,所述输入数据为输入值Y0;
S2.使用定点CORDIC算法进行函数计算,输出计算结果并转入执行步骤S4;
S3.使用Taylor展开进行函数计算,输出计算结果并转入执行步骤S4;
S4.对输入的计算结果进行规格化处理,输出最终的计算结果。
2.根据权利要求1所述的基于TCORDIC算法的浮点基本函数实现方法,其特征在于:所述计算边界具体为N={Nsin、Nsinh、Narctan、Narctanh},其中Nsin为对应正弦函数时N的取值,Nsinh为对应双曲正弦函数时N的取值,Narctan为对应反正切函数时N的取值,Narctanh为对应双曲反正切函数时N的取值。
3.根据权利要求1所述的基于TCORDIC算法的浮点基本函数实现方法,其特征在于:当为余弦函数时,所述步骤S1中具体先计算输入角度Z0的互余角度π/2-Z0,以转换为正弦函数的计算,即当转入执行步骤S3,否则转入执行步骤S2,为正弦函数对应的所述计算边界。
4.根据权利要求1或2或3所述的基于TCORDIC算法的浮点基本函数实现方法,其特征在于:所述步骤S2的具体步骤为:将输入的浮点数据转换为定点数据,转换得到的定点数据经过nmin次CORDIC迭代计算后进行缩放因子规格化,将规格化后得到的定点数据转换为浮点数据输出,其中nmin为定点CORDIC算法中迭代计算的次数。
5.根据权利要求1或2或3所述的基于TCORDIC算法的浮点基本函数实现方法,其特征在于:所述步骤S3中具体使用m=2h-1个乘法器计算Taylor展开h项,其中h>1。
6.一种基于TCORDIC算法的浮点基本函数实现装置,其特征在于,包括:
预处理模块,用于根据待处理函数的类型获取对应的计算边界;将输入数据与所述计算边界进行比较,当输入数据的绝对值小于所述计算边界时,转入执行步骤S3,否则转入执行步骤S2,其中当为正弦、双曲正弦函数时,所述输入数据为输入角度Z0,当为反正切、双曲反正切函数时,所述输入数据为输入值Y0;
CORDIC算法计算模块,用于使用定点CORDIC算法进行函数计算,输出计算结果并转入执行规格化处理模块;
Taylor展开计算模块,用于使用Taylor展开进行函数计算,输出计算结果并转入规格化处理模块;
规格化处理模块,用于对所述输出的计算结果进行规格化处理,输出最终的计算结果。
7.根据权利要求6所述的基于TCORDIC算法的浮点基本函数实现装置,其特征在于:所述预处理模块包括相互连接的比较器电路、选择电路,所述比较器电路分别输入-Nsin、-Narctanh、-Nsinh、-Narctan、其中当待处理函数为正弦函数时,选择与-Nsin进行比较,当待处理函数为双曲正弦函数时,选择与-Nsinh进行比较,Z0为输入角度,当待处理函数为反正切函数时,选择与-Narctan进行比较,当待处理函数为双曲反正切函数时,选择与-Narctanh进行比较,Y0为输入值;所述选择电路接收所述比较器电路输出的比较结果,若小于0,则置Tvalid指示信号有效以启动所述Taylor展开计算模块,否则置Cvalid指示信号有效以启动所述CORDIC算法计算模块。
8.根据权利要求6所述的基于TCORDIC算法的浮点基本函数实现装置,其特征在于:所述预处理模块还包括互余角度计算电路,所述比较器电路还输入当为余弦函数时,通过所述互余角度计算电路按照π/2-Z0计算输入角度Z0的互余角度Z0′,输出给所述比较器电路,所述比较器电路选择与-Nsin进行比较。
9.根据权利要求6或7或8所述的基于TCORDIC算法的浮点基本函数实现装置,其特征在于:所述CORDIC算法计算模块包括依次连接的浮点转定点单元、迭代单元、规格化处理单元以及定点转浮点单元;所述迭代单元包括nmin个迭代子单元,每个迭代子单元执行一次CORDIC迭代计算。
10.根据权利要求6或7或8所述的基于TCORDIC算法的浮点基本函数实现装置,其特征在于:所述Taylor展开计算模块包括m=2h-1个截断乘法器,用于计算Taylor展开h项,其中h>1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711342559.2A CN108037906B (zh) | 2017-12-14 | 2017-12-14 | 基于tcordic算法的浮点基本函数实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711342559.2A CN108037906B (zh) | 2017-12-14 | 2017-12-14 | 基于tcordic算法的浮点基本函数实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108037906A true CN108037906A (zh) | 2018-05-15 |
CN108037906B CN108037906B (zh) | 2021-07-13 |
Family
ID=62102947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711342559.2A Active CN108037906B (zh) | 2017-12-14 | 2017-12-14 | 基于tcordic算法的浮点基本函数实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108037906B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308520A (zh) * | 2018-09-26 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 实现softmax函数计算的FPGA电路及方法 |
CN110222305A (zh) * | 2019-06-03 | 2019-09-10 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数函数计算系统及方法 |
CN113692561A (zh) * | 2019-02-20 | 2021-11-23 | 优创半导体科技有限公司 | 用于使用逐次累积旋转电路计算初等函数的装置和方法 |
CN118092852A (zh) * | 2024-04-26 | 2024-05-28 | 中科亿海微电子科技(苏州)有限公司 | 应用于浮点处理器的cordic装置及浮点处理器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060547B2 (en) * | 2007-11-13 | 2011-11-15 | Chung Shan Institute Of Science And Technology, Armaments Bureau, M.N.D. | Pade approximation convert circuit of direct digital frequency synthesizer |
KR20130092307A (ko) * | 2012-02-10 | 2013-08-20 | 삼성중공업 주식회사 | 모션제어 칩 |
CN103488459A (zh) * | 2013-09-13 | 2014-01-01 | 复旦大学 | 一种基于改进的高基cordic算法的复数乘法运算单元 |
US8676872B2 (en) * | 2010-03-05 | 2014-03-18 | Texas Instruments Incorporated | Recursive taylor series-based computation of numerical values for mathematical functions |
CN103677738A (zh) * | 2013-09-26 | 2014-03-26 | 中国人民解放军国防科学技术大学 | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 |
CN106155627A (zh) * | 2016-06-30 | 2016-11-23 | 中国人民解放军国防科学技术大学 | 基于t_cordic算法的低开销迭代三角函数装置 |
CN106202890A (zh) * | 2016-06-30 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置 |
-
2017
- 2017-12-14 CN CN201711342559.2A patent/CN108037906B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060547B2 (en) * | 2007-11-13 | 2011-11-15 | Chung Shan Institute Of Science And Technology, Armaments Bureau, M.N.D. | Pade approximation convert circuit of direct digital frequency synthesizer |
US8676872B2 (en) * | 2010-03-05 | 2014-03-18 | Texas Instruments Incorporated | Recursive taylor series-based computation of numerical values for mathematical functions |
KR20130092307A (ko) * | 2012-02-10 | 2013-08-20 | 삼성중공업 주식회사 | 모션제어 칩 |
CN103488459A (zh) * | 2013-09-13 | 2014-01-01 | 复旦大学 | 一种基于改进的高基cordic算法的复数乘法运算单元 |
CN103677738A (zh) * | 2013-09-26 | 2014-03-26 | 中国人民解放军国防科学技术大学 | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 |
CN106155627A (zh) * | 2016-06-30 | 2016-11-23 | 中国人民解放军国防科学技术大学 | 基于t_cordic算法的低开销迭代三角函数装置 |
CN106202890A (zh) * | 2016-06-30 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置 |
Non-Patent Citations (3)
Title |
---|
BAOZHOU ZHU 等: "Low Latency and Low Error Floating-Point Sine/Cosine Function Based TCORDIC Algorithm", 《 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I: REGULAR PAPERS》 * |
DANIEL M MUÑOZ 等: "FPGA based floating-point library for CORDIC algorithms", 《2010 VI SOUTHERN PROGRAMMABLE LOGIC CONFERENCE (SPL)》 * |
李朝峰 等: "基于Taylor级数近似补偿的改进数控振荡器实现", 《电子产品世界》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308520A (zh) * | 2018-09-26 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 实现softmax函数计算的FPGA电路及方法 |
CN109308520B (zh) * | 2018-09-26 | 2022-05-13 | 创新先进技术有限公司 | 实现softmax函数计算的FPGA电路及方法 |
CN113692561A (zh) * | 2019-02-20 | 2021-11-23 | 优创半导体科技有限公司 | 用于使用逐次累积旋转电路计算初等函数的装置和方法 |
CN110222305A (zh) * | 2019-06-03 | 2019-09-10 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数函数计算系统及方法 |
CN110222305B (zh) * | 2019-06-03 | 2023-03-21 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于双曲cordic的对数函数计算系统及方法 |
CN118092852A (zh) * | 2024-04-26 | 2024-05-28 | 中科亿海微电子科技(苏州)有限公司 | 应用于浮点处理器的cordic装置及浮点处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN108037906B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108037906A (zh) | 基于tcordic算法的浮点基本函数实现方法及装置 | |
US4616333A (en) | Data correlation system | |
CN106155627B (zh) | 基于t_cordic算法的低开销迭代三角函数装置 | |
Schulte et al. | A family of variable-precision interval arithmetic processors | |
Lefèvre et al. | Worst cases for correct rounding of the elementary functions in double precision | |
CN103677738A (zh) | 基于混合模式cordic算法的低延时基本超越函数实现方法及装置 | |
CN102073472B (zh) | 一种三角函数cordic迭代运算协处理器及运算处理方法 | |
JPH03204720A (ja) | 初等関数演算装置 | |
US10983755B2 (en) | Transcendental calculation unit apparatus and method | |
CN106202890A (zh) | 基于CORDIC和Taylor算法相结合的全流水浮点三角函数装置 | |
CN108733349B (zh) | 一种基于定点数的三角函数运算电路 | |
Zhu et al. | Low latency and low error floating-point sine/cosine function based TCORDIC algorithm | |
CN103488459A (zh) | 一种基于改进的高基cordic算法的复数乘法运算单元 | |
Schulte et al. | Hardware design and arithmetic algorithms for a variable-precision, interval arithmetic coprocessor | |
Dianov et al. | Review of fast square root calculation methods for fixed point microcontroller-based control systems of power electronics | |
US5384722A (en) | Apparatus and method for determining the Manhattan distance between two points | |
CN106814990A (zh) | Cordic算法的优化方法 | |
CN107423026B (zh) | 一种正余弦函数计算的实现方法及装置 | |
EP0505175B1 (en) | Preprocessor of a division device employing a high radix division system | |
CN208834289U (zh) | 一种三角函数运算电路 | |
CN109977701B (zh) | 一种定浮点运算装置 | |
Majumdar | Design of an ASIC for straight line detection in an image | |
US6055553A (en) | Apparatus for computing exponential and trigonometric functions | |
KR19990085924A (ko) | 삼각함수 생성장치 및 방법 | |
Cariow | An algorithm for dividing two complex numbers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |