一种除法器及除法处理方法

文档序号:6429688阅读:311来源:国知局
专利名称:一种除法器及除法处理方法
技术领域
本发明涉及通信技术领域的数字信号处理电路,特别涉及一种除法器及其运算处理方法。
背景技术
现代数字信号处理过程中经常会涉及到两个有符号数的除法运算,而除法在硬件实现过程中十分困难,在某些算法中,通过巧妙的设计,除法可以转换成为移位运算来实现;但在更多的情况下,由于算法的本身原理,决定了必须完成具体两个数的除法运算。通信领域中,在进行算法资源分配的时候,不可以避免的需要FPGA来完成某些需要进行除法的计算。在现有技术中,传统的基于FPGA实现除法的过程都会涉及中乘法运算,通过多次乘法迭代得到相除的结果。由于乘法计算比较消耗芯片的资源,对数据处理造成比较大的延迟,xilinx提供了除法的IPcore,但是对用户来讲只能在限定FPGA上使用,可移植性差, 而且延迟较大,以被除数为八位的除法为例,小数取四位,需要16个时钟,而在高精度高位数的除法中,延迟更大。在另外的一些除法器中,两数相除,首先通过插值模拟结合查找表的方法得到除法的倒数,然后经过一次乘法运算得到结果。但由于插值精度和查找表精度的问题,实现过程比较复杂。

发明内容
本发明的目的是了解决现有的除法运算存在的问题,提出了一种除法器及其运算处理方法。本发明的技术方案是一种无符号数除法器,包括判0单元,补零单元、移位单元、判断处理单元和结果处理单元,其中,所述判0单元用于判断除数是否为0 ;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述移位单元用于对除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元;所述结果处理单元用于根据所述判断处理单元的输出,输出除法的商。针对上述无符号数除法器,本发明还提出了一种除法处理方法,假设所述除法的被除数A为N1位,除数B为队位,商C需要保留的小数为队位,具体包括如下步骤Si.如果除数为0,则报错返回,否则在被除数A后面补N3个零,即将A扩大为原来的2M咅,使得J =」*2 ;S2.确定商C的最高位将除数B左移NJN3-I得到Iv如果A彡Iv则令A = A-b。, 同时C的最高位为1 ;如果A < b0,则C的最高位为0 ;S3.确定商C的次高位将除数B左移Κ+Ν3-2得到Id1,如果六彡一则令六二八-!^,
4同时C的次次高位为1 ;如果A < Id1,则令C的次高位为0 ;S4.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。本发明还提出了一种有符号数除法器,包括补零单元、位异或单元、判0单元,取绝对值单元、移位单元、判断处理单元和结果处理单元,其中,所述判0单元用于判断除数是否为0 ;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述取绝对值单元用于对除数和所述补零单元补零后的被除数取绝对值;所述位异或单元用于根据被除数与除数的最高位确定商的最高位,并将结果输入到所述的结果处理单元;所述移位单元用于对所述取绝对值单元取绝对值后的除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述取绝对值单元取绝对值后的补零后的被除数进行循环判断,确定商的除最高位之外的余下各位,并输入到所述结果处理单元;所述结果处理单元用于根据所述位异或单元和所述判断处理单元的输出,输出除法的商。针对上述有符号数除法器,本发明还提出了一种除法处理方法,假设所述除法的被除数A为N1位,除数B为队位,商C需要保留的小数为队位,具体包括如下步骤Si.如果除数B为0,则报错返回,对被除数A与除数B的最高位作异或,得到商C 的最高位;S2.在被除数A后面补N3个零,即将A扩大为原来的2M咅,使得J = A*2N^;S3.判断被除数和除数是否为正数,如果不为正数,则取其绝对值;S4.确定商C的次高位将除数B左移Ni+N3_2得到bQ,如果A彡b0,则令A = A-b0, 同时C的次高位为1 ;如果A < b0,则C的次高位为0 ;S5.确定商C的次次高位将除数B左移Ni+N3_3得到b1;如果A ^ b1 则令A = A-bi;同时C的次次高位为1 ;如果A < Id1,则C的次次高位为0 ;S6.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。本发明的有益效果本发明除法器和除法处理方法利用除数的循环移位,通过逐位逼近依次得到商的各位,并且可以根据用户的需要动态的设定除法结果需要保留的小数位数,其中,延迟由被除数和需要的小数位数和决定,而逐位逼近避免了复杂的迭代运算, 延迟较小,整个运算过程完全依靠移位、相减、比较的进行实现,避免了使用乘法操作,节省了芯片的资源开销和计算延迟,而且移植性强,能够适用于各种场景。


