CN107992284B - 一种可编程器件的除法功能实现方法 - Google Patents

一种可编程器件的除法功能实现方法 Download PDF

Info

Publication number
CN107992284B
CN107992284B CN201711204143.4A CN201711204143A CN107992284B CN 107992284 B CN107992284 B CN 107992284B CN 201711204143 A CN201711204143 A CN 201711204143A CN 107992284 B CN107992284 B CN 107992284B
Authority
CN
China
Prior art keywords
divisor
bit
dividend
positive
result
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
CN201711204143.4A
Other languages
English (en)
Other versions
CN107992284A (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.)
China Aeronautical Radio Electronics Research Institute
Original Assignee
China Aeronautical Radio Electronics Research Institute
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 China Aeronautical Radio Electronics Research Institute filed Critical China Aeronautical Radio Electronics Research Institute
Priority to CN201711204143.4A priority Critical patent/CN107992284B/zh
Publication of CN107992284A publication Critical patent/CN107992284A/zh
Application granted granted Critical
Publication of CN107992284B publication Critical patent/CN107992284B/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/52Multiplying; Dividing
    • G06F7/535Dividing only

Abstract

本发明提供了一种可编程器件的除法功能实现方法,其特征在于,包括以下步骤:1)当接收除数X和被除数Y后,除数X和被除数Y为32位2进制有符号、数量级为16位且小数也为16位的定点数,对被除数Y进行判断,Y为零时,返回结果零和无异常状态码,当除数X为零时,则返回最大表示值和除零错误状态码;2)对除数X和被除数Y进行正负判断,计算结果正负;除数X和被除数Y为32位有符号数,最高位为符号位;通过判断符号位确定除数X和被除数Y为正数或者负数;当除数X和被除数Y同为正数或者负数时结果为正,否则结果为负。

Description

