一种定点除法器及其实现运算的方法

文档序号:6562266阅读:370来源:国知局
专利名称:一种定点除法器及其实现运算的方法
技术领域
本发明涉及数字电路技术,尤指一种定点除法器及其实现运算的方法。
背景技术
在数字信号处理中,经常会涉及到除法运算电路。但是在高级硬件描述语言中没有可综合的除法语句,如VHDL和Verilog HDL都没有提供除法相关的语句。目前,其中一种定点除法电路装置中,包括有乘法运算单元,电路结构非常复杂,消耗的逻辑门电路较多,延迟较大;另外一种除法电路则采用了二级运算构成的冗余码与二进制混合使用的冗余码加法单元组成除法阵列,并采用二选一的选择器构成将冗余码的商直接转换成二进制形式的阵列转换电路,其电路结构同样比较复杂,占用资源较多;还有一种是以微处理器为运算平台,由指令实现的除法运算,采用二进制的位移及加法的技巧以减化除法的运算过程,但没有提供相关运算电路装置。
除此之外,在Celoxica公司的Handel C语言的逻辑电路开发工具中提供了实现除法的相关模块,但其资源消耗较大,以一个32位除以32位的除法器为例,需要等效电路门数约44000门,最大组合逻辑路径延迟时间需333ns。

