CN107133012B - 一种高速自定义浮点复数除法器 - Google Patents

一种高速自定义浮点复数除法器 Download PDF

Info

Publication number
CN107133012B
CN107133012B CN201710286559.9A CN201710286559A CN107133012B CN 107133012 B CN107133012 B CN 107133012B CN 201710286559 A CN201710286559 A CN 201710286559A CN 107133012 B CN107133012 B CN 107133012B
Authority
CN
China
Prior art keywords
divisor
floating point
mantissa
self
value
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.)
Active
Application number
CN201710286559.9A
Other languages
English (en)
Other versions
CN107133012A (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.)
HUNAN LANQIAN BIOTECHNOLOGY Co.,Ltd.
Original Assignee
Hunan Shunmiao Communication Technology Co ltd
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 Hunan Shunmiao Communication Technology Co ltd filed Critical Hunan Shunmiao Communication Technology Co ltd
Priority to CN201710286559.9A priority Critical patent/CN107133012B/zh
Publication of CN107133012A publication Critical patent/CN107133012A/zh
Application granted granted Critical
Publication of CN107133012B publication Critical patent/CN107133012B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供一种基于FPGA的高速自定义浮点复数除法器的设计方法。基本原理是将复数除法操作转换成实数除法操作,并利用乘法迭代中除数倒数迭代过程的独立性,对实部和虚部并行进行除法运算,同时得到商的实部和虚部。技术方案包括:第一步,利用自定义浮点乘法单元和加法单元计算除数、被除数的实部和虚部;第二步,并行计算实部和虚部的除法;第三步:标准格式化输出。本发明利用FPGA的高速流水线结构,实现自定义浮点复数除法器,在满足高精度的同时,还节省了大量的资源消耗,提高了运算速度。

Description