一种可编程器件的除法功能实现方法
技术领域
本发明涉及信息处理和微电子领域的处理电路,具体地说,涉及一种除法器的设计和实现方法。
背景技术
在信息处理中,经常会涉及到除法运算,如图形处理中直线段对应区域的顶点坐标计算。在使用可编程器件进行复杂的信息处理时,当今主流可编程器件一般包括硬件乘法器模块和片上存储器模块,可厂商提供的除法器IP实现耗用逻辑资源非常多,难以工程应用,因此经常为了不使用除法而放弃简易的处理方法。当前主流可编程器件厂商提供的除法器IP耗用逻辑资源非常多且不均衡,如一个32位的除法器往往要占用中等规模的高端可编程器件三分之一以上的逻辑资源,但硬件乘法器模块和片上存储器模块却完全不用。
发明内容
本发明目的在于提供一种主要使用当今主流可编程器件乘法器模块和片上存储器模块的除法器方法进行实现,将能够很好解决以上问题。本发明针对该问题,提出了一种通过查找表和插值相结合的除法器方案,主要使用硬件乘法器模块和片上存储器模块,适合于当今主流的可编程器件实现。一个32位除法器,使用少量硬件乘法器模块和片上存储器模块,逻辑资源耗用则少于可编程器件厂商除法器IP的四分之一。
一种可编程器件的除法功能实现方法,包括以下步骤:
1)当接收除数X和被除数Y后,除数X和被除数Y为32位2进制有符号、数量级为16位且小数也为16位的定点数,对被除数Y进行判断,Y为零时,返回结果零和无异常状态码,当除数X为零时,则返回最大表示值和除零错误状态码;
2)对除数X和被除数Y进行正负判断,计算结果正负;除数X和被除数Y为32位有符号数,最高位为符号位;通过判断符号位确定除数X和被除数Y为正数或者负数;当除数X和被除数Y同为正数或者负数时结果为正,否则结果为负;
3)求取除数X和被除数Y的绝对值;在前一步判断出除数X和被除数Y为正数或负数,当Y为正数或0,其绝对值|Y|=Y,当Y为负数,其绝对值|Y|=0-Y,当X为正数,其绝对值|X|=X,当X为负数,其绝对值|X|=0-X;
4)对除数的绝对值|X|与被除数的绝对值|Y|进行归一化处理,计算有效数字及指数,得到|X|的有效数字X1和指数a,|X|=X1*2a,得到|Y|的有效数字Y1和指数b,|Y|=Y1*2b;对|X|和|Y|的逐位进行判断,得到|X|和|Y|的数位为1的最高位位置n,n为小于31的整数,记sign=n-12为数据指数,并对sign≤14的数据进行左移26-n位,对sign>14的数据进行右移n-26位,经过移位后得到有效数字X1和Y1,其中有效数字高16位为整数位,低16位为小数位,有效数字X1和Y1在[210,211)区间;
5)将除数有效数字X1拆分为整数位与小数位之和,即X1=a+x,其中a={X1[31:16],16’h0000},x={16’h0000,X1[15:0]},a代表有效数字整数,x代表有效数字小数位;设定求倒数函数1/X1=f(x)=1/(a+x),可以采用插值算法对f(x)进行拟合,公式如下:
Figure BDA0001483319650000021
其中整数a在[210,211)区间,(a+1)在(210,211]区间,通过查找预先存储在存储器模块中的1/1024~1/2048倒数表,令a对应1/1024~1/2048倒数表中的序号,获得1/a和1/(a+1)的二进制36bit定点数;倒数表中记录1/1024~1/2048的有效数字,设定指数为-40,即1/a=table(a)*2-40,table(a)为倒数表中a对应的倒数;采用容量为(211-210)*36bit,在存储器模块内选取36kbit的存储空间;采用1/1024~1/2048倒数表查找a和a+1的倒数,通过公式1计算出除数有效数字的倒数1/X1,由于整数位为0,取小数为56位的定点数;
6)将被除数的有效数字Y1与除数的有效数字的倒数1/X1通过乘法器相乘,得到数量级为16位且小数也为56位定点数为乘法结果Z1,得到Z1=Y1/X1;
7)对除数与被除数的指数a、b进行比较,当b>a时,将Z1向左移b-a,当a≤b时,将Z1向右移a-b,得到结果的绝对值|Z|;通过对在第2步中取得除法结果的正负符号进行判断,结果符号为正时,结果Z=|Z|,结果符号为负时,结果为Z=0-|Z|。
本发明实现了一种除法器,通过使用少量硬件乘法器模块和片上存储器模块,即可实现32位除法运算,使用1024个表项线性插值时除法运算相对精度就可达1×2-22。当精度要求较低时,可以减少表项节约资源,当1×2-22相对精度无法满足要求时,可以增加表项或者调整插值算法以提高精度。
以1024表项为例,高12位用于计算查表索引,查找获取表项中与1/X1相邻的值作为插值算法的各项系数,然后将剩余低位移位到[0,1)区间作为插值变量,完成倒数值的插值计算。然后通过被除数与除数倒数相乘可以计算出除法结果绝对值的有效数字,最后利用第2至3步计算和记录的数据符号、指数数值对该结果进行符号、指数恢复得到最终的除法运算结果。
附图说明
图1为本发明流程示意图。
具体实施方式
本专利提出的基于查找表和插值相结合的除法器方案,用查表、乘法、简单加减法和移位操作实现复杂的除法运算,精度与单精度浮点相当,非常适合于具有硬件乘法器模块和片上存储器模块的可编程器件实现,能为涉及除法计算的信息处理在可编程器件上的实现提供支持。
一种可编程器件的除法功能实现方法,包括以下步骤:
1)当接收除数X和被除数Y后,除数X和被除数Y为32位2进制有符号、数量级为16位且小数也为16位的定点数,对被除数Y进行判断,Y为零时,返回结果零和无异常状态码,当除数X为零时,则返回最大表示值和除零错误状态码;
2)对除数X和被除数Y进行正负判断,计算结果正负;除数X和被除数Y为32位有符号数,最高位为符号位;通过判断符号位确定除数X和被除数Y为正数或者负数;当除数X和被除数Y同为正数或者负数时结果为正,否则结果为负;
3)求取除数X和被除数Y的绝对值;在前一步判断出除数X和被除数Y为正数或负数,当Y为正数或0,其绝对值|Y|=Y,当Y为负数,其绝对值|Y|=0-Y,当X为正数,其绝对值|X|=X,当X为负数,其绝对值|X|=0-X;
4)对除数的绝对值|X|与被除数的绝对值|Y|进行归一化处理,计算有效数字及指数,得到|X|的有效数字X1和指数a,|X|=X1*2a,得到|Y|的有效数字Y1和指数b,|Y|=Y1*2b;对|X|和|Y|的逐位进行判断,得到|X|和|Y|的数位为1的最高位位置n,n为小于31的整数,记sign=n-12为数据指数,并对sign≤14的数据进行左移26-n位,对sign>14的数据进行右移n-26位,经过移位后得到有效数字X1和Y1,其中有效数字高16位为整数位,低16位为小数位,有效数字X1和Y1在[210,211)区间;
5)将除数有效数字X1拆分为整数位与小数位之和,即X1=a+x,其中a={X1[31:16],16’h0000},x={16’h0000,X1[15:0]},a代表有效数字整数,x代表有效数字小数位;设定求倒数函数1/X1=f(x)=1/(a+x),可以采用插值算法对f(x)进行拟合,公式如下:
Figure BDA0001483319650000041
其中整数a在[210,211)区间,(a+1)在(210,211]区间,通过查找预先存储在存储器模块中的1/1024~1/2048倒数表,令a对应1/1024~1/2048倒数表中的序号,获得1/a和1/(a+1)的二进制36bit定点数;倒数表中记录1/1024~1/2048的有效数字,设定指数为-40,即1/a=table(a)*2-40,table(a)为倒数表中a对应的倒数;采用容量为(211-210)*36bit,在存储器模块内选取36kbit的存储空间;采用1/1024~1/2048倒数表查找a和a+1的倒数,通过公式1计算出除数有效数字的倒数1/X1,由于整数位为0,取小数为56位的定点数;
6)将被除数的有效数字Y1与除数的有效数字的倒数1/X1通过乘法器相乘,得到数量级为16位且小数也为56位定点数为乘法结果Z1,得到Z1=Y1/X1;
7)对除数与被除数的指数a、b进行比较,当b>a时,将Z1向左移b-a,当a≤b时,将Z1向右移a-b,得到结果的绝对值|Z|;通过对在第2步中取得除法结果的正负符号进行判断,结果符号为正时,结果Z=|Z|,结果符号为负时,结果为Z=0-|Z|。
具体实施例:
以计算Y=16.25,X=108.75,计算Z=Y/X为例。将X、Y换算为16进制数据后,Y=0x00104800,X=0x006CC800。
经过数据异常判断,X、Y均不为零。
对X、Y进行符号判断,X、Y均为正数,其结果Z也为正数。
对X、Y取绝对值,|X|=0x006CC800,|Y|=0x00104800。
对|X|、|Y|进行归一化处理,X1=06CC8000,a=10,Y1=04004000,b=8。
计算1/X1。在公式1中a=1740,x=0.5,通过查表1/a=0x25aa14025,1/(a+1)=0x25a48a382,通过公式1计算1/X1=0x025a74f1d30000。
计算Z1=Y1/X1,得到Z1=0x000098F4。
由于a>b,将Z1右移2(a-b=2)位,得到|Z|=0x0000263d,由于结果为正数,得到最终结果Z=|Z|,换算成小数为小数点后56位。