发明内容
有鉴于此,本发明的主要目的在于提供一种定点除法器,该定点除法器电路结构简单。
本发明的另一目的在于提供一种定点除法器实现运算的方法,能够降低运算延迟,节约资源。
为达到上述目的,本发明的技术方案具体是这样实现的
一种定点除法器,该定点除法器包括符号发生器100,接收除数和被除数,根据除数和被除数的符号位获得商的符号位并输出;绝对值发生器101,接收除数和被除数,获取除数和被除数的绝对值,并输出;判别器102,分别接收除数绝对值和被除数绝对值,判断被除数绝对值是否大于或等于除数绝对值,若是,则触发位差发生器103;否则,触发商发生器104;位差发生器103,分别接收除数和被除数绝对值,计算被除数的最高有效位与除数的最高有效位之差,获得被除数绝对值与除数绝对值的位差并输出;商发生器104,接收商的符号位、除数的绝对值,被除数的绝对值,以及位差,输出有符号的商结果;或者接收来自判别器(102)的触发,输出零。
所述定点除法器还包括除数绝对值寄存器和被除数绝对值寄存器;所述绝对值发生器101包括除数绝对值发生器和被除数绝对值发生器;所述除数绝对值发生器,用于接收除数,获取除数绝对值,并将所述除数绝对值输出到除数绝对值寄存器;所述被除数绝对值发生器,用于接收被除数,获取被除数绝对值,并将所述被除数绝对值输出到被除数绝对值寄存器中。
所述位差发生器103包括最高有效位数发生电路和位差发生电路;所述最高有效位数发生电路,用于接收除数绝对值或被除数绝对值,分别获取除数或被除数的最高有效位数并输出;所述位差发生电路,用于接收除数的最高有效位数和被除数的最高有效位数,计算被除数的最高有效位与除数的最高有效位的数位之差,获得被除数绝对值与除数绝对值的位差,并将所述位差输出到位差寄存器中。
所述定点除法器还包括第一寄存器和第二寄存器;所述最高有效位发生电路包括除数最高有效位数发生电路和被除数最高有效位数发生电路;所述除数最高有效位数发生电路,用于接收除数绝对值,获取除数的最高有效位数,并将所述除数的最高有效位数输出到第一寄存器中;所述被除数最高有效位数发生电路,用于接收被除数绝对值,获取被除数的最高有效位数,并将所述被除数的最高有效位数输出到第二寄存器中。
所述商发生器104包括差发生电路和商发生电路;所述差发生电路至少包括加法器、判断器、左移器和计数器;其中,所述左移器,用于接收除数绝对值、被除数绝对值、以及位差,将被除数绝对值左移位差位,并输出给加法器;或者接收来自判断器的第一通知,自身输出的被减数绝对值左移1位,并将结果输出给加法器;或者接收来自加法器的差值,将差值左移1位并加1,并将结果输出给加法器,同时向计数器发送计数通知;所述加法器,用于接收除数绝对值,和来自左移器输出的值,计算二者之差的值,并将结果输出给判断器;或者接收来自判断器的第二通知,将差值输出给左移器;所述判断器,用于接收来自加法器的差值,判断该差值是否小于0,如果是,向左移器输出第一通知,否则,向加法器输出第二通知;所述计数器,用于接收来自左移器的计数通知,开始计数,并且在计算值大于位差值时,输出被减数绝对值的低位的位差值加1位到商发生电路;所述商发生电路,接收商的符号位、以及差发生电路输出的被减数的低位的位差值加1位,将该被减数的低位的位差值加1位作为商,并根据符号位发生器输出的符号位,输出有符号的商结果;或接收来自所述判别器的触发,输出零。
所述定点除法器还包括存储除数的除数寄存器,和存储被除数的被除数寄存器。
一种定点除法器实现运算的方法,包括以下步骤A.获取除数和被除数的绝对值;根据除数和被除数的符号位,获取商的符号位并存储;B.判断被除数绝对值是否大于或等于除数绝对值,若是,则计算被除数的最高有效位与除数的最高有效位之差,获得位差,进入步骤C;否则,输出零并结束;C.根据商的符号位、除数或被除数绝对值,以及位差,获取被除数与除数的商值。
步骤A中所述获取除数和被除数绝对值的方法为判断所述除数或被除数的最高位的取值,如果所述除数或被除数的最高位为0,则除数或被除数的绝对值等于自身,否则,除数或被除数的绝对值等于除数或被除数的补码。
步骤A中所述获取商的符号位的方法为判断所述除数和被除数的最高位是否相等,如果相等,则商的符号位为正,否则,商的符号为负。
所述步骤C具体包括C1.将所述被除数绝对值左移位差位,并计算除数绝对值作为减数与左移后的被除数绝对值作为被减数之差,判断该差值是否小于0,如果是,则将被减数左移1位,作为下一次减法运算的被减数,否则,将该差值左移1位并加1,作为下一次减法运算的被减数;C2.开始以递增1的方式计数,反复进行步骤C1的减法运算,直到计数器的计数值大于位差值为止,输出被减数绝对值的低位的位差值加1位;C3.将该被减数绝对值的低位的位差值加1位作为商,并根据所述符号位,输出有符号的商结果。
所述步骤C3具体包括判断被除数的绝对值是否小于除数的绝对值,如果是,则商为零;否则,进一步判断所述符号位是否为1,如果是,则商为将数值1左移位差位后减1,所得值与被减数进行逻辑与运算的负值,否则,商为将数值1左移位差位后减1,所得值与被减数进行逻辑与运算的值。
由上述技术方案可见,本发明定点除法器把除法运算转化化成移位运算和减法运算,与现有技术相比,便于硬件电路的实现,较少了所用器件门数,缩短了运算时间,提高了运算效率,取得了较好的效果。