一种高速自定义浮点复数除法器
技术领域
本发明涉及高速实时数字信号处理领域,特别涉及一种除法器的实现方法,具体是高速自定义浮点复数除法器的实现。
背景技术
在科学计算、数字信号处理尤其是通信数字信号处理等领域,浮点除法是其中一种重要的运算。相对于其它加(减)乘运算,除法运算的设计更加复杂,而且需要更多的时间用于计算商,因此,对于那些有高速实时要求的应用,高性能浮点除法器是非常重要的。
经典除法算法中主要有三大类:查表法(LUT),数字递归算法(DigitalRecurrence)和函数迭代算法(Functional Iteration)。其中LUT方法用于对商精度要求不高的除法中;数字递归算法中最重要的是SRT算法,该算法基于减法操作完成除法功能,每进行一次减法迭代可以将商精度提高一位,这样的商收敛过程是线性的,满足不了高性能要求。函数迭代算法则是基于乘法迭代过程,商精度能进行非线性快速收敛。
复数除法器至今提出了基于CORDIC算法,基于Goldschmidt算法,以及直接求除数倒数的方法。基于CORDIC算法对资源消耗及其严重,基本上适用于定点除法器。直接求除数倒数的方法是直接求出除数的倒数,然后再用倒数分别乘以被除数的实部和虚部,这样虽然可以省略一次除法操作,但在全流水实现中,乘法只能在除法完成之后操作,这样大大增加流水线长度,耗费大量寄存器资源。基于Goldschmidt算法在满足高精度要求时需消耗大量资源,且基于标准的IEEE 754格式,因此只能采用双精度和单精度两种格式方法,无法在精度要求和资源消耗中进行优化取舍。目前,针对自定义浮点复数的除法器尚未见报道。
发明内容
本发明要解决的技术问题是:针对现有浮点复数除法器中仅适用于双精度和单精度两种格式,且在满足高精度要求时需消耗大量资源等不足,提供一种自定义浮点复数除法器的实现方法。
本发明技术方案的基本思路是:将复数除法操作转换成实数除法操作,并利用乘法迭代中除数倒数迭代过程的独立性,对实部和虚部并行进行除法运算,同时得到商的实部和虚部。转换过程表示为:
Figure BDA0001280817670000021
其中A=a×c+b×d,C=b×c-a×d,B=a×a+b×b。
本发明的技术方案是:一种高速自定义浮点复数除法器,其特征在于,包括下述步骤:
第一步,利用自定义浮点乘法单元和加法单元计算除数、被除数的实部和虚部;
以计算A=a×c+b×d来说明计算过程。将参与运算的自定义浮点数定义为a=Man(a)×2Exp(a),Man(a)为尾数部分,Exp(a)为指数部分。自定义浮点乘法单元将相应乘数的指数用基本加法单元作相加运算,尾数用基本乘法单元作相乘运算。用这种方法分别得到a×c和b×d,作为基本加法器的输入。然后对基本加法器的和进行高位截取,将截取后的指数和尾数部分进行格式化操作,得到的结果即为A的指数和尾数。
所述的格式化操作,是指首先对待格式化数值的指数和尾数部分对齐并调整好时序;接着,计算尾数中的符号位个数,同时从指数部分减去符号位个数作为格式化后的指数输出,而尾数部分则根据符号位个数进行左移操作,得到的结果就是格式化后的指数和尾数。
第二步,并行计算实部和虚部的除法;
步骤(一),对除法输入的操作数进行预处理:
将操作数中的尾数部分取绝对值,并对相应的指数进行相减操作,相应的符号位进行异或操作。同时,在该阶段中,需对异常情况进行判断,如判断除数是否为0等情况。
步骤(二),采用查找表操作计算除数倒数近似值1/B:
进行除数倒数近似值的查表操作,将查表所得的结果应用于步骤(三),并对其余输入数作相应的延时操作;
本发明利用ROM实现直接查找表方式。设计的查找表大小为:
Table Size=2n×m (2)采用中点倒数法,表中每一项对应的值如下等式:
Figure BDA0001280817670000031
其中,floor(·)表示向下取整,d等于0.1d1d2...dn,表的输入索引值为d1d2-...dn,当m=n+g,g=0,1,2,3时,则输出的倒数的最小精度表示如下:
Figure BDA0001280817670000032
步骤(三),复数除法操作实现:
对其余输入数作相应时间对齐操作后,进行以下迭代过程:
NA,i+1=NA,i×FB,i NC,i+1=NC,i×FB,i (5)
DB,i+1=DB,i×FB,i (6)
FB,i+1=2-DB,i+1 (7)
其中A和C分别表示被除数的实部和虚部,B表示除数;Ni和Di的初始值分别为被除数和除数的尾数部分,Fi的初始值则为除数倒数的近似值。Fi分成了尾数和指数两部分,其中尾数部分的初始值是2倍除数的倒数近似值,即查表所得的结果,同时,指数部分相应地变成整数1。将虚部和实部同时并行进行求解,同时只利用一次除数的倒数值。由于自定义浮点格式设计的因素,需引入指数计算。同时在这个过程中进行乘法器设计时,积的位宽为乘数位宽之和再减去1。
第三步,标准格式化输出;
将前面得到的结果进行格式化,再将得到的商格式化成标准格式,然后根据对异常情况判断的结果以及相应符号位异或得到的结果,来判断格式化后的数值,并进行输出操作。
本发明的效益效果是:
(1)运用FPGA的全流水计算能力,实现自定义浮点除法器的快速运算,弥补了除法器运算效率低的问题;
(2)结合算法特点,通过并行实现策略,在不增加除法操作次数的情况下,将复数浮点运算转化为了实数浮点运算;
(3)通过所提出的自定义浮点格式算法,平衡算法精度和资源消耗之间的要求,使得需要用到除法器的算法总体性能大大加强。
发明附图
图1是本发明的总体流程图
图2是A=a×c+b×d的示例说明图
图3是(A+jC)/B的示例说明图
具体实施方式
下面以一个64-bit的自定义浮点格式的复数除法器这一具体实例说明本发明的实施方式,其中指数部分的位宽为12,尾数部分的位宽为52。图1是本发明的总体流程图,整个流程可以分为三大步骤:
第一步,利用自定义浮点乘加单元实现A、B和C:
图2是A=a×c+b×d的示例说明。a=Man(a)×2Exp(a),b=Man(b)×2Exp(b),c=Man(c)×2Exp(c),d=Man(d)×2Exp(d)
对尾数进行乘法之后,再对所得的积作高位截取52位,将得到的结果与指数部分同时作为基本加法器的输入,即基本加法器的尾数部分的位宽为52,指数部分的位宽为12。然后对基本加法器的和进行高位截取52位,得到格式化后的自定义浮点表示数的尾数和指数部分。用这种方法得到最终进行除法的除数B,被除数的实部A和虚部C的值。
第二步,(A+jC)/B的实现:
步骤(一):对B、A、C的尾数进行预处理,判断它们是否为0,再对尾数部分取绝对值进行下一步运算,同时对尾数的符号位进行异或操作,再将异或得到的结果作为最后输出的数值的符号位;而指数部分则对应地进行减法操作;
步骤(二),采用查找表操作技术除数倒数近似值;
本发明采用直接查找表形式,对于64-bit自定义浮点除法器,初始倒数值的输出精度需要达到14位左右,故设定输入索引n为13,g为3,这样m为16,这个设定主要是依据XILINX的块RAM设定,即m的值取13到16中的任意一个,所消耗的块RAM值是一样的,故选取最大值16,这样可获得的初始倒数值的最小精度为13.912,块RAM的大小则为
Table Size=213×16 (8)
即需要4个36k的块RAM。在这个阶段中,其它的变量作延时寄存。
步骤(三):复数除法操作实现;
图3是(A+jC)/B的示例说明。对于64-bit浮点除法器,只需要两次迭代。第一次迭代需要两个16x52的乘法器,乘法器输出的位宽为67-bit,将得到的67-bit的积截取高52位,同时,第一次迭代还需要相应的定点减法。第二次迭代需要两个52x52的乘法器,得到的结果同样做高位截取,即截取52位,最后需要一个52x52的乘法器,以便获得最终的商的尾数。因此,整个过程需要2个16x52的乘法器和3个52x52的乘法器。
第三步,标准格式化输出:
在这一步骤中,将上一步骤中得到的商进行标准格式化,进而得到IEEE754格式的输出商,并根据异常结果和经过异或操作所得到的符号,输出相应的复数商。
64-bit自定义浮点格式的复数除法器在XILINX Virtex-7系列FPGA上实现速度可达300MHz以上,表1显示了相应的资源消耗情况。表的第一列表示寄存器消耗情况,第二列表示查找表消耗情况,第三列表示乘法器消耗情况,第四列表示RAM消耗情况。
表1资源消耗情况
Figure BDA0001280817670000061