Claims (1)

1.一种可编程器件的除法功能实现方法,其特征在于,包括以下步骤:
1)当接收除数X和被除数Y后,除数X和被除数Y为32位2进制有符号、数量级为16位且小数也为16位的定点数,对被除数Y进行判断,Y为零时,返回结果零和无异常状态码,当除数X为零时,则返回最大表示值和除零错误状态码;
2)对除数X和被除数Y进行正负判断,计算结果正负;除数X和被除数Y为32位有符号数,最高位为符号位;通过判断符号位确定除数X和被除数Y为正数或者负数;当除数X和被除数Y同为正数或者负数时结果为正,否则结果为负;
3)求取除数X和被除数Y的绝对值;在前一步判断出除数X和被除数Y为正数或负数,当Y为正数或0,其绝对值|Y|=Y,当Y为负数,其绝对值|Y|=0-Y,当X为正数,其绝对值|X|=X,当X为负数,其绝对值|X|=0-X;
4)对除数的绝对值|X|与被除数的绝对值|Y|进行归一化处理,计算有效数字及指数,得到|X|的有效数字X1和指数a,|X|=X1*2a,得到|Y|的有效数字Y1和指数b,|Y|=Y1*2b;对|X|和|Y|的逐位进行判断,得到|X|和|Y|的数位为1的最高位位置n,n为小于31的整数,记sign=n-12为数据指数,并对sign≤14的数据进行左移26-n位,对sign>14的数据进行右移n-26位,经过移位后得到有效数字X1和Y1,其中有效数字高16位为整数位,低16位为小数位,有效数字X1和Y1在[210,211)区间;
5)将除数有效数字X1拆分为整数位与小数位之和,即X1=a+x,其中a={X1[31:16],16’h0000},x={16’h0000,X1[15:0]},a代表有效数字整数,x代表有效数字小数位;设定求倒数函数1/X1=f(x)=1/(a+x),可以采用插值算法对f(x)进行拟合,公式如下:
Figure FDA0001483319640000011
其中整数a在[210,211)区间,(a+1)在(210,211]区间,通过查找预先存储在存储器模块中的1/1024~1/2048倒数表,令a对应1/1024~1/2048倒数表中的序号,获得1/a和1/(a+1)的二进制36bit定点数;倒数表中记录1/1024~1/2048的有效数字,设定指数为-40,即1/a=table(a)*2-40,table(a)为倒数表中a对应的倒数;采用容量为(211-210)*36bit,在存储器模块内选取36kbit的存储空间;采用1/1024~1/2048倒数表查找a和a+1的倒数,通过公式1计算出除数有效数字的倒数1/X1,由于整数位为0,取小数为56位的定点数;
6)将被除数的有效数字Y1与除数的有效数字的倒数1/X1通过乘法器相乘,得到数量级为16位且小数也为56位定点数乘法结果Z1,得到Z1=Y1/X1;
7)对除数与被除数的指数a、b进行比较,当b>a时,将Z1向左移b-a,当a≤b时,将Z1向右移a-b,得到结果的绝对值|Z|;通过对在第2步中取得除法结果的正负符号进行判断,结果符号为正时,结果Z=|Z|,结果符号为负时,结果为Z=0-|Z|。
CN201711204143.4A 2017-11-27 2017-11-27 一种可编程器件的除法功能实现方法 Active CN107992284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711204143.4A CN107992284B (zh) 2017-11-27 2017-11-27 一种可编程器件的除法功能实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711204143.4A CN107992284B (zh) 2017-11-27 2017-11-27 一种可编程器件的除法功能实现方法