图1是本发明定点除法器组成示意图;图2是本发明符号发生器组成示意图;图3是本发明被除数绝对值发生电路组成示意图;图4a是本发明位差发生器中的被除数的最高有效位数发生电路组成示意图;图4b是本发明位差发生器中的位差发生电路组成示意图;图5a是本发明商发生器中的除数与被除数之差发生电路组成示意图;图5b是本发明商发生器中的商发生电路组成示意图。
具体实施例方式
本发明的核心思想是获取除数和被除数的绝对值,根据除数和被除数的符号位,获取商的符号位并存储;判断被除数绝对值是否大于或等于除数绝对值,若是,则计算被除数的最高有效位与除数的最高有效位的数位之差,获得位差,并根据商的符号位、除数或被除数绝对值,以及位差,获取被除数与除数的商值;否则输出零。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
图1是本发明定点除法器组成示意图,本发明定点除法器包括符号位发生器100、绝对值发生器101、判别器102、位差发生器103、商发生器104及存储数据的寄存器,图1中未示出用于存储运算数据结果的寄存器。
其中,符号发生器100,接收除数和被除数,分别通过判定除数和被除数的符号位,获得商的符号位,并输出保存。
所述判定的方法可以是判断除数和被除数的最高位是否相等,如果相等,则商的最高位为0即商的符号为正,否则,商的最高位为1即商的符号为负。
绝对值发生器101,包括除数绝对值发生器和被除数绝对值发生器,接收除数/被除数,通过运算获取除数/被除数的绝对值,并输出保存。
运算的方法可以是如果除数/被除数的最高位为0,则除数/被除数的绝对值等于自身,否则,除数/被除数的绝对值等于除数/被除数的补码。
判别器102,分别接收除数绝对值和被除数绝对值,判断被除数绝对值是否大于或等于除数绝对值,若是,则触发位差发生器103;否则,触发商发生器104,商发生器输出为0即低电平。
比如判别器输出为1即高电平,则触发位差发生器103;否则,触发商发生器104。
位差发生器103,分别接收除数和被除数绝对值,计算被除数的最高有效位与除数的最高有效位的数位之差,获得被除数绝对值与除数绝对值的位差,并存储;位差发生器103包括最高有效位发生电路和位差发生电路,其中,最高有效位数发生电路包括除数最高有效位数发生电路和被除数最高有效位数发生电路。除数最高有效位数发生电路和被除数最高有效位数发生电路分别接收来自除数绝对值寄存器和被除数绝对值寄存器中的除数绝对值和被除数绝对值,分别获取除数和被除数的最高有效位数,并存储在寄存器n和寄存器m中;位差发生电路分别从寄存器n和寄存器m中获取除数和被除数的最高有效位数,计算被除数的最高有效位与除数的最高有效位的数位之差,获得被除数绝对值与除数绝对值的位差,并存储。
商发生器104,接收商的符号位、除数/被除数绝对值、以及位差,将被除数左移位差位,并将除数作为减数、将左移后的被除数作为被减数,计算二者之差,判断差值是否小于0,如果是,则将被减数左移1位,作为下一次减法运算的被减数,否则,将差值左移1位并加1,作为下一次减法运算的被减数,同时开始计数,反复执行上述减法运算,直到计数器大于位差值为止,取被减数的低(位差值+1)位作为商,并根据符号位发生器输出的符号位,输出有符号的商结果;或接收来自判别器102的触发,输出0。
商发生器104包括差发生电路和商发生电路,其中,差发生电路接收除数/被除数绝对值、以及位差,将被除数绝对值左移位差位,并计算除数绝对值作为减数与左移后的被除数绝对值作为被减数之差,判断差值是否小于0,如果是,则将被减数左移1位,作为下一次减法运算的被减数,否则,将差值左移1位并加1,作为下一次减法运算的被减数,同时开始计数,反复进行以上减法运算,直到计数器大于位差值为止,输出被减数绝对值的低(位差值+1)位。具体来说,差发生电路至少包括加法器、判断器、左移器和计数器,其中,左移器用于接收除数绝对值、被除数绝对值、以及位差,将被除数绝对值左移位差位,并输出给加法器;或者接收来自判断器的第一通知,自身输出的被减数绝对值左移1位,并将结果输出给加法器;或者接收来自加法器的差值,将差值左移1位并加1,并将结果输出给加法器,同时向计数器发送计数通知;所述加法器,用于接收除数绝对值,和来自左移器输出的值,计算二者之差的值,并将结果输出给判断器;或者接收来自判断器的第二通知,将差值输出给左移器;判断器用于接收来自加法器的差值,判断该差值是否小于0,如果是,向左移器输出第一通知,否则,向加法器输出第二通知;计数器用于接收来自左移器的计数通知,开始计数,并且在计算值大于位差值时,输出被减数绝对值的低位的位差值加1位到商发生电路。
商发生电路接收来自符号位发生器输出的符号位、以及差发生电路输出的被减数绝对值的低(位差值+1)位,将该被减数的低(位差值+1)位作为商,并根据符号位发生器输出的符号位,输出有符号的商结果;或接收来自判别器的触发,输出0。
结合图1,本发明定点除法器实现运算的方法包括获取除数和被除数的绝对值;根据除数和被除数的符号位,获取商的符号位并存储;判断被除数绝对值是否大于或等于除数绝对值,若是,则计算被除数的最高有效位与除数的最高有效位之差,获得位差,根据商的符号位、除数或被除数绝对值,以及位差,获取被除数与除数的商值;否则,输出零。
其中,获取除数和被除数绝对值的方法为判断所述除数/被除数的最高位的取值,如果所述除数/被除数的最高位为0,则除数/被除数的绝对值等于自身,否则,除数/被除数的绝对值等于除数/被除数的补码。
其中,获取商的符号位的方法为判断所述除数和被除数的最高位是否相等,如果相等,则商的符号位为正,否则,商的符号为负。
其中,根据商的符号位、除数绝对值或被除数绝对值,以及位差,获取被除数与除数的商值的方法位首先,将所述被除数绝对值左移位差位,并计算除数绝对值作为减数与左移后的被除数绝对值作为被减数之差,判断该差值是否小于0,如果是,则将被减数绝对值左移1位,作为下一次减法运算的被减数,否则,将该差值左移1位并加1,作为下一次减法运算的被减数;之后,开始以递增1的方式计数,反复进行步骤C1的减法运算,直到计数器的计数值大于位差值为止,输出被减数绝对值的低位的位差值加1位;最后,将该被减数绝对值的低位的位差值加1位作为商,并根据所述符号位,输出有符号的商结果,具体实现包括判断被除数的绝对值是否小于除数的绝对值,如果是,则商为零;否则,进一步判断所述符号位是否为1,如果是,则商为将数值1左移位差位后减1,所得值与被减数进行逻辑与运算的负值,否则,商为将数值1左移位差位后减1,所得值与被减数进行逻辑与运算的值。
下面举实施例分别详细介绍本发明除法器各组成部分的实现。
图2是本发明符号发生器组成示意图,如图2所示,符号位发生器100主要包括复合器(MUX)21、MUX22及异或门XOR,其中,对于MUX21,当使能信号Call0_RE为0时,输出为除数寄存器Divisor_2[31:1]的符号位,否则,输出为除数Call0 divisor[31:0]的符号位;对于MUX22,当使能信号Call0 RE为0时,输出为被除数Dividend_2[31:1]的符号位,否则,输出为被除数寄存器Call0_dividend[31:0]的符号位,即在使能信号Call0_RE的控制下,分别输出除数和被除数的最高位即符号位,而异或门XOR分别接收来自MUX21和MUX22的除数和被除数的符号位,并进行异或运算后,获得商的符号位,并输出保存在符号位寄存器中。
需要说明的是,使能信号Call0_RE属于系统控制信息,由除法器所属系统逻辑时序控制,这里假设系统信号是预先设置好的。
图3是本发明被除数绝对值发生电路组成示意图,如图3所示,被除数绝对值发生器主要包括MUX31、MUX32、非门NOR及加法器ADD,其中,对于MUX31,当使能信号Call0_RE为0时,输出为除数寄存器Dividend_2[31:1],否则,输出为被除数Call0_dividend[31:1],即在使能信号Call0_RE的控制下,输出来自被除数寄存器的被除数的第1~31位至MUX32的一个输入端,同时将该第1~31位经输入端子驱动同步后输入加法器ADD的第一输入端;非门NOR接收被除数的最低位即第0位,取反输出加法器ADD的第一输入端,并与被除数的第1~31位合并后作为加法器第一输入端的输入信号,该输入信号与加法器ADD的第二输入端的输入信号1相加,并输出至MUX32的另一输入端;MUX32的控制端信号为被除数的第31位信号,若第31位为0,则MUX32输出来自被除数寄存器的被除数的第1至31位,并与经过非门NOR取反的第0位合并后保存在被除数绝对值寄存器中;若第31位为1,则MUX32输出来自加法器ADD输出的被除数的第1至31位,并与经过非门NOR取反的第0位合并后保存在被除数绝对值寄存器中。
图3仅仅是其中一种实现方案,绝对值发生器101的目的就是计算被除数的补码。除数绝对值发生器的实现与图3完全一致,只是对除数计算补码。
图4a是本发明位差发生器中的被除数的最高有效位数发生电路组成示意图,如图4a所示,被除数的最高有效位数发生电路主要包括若干与门AND、MUX41、MUX42及或门OR,处理过程如下被除数暂存寄存器temp Dividend用于保存中间结果,与门AND41的输入是被除数暂存寄存器temp Dividend输出的32位信号的取反即非运算,即当被除数暂存寄存器temp Dividend输出各位都为0时,AND41的输出为1,否则其输出为0。AND42第一输入信号来自系统逻辑时序(图4a中未示出),第二输入信号为AND41的输出信号的非运算,AND42输出的信号分别送给AND43和或门OR,AND43的输出作为MUX41的选通信号,当该选通信号为0时,MUX41输出为0,否则,MUX41的输出为ADD41的输出信号,每次MUX41的输出都保存到寄存器m中。加法器ADD41的输入分别来自寄存器m的输出和AND42的输出,ADD41的输出发送给MUX41的其中一个输入端,当MUX41的选通信号为1时,将该输入端的信号发送给寄存器m。通过该电路实现被除数的最高有效位数的统计,并将结果保存在寄存器m中。
图4b是本发明位差发生器中的位差发生电路组成示意图,如图4b所示,位差发生电路主要包括若干加法器ADD、MUX43和MUX44,处理过程如下ADD42的第一输入来自寄存器n的输出,第二输入来自寄存器m的输出,即实现n与m之差的操作,并将结果输出存储在位差寄存器M_N中。图4b中的ADD43的作用与ADD41类似,同样,MUX43的作用也与MUX44类似,用于获取除数的最高有效位数,这里不再赘述。
图5a是本发明商发生器中的除数与被除数之差发生电路组成示意图,如图5a所示,处理过程如下复合器MUX[31:0]的第一输入端的数据来自除数绝对值寄存器,关于除数绝对值发生电路,与图3描述的被除数绝对值发生电路类似,这里不再赘述。复合器MUX[31:0]的第二输入端的数据来自左移器LSH,当复合器MUX[31:0]的选通信号为0时,复合器MUX[31:0]输出除数绝对值到减数寄存器subtrahend[31:0]中,否则,将左移器LSH的输出数据输出存储在减数寄存器中,而左移器LSH的第一输入来自减数寄存器,第二输入来自M_N寄存器,因此,这部分电路的目的是首先将除数的绝对值存入减数寄存器,然后,通过LSH对减数寄存器中的数据左移M_N位,并将结果再次存入减数寄存器;加法器ADD[31:0]用于进行被减数minuend[31:0]与减数subtrahend[31:0]之差的运算,输出结果保存在差寄存器差寄存器alu[31:0]中。比较器LT用于判断位差寄存器中的M_N[5:0]是否大于计数寄存器中的i[5:0],如果大于,则通过与门AND
输出控制信号,通知alu[31:0]接收ADD[31:0]的输出数据。两个与门AND的目的是判断alu[31:0]的最高位是否为1,如果是,则通过多路复合器MUX[30:0]输出alu[31:0]左移1位的数据并存储在被减数寄存器中;否则,输出alu[31:0]左移1位后加1,并将结果通过MUX[30:0]发送存储在被减数寄存器中。
图5b是本发明商发生器中的商发生电路组成示意图,如图5b所示,处理过程如下与门AND2和AND3用于判断符号位寄存器Sign
的输出是否为0,如果是,则控制多路复合器MUX1[31:0]选通输出来自AND4[31:0]的数据,否则,MUX1[31:0]选通输出来自ADD3[31:0]的数据。ADD1[5:0]、左移器LSH、ADD2[31:0]和AND4[31:0]的目的是实现被除数minuend&((1<<(M_N+1))-1)的运算,其中&表示逻辑与。而非门NOR
、输入端子IN[31:1]和ADD3[31:0]的目的是为了获得-(minuend&((1<<(M_N+1))-1))即ADD3[31:0]发送给MUX1[31:0]的数据为-(minuend&((1<<(M_N+1))-1))。MUX1[31:0]的第三组输入端的选通信号来自一个比较器,图5b中未示出,该比较器判断除数的绝对值是否小于被除数,如果是,则该比较器输出为0,取非后作为MUX1[31:0]的第三组输入端子的选通信号,而该第三组输入端子输出的数据为0。
因此图5b所示商发生电路的处理过程是判断被除数的绝对值是否小于除数,如果是,则MUX1[31:0]输出的商为0;否则,进一步判断Sign
是否为1,如果是,则MUX1[31:0]输出的商为-minuend&((1<<(M_N+1))-1),即所述将预设32位数值1左移位差位后减一,所得值与被减数进行逻辑与运算的负值;否则,Sign
为0,则MUX1[31:0]输出的商为minuend&((1<<(M_N+1))-1)。即所述将预设32位数值1左移位差位后减一,所得值与被减数进行逻辑与运算的值。图5b中的MUX2实际就是图5a中的MUX。以上只是给出了其中一种实施例的电路图实现方式,并不用于限定本发明的除法器。本发明强调的是,本发明除法器把除法运算转化化成移位运算和减法运算,与现有技术相比,便于硬件电路的实现,较少了所用器件门数,缩短了运算时间,提高了运算效率,取得了较好的效果。
本发明所述除法器与Celoxica公司的Handel C的逻辑电路开发工具中提供的除法模块相比较其结果如表1所示。对于同样是32位除法运算,本发明所消耗的硬件资源只有上述除法模块的14%,所需要的最大逻辑路径延迟时间是它的3.8%。