Claims (2)

1.一种高速自定义浮点复数除法器,其特征在于,包括下述步骤:
第一步,利用自定义浮点乘法单元和加法单元计算除数、被除数的实部和虚部;
以计算
Figure 624308DEST_PATH_IMAGE001
来说明计算过程,将参与运算的自定义浮点数定义为
Figure 744580DEST_PATH_IMAGE002
Figure 334830DEST_PATH_IMAGE003
Figure 298DEST_PATH_IMAGE004
指数部分;自定义浮点乘法单元将相应乘数的指数用基本加法单元作相加运算,尾数用基本乘法单元作相乘运算;用这种方法分别得到
Figure 207157DEST_PATH_IMAGE005
Figure 350693DEST_PATH_IMAGE006
,作为基本加法器的输入;然后对基本加法器的和进行高位截取,将截取后的指数和尾数部分进行格式化操作,得到的结果即为A的指数和尾数;
所述的格式化操作,是指首先对待格式化数值的指数和尾数部分对齐并调整好时序;接着,计算尾数中的符号位个数,同时从指数部分减去符号位个数作为格式化后的指数输出,而尾数部分则根据符号位个数进行左移操作,得到的结果就是格式化后的指数和尾数;
第二步,并行计算实部和虚部的除法;
步骤(一),对除法输入的操作数进行预处理:
将操作数中的尾数部分取绝对值,并对相应的指数进行相减操作,相应的符号位进行异或操作;同时,在该阶段中,需对异常情况进行判断,包括判断除数是否为0的情况;
步骤(二),采用查找表操作计算除数倒数近似值1/B
进行除数倒数近似值的查表操作,将查表所得的结果应用于步骤(三),并对其余输入数作相应的延时操作;
高速自定义浮点复数除法器利用ROM实现直接查找表方式,设计的查找表大小为:
Figure 529871DEST_PATH_IMAGE007
(1)
采用中点倒数法,表中每一项对应的值如下等式:
Figure 146666DEST_PATH_IMAGE008
(2)
其中,表示向下取整,d等于0.1d 1 d 2 ...d n ,表的输入索引值为 d 1 d 2 ...d n ,当m = n + g,g = 0,1,2,3时,则输出的倒数的最小精度表示如下:
Figure 529237DEST_PATH_IMAGE009
(3)
步骤(三),复数除法操作实现:
对其余输入数作相应时间对齐操作后,进行以下迭代过程:
Figure 194573DEST_PATH_IMAGE010
(4)
Figure 24995DEST_PATH_IMAGE011
(5)
Figure 297845DEST_PATH_IMAGE012
(6)
其中AC分别表示被除数的实部和虚部,B表示除数;N i D i 的初始值分别为被除数和除数的尾数部分,F i 的初始值则为除数倒数的近似值;F i 分成了尾数和指数两部分,其中尾数部分的初始值是2倍除数倒数的近似值,即查表所得的结果,同时,指数部分相应地变成整数1;将虚部和实部并行进行求解,同时只利用一次除数的倒数值;由于自定义浮点格式设计的因素,需引入指数计算;同时在这个过程中进行乘法器设计时,积的位宽为乘数位宽之和再减去1;
第三步,标准格式化输出:
将前面得到的结果进行格式化,再将得到的商格式化成标准格式,然后根据对异常情况判断的结果以及相应符号位异或得到的结果,来判断格式化后的数值,并进行输出操作。
2.根据权利要求1所述的一种高速自定义浮点复数除法器,其功能特点包括:
(1)运用FPGA的全流水计算能力,实现自定义浮点除法器的快速运算,弥补了除法器运算效率低的问题;
(2)结合算法特点,通过并行实现策略,在不增加除法操作次数的情况下,将复数浮点运算转化为了实数浮点运算;
(3)通过所提出的自定义浮点格式算法,平衡算法精度和资源消耗之间的要求,提高总体运算性能。
CN201710286559.9A 2017-04-27 2017-04-27 一种高速自定义浮点复数除法器 Active CN107133012B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710286559.9A CN107133012B (zh) 2017-04-27 2017-04-27 一种高速自定义浮点复数除法器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710286559.9A CN107133012B (zh) 2017-04-27 2017-04-27 一种高速自定义浮点复数除法器