Publications (2)

Publication Number Publication Date
CN107992284A CN107992284A (zh) 2018-05-04
CN107992284B true CN107992284B (zh) 2022-12-23

Family

ID=62033224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711204143.4A Active CN107992284B (zh) 2017-11-27 2017-11-27 一种可编程器件的除法功能实现方法

Country Status (1)

Country Link
CN (1) CN107992284B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165006B (zh) * 2018-08-07 2021-08-06 上海交通大学 Softmax函数的设计优化及硬件实现方法及系统
CN109558109B (zh) * 2018-11-30 2021-07-16 上海寒武纪信息科技有限公司 数据运算装置及相关产品
CN109583581B (zh) * 2018-11-30 2021-07-09 上海寒武纪信息科技有限公司 数据转换装置及相关产品
CN112732223A (zh) * 2020-12-31 2021-04-30 上海安路信息科技股份有限公司 半精度浮点数除法器数据处理方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508038A (en) * 1966-08-30 1970-04-21 Ibm Multiplying apparatus for performing division using successive approximate reciprocals of a divisor
US5828591A (en) * 1992-11-02 1998-10-27 Intel Corporation Method and apparatus for using a cache memory to store and retrieve intermediate and final results
CN101493760A (zh) * 2008-12-24 2009-07-29 京信通信系统(中国)有限公司 一种高速除法器及其实现高速除法运算的方法
CN102231101A (zh) * 2011-07-29 2011-11-02 电子科技大学 一种除法器及除法处理方法
CN103593159A (zh) * 2012-08-14 2014-02-19 重庆重邮信科通信技术有限公司 一种高效率高精度除法实现方法及装置
CN104375800A (zh) * 2014-12-09 2015-02-25 国网重庆市电力公司电力科学研究院 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统
CN104778027A (zh) * 2014-01-14 2015-07-15 罗伯特·博世有限公司 用于计算被除数和除数的除法的结果值的方法和设备
CN106959840A (zh) * 2016-01-08 2017-07-18 瑞昱半导体股份有限公司 除法运算装置及其运算方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508038A (en) * 1966-08-30 1970-04-21 Ibm Multiplying apparatus for performing division using successive approximate reciprocals of a divisor
US5828591A (en) * 1992-11-02 1998-10-27 Intel Corporation Method and apparatus for using a cache memory to store and retrieve intermediate and final results
CN101493760A (zh) * 2008-12-24 2009-07-29 京信通信系统(中国)有限公司 一种高速除法器及其实现高速除法运算的方法
CN102231101A (zh) * 2011-07-29 2011-11-02 电子科技大学 一种除法器及除法处理方法
CN103593159A (zh) * 2012-08-14 2014-02-19 重庆重邮信科通信技术有限公司 一种高效率高精度除法实现方法及装置
CN104778027A (zh) * 2014-01-14 2015-07-15 罗伯特·博世有限公司 用于计算被除数和除数的除法的结果值的方法和设备
CN104375800A (zh) * 2014-12-09 2015-02-25 国网重庆市电力公司电力科学研究院 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统
CN106959840A (zh) * 2016-01-08 2017-07-18 瑞昱半导体股份有限公司 除法运算装置及其运算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Xin Fang ; Miriam Leeser.Vendor agnostic, high performance, double precision Floating Point division for FPGAs.《IEEE Xplore》.2013,全文. *
基于FPGA的32位除法器设计;周殿凤等;《信息化研究》;20100320;第36卷(第03期);全文 *

