CN102231101B - 一种除法器及除法处理方法 - Google Patents
一种除法器及除法处理方法 Download PDFInfo
- Publication number
- CN102231101B CN102231101B CN201110215402.XA CN201110215402A CN102231101B CN 102231101 B CN102231101 B CN 102231101B CN 201110215402 A CN201110215402 A CN 201110215402A CN 102231101 B CN102231101 B CN 102231101B
- Authority
- CN
- China
- Prior art keywords
- unit
- divisor
- business
- dividend
- shift
- 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.)
- Expired - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种除法器及除法处理方法,包括无符号和有符号除法运算。无符号除法器包括:判0单元、补零单元、移位单元、判断处理单元和结果处理单元,所述判0单元用于判断除数是否为0;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述移位单元用于对除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元。本发明利用除数的循环移位,通过逐位逼近依次得到商的各位,并且可以根据需要设定除法结果需要保留的小数位数,逐位逼近避免了复杂的迭代运算,延迟较小,整个运算过程完全依靠移位、相减、比较,移植性强。
Description
技术领域
本发明涉及通信技术领域的数字信号处理电路,特别涉及一种除法器及其运算处理方法。
背景技术
现代数字信号处理过程中经常会涉及到两个有符号数的除法运算,而除法在硬件实现过程中十分困难,在某些算法中,通过巧妙的设计,除法可以转换成为移位运算来实现;但在更多的情况下,由于算法的本身原理,决定了必须完成具体两个数的除法运算。通信领域中,在进行算法资源分配的时候,不可以避免的需要FPGA来完成某些需要进行除法的计算。
在现有技术中,传统的基于FPGA实现除法的过程都会涉及中乘法运算,通过多次乘法迭代得到相除的结果。由于乘法计算比较消耗芯片的资源,对数据处理造成比较大的延迟,xilinx提供了除法的IPcore,但是对用户来讲只能在限定FPGA上使用,可移植性差,而且延迟较大,以被除数为八位的除法为例,小数取四位,需要16个时钟,而在高精度高位数的除法中,延迟更大。在另外的一些除法器中,两数相除,首先通过插值模拟结合查找表的方法得到除法的倒数,然后经过一次乘法运算得到结果。但由于插值精度和查找表精度的问题,实现过程比较复杂。
发明内容
本发明的目的是了解决现有的除法运算存在的问题,提出了一种除法器及其运算处理方法。
本发明的技术方案是:一种无符号数除法器,包括:判0单元,补零单元、移位单元、判断处理单元和结果处理单元,其中,
所述判0单元用于判断除数是否为0;
所述补零单元用于根据商需要保留的小数位数给被除数补零;
所述移位单元用于对除数进行左移运算;
所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元;
所述结果处理单元用于根据所述判断处理单元的输出,输出除法的商。
针对上述无符号数除法器,本发明还提出了一种除法处理方法,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤:
S1.如果除数为0,则报错返回,否则在被除数A后面补N3个零,即将A扩大为原来的倍,使得
S2.确定商C的最高位:将除数B左移N1+N3-1得到b0,如果A≥b0,则令A=A-b0,同时C的最高位为1;如果A<b0,则C的最高位为0;
S3.确定商C的次高位:将除数B左移N1+N3-2得到b1,如果A≥b1,则令A=A-b1,同时C的次高位为1;如果A<b1,则令C的次高位为0;
S4.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
本发明还提出了一种有符号数除法器,包括:补零单元、位异或单元、判0单元,取绝对值单元、移位单元、判断处理单元和结果处理单元,其中,
所述判0单元用于判断除数是否为0;
所述补零单元用于根据商需要保留的小数位数给被除数补零;
所述取绝对值单元用于对除数和所述补零单元补零后的被除数取绝对值;
所述位异或单元用于根据被除数与除数的最高位确定商的最高位,并将结果输入到所述的结果处理单元;
所述移位单元用于对所述取绝对值单元取绝对值后的除数进行左移运算;
所述判断处理单元用于根据所述移位单元的左移运算结果和所述取绝对值单元取绝对值后的补零后的被除数进行循环判断,确定商的除最高位之外的余下各位,并输入到所述结果处理单元;
所述结果处理单元用于根据所述位异或单元和所述判断处理单元的输出,输出除法的商。
针对上述有符号数除法器,本发明还提出了一种除法处理方法,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤:
S1.如果除数B为0,则报错返回,对被除数A与除数B的最高位作异或,得到商C的最高位;
S2.在被除数A后面补N3个零,即将A扩大为原来的倍,使得
S3.判断被除数和除数是否为正数,如果不为正数,则取其绝对值;
S4.确定商C的次高位:将除数B左移N1+N3-2得到b0,如果A≥b0,则令A=A-b0,同时C的次高位为1;如果A<b0,则C的次高位为0;
S5.确定商C的次次高位:将除数B左移N1+N3-3得到b1,如果A≥b1,则令A=A-b1,同时C的次次高位为1;如果A<b1,则C的次次高位为0;
S6.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
本发明的有益效果:本发明除法器和除法处理方法利用除数的循环移位,通过逐位逼近依次得到商的各位,并且可以根据用户的需要动态的设定除法结果需要保留的小数位数,其中,延迟由被除数和需要的小数位数和决定,而逐位逼近避免了复杂的迭代运算,延迟较小,整个运算过程完全依靠移位、相减、比较的进行实现,避免了使用乘法操作,节省了芯片的资源开销和计算延迟,而且移植性强,能够适用于各种场景。
附图说明
图1是本发明的无符号除法器的结构示意图。
图2是本发明的无符号除法处理方法的流程示意图。
图3是本发明的有符号除法器的结构示意图。
图4是本发明的有符号除法处理方法的流程示意图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的阐述。
本发明的无符号数除法器如图1所示,包括:判0单元,补零单元、移位单元、判断处理单元和结果处理单元,其中,
所述判0单元用于判断除数是否为0;
所述补零单元用于根据商需要保留的小数位数给被除数补零;
所述移位单元用于对除数进行左移运算;
所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元;这里循环判断具体过程如下:假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,这里被除数、除数、商的小数的位指的是二进制的位,在本说明书中,如无特殊说明,位表示的均为二进制的位。
将除数B左移N1+N3-j得到bj-1,如果A≥bj-1,则令A=A-bj-1,同时C的第N1+N3-j位为1;如果A<bj-1,则C的第N1+N3-j位为0;这里j从1开始,依次循环到N1+N3时为止。
所述结果处理单元用于根据所述判断处理单元的输出,输出除法的商。
针对图1的无符号数除法器,除法处理方法流程示意图如图2所示,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤:
S1.如果除数为0,则报错返回,否则在被除数A后面补N3个零,即将A扩大为原来的倍,使得
S2.确定商C的最高位:将除数B左移N1+N3-1得到b0,如果A≥b0,则令A=A-b0,同时C的最高位为1;如果A<b0,则C的最高位为0;
S3.确定商C的次高位:将除数B左移N1+N3-2得到b1,如果A≥b1,则令A=A-b1,同时C的次高位为1;如果A<b1,则C的次高位为0;
S4.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
本发明的有符号数除法器如图3所示,包括:补零单元、位异或单元、判0单元,取绝对值单元、移位单元、判断处理单元和结果处理单元,其中,
所述判0单元用于判断除数是否为0;
所述补零单元用于根据商需要保留的小数位数给被除数补零;
所述取绝对值单元用于对除数和所述补零单元补零后的被除数取绝对值;
所述位异或单元用于根据被除数与除数的最高位确定商的最高位,并将结果输入到所述的结果处理单元;
所述移位单元用于对所述取绝对值单元取绝对值后的除数进行左移运算;
所述判断处理单元用于根据所述移位单元的左移运算结果和所述取绝对值单元取绝对值后的补零后的被除数进行循环判断,确定商的除最高位之外的余下各位,并输入到所述结果处理单元;这里循环判断具体过程如下:假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,将除数B左移N1+N3-j得到bj-2,如果A≥bj-2,则令A=A-bj-2,同时C绝对值的第N1+N3-j位为1;如果A<bj-2,则C绝对值的第N1+N3-j位为0;这里j从2开始,依次循环到N1+N3时为止。
所述结果处理单元用于根据所述位异或单元和所述判断处理单元的输出,输出除法的商。
针对图3的有符号数除法器,除法处理方法示意图如图4所示,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤:
S1.如果除数B为0,则报错返回,否则对被除数A与除数B的最高位作异或,得到商C的最高位,即符号位;
S2.在被除数A后面补N3个零,即将A扩大为原来的倍,使得
S3.判断被除数和除数是否为正数,如果不为正数,则取其绝对值;
S4.确定商C的次高位:将除数B左移N1+N3-2得到b0,如果A≥b0,则令A=A-b0,同时C的次高位为1;如果A<b0,则C的次高位为0;
S5.确定商C的次次高位:将除数B左移N1+N3-3得到b1,如果A≥b1,则令A=A-b1,同时C的次次高位为1;如果A<b1,则C的次次高位为0;
S6.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
下面以有符号数的除法器和除法处理方法进行举例说明,无符号数的除法器和除法处理方法与此类似,不再举例说明。
本发明在基于FPGA的硬件平台上仿真实现,在实施过程中,首先要确定计算的精度,即需要保留的小数点位数,以此来决定被除数需要补零的个数。由于在FPGA中都是按照二进制补码的方式进行数据的存储,因此,根据除数和被除数的正负关系,在取绝对值后保证两者都为正的同时,通过异或除数和被除数的最高位可以确定商的最高位即符号位。然后将除法左移N1+N3-2位与被除数进行比较,如果小于零,则商的次高位为1,两者相减的结果作为下一次的被除数;否则商的次高位为0,保持被除数不变,如此循环直到除数左移0位结束。在最后输出的商结果中,第一位是符号位,最后的N3位即是需要保留的小数位数。
根据本发明的思想,在FPGA中进行除法器仿真。在本实施例中,完成一个8位除以8位并保留4位小数的除法运算。假定被除数A为8’b01100100(十进制的100),除数B为8’b11110101(十进制的-11)。由于除数为负数,与补码的方式保存,通过取反加以一操作将除数B变为8’b00001011。同时,除数和被除数最高位异或为1,所以商结果符号位为1。然后进行移位相减比较计算。
在FPGA中,第一个时钟读入除数B和被除数A,第二个时钟被除数A取绝对值且补4个零后为12b’011001000000,与除数B左移10位的b0进行比较,由于A<b0,则商次高位为0;然后将A与除数B左移9位的b1进行比较,由于A<b1,则商次次高位为0;然后将A与除数B左移8位的b2进行比较,如此循环。由于除数B左移7位的b3小于A,则令A=A-b3,商这一位为1;然后将A与除数B左移6位的b7进行比较,由于A<b7,则商这一位为0;继续循环,直到B左移0位结束。最后得到的商结果为12b’000010010001。后四位则为保留的小数位。因此除法的结果为9.0625(与被除数同时扩大24为145)。由于被除数和除数的符号不同,所以商为负数,最后的结果为-9.0625(与被除数同时扩大24为-145),可以看出,在精度允许情况下,与计算器计算的结果吻合。
在这里,延迟由被除数和需要的小数位数和决定,而逐位逼近避免了复杂的迭代运算,延迟较小,完成一个8位除以8位并保留4位小数的除法运算,xilinx提供的传统除法IPcore,需要16个时钟延迟,而采用本发明的方法仅需11个时钟周期即可完成。
在数字信号处理领域,某些算法在FPGA芯片中实现时不可避免的要进行除法运算,由于调用IP core需要消耗较大的芯片资源,所以本发明提出了一种将除法运算转换成减法进行处理,与传统的除法器比较,将除法运算转变成减法运算,通过多次的循环过程,得到两数相除的商,实现时避免了使用乘法器,而且可以动态的选择相除结果的小数点精度,消耗的资源较低,可移植性强,能够适用于各种信号处理场合。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (2)
1.一种无符号数除法器的除法处理方法,所述无符号数除法器,包括:判0单元、补零单元、移位单元、判断处理单元和结果处理单元,其中,
所述判0单元用于判断除数是否为0;
所述补零单元用于根据商需要保留的小数位数给被除数补零;
所述移位单元用于对除数进行左移运算;
所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元;
所述结果处理单元用于根据所述判断处理单元的输出,输出除法的商;
假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤:
S1.如果除数B为0,则报错返回,否则在被除数A后面补N3个零,即将A扩大为原来的倍,使得
S2.确定商C的最高位:将除数B左移N1+N3-1得到b0,如果A≥b0,则令A=A-b0,同时C的最高位为1;如果A<b0,则C的最高位为0;
S3.确定商C的次高位:将除数B左移N1+N3-2得到b1,如果A≥b1,则令A=A-b1,同时C的次高位为1;如果A<b1,则C的次高位为0;
S4.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
2.一种有符号数除法器的除法处理方法,所述有符号数除法器,包括:补零单元、位异或单元、判0单元,取绝对值单元、移位单元、判断处理单元和结果处理单元,其中,
所述判0单元用于判断除数是否为0;
所述补零单元用于根据商需要保留的小数位数给被除数补零;
所述取绝对值单元用于对除数和所述补零单元补零后的被除数取绝对值;
所述位异或单元用于根据被除数与除数的最高位确定商的最高位,并将结果输入到所述的结果处理单元;
所述移位单元用于对所述取绝对值单元取绝对值后的除数进行左移运算;
所述判断处理单元用于根据所述移位单元的左移运算结果和所述取绝对值单元取绝对值后的补零后的被除数进行循环判断,确定商的除最高位之外的余下各位,并输入到所述结果处理单元;
所述结果处理单元用于根据所述位异或单元和所述判断处理单元的输出,输出除法的商;
假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤:
S1.如果除数B为0,则报错返回,对被除数A与除数B的最高位作异或,得到商C的最高位;
S2.在被除数A后面补N3个零,即将A扩大为原来的倍,使得
S3.判断被除数和除数是否为正数,如果不为正数,取其绝对值;
S4.确定商C的次高位:将除数B左移N1+N3-2得到b0,如果A≥b0,则令A=A-b0,同时C的次高位为1;如果A<b0,则C的次高位为0;
S5.确定商C的次次高位:将除数B左移N1+N3-3得到b1,如果A≥b1,则令A=A-b1,同时C的次次高位为1;如果A<b1,则C的次次高位为0;
S6.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110215402.XA CN102231101B (zh) | 2011-07-29 | 2011-07-29 | 一种除法器及除法处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110215402.XA CN102231101B (zh) | 2011-07-29 | 2011-07-29 | 一种除法器及除法处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102231101A CN102231101A (zh) | 2011-11-02 |
CN102231101B true CN102231101B (zh) | 2015-02-25 |
Family
ID=44843668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110215402.XA Expired - Fee Related CN102231101B (zh) | 2011-07-29 | 2011-07-29 | 一种除法器及除法处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102231101B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593159A (zh) * | 2012-08-14 | 2014-02-19 | 重庆重邮信科通信技术有限公司 | 一种高效率高精度除法实现方法及装置 |
US20140195581A1 (en) * | 2013-01-08 | 2014-07-10 | Analog Devices, Inc. | Fixed point division circuit utilizing floating point architecture |
CN106708468B (zh) * | 2015-11-17 | 2020-02-14 | 华为数字技术(苏州)有限公司 | 一种除法运算装置 |
CN105955706B (zh) * | 2016-06-16 | 2018-06-26 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
CN107992284B (zh) * | 2017-11-27 | 2022-12-23 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN111813372B (zh) * | 2020-07-10 | 2021-05-18 | 上海擎昆信息科技有限公司 | 一种高精度低时延实现32位整数除法的方法及装置 |
CN116028013B (zh) * | 2023-02-20 | 2023-07-04 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100367191C (zh) * | 2005-09-22 | 2008-02-06 | 上海广电(集团)有限公司中央研究院 | 一种快速流水线型除法器 |
CN101692201B (zh) * | 2009-10-14 | 2011-04-20 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
-
2011
- 2011-07-29 CN CN201110215402.XA patent/CN102231101B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102231101A (zh) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102231101B (zh) | 一种除法器及除法处理方法 | |
Sutikno | An efficient implementation of the non restoring square root algorithm in gate level | |
Kaur et al. | Vhdl implementation of non restoring division algorithm using high speed adder/subtractor | |
Kim et al. | Efficient unified semi-systolic arrays for multiplication and squaring over GF (2m) | |
Mopuri et al. | Low-complexity methodology for complex square-root computation | |
Havaldar et al. | Design of Vedic IEEE 754 floating point multiplier | |
Al-Khaleel et al. | FPGA implementation of binary coded decimal digit adders and multipliers | |
Teja et al. | FPGA implementation of low-area floating point multiplier using Vedic mathematics | |
Deschamps et al. | Decimal division: Algorithms and FPGA implementations | |
Véstias et al. | Improving the area of fast parallel decimal multipliers | |
Mehta et al. | High speed SRT divider for intelligent embedded system | |
Chandu et al. | Design and implementation of high efficiency square root circuit using Vedic mathematics | |
Parashar et al. | Fast combinational architecture for a vedic divider | |
Kadu et al. | Hardware implementation of efficient elliptic curve scalar multiplication using vedic multiplier | |
Patil et al. | FPGA Implementation of conventional and vedic algorithm for energy efficient multiplier | |
Oke et al. | VLSI (FPGA) design for distinctive division architecture using the Vedic sutra ‘Dhwajam’ | |
Pandit et al. | Design and simulation of 16× 16 bit iterative logarithmic multiplier for accurate results | |
Roy et al. | Accelerating scalar conversion for Koblitz curve cryptoprocessors on hardware platforms | |
Murali et al. | An optimized implementation of vedic multiplier using barrel shifter in FPGA technology | |
Sharma | Disposition (reduction) of (negative) partial product for radix 4 Booth's algorithm | |
Paul et al. | Novel architecture of modular exponent on reconfigurable system | |
Hemalatha et al. | Design of optimal Elliptic Curve Cryptography by using partial parallel shifting multiplier with parallel complementary | |
Anupama et al. | Novel Square Root Algorithm and its FPGA Implementation | |
SHARMA et al. | Development of Library Components for Floating Point Processor. | |
Ramesh et al. | Implementation of Integer Square Root |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150225 Termination date: 20170729 |
|
CF01 | Termination of patent right due to non-payment of annual fee |