Publications (2)

Publication Number Publication Date
CN107133012A CN107133012A (zh) 2017-09-05
CN107133012B true CN107133012B (zh) 2020-06-16

Family

ID=59716133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710286559.9A Active CN107133012B (zh) 2017-04-27 2017-04-27 一种高速自定义浮点复数除法器

Country Status (1)

Country Link
CN (1) CN107133012B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308520B (zh) * 2018-09-26 2022-05-13 创新先进技术有限公司 实现softmax函数计算的FPGA电路及方法
CN109558109B (zh) * 2018-11-30 2021-07-16 上海寒武纪信息科技有限公司 数据运算装置及相关产品
CN111813371B (zh) * 2020-07-28 2023-08-11 上海赛昉科技有限公司 数字信号处理的浮点除法运算方法、系统及可读介质
CN112394904B (zh) * 2020-11-16 2023-12-22 海光信息技术股份有限公司 一种浮点数据处理方法、运算器及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457036B1 (en) * 1999-08-24 2002-09-24 Avaya Technology Corp. System for accurately performing an integer multiply-divide operation
CN106775579A (zh) * 2016-11-29 2017-05-31 北京时代民芯科技有限公司 基于可配置技术的浮点运算加速单元

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457036B1 (en) * 1999-08-24 2002-09-24 Avaya Technology Corp. System for accurately performing an integer multiply-divide operation
CN106775579A (zh) * 2016-11-29 2017-05-31 北京时代民芯科技有限公司 基于可配置技术的浮点运算加速单元

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Radix-8复数除法器的设计与实现;王东等;《西安交通大学学报》;20091031;第43卷(第10期);1-6 *

