CN111752532B - 一种高精度实现32位整数除法的方法、系统及装置 - Google Patents
一种高精度实现32位整数除法的方法、系统及装置 Download PDFInfo
- Publication number
- CN111752532B CN111752532B CN202010592188.9A CN202010592188A CN111752532B CN 111752532 B CN111752532 B CN 111752532B CN 202010592188 A CN202010592188 A CN 202010592188A CN 111752532 B CN111752532 B CN 111752532B
- Authority
- CN
- China
- Prior art keywords
- dividend
- divisor
- quotient
- iteration
- scaling factor
- 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
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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
Abstract
本发明公开了一种高精度实现32位整数除法的方法,所述方法包括:将第一被除数和第一除数均输入判零单元,当第一被除数和第一除数均不为0,判零单元输出第二被除数和第二除数;将第二被除数和第二除数输入符号提取模块,符号提取模块输出商的符号、第三被除数和第三除数;将第三被除数和第三除数输入缩放模块,对第三被除数和第三除数进行缩放,输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子;将第四被除数、第四除数输入CORDIC迭代单元,更新商及初值value,进行迭代;迭代完成后,CORDIC迭代单元将商输出到结果输出单元,结果输出单元输出商和缩放因子。本发明有效保证了商的精度,且输出位宽较小,方便后续使用,误差小于千分之一。
Description
技术领域
本发明属于无线通信技术领域,特别涉及一种高精度实现32位整数除法的方法、系统及装置。
背景技术
在数字信号处理领域,常常用到32位整数除法器,比如在信号归一化,及信道估计等运算处的运用。
现有的除法方案常使用导数除法,SRT法,加减交替法,CORDIC方法等,但这些方法的运算周期,常随着位数增加而大量增加,浪费功耗。其中有的方法需要乘法资源器,而乘法器较消耗资源及运算周期。并且,随着数据位宽的增加,常导致运算器中间位宽越来越大,占用存储空间多。为了保证性能,输出结果位宽较大,后续加法及乘法的使用时资源开销较大。
发明内容
针对上述问题,本发明提供了一种高精度实现32位整数除法的方法,所述方法包括:
将第一被除数和第一除数均输入判零单元,当第一被除数和第一除数均不为0,判零单元输出第二被除数和第二除数;
将第二被除数和第二除数输入符号提取模块,符号提取模块输出商的符号、第三被除数和第三除数;
将第三被除数和第三除数输入缩放模块,对第三被除数和第三除数进行缩放,输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子;
将第四被除数、第四除数输入CORDIC迭代单元,更新商及初值value,进行迭代;
迭代完成后,CORDIC迭代单元将商输出到结果输出单元,结果输出单元输出商和缩放因子。
进一步地,所述方法还包括:
将第一被除数和第一除数均输入判零单元,输出包括:
当第一被除数为0,则结果输出单元直接输出商为0,缩放因子为0;
当第一被除数不为0,第一除数为0,则结果输出单元直接输出商为4095,缩放因子为20。
进一步地,所述商的符号直接发送到结果输出单元;
所述第三被除数缩放因子和第三除数缩放因子直接发送到结果输出单元。
进一步地,所述对第三被除数和第三除数进行缩放具体为:
将第三被除数和第三除数缩放到有效bit数12bit。
进一步地,所述初值value为2^12,迭代次数为12。
进一步地,所述迭代过程包括:
根据当前迭代输入的第四被除数的符号,得到di=-sign(第四被除数);
更新第四被除数:第四被除数=(第四被除数+di*第四除数)*2,更新商:商=商-di*value/2^(i-1),i为迭代次数;
判断更新后第四被除数是否为0,若为0,则迭代直接结束,CORDIC迭代单元将商输出到结果输出单元,否则继续迭代。
进一步地,所述商的计算方式为商*商的符号,所述缩放因子的计算方式为第三被除数缩放因子-第三除数缩放因子-12。
本发明还提供了一种高精度实现32位整数除法的系统,所述系统包括判零单元、符号提取模块、缩放模块、CORDIC迭代单元和结果输出单元,其中,
所述判零单元用于判断第一被除数和第一除数是否为零,并输出第二被除数和第二除数;
所述符号提取模块用于输出商的符号、第三被除数和第三除数;
所述缩放模块用于对第三被除数和第三除数进行缩放,并输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子;
所述CORDIC迭代单元用于更新商及初值value,并进行迭代;
所述结果输出单元用于输出商和缩放因子。
本发明还提供了一种高精度实现32位整数除法的装置,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器执行上述的方法。
本发明通过CORDIC实现除法,只有加法及移位操作,资源消耗较低,方便硬件实现。CORDIC单元增加判零模块,避免无效迭代,降低功耗。通过缩放模块,将被除数、除数缩放到一样的幅度位置,减小了计算位宽,减少了对迭代次数的需求,降低了运算周期。输出结果使用商加缩放因子的形式,有效保证了商的精度,且输出位宽较小,方便后续使用,误差小于千分之一。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例方法的整体流程图;
图2示出了本发明实施例的第i次CORDIC迭代单元的操作示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种高精度实现32位整数除法的方法,示例性的,图1示出了本发明实施例方法的整体流程图,如图1所示,所述方法包括:
步骤一:将第一被除数和第一除数均输入判零单元,当第一被除数和第一除数均不为0,判零单元输出第二被除数和第二除数,进行下一步;
将第一被除数和第一除数均输入判零单元,输出包括:
当第一被除数为0,则结果输出单元直接输出商为0,缩放因子为0;
当第一被除数不为0,第一除数为0,则结果输出单元直接输出商为4095,缩放因子为20。
步骤二:将第二被除数和第二除数输入符号提取模块,符号提取模块输出商的符号、第三被除数和第三除数,其中,所述商的符号直接发送到结果输出单元;
步骤三:将第三被除数和第三除数输入缩放模块,对第三被除数和第三除数进行缩放,且将第三被除数和第三除数缩放到有效bit数12bit,输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子,其中,所述第三被除数缩放因子和第三除数缩放因子直接发送到结果输出单元;
步骤四:将第四被除数、第四除数输入CORDIC迭代单元,更新商及初值value=2^12,进行迭代12次,第i次CORDIC迭代单元的操作如图2所示:
1、根据当前迭代输入的第四被除数的符号,得到di=-sign(第四被除数);
2、更新第四被除数:第四被除数=(第四被除数+di*第四除数)*2,更新商:商=商-di*value/2^(i-1),i为迭代次数;
3、判断更新后第四被除数是否为0,若为0,则迭代直接结束,CORDIC迭代单元将商输出到结果输出单元,否则输出第四被除数,继续迭代。
步骤五:迭代完成后,CORDIC迭代单元将商输出到结果输出单元,结果输出单元输出商和缩放因子,其中,所述商=商*商的符号,所述缩放因子=第三被除数缩放因子-第三除数缩放因子-12。
使用本发明实施例的除法器中间位宽均在14bit内,仅使用加法及移位实现,除法器得到商的最高有效位为12bit。对于计算y/x,输出商a,及缩放因子b,y/x=a*2^(b)。当后续乘法使用时,直接使用a,并继续记下b。当有加法时,加法前后的缩放因子拉齐后直接相加即可。
此时,为了解出方程,需要使用本发明实施例的除法器,将被除数R23、除数R22,输入除法器,得到商及缩放因子a、b,则x1=a*2^b,即为所求。
本发明通过CORDIC实现除法,只有加法及移位操作,资源消耗较低,方便硬件实现。CORDIC单元增加判零模块,避免无效迭代,降低功耗。通过缩放模块,将被除数、除数缩放到一样的幅度位置,减小了计算位宽,减少了对迭代次数的需求,降低了运算周期。输出结果使用商加缩放因子的形式,有效保证了商的精度,且输出位宽较小,方便后续使用,误差小于千分之一。
本发明还提供了一种高精度实现32位整数除法的系统,所述系统包括判零单元、符号提取模块、缩放模块、CORDIC迭代单元和结果输出单元,其中,
所述判零单元用于判断第一被除数和第一除数是否为零,并输出第二被除数和第二除数;
所述符号提取模块用于输出商的符号、第三被除数和第三除数;
所述缩放模块用于对第三被除数和第三除数进行缩放,并输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子;
所述CORDIC迭代单元用于更新商及初值value,并进行迭代;
所述结果输出单元用于输出商和缩放因子。
本发明还提供了一种高精度实现32位整数除法的装置,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器执行上述高精度实现32位整数除法的方法。
需要说明的是,本发明实施例中的“第一”、“第二”、“第三”、“第四”仅仅是用于区分作用,不表示顺序关系或其他任何实质性的含义。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种高精度实现32位整数除法的方法,其特征在于,所述方法包括:
将第一被除数和第一除数均输入判零单元,当第一被除数和第一除数均不为0,判零单元输出第二被除数和第二除数;
将第二被除数和第二除数输入符号提取模块,符号提取模块输出商的符号、第三被除数和第三除数;
将第三被除数和第三除数输入缩放模块,对第三被除数和第三除数进行缩放,输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子;
将第四被除数、第四除数输入CORDIC迭代单元,更新商及初值value,进行迭代;
迭代完成后,CORDIC迭代单元将商输出到结果输出单元,结果输出单元输出商和缩放因子;
所述商的符号直接发送到结果输出单元;
所述第三被除数缩放因子和第三除数缩放因子直接发送到结果输出单元;
所述对第三被除数和第三除数进行缩放具体为:
将第三被除数和第三除数缩放到有效bit数12bit;
所述初值value为2^12,迭代次数为12;
所述迭代过程包括:
根据当前迭代输入的第四被除数的符号,得到di=-sign(第四被除数);
更新第四被除数:第四被除数=(第四被除数+di*第四除数)*2,更新商:商=商-di*value/2^(i-1),i为迭代次数;
判断更新后第四被除数是否为0,若为0,则迭代直接结束,CORDIC迭代单元将商输出到结果输出单元,否则继续迭代;
所述商的计算方式为商*商的符号,所述缩放因子的计算方式为第三被除数缩放因子-第三除数缩放因子-12。
2.根据权利要求1所述的高精度实现32位整数除法的方法,其特征在于,所述方法还包括:
将第一被除数和第一除数均输入判零单元,输出包括:
当第一被除数为0,则结果输出单元直接输出商为0,缩放因子为0;
当第一被除数不为0,第一除数为0,则结果输出单元直接输出商为4095,缩放因子为20。
3.根据权利要求1所述的高精度实现32位整数除法方法的系统,其特征在于,所述系统包括判零单元、符号提取模块、缩放模块、CORDIC迭代单元和结果输出单元,其中,
所述判零单元用于判断第一被除数和第一除数是否为零,并输出第二被除数和第二除数;
所述符号提取模块用于输出商的符号、第三被除数和第三除数;
所述缩放模块用于对第三被除数和第三除数进行缩放,并输出第四被除数、第四除数、第三被除数缩放因子和第三除数缩放因子;
所述CORDIC迭代单元用于更新商及初值value,并进行迭代;
所述结果输出单元用于输出商和缩放因子。
4.一种高精度实现32位整数除法的装置,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其特征在于,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器执行权利要求1-2中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010592188.9A CN111752532B (zh) | 2020-06-24 | 2020-06-24 | 一种高精度实现32位整数除法的方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010592188.9A CN111752532B (zh) | 2020-06-24 | 2020-06-24 | 一种高精度实现32位整数除法的方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752532A CN111752532A (zh) | 2020-10-09 |
CN111752532B true CN111752532B (zh) | 2021-03-26 |
Family
ID=72677241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010592188.9A Active CN111752532B (zh) | 2020-06-24 | 2020-06-24 | 一种高精度实现32位整数除法的方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752532B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997533A (zh) * | 2009-08-17 | 2011-03-30 | 炬力集成电路设计有限公司 | 算术逻辑电路及其运行方法 |
CN103986480A (zh) * | 2012-12-10 | 2014-08-13 | 英特尔移动通信有限责任公司 | 用于迭代计算数值的方法和装置 |
CN109062540A (zh) * | 2018-06-06 | 2018-12-21 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488759B (zh) * | 2009-02-24 | 2012-04-11 | 东南大学 | 多输入多输出正交频分复用系统低密度校验码的译码方法 |
CN102073472B (zh) * | 2011-01-05 | 2012-10-03 | 东莞市泰斗微电子科技有限公司 | 一种三角函数cordic迭代运算协处理器及运算处理方法 |
US9780902B2 (en) * | 2011-12-07 | 2017-10-03 | AshRem Technologies, Inc. | Communication systems and methods |
CN103984522B (zh) * | 2014-05-27 | 2018-04-13 | 中国人民解放军国防科学技术大学 | Gpdsp中定点和浮点混合除法的实现方法 |
CN105204041A (zh) * | 2015-09-29 | 2015-12-30 | 上海海积信息科技股份有限公司 | 一种跟踪环路处理方法及装置 |
US10216481B2 (en) * | 2017-01-19 | 2019-02-26 | Arm Limited | Digit recurrence division with scaling and digit selection using intermediate value |
CN107168678B (zh) * | 2017-05-09 | 2020-10-27 | 清华大学 | 一种乘加计算装置及浮点乘加计算方法 |
US10168992B1 (en) * | 2017-08-08 | 2019-01-01 | Texas Instruments Incorporated | Interruptible trigonometric operations |
GB2566050B (en) * | 2017-08-31 | 2021-08-25 | Imagination Tech Ltd | Luminance-normalised colour spaces |
CN108733627A (zh) * | 2018-04-30 | 2018-11-02 | 南京大学 | 一种正定矩阵Cholesky分解的FPGA实现方法 |
CN110766141A (zh) * | 2019-10-29 | 2020-02-07 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于cordic的激活函数混合计算方法及系统 |
-
2020
- 2020-06-24 CN CN202010592188.9A patent/CN111752532B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997533A (zh) * | 2009-08-17 | 2011-03-30 | 炬力集成电路设计有限公司 | 算术逻辑电路及其运行方法 |
CN103986480A (zh) * | 2012-12-10 | 2014-08-13 | 英特尔移动通信有限责任公司 | 用于迭代计算数值的方法和装置 |
CN109062540A (zh) * | 2018-06-06 | 2018-12-21 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111752532A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI383595B (zh) | 用於低密度奇偶校驗解碼器之有效校驗節點訊息轉換近似 | |
CN111813372B (zh) | 一种高精度低时延实现32位整数除法的方法及装置 | |
CN104079382A (zh) | 一种基于概率计算的极化码译码器和极化码译码方法 | |
CN108196822A (zh) | 一种双精度浮点开方运算的方法及系统 | |
CN112818387B (zh) | 模型参数调整的方法、设备、存储介质及程序产品 | |
Chandel et al. | Booth multiplier: Ease of multiplication | |
CN111813371A (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
CN102231101B (zh) | 一种除法器及除法处理方法 | |
Penchalaiah et al. | Design and Implementation of Low Power and Area Efficient Architecture for High Performance ALU | |
CN107992284B (zh) | 一种可编程器件的除法功能实现方法 | |
US20040167956A1 (en) | Method and apparatus for executing division | |
CN117827463A (zh) | 用于进行注意力运算的方法、设备和存储介质 | |
CN110187866B (zh) | 一种基于双曲cordic的对数乘法计算系统及方法 | |
CN110135563B (zh) | 一种卷积神经网络二值化方法及运算电路 | |
CN113608718B (zh) | 一种实现素数域大整数模乘计算加速的方法 | |
CN111984226B (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
CN111752532B (zh) | 一种高精度实现32位整数除法的方法、系统及装置 | |
US9684489B2 (en) | Squaring circuit | |
WO2023236610A1 (zh) | 信号检测方法、装置、电子设备及存储介质 | |
JP2023103419A (ja) | 演算方法、装置、チップ、電子機器及び記憶媒体 | |
CN108228138B (zh) | 一种sidh中特殊域快速模乘的方法 | |
CN115237372A (zh) | 一种乘法电路、机器学习运算电路、芯片及数据处理方法 | |
Parashar et al. | Fast combinational architecture for a vedic divider | |
Jaberipur | Redundant number system-based arithmetic circuits | |
CN113805846A (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 |