CN108037906A - 基于tcordic算法的浮点基本函数实现方法及装置 - Google Patents

基于tcordic算法的浮点基本函数实现方法及装置 Download PDF

Info

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
Application number
CN201711342559.2A
Other languages
English (en)
Other versions
CN108037906B (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 CN201711342559.2A priority Critical patent/CN108037906B/zh
Publication of CN108037906A publication Critical patent/CN108037906A/zh
Application granted granted Critical
Publication of CN108037906B publication Critical patent/CN108037906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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算法的浮点基本函数实现方法及装置
技术领域
本发明涉及基本函数实现技术领域,尤其涉及一种基于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。
CN201711342559.2A 2017-12-14 2017-12-14 基于tcordic算法的浮点基本函数实现方法及装置 Active CN108037906B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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算法相结合的全流水浮点三角函数装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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