Also Published As

Publication number Publication date
CN107133012A (zh) 2017-09-05

Similar Documents

Publication Publication Date Title
CN107133012B (zh) 一种高速自定义浮点复数除法器
JPH02196328A (ja) 浮動小数点演算装置
WO2022170809A1 (zh) 一种适用于多精度计算的可重构浮点乘加运算单元及方法
Kodali et al. FPGA implementation of vedic floating point multiplier
Sunesh et al. Design and implementation of fast floating point multiplier unit
CN116400883A (zh) 一种可切换精度的浮点乘加器
Havaldar et al. Design of Vedic IEEE 754 floating point multiplier
CN110187866B (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN116594590A (zh) 一种浮点数据的多功能运算装置及方法
Singh et al. Design and synthesis of goldschmidt algorithm based floating point divider on FPGA
CN111984226B (zh) 一种基于双曲cordic的立方根求解装置及求解方法
Mahakalkar et al. Design of High Performance IEEE754 Floating point multiplier using Vedic mathematics
Parte et al. Analysis of Effects of using Exponent Adders in IEEE-754 Multiplier by VHDL
Libessart et al. A scaling-less Newton–Raphson pipelined implementation for a fixed-point reciprocal operator
CN109298848B (zh) 双模式浮点除法平方根的电路
Low et al. Non-iterative high speed division computation based on Mitchell logarithmic method
Verma et al. Synthesis of floating-point addition clusters on FPGAs using carry-save arithmetic
Villalba-Moreno Digit recurrence floating-point division under HUB format
Pande et al. Design and implementation of floating point divide-add fused architecture
Singh et al. Design and synthesis of single precision floating point division based on newton-raphson algorithm on fpga
Vikasini et al. 16-bit Modified Vedic Paravartya Divider with quotient in fractions
San et al. Hardware implementation of floating-point operating devices by using IEEE-754 binary arithmetic standard
Kumar et al. Simulation And Synthesis Of 32-Bit Multiplier Using Configurable Devices
Prasanna et al. An efficient fused floating-point dot product unit using vedic mathematics
Iyer et al. Generalised Algorithm for Multiplying Binary Numbers Via Vedic Mathematics

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
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: HUNAN LANQIAN BIOTECHNOLOGY Co.,Ltd.

Document name: Deemed not to advise

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211029

Address after: 410008 room g0079, headquarters building of Changsha Zhongdian Software Park Co., Ltd., No. 39 Jianshan Road, high tech Development Zone, Changsha, Hunan

Patentee after: HUNAN LANQIAN BIOTECHNOLOGY Co.,Ltd.

Address before: 410007 room 1721, building 6, Greenland Central Plaza, Yuelu District, Changsha City, Hunan Province

Patentee before: HUNAN SHUNMIAO COMMUNICATION TECHNOLOGY CO.,LTD.