CN111813372A - 一种高精度低时延实现32位整数除法的方法及装置 - Google Patents
一种高精度低时延实现32位整数除法的方法及装置 Download PDFInfo
- Publication number
- CN111813372A CN111813372A CN202010662492.6A CN202010662492A CN111813372A CN 111813372 A CN111813372 A CN 111813372A CN 202010662492 A CN202010662492 A CN 202010662492A CN 111813372 A CN111813372 A CN 111813372A
- Authority
- CN
- China
- Prior art keywords
- quotient
- divisor
- dividend
- remainder
- output
- 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
Images
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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种高精度低时延实现32位整数除法的方法及装置,包括有如下步骤:S1、将被除数,除数,输入判零单元如果被除数为0,商直接输出0,缩放因子为0;S2、将1输出的被除数,除数,输入符号提取模块,输出商的符号及被除数,除数的模值。本发明中,利用较少迭代次数CORDIC实现牛顿迭代的初值,只有加法及移位操作,资源消耗较低,方便硬件实现,通过缩放模块,将被除数除数缩放到一样的幅度位置,减小了计算位宽,减少了对迭代次数的需求,降低了运算周期,增加一次牛顿迭代,以少量运算器及时延的代价,增加了运算精度,输出结果使用商加缩放因子的形式,有效保证了商的精度,且输出位宽较小,方便后续使用。误差小于千分之一。
Description
技术领域
本发明涉及数字信号处理技术领域,特别的为一种高精度低时延实现32位整数除法的方法及装置。
背景技术
在数字信号处理领域,常常用到32位整数除法器,比如在信号归一化,及信道估计等运算处的运用,但是现有的32位整数除法器存在以下缺点:
1、现有的除法方案常使用导数除法,SRT法,加减交替法,CORDIC方法等,这些方法的运算周期,常随着位数增加而大量增加,浪费功耗。
2、随着数据位宽的增加,常导致运算器中间位宽越来越大,占用存储空间多。
3、为了保证性能,输出结果位宽较大,后续加法及乘法的使用时资源开销较大。
4、倒数除法,常用牛顿迭代加一次乘法实现a/b,但牛顿迭代的初值来源一般有两种,查表法或者是Tylor展式,这两种方法均需要存储空间,且Tylor展式需要额外的乘法及加法,耗资源。
发明内容
本发明提供的发明目的在于提供一种高精度低时延实现32位整数除法的方法及装置,可有效解决上述背景技术中的问题。
为实现以上目的,本发明通过以下技术方案予以实现:一种高精度低时延实现32位整数除法的方法,包括有如下步骤:
S1、将被除数,除数,输入判零单元如果被除数为0,商直接输出0,缩放因子为0。
S2、将1输出的被除数,除数,输入符号提取模块,输出商的符号及被除数,除数的模值。
S3、将2输出的被除数、除数输入缩放模块,实现将被除数,除数缩放到有效bit数12bit,输出被除数、除数,并分别记下被除数、除数的缩放因子。
S4、将3输出的除数输入CORDIC单元,更新商,余数=2^12,及初值value=2^12,进行迭代6次。
S5、迭代6次完成后,将商和余数输出作为初值,给到牛顿迭代单元,进行一次牛顿迭代。
S6、将5输出的商和3输出的被除数输入,输出商=商*被除数的符号/2^12。
S7、更新6输出的商,输出商=商*商的符号;缩放因子=被除数缩放因子-除数缩放因子-12,用于后续使用。
S8、除法器CORDIC单元中间位宽均在S14bit内,仅使用加法及移位实现,得到牛顿迭代的初值。
S9、除法器得到商的最高有效12bit位,对于计算y/x,该模块输出商a,及缩放因子b,y/x=a*2^(b)。
进一步的,在根据S1中的操作步骤中,若被除数不为0,除数为0,商直接输出为4095,移位因子为20,若被除数,除数均不为0,输入下一步。
进一步的,根据S4中的操作步骤,第i次CORDIC迭代单元的操作如下:
S401、根据当前迭代输入的余数的符号,得到di=-sign(余数)。
S402、更新余数为:余数=(余数+di*除数)*2,更新商为:商=商-di*value/2^(i-1)。
进一步的,根据S5中的操作步骤,还包括以下步骤:
S501、判断余数是否为0,若为0,结束牛顿迭代,直接输出到6。
S502、更新余数=商*余数/2^18,输出余数。
S503、将S501输出的余数输入,更新商=商+余数,输出商。
进一步的,在根据S9中的操作步骤:在后续乘法使用时,直接使用a,并继续记下b,当有加法时,加法前后的缩放因子拉齐后直接相加即可。
一种高精度低时延实现32位整数除法的装置,包括:除法器系统,所述除法器系统包括输入模块、提取模块、缩放模块、计算模块和输出模块。
进一步的,所述输入模块用于对数值进行输入;所述提取模块用于对被除数和除数的数值进行提取;所述缩放模块用于对被除数和除数进行缩放处理,同时对被除数和除数的缩放因子进行记录;所述计算模块用于对输入的数值进行计算;所述输出模块用于对计算后的数值进行输出。
本发明提供了一种高精度低时延实现32位整数除法的方法及装置。具备以下有益效果:
(1)、本发明中:利用较少迭代次数CORDIC实现牛顿迭代的初值,只有加法及移位操作,资源消耗较低,方便硬件实现。
(2)、本发明中:通过缩放模块,将被除数除数缩放到一样的幅度位置,减小了计算位宽,减少了对迭代次数的需求,降低了运算周期,增加一次牛顿迭代,以少量运算器及时延的代价,增加了运算精度。
(3)、本发明中:输出结果使用商加缩放因子的形式,有效保证了商的精度,且输出位宽较小,方便后续使用。误差小于千分之一。
(4)、本发明中:该方法和一般的CORIDC方案比,大大降低了迭代次数,减小了运算周期,和一般的牛顿迭代方案相比,使用CORDIC计算初值及余数,仅仅增加少量的运算时延,减少了存储及乘法加法器的需求,具有优越性。
附图说明:
图1为本发明的系统框图;
图2为本发明的除法器整体框图;
图3为本发明的第i次CORDIC迭代单元框图;
图4为本发明的牛顿迭代单元框图。
具体实施方式
以下参照具体的实施例来说明本发明。本领域技术人员能够理解,这些实施例仅用于说明本发明,其不以任何方式限制本发明的范围。
实施1:参照图1-4:一种高精度低时延实现32位整数除法的方法,在数字信号处理领域,比如在信号归一化,及信道估计等运算处常有运用,该方法实现步骤如下:
步骤一:将被除数,除数,输入判零单元如果被除数为0,商直接输出0,缩放因子为0,如果被除数不为0,除数为0,商直接输出为4095,移位因子为20,若被除数,除数均不为0,输入下一步。
步骤二:将1输出的被除数,除数,输入符号提取模块,输出商的符号及被除数,除数的模值。
步骤三:将2输出的被除数、除数输入缩放模块,实现将被除数,除数缩放到有效bit数12bit,输出被除数、除数,并分别记下被除数、除数的缩放因子。
步骤四:将3输出的除数输入CORDIC单元,更新商,余数=2^12,及初值value=2^12,进行迭代6次,第i次CORDIC迭代单元的操作如下:
1)根据当前迭代输入的余数的符号,得到di=-sign(余数)。
2)更新余数为:余数=(余数+di*除数)*2。更新商为:商=商-di*value/2^(i-1)。
步骤五:迭代6次完成后,将商和余数输出作为初值,给到牛顿迭代单元,进行一次牛顿迭代:
1)判断余数是否为0,若为0,结束牛顿迭代,直接输出到6。否则,进行(2)。
2)更新余数=商*余数/2^18;,输出余数。
3)将1)输出的余数输入,更新商=商+余数,输出商。
步骤六:将5输出的商和3输出的被除数输入,输出商=商*被除数的符号/2^12。
步骤七:更新6输出的商,输出商=商*商的符号;缩放因子=被除数缩放因子-除数缩放因子-12,用于后续使用。
步骤八:该除法器CORDIC单元中间位宽均在S14bit内,仅使用加法及移位实现。得到牛顿迭代的初值。
步骤九:该除法器得到商的最高有效12bit位,对于计算y/x,该模块输出商a,及缩放因子b,y/x=a*2^(b)。当后续乘法使用时,直接使用a,并继续记下b,当有加法时,加法前后的缩放因子拉齐后直接相加即可。
一种高精度低时延实现32位整数除法的装置,包括:除法器系统,除法器系统包括输入模块、提取模块、缩放模块、计算模块和输出模块,输入模块用于对数值进行输入;提取模块用于对被除数和除数的数值进行提取;缩放模块用于对被除数和除数进行缩放处理,同时对被除数和除数的缩放因子进行记录;计算模块用于对输入的数值进行计算;输出模块用于对计算后的数值进行输出。
此时,为了解出方程,需要使用除法器模块。将被除数,除数R23、R22,输出输入除法器,得到商及缩放因子a、b,则x1=a*2^b。即为所求。
本发明中,利用较少迭代次数CORDIC实现牛顿迭代的初值,只有加法及移位操作,资源消耗较低,方便硬件实现,通过缩放模块,将被除数除数缩放到一样的幅度位置,减小了计算位宽,减少了对迭代次数的需求,降低了运算周期,增加一次牛顿迭代,以少量运算器及时延的代价,增加了运算精度,输出结果使用商加缩放因子的形式,有效保证了商的精度,且输出位宽较小,方便后续使用。误差小于千分之一,该方法和一般的CORIDC方案比,大大降低了迭代次数,减小了运算周期,和一般的牛顿迭代方案相比,使用CORDIC计算初值及余数,仅仅增加少量的运算时延,减少了存储及乘法加法器的需求,具有优越性。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (7)
1.一种高精度低时延实现32位整数除法的方法,其特征在于,包括有如下步骤:
S1、将被除数,除数,输入判零单元如果被除数为0,商直接输出0,缩放因子为0;
S2、将1输出的被除数,除数,输入符号提取模块,输出商的符号及被除数,除数的模值;
S3、将2输出的被除数、除数输入缩放模块,实现将被除数,除数缩放到有效bit数12bit,输出被除数、除数,并分别记下被除数、除数的缩放因子;
S4、将3输出的除数输入CORDIC单元,更新商,余数=2^12,及初值value=2^12,进行迭代6次;
S5、迭代6次完成后,将商和余数输出作为初值,给到牛顿迭代单元,进行一次牛顿迭代;
S6、将5输出的商和3输出的被除数输入,输出商=商*被除数的符号/2^12;
S7、更新6输出的商,输出商=商*商的符号;缩放因子=被除数缩放因子-除数缩放因子-12,用于后续使用;
S8、除法器CORDIC单元中间位宽均在S14bit内,仅使用加法及移位实现,得到牛顿迭代的初值;
S9、除法器得到商的最高有效12bit位,对于计算y/x,该模块输出商a,及缩放因子b,y/x=a*2^(b)。
2.根据权利要求1所述的一种高精度低时延实现32位整数除法的方法,其特征在于,在根据S1中的操作步骤中,若被除数不为0,除数为0,商直接输出为4095,移位因子为20,若被除数,除数均不为0,输入下一步。
3.根据权利要求1所述的一种高精度低时延实现32位整数除法的方法,其特征在于,根据S4中的操作步骤,第i次CORDIC迭代单元的操作如下:
S401、根据当前迭代输入的余数的符号,得到di=-sign(余数);
S402、更新余数为:余数=(余数+di*除数)*2,更新商为:商=商-di*value/2^(i-1)。
4.根据权利要求1所述的一种高精度低时延实现32位整数除法的方法,其特征在于,根据S5中的操作步骤,还包括以下步骤:
S501、判断余数是否为0,若为0,结束牛顿迭代,直接输出到6;
S502、更新余数=商*余数/2^18,输出余数;
S503、将S501输出的余数输入,更新商=商+余数,输出商。
5.根据权利要求1所述的一种高精度低时延实现32位整数除法的方法,其特征在于,在根据S9中的操作步骤:在后续乘法使用时,直接使用a,并继续记下b,当有加法时,加法前后的缩放因子拉齐后直接相加即可。
6.一种高精度低时延实现32位整数除法的装置,其特征在于,包括:除法器系统,所述除法器系统包括输入模块、提取模块、缩放模块、计算模块和输出模块。
7.根据权利要求6所述的一种高精度低时延实现32位整数除法的装置,其特征在于:所述输入模块用于对数值进行输入;所述提取模块用于对被除数和除数的数值进行提取;所述缩放模块用于对被除数和除数进行缩放处理,同时对被除数和除数的缩放因子进行记录;所述计算模块用于对输入的数值进行计算;所述输出模块用于对计算后的数值进行输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010662492.6A CN111813372B (zh) | 2020-07-10 | 2020-07-10 | 一种高精度低时延实现32位整数除法的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010662492.6A CN111813372B (zh) | 2020-07-10 | 2020-07-10 | 一种高精度低时延实现32位整数除法的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813372A true CN111813372A (zh) | 2020-10-23 |
CN111813372B CN111813372B (zh) | 2021-05-18 |
Family
ID=72843010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010662492.6A Active CN111813372B (zh) | 2020-07-10 | 2020-07-10 | 一种高精度低时延实现32位整数除法的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813372B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721885A (zh) * | 2021-09-06 | 2021-11-30 | 深圳智微电子科技有限公司 | 一种基于cordic算法的除法器 |
CN115033205A (zh) * | 2022-08-11 | 2022-09-09 | 深圳市爱普特微电子有限公司 | 一种低延迟高精度定值除法器 |
CN116088935A (zh) * | 2023-04-06 | 2023-05-09 | 坎德拉(深圳)新能源科技有限公司 | 应用于磁轴承转子参数辨识的数据的处理方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772181B1 (en) * | 1999-10-29 | 2004-08-03 | Pentomics, Inc. | Apparatus and method for trigonometric interpolation |
CN1761938A (zh) * | 2003-03-21 | 2006-04-19 | 英特尔公司 | 超高基数除法 |
CN1855031A (zh) * | 2005-04-18 | 2006-11-01 | 展讯通信(上海)有限公司 | 求定点数除法的算法在视频编码流量控制中的应用 |
CN1961284A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 使用n位乘加操作实现不变量除数的整数除法的方法和系统 |
CN101997533A (zh) * | 2009-08-17 | 2011-03-30 | 炬力集成电路设计有限公司 | 算术逻辑电路及其运行方法 |
CN102231101A (zh) * | 2011-07-29 | 2011-11-02 | 电子科技大学 | 一种除法器及除法处理方法 |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
CN105955706A (zh) * | 2016-06-16 | 2016-09-21 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
CN106708468A (zh) * | 2015-11-17 | 2017-05-24 | 华为数字技术(苏州)有限公司 | 一种除法运算方法及装置 |
US20170192408A1 (en) * | 2014-06-05 | 2017-07-06 | Technion Research & Developement Foundation Limited | Multi-degree-of-freedom stabilization of large-scale photonic integrated circuits |
CN107179894A (zh) * | 2016-03-09 | 2017-09-19 | 瑞昱半导体股份有限公司 | 快速除法器及快速除法运算方法 |
CN109062540A (zh) * | 2018-06-06 | 2018-12-21 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
CN111078187A (zh) * | 2019-11-28 | 2020-04-28 | 南京大学 | 一种针对单精度浮点数的任意次方根求解方法及其求解器 |
CN111104092A (zh) * | 2019-12-06 | 2020-05-05 | 北京多思安全芯片科技有限公司 | 一种快速除法器和除法运算方法 |
-
2020
- 2020-07-10 CN CN202010662492.6A patent/CN111813372B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772181B1 (en) * | 1999-10-29 | 2004-08-03 | Pentomics, Inc. | Apparatus and method for trigonometric interpolation |
CN1761938A (zh) * | 2003-03-21 | 2006-04-19 | 英特尔公司 | 超高基数除法 |
CN1961284A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 使用n位乘加操作实现不变量除数的整数除法的方法和系统 |
CN1855031A (zh) * | 2005-04-18 | 2006-11-01 | 展讯通信(上海)有限公司 | 求定点数除法的算法在视频编码流量控制中的应用 |
CN101997533A (zh) * | 2009-08-17 | 2011-03-30 | 炬力集成电路设计有限公司 | 算术逻辑电路及其运行方法 |
CN102231101A (zh) * | 2011-07-29 | 2011-11-02 | 电子科技大学 | 一种除法器及除法处理方法 |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
US20170192408A1 (en) * | 2014-06-05 | 2017-07-06 | Technion Research & Developement Foundation Limited | Multi-degree-of-freedom stabilization of large-scale photonic integrated circuits |
CN106708468A (zh) * | 2015-11-17 | 2017-05-24 | 华为数字技术(苏州)有限公司 | 一种除法运算方法及装置 |
CN107179894A (zh) * | 2016-03-09 | 2017-09-19 | 瑞昱半导体股份有限公司 | 快速除法器及快速除法运算方法 |
CN105955706A (zh) * | 2016-06-16 | 2016-09-21 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
CN109062540A (zh) * | 2018-06-06 | 2018-12-21 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
CN111078187A (zh) * | 2019-11-28 | 2020-04-28 | 南京大学 | 一种针对单精度浮点数的任意次方根求解方法及其求解器 |
CN111104092A (zh) * | 2019-12-06 | 2020-05-05 | 北京多思安全芯片科技有限公司 | 一种快速除法器和除法运算方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113721885A (zh) * | 2021-09-06 | 2021-11-30 | 深圳智微电子科技有限公司 | 一种基于cordic算法的除法器 |
CN113721885B (zh) * | 2021-09-06 | 2023-10-03 | 深圳智微电子科技有限公司 | 一种基于cordic算法的除法器 |
CN115033205A (zh) * | 2022-08-11 | 2022-09-09 | 深圳市爱普特微电子有限公司 | 一种低延迟高精度定值除法器 |
CN116088935A (zh) * | 2023-04-06 | 2023-05-09 | 坎德拉(深圳)新能源科技有限公司 | 应用于磁轴承转子参数辨识的数据的处理方法 |
CN116088935B (zh) * | 2023-04-06 | 2023-06-16 | 坎德拉(深圳)新能源科技有限公司 | 应用于磁轴承转子参数辨识的数据的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111813372B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813372B (zh) | 一种高精度低时延实现32位整数除法的方法及装置 | |
KR20080094813A (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
WO2007012179A2 (en) | Karatsuba based multiplier and method | |
US20060271615A1 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format | |
US9983850B2 (en) | Shared hardware integer/floating point divider and square root logic unit and associated methods | |
Wu et al. | Fast unified elliptic curve point multiplication for NIST prime curves on FPGAs | |
JP2585649B2 (ja) | 除算回路 | |
CN107992284B (zh) | 一种可编程器件的除法功能实现方法 | |
Sousa | Efficient method for magnitude comparison in RNS based on two pairs of conjugate moduli | |
Imran et al. | An area aware accelerator for elliptic curve point multiplication | |
US10296294B2 (en) | Multiply-add operations of binary numbers in an arithmetic unit | |
JP2001222410A (ja) | 除算器 | |
US20130262541A1 (en) | Method and circuitry for square root determination | |
JP2006172035A (ja) | 除算・開平演算器 | |
JP5733379B2 (ja) | プロセッサおよび演算方法 | |
CN111984226A (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
CN108228138B (zh) | 一种sidh中特殊域快速模乘的方法 | |
US6598065B1 (en) | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal | |
Lee et al. | Efficient $ M $-ary exponentiation over $ GF (2^{m}) $ using subquadratic KA-based three-operand Montgomery multiplier | |
CN113467752B (zh) | 用于隐私计算的除法运算装置、数据处理系统及方法 | |
CN111752532B (zh) | 一种高精度实现32位整数除法的方法、系统及装置 | |
CN102646033B (zh) | 提供了加密和签名功能的rsa算法的实现方法和装置 | |
US8933731B2 (en) | Binary adder and multiplier circuit | |
RU2510072C1 (ru) | Устройство деления и извлечения квадратного корня | |
Mohammadi et al. | Efficient design of Elliptic curve point multiplication based on fast Montgomery modular multiplication |
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 |