Also Published As

Publication number Publication date
CN107992284A (zh) 2018-05-04

Similar Documents

Publication Publication Date Title
CN107992284B (zh) 一种可编程器件的除法功能实现方法
US20160313976A1 (en) High performance division and root computation unit
CN103959192A (zh) 用于估算超越函数的数学电路
CN111813372B (zh) 一种高精度低时延实现32位整数除法的方法及装置
CN111813371A (zh) 数字信号处理的浮点除法运算方法、系统及可读介质
CN110222305B (zh) 一种基于双曲cordic的对数函数计算系统及方法
CN101650643B (zh) 一种用于不可除尽浮点除法开方的舍入方法
CN104375800A (zh) 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统
CN107533452A (zh) 除法和根计算以及快速结果格式化
US8868633B2 (en) Method and circuitry for square root determination
CN108334304B (zh) 数字递归除法
JP4273071B2 (ja) 除算・開平演算器
CN110069237B (zh) 一种基于查找表的基-8除法器信号处理方法
CN107423026B (zh) 一种正余弦函数计算的实现方法及装置
KR20210130098A (ko) 하드웨어 가속 머신 러닝 및 덧셈 및 시프트 연산들을 갖는 이미지 처리 시스템
CN108153513B (zh) 前导零预测
CN114201140B (zh) 指数函数处理单元、方法和神经网络芯片
CN102789376B (zh) 浮点数加法电路及其实现方法
US8933731B2 (en) Binary adder and multiplier circuit
CN109558109B (zh) 数据运算装置及相关产品
US9032009B2 (en) Multiplier circuit
US20090089349A1 (en) Angle Computation Method and Related Circuit
CN111752532B (zh) 一种高精度实现32位整数除法的方法、系统及装置
CN107977587A (zh) 一种平方根功能实现方法
CN116466910A (zh) 一种基于浮点数的查表方法、装置、电子设备及存储介质

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