表1以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种定点除法器,其特征在于,该定点除法器包括符号发生器(100),接收除数和被除数,根据除数和被除数的符号位获得商的符号位并输出;绝对值发生器(101),接收除数和被除数,获取除数和被除数的绝对值,并输出;判别器(102),分别接收除数绝对值和被除数绝对值,判断被除数绝对值是否大于或等于除数绝对值,若是,则触发位差发生器(103);否则,触发商发生器(104);位差发生器(103),分别接收除数和被除数绝对值,计算被除数的最高有效位与除数的最高有效位之差,获得被除数绝对值与除数绝对值的位差并输出;商发生器(104),接收商的符号位、除数的绝对值,被除数的绝对值,以及位差,输出有符号的商结果;或者接收来自判别器(102)的触发,输出零。
2.根据权利要求1所述的定点除法器,其特征在于,所述定点除法器还包括除数绝对值寄存器和被除数绝对值寄存器;所述绝对值发生器(101)包括除数绝对值发生器和被除数绝对值发生器;所述除数绝对值发生器,用于接收除数,获取除数绝对值,并将所述除数绝对值输出到除数绝对值寄存器;所述被除数绝对值发生器,用于接收被除数,获取被除数绝对值,并将所述被除数绝对值输出到被除数绝对值寄存器中。
3.根据权利要求1或2所述的定点除法器,其特征在于,所述位差发生器(103)包括最高有效位数发生电路和位差发生电路;所述最高有效位数发生电路,用于接收除数绝对值或被除数绝对值,分别获取除数或被除数的最高有效位数并输出;所述位差发生电路,用于接收除数的最高有效位数和被除数的最高有效位数,计算被除数的最高有效位与除数的最高有效位的数位之差,获得被除数绝对值与除数绝对值的位差,并将所述位差输出到位差寄存器中。
4.根据权利要求3所述的定点除法器,其特征在于,所述定点除法器还包括第一寄存器和第二寄存器;所述最高有效位发生电路包括除数最高有效位数发生电路和被除数最高有效位数发生电路;所述除数最高有效位数发生电路,用于接收除数绝对值,获取除数的最高有效位数,并将所述除数的最高有效位数输出到第一寄存器中;所述被除数最高有效位数发生电路,用于接收被除数绝对值,获取被除数的最高有效位数,并将所述被除数的最高有效位数输出到第二寄存器中。
5.根据权利要求1或2所述的定点除法器,其特征在于,所述商发生器(104)包括差发生电路和商发生电路;所述差发生电路至少包括加法器、判断器、左移器和计数器;其中,所述左移器,用于接收除数绝对值、被除数绝对值、以及位差,将被除数绝对值左移位差位,并输出给加法器;或者接收来自判断器的第一通知,自身输出的被减数绝对值左移1位,并将结果输出给加法器;或者接收来自加法器的差值,将差值左移1位并加1,并将结果输出给加法器,同时向计数器发送计数通知;所述加法器,用于接收除数绝对值,和来自左移器输出的值,计算二者之差的值,并将结果输出给判断器;或者接收来自判断器的第二通知,将差值输出给左移器;所述判断器,用于接收来自加法器的差值,判断该差值是否小于0,如果是,向左移器输出第一通知,否则,向加法器输出第二通知;所述计数器,用于接收来自左移器的计数通知,开始计数,并且在计算值大于位差值时,输出被减数绝对值的低位的位差值加1位到商发生电路;所述商发生电路,接收商的符号位、以及差发生电路输出的被减数的低位的位差值加1位,将该被减数的低位的位差值加1位作为商,并根据符号位发生器输出的符号位,输出有符号的商结果;或接收来自所述判别器的触发,输出零。
6.根据权利要求1所述的定点除法器,其特征在于,所述定点除法器还包括存储除数的除数寄存器,和存储被除数的被除数寄存器。
7.一种定点除法器实现运算的方法,其特征在于,包括以下步骤A.获取除数和被除数的绝对值;根据除数和被除数的符号位,获取商的符号位并存储;B.判断被除数绝对值是否大于或等于除数绝对值,若是,则计算被除数的最高有效位与除数的最高有效位之差,获得位差,进入步骤C;否则,输出零并结束;C.根据商的符号位、除数或被除数绝对值,以及位差,获取被除数与除数的商值。
8.根据权利要求7所述的方法,其特征在于,步骤A中所述获取除数和被除数绝对值的方法为判断所述除数或被除数的最高位的取值,如果所述除数或被除数的最高位为0,则除数或被除数的绝对值等于自身,否则,除数或被除数的绝对值等于除数或被除数的补码。
9.根据权利要求7所述的方法,其特征在于,步骤A中所述获取商的符号位的方法为判断所述除数和被除数的最高位是否相等,如果相等,则商的符号位为正,否则,商的符号为负。
10.根据权利要求7所述的方法,其特征在于,所述步骤C具体包括C1.将所述被除数绝对值左移位差位,并计算除数绝对值作为减数与左移后的被除数绝对值作为被减数之差,判断该差值是否小于0,如果是,则将被减数左移1位,作为下一次减法运算的被减数,否则,将该差值左移1位并加1,作为下一次减法运算的被减数;C2.开始以递增1的方式计数,反复进行步骤C1的减法运算,直到计数器的计数值大于位差值为止,输出被减数绝对值的低位的位差值加1位;C3.将该被减数绝对值的低位的位差值加1位作为商,并根据所述符号位,输出有符号的商结果。
11.根据权利要求10所述的方法,其特征在于,所述步骤C3具体包括判断被除数的绝对值是否小于除数的绝对值,如果是,则商为零;否则,进一步判断所述符号位是否为1,如果是,则商为将数值1左移位差位后减1,所得值与被减数进行逻辑与运算的负值,否则,商为将数值1左移位差位后减1,所得值与被减数进行逻辑与运算的值。
全文摘要
本发明公开了一种定点除法器,包括符号发生器、绝对值发生器、判别器、位差发生器,以及商发生器。本发明还公开了一种所述定点除法器实现运算的方法,该方法包括获取除数和被除数的绝对值,根据除数和被除数的符号位,获取商的符号位并存储;判断被除数绝对值是否大于或等于除数绝对值,若是,则计算被除数的最高有效位与除数的最高有效位的数位之差,获得位差,并根据商的符号位、除数/被除数绝对值,以及位差,获取被除数与除数的商值;否则输出为零。本发明定点除法器把除法运算转化成移位运算和减法运算,与现有技术相比,便于硬件电路的实现,减少了所用器件门数,缩短了运算时间,提高了运算效率,取得了较好的效果。
文档编号G06F7/487GK1952875SQ20061013970
公开日2007年4月25日 申请日期2006年9月18日 优先权日2006年9月18日
发明者张江山, 鲁平, 王琳 申请人:华为技术有限公司, 华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1