图1是本发明的无符号除法器的结构示意图。图2是本发明的无符号除法处理方法的流程示意图。图3是本发明的有符号除法器的结构示意图。图4是本发明的有符号除法处理方法的流程示意图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的阐述。本发明的无符号数除法器如图1所示,包括判0单元,补零单元、移位单元、判断处理单元和结果处理单元,其中,所述判0单元用于判断除数是否为0 ;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述移位单元用于对除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元;这里循环判断具体过程如下假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为 N3位,这里被除数、除数、商的小数的位指的是二进制的位,在本说明书中,如无特殊说明, 位表示的均为二进制的位。将除数B左移Ni+N3_j得到b」,如果A彡b」,则令A = A_b」,同时C的第NfN3-J位为1 ;如果A < bj;则C的第位为0 ;这里j从1开始,依次循环到时为止。所述结果处理单元用于根据所述判断处理单元的输出,输出除法的商。针对图1的无符号数除法器,除法处理方法流程示意图如图2所示,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤Si.如果除数为0,则报错返回,否则在被除数A后面补N3个零,即将A扩大为原来的2M咅,使得J =」*2 ;S2.确定商C的最高位将除数B左移N^N3-I得到bQ,如果A彡b0,则令A = A-b0, 同时C的最高位为1 ;如果A < b0,则C的最高位为0 ;S3.确定商C的次高位将除数B左移Κ+Ν3-2得到Id1,如果六彡一则令六二八-!^, 同时C的次次高位为1 ;如果A < bi,则C的次高位为0 ;S4.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。本发明的有符号数除法器如图3所示,包括补零单元、位异或单元、判0单元,取绝对值单元、移位单元、判断处理单元和结果处理单元,其中,所述判0单元用于判断除数是否为0 ;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述取绝对值单元用于对除数和所述补零单元补零后的被除数取绝对值;所述位异或单元用于根据被除数与除数的最高位确定商的最高位,并将结果输入到所述的结果处理单元;所述移位单元用于对所述取绝对值单元取绝对值后的除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述取绝对值单元取绝对值后的补零后的被除数进行循环判断,确定商的除最高位之外的余下各位,并输入到所述结果处理单元;这里循环判断具体过程如下假设所述除法的被除数A为&位,除数 B为N2位,商C需要保留的小数为N3位,将除数B左移N^N3-J得到bj;如果A彡b」,则令A =A-bj,同时C的第N^N3-J位为1 ;如果A < bj;则C的第N^N3-J位为0 ;这里j从2开始, 依次循环到N1+^时为止。所述结果处理单元用于根据所述位异或单元和所述判断处理单元的输出,输出除法的商。
6
针对图3的有符号数除法器,除法处理方法示意图如图4所示,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤Si.如果除数B为0,则报错返回,否则对被除数A与除数B的最高位作异或,得到商C的最高位,即符号位;S2.在被除数A后面补N3个零,即将A扩大为原来的2M咅,使得J = A*2N^;S3.判断被除数和除数是否为正数,如果不为正数,则取其绝对值;S4.确定商C的次高位将除数B左移K+N3-2得到Iv如果A彡Iv则令A = A-b。, 同时C的次高位为1 ;如果A < b0,则C的次高位为0 ;S5.确定商C的次次高位将除数B左移Ni+N3_3得到b1;如果A ^ b1 则令A = A-bi;同时C的次次高位为1 ;如果A < Id1,则C的次次高位为0 ;S6.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。下面以有符号数的除法器和除法处理方法进行举例说明,无符号数的除法器和除法处理方法与此类似,不再举例说明。本发明在基于FPGA的硬件平台上仿真实现,在实施过程中,首先要确定计算的精度,即需要保留的小数点位数,以此来决定被除数需要补零的个数。由于在FPGA中都是按照二进制补码的方式进行数据的存储,因此,根据除数和被除数的正负关系,在取绝对值后保证两者都为正的同时,通过异或除数和被除数的最高位可以确定商的最高位即符号位。 然后将除法左移&+Ν3-2位与被除数进行比较,如果小于零,则商的次高位为1,两者相减的结果作为下一次的被除数;否则商的次高位为0,保持被除数不变,如此循环直到除数左移 0位结束。在最后输出的商结果中,第一位是符号位,最后的队位即是需要保留的小数位数。根据本发明的思想,在FPGA中进行除法器仿真。在本实施例中,完成一个8位除以8位并保留4位小数的除法运算。假定被除数A为8’ bOllOOlOO (十进制的100),除数 B为8’ bllllOlOl (十进制的-11)。由于除数为负数,与补码的方式保存,通过取反加以一操作将除数B变为8,b00001011。同时,除数和被除数最高位异或为1,所以商结果符号位为1。然后进行移位相减比较计算。在FPGA中,第一个时钟读入除数B和被除数A,第二个时钟被除数A取绝对值且补 4个零后为12b’ 011001000000,与除数B左移10位的bQ进行比较,由于A < b0,则商次高位为0 ;然后将A与除数B左移9位的Id1进行比较,由于A < ID1,则商次次高位为0 ;然后将 A与除数B左移8位的Id2进行比较,如此循环。由于除数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需要消耗较大的芯片资源,所以本发明提出了一种将除法运算转换成减法进行处理,与传统的除法器比较,将除法运算转变成减法运算,通过多次的循环过程, 得到两数相除的商,实现时避免了使用乘法器,而且可以动态的选择相除结果的小数点精度,消耗的资源较低,可移植性强,能够适用于各种信号处理场合。 本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
权利要求
1.一种无符号数除法器,包括判0单元、补零单元、移位单元、判断处理单元和结果处理单元,其中,所述判0单元用于判断除数是否为0 ;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述移位单元用于对除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元; 所述结果处理单元用于根据所述判断处理单元的输出,输出除法的商。
2.一种适用于权利要求1所述的无符号数除法器的除法处理方法,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤51.如果除数B为0,则报错返回,否则在被除数A后面补N3个零,即将A扩大为原来的2 倍,使得」=」*2 ;52.确定商C的最高位将除数B左移NfN3-I得到Iv如果A彡b0,则令A= A-b0,同时C的最高位为1 ;如果A < b0,则C的最高位为0 ;53.确定商C的次高位将除数B左移Ni+N3-2得到b1;如果A彡Id1,则令A= A_b1;同时C的次次高位为1 ;如果A < Id1,则C的次高位为0 ;54.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
3.一种有符号数除法器,包括补零单元、位异或单元、判0单元,取绝对值单元、移位单元、判断处理单元和结果处理单元,其中,所述判0单元用于判断除数是否为0 ; 所述补零单元用于根据商需要保留的小数位数给被除数补零; 所述取绝对值单元用于对除数和所述补零单元补零后的被除数取绝对值; 所述位异或单元用于根据被除数与除数的最高位确定商的最高位,并将结果输入到所述的结果处理单元;所述移位单元用于对所述取绝对值单元取绝对值后的除数进行左移运算; 所述判断处理单元用于根据所述移位单元的左移运算结果和所述取绝对值单元取绝对值后的补零后的被除数进行循环判断,确定商的除最高位之外的余下各位,并输入到所述结果处理单元;所述结果处理单元用于根据所述位异或单元和所述判断处理单元的输出,输出除法的商。
4.一种适用于权利要求3所述的有符号数除法器的除法处理方法,假设所述除法的被除数A为N1位,除数B为N2位,商C需要保留的小数为N3位,具体包括如下步骤·51.如果除数B为0,则报错返回,对被除数A与除数B的最高位作异或,得到商C的最高位;·52.在被除数A后面补N3个零,即将A扩大为原来的2 倍,使得J= A*2n^;·53.判断被除数和除数是否为正数,如果不为正数,取其绝对值;·54.确定商C的次高位将除数B左移Ni+N3-2得到Iv如果A^ b0,则令A = A-b0,同时C的次高位为1 ;如果A < b0,则C的次高位为0 ;·55.确定商C的次次高位将除数B左移Ni+N3-3得到Id1,如果A彡Id1,则令A= A_b1;同时C的次次高位为1 ;如果A < bi,则C的次次高位为0 ;S6.依次迭代运算,直到除数B左移0位,确定商C的最低位为止。
全文摘要
本发明公开了一种除法器及除法处理方法,包括无符号和有符号除法运算。无符号除法器包括判0单元、补零单元、移位单元、判断处理单元和结果处理单元,所述判0单元用于判断除数是否为0;所述补零单元用于根据商需要保留的小数位数给被除数补零;所述移位单元用于对除数进行左移运算;所述判断处理单元用于根据所述移位单元的左移运算结果和所述补零单元输出的补零后的被除数进行循环判断,确定商的各位,并输入到所述结果处理单元。本发明利用除数的循环移位,通过逐位逼近依次得到商的各位,并且可以根据需要设定除法结果需要保留的小数位数,逐位逼近避免了复杂的迭代运算,延迟较小,整个运算过程完全依靠移位、相减、比较,移植性强。
文档编号G06F7/535GK102231101SQ20111021540
公开日2011年11月2日 申请日期2011年7月29日 优先权日2011年7月29日
发明者刘皓, 李洪宇, 杨博, 杨林 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1