一种可编程器件的除法功能实现方法技术

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

A division function realization method for programmable devices

The present invention provides a division function realization method of a programmable device, which includes the following steps: 1) when the division X and the divisor Y are received, the divisor X and the divided number Y are 32 bits 2 symbols, the order of magnitude is 16 bit and the decimal is 16 bit, and the number Y is judged, and the Y is zero, and returns the result. Zero sum and no abnormal state code, when the divisor X is zero, it returns the maximum expression value and the zero error state code; 2) the divisor X and the divisor Y are judged positive and negative, the result is positive and negative; the divisor X and the divisor Y are the symbol numbers, the highest bit is the symbol bit; the divisor X and the divisor Y are determined to be positive or negative by judging the symbol bit. The result is positive when the divisor X and the dividend Y are positive or negative, otherwise the result is negative.

【技术实现步骤摘要】
一种可编程器件的除法功能实现方法
本专利技术涉及信息处理和微电子领域的处理电路,具体地说,涉及一种除法器的设计和实现方法。
技术介绍
在信息处理中,经常会涉及到除法运算,如图形处理中直线段对应区域的顶点坐标计算。在使用可编程器件进行复杂的信息处理时,当今主流可编程器件一般包括硬件乘法器模块和片上存储器模块,可厂商提供的除法器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)进行拟合,公式如下:其中整数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)进行拟合,公式如下:其中整数a在[210,211)区间,(a+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*2

【技术特征摘要】
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拆分为整数...

【专利技术属性】
技术研发人员:郭凡周坚锋孔渊李少光康健斌童歆曲国远
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1