CN114895868A - 基于两位商计算的除法运算单元及除法器 - Google Patents
基于两位商计算的除法运算单元及除法器 Download PDFInfo
- Publication number
- CN114895868A CN114895868A CN202210458292.8A CN202210458292A CN114895868A CN 114895868 A CN114895868 A CN 114895868A CN 202210458292 A CN202210458292 A CN 202210458292A CN 114895868 A CN114895868 A CN 114895868A
- Authority
- CN
- China
- Prior art keywords
- bit
- multiplexer
- value
- dislocation
- quotient
- 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.)
- Pending
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
- 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/50—Adding; Subtracting
Abstract
本发明公开了一种基于两位商计算的除法运算单元及除法器,除法运算单元包括:逻辑移位模块,将第一输入数值左移生成第一左移数值;第一减法器,用于计算第二输入数值与第一左移数值的第一差值以及生成第一错位位;第二减法器,计算第二输入数值与翻一倍后的第一左移数值的第二差值以及生成第二错位位;第三减法器,计算第二输入数值与翻两倍后的第一左移数值的第三差值以及生成第三错位位;余数生成器,根据第一错位位、第二错位位以及第三错位位从第一差值、第二差值、第三差值以及第二输入值从选取一个值作为余数;两位商生成器,根据第一错位位、第二错位位以及第三错位位从11、10、01以及00中选取一个值作为两位商。
Description
技术领域
本发明涉及数字电路技术领域,尤其涉及一种基于两位商计算的除法运算单元及除法器。
背景技术
除法器是算术运算电路中最常用的电路之一,其运算过程本质上是从被除数的最高位开始,循环地进行比较运算和减法运算,计算出来每一位对应的商和余数。设其中某位的减法运算的被减数为n,减数为d,商位为q,余数为r,则其中某位的运算过程可表示如图1,图中小圆圈表示对信号进行取反操作。LSHIFT模块(逻辑移位模块)用于对除数进行左移操作;左移的位数为当前计算的第几位商相关。即最低商为第1位时,当图1所示的除法运算单元计算到商的第i位时,LSHIFT模块左移i-1位。SUB模块(减法器)用于减法操作;即计算n-d’,其输出co为符号位,输出o为n-d’的差。复用器模块用于选择输出的余数,当q为1时,输出SUB模块计算得出的差;当q为0时,输出为n。c为减法运算输出的符号位(即错位位),设图1中d经过LSHIFT模块处理的结果为d’,则,当n>=d’时,n-d’>=0,符号位c为0,商q为1;当n<d’时,n-d’<0,符号位c为1,商q为0;可得,q等于c的取反操作。以图2所示的SUB1模块代替图1所示的除法运算单元,那么一个完整的除法运算,可通过级联图2中的SUB1模块来完成的。例如,一8位除法运算可通过级联8个SUB1模块来实现,如图3所示,q[7:0]=a[7:0]/b[7:0],在图3中,每个SUB1模块中LSHIFT左移的位数,与当前SUB1模块计算的第几位商是相关的。即从左到右,第1个SUB1中除数左移7位(被除数位数-1);第2个SUB1中除数左移6位(被除数位数-2);依此类推;最后一个SUB1中除数左移0位。
对于一个给定的除数运算,被除数位数是已知的,则需要的SUB1模块个数也是已知的,因为SUB1模块个数等于被除数位数。那么每个SUB1中LSHIFT左移的位数也是已知的,从高位至低位依次递减。在集成电路领域,固定位数的位移操作不需要占用额外的资源,仅通过调用电路的连接关系即可实现。
对于被除数为m位二进制数的除法运算来说,需要级联m个图2中的运算单元。而图2中的运算单元需要经过一级SUB和一级MUX,即需要经过2级。因此,它对应的逻辑级数为2m。逻辑级数越长,代表信号经过该路径时所花费的时间越长,即时延越长。在FPGA设计中,通常对数据的时延有一定的要求。当设计中对时延的要求较高(即要求时延较短)时,采用级联图2中的运算单元的实现方式就不一定能满足设计的要求,若不能满足时延的要求,就可能导致设计在实际运行时产生不可预知的情况,因此如何降低除法运算的时延是一个亟需解决的问题。
发明内容
本发明实施例提供一种基于两位商计算的除法运算单元及除法器,能一次计算两位商,减少除法运算时所需经过的逻辑数,进而降低运算时延。
本发明一实施例提供了一种基于两位商计算的除法运算单元,包括:逻辑移位模块、第一减法器、第二减法器、第三减法器、余数生成器以及两位商生成器;
所述逻辑移位模块,用于接收第一输入数值,并将第一输入数值进行左移操作生成第一左移数值;
所述第一减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与所述第一左移数值的第一差值以及生成第一错位位,继而将所述第一差值以及所述第一错位位输出至余数生成器,将所述第一错位位输出至所述两位商生成器;
所述第二减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与翻一倍后的第一左移数值的第二差值以及生成第二错位位,继而将所述第二差值以及所述第二错位位输出至余数生成器,将所述第二错位位输出至两位商生成器;
所述第三减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与翻两倍后的第一左移数值的第三差值以及生成第三错位位,继而将所述第三差值以及所述第三错位位输出至余数生成器,将所述第三错位位输出至两位商生成器;
所述余数生成器,用于在第三错位位为0时,将第三差值作为余数;在第三错位位为1且第二错位位为0时,将第二差值作为余数;在第三错位位为1、第二错位位为1且第一错位位为0时,将第一差值作为余数;在第三错位位为1、第二错位位为1且第一错位位为1时,将第二输入值作为余数;
所述两位商生成器,用于在第三错位位为0时,将11作为两位商;在第三错位位为1且第二错位位为0时,将10作为两位商;在第三错位位为1、第二错位位为1且第一错位位为0时,将01作为两位商;在第三错位位为1、第二错位位为1且第一错位位为1时,将00作为两位商。
进一步的,所述余数生成器以及所述两位商生成器均为四选一多路复用器。
进一步的,所述余数生成器,包括:第一二选一多路复用器、第二二选一多路复用器以及第三二选一多路复用器;
所述第一二选一多路复用器的控制输入端用于接收第一错位位,所述第一二选一多路复用器的第一输入端用于接收第一差值,所述第一二选一多路复用器的第二输入端用于接收第二输入数值,所述第一二选一多路复用器的输出端与第二二选一多路复用器的第二输入端连接;当第一错位位为0时,所述第一二选一多路复用器将其第一输入端的接收值作为输出;当第一错位位为1时,所述第一二选一多路复用器将其第二输入端的接收值作为输出;
所述第二二选一多路复用器的控制输入端用于接收第二错位位,所述第二二选一多路复用器的第一输入端用于接收第二差值,所述第二二选一多路复用器的第二输入端用于接收所述第一二选一多路复用器的输出值,所述第二二选一多路复用器的输出端与第三二选一多路复用器的第二输入端连接;当第二错位位为0时,所述第二二选一多路复用器将其第一输入端的接收值作为输出,当第二错位位为1时,所述第一二选一多路复用器将其第二输入端的接收值作为输出;
所述第三二选一多路复用器的控制输入端用于接收第三错位位,所述第三二选一多路复用器的第一输入端用于接收第三差值,所述第三二选一多路复用器的第二输入端用于接收所述第二二选一多路复用器的输出值,所述第三二选一多路复用器的输出端输出余数;当第三错位位为0时,所述第三二选一多路复用器将其第一输入端的接收值作为输出,当第三错位位为1时,所述第三二选一多路复用器将其第二输入端的接收值作为输出。
进一步的,所述两位商生成器,包括:第四二选一多路复用器、第五二选一多路复用器以及第六二选一多路复用器;
所述第四二选一多路复用器的控制输入端用于接收第一错位位,所述第四二选一多路复用器的第一输入端用于接收01,所述第四二选一多路复用器的第二输入端用于接收00,所述第四二选一多路复用器的输出端与第五二选一多路复用器的第二输入端连接;当第一错位位为0时,所述第四二选一多路复用器将其第一输入端的接收值作为输出,当第一错位位为1时,所述第四二选一多路复用器将其第二输入端的接收值作为输出;
所述第五二选一多路复用器的控制输入端用于接收第二错位位,所述第五二选一多路复用器的第一输入端用于接收10,所述第五二选一多路复用器的第二输入端用于接收第四二选一多路复用器的输出值,所述第五二选一多路复用器的输出端与第六二选一多路复用器的第二输入端连接;当第二错位位为0时,所述第五二选一多路复用器将其第一输入端的接收值作为输出,当第二错位位为1时,所述第五二选一多路复用器将其第二接收端的接收值作为输出;
所述第六二选一多路复用器的控制输入端用于接收第三错位位,所述第六二选一多路复用器的第一输入端用于接收11,所述第六二选一多路复用器的第二输入端用于接收第五二选一多路复用器的输出值,所述第六二选一多路复用器的输出端输出两位商;当第三错位位为0时,所述第六二选一多路复用器将其第一输入端的接收值作为输出,当第三错位位为1时,所述第六二选一多路复用器将其第二输入端的接收值作为输出。
在上述实施例的基础上本发明另一实施例提供了一种基于两位商计算的除法器,包括:上述任意一项所述的除法运算单元,且除法运算单元的个数为M/2;其中,M为被除数的位数,且M为偶数;
各除法运算单元级联后构成所述除法器;其中,各级除法运算单元的第一输入值为除数,第一级除法运算单元的第二输入值为被除数,其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,最后一级除法运算单元所生成的余数为被除数与除数相除后的余数,各级除法运算单元所生成的两位商构成被除数与除数相除后的商;各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
在上述实施例的基础上本发明另一实施例提供了另一种基于两位商计算的除法器,包括:若干上述任意一项所述的除法运算单元以及一个一位商除法运算单元,且所述除法运算单元的个数为[M/2];其中,M为被除数的位数,且M为奇数;
各所述除法运算单元、所述一位商除法运算单元级联后构成所述除法器,且所述一位商除法运算单元位于最后一级;
所述一位商除法运算单元,用于接收除数以及上一级除法运算单元所生成的余数,并生成第四错位位以及计算上一级除法运算单元所生成的余数与除数的差值,生成第四差值,继而在第四错位位为1时,生成一位商0,在第四错位位为0时,生成一位商1;
其中,各级除法运算单元的第一输入值为除数,第一级除法运算单元的第二输入值为被除数,其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,一位商除法运算单元所生成的余数为被除数与除数相除后的余数,各级除法运算单元所生成的两位商以及一位商除法运算单元所生成的一位商构成被除数与除数相除后的商;各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
进一步的,所述一位商除法运算单元:包括第四减法器、第七二选一多路复用器以及反相器;
所述第四减法器,用于接收除数以及上一级除法运算单元所生成的余数,并生成第四错位位以及计算上一级除法运算单元所生成的余数与除数的差值,生成第四差值,并将第四差值输出至所述第七二选一多路复用器的第一输入端,将第四错位位输出至所述反相器以及所述第七二选一多路复用器的控制输入端;
所述第七二选一多路复用器的第二输入端用于接收上一级除法运算单元所生成的余数,所述第七二选一多路复用器的输出端用于输出被除数与除数相除后的余数,且在所述第四错位位为0时,将其第一输入端的接收值作为输出,在所述第四错位位为1时,将其第二输入端的接收值作为输出;
所述反相器,用于对第四错位位进行取反,生成一位商。
通过实施本发明实施例具有如下有益效果,本发明实施例提供了一种基于两位商计算的除法运算单元及除法器,一个所述除法运算单元在进行计算时需经过一级减法器以及一级多路复用器,但是可以计算两位商,那么对于一个8位数的除法运算只需要级联4个除法运算单元即可实现8位数的除法运算,其一共的逻辑数为8,相比于基于现有的除法运算单元实现8位数的除法运算来说,逻辑数少了一倍,能够大幅度降低运算所带来的时延。
附图说明
图1是现有技术中除法运算单元的结构示意图。
图2是现有技术中除法运算单元的等效结构示意图。
图3是现有技术中一8位除法器的结构示意图。
图4是本发明一实施例提供的除法运算单元的结构示意图。
图5是本发明一实施例提供的余数生成器的具体结构示意图。
图6是本发明一实施例提供的两位商生成器的结构示意图。
图7是本发明一实施例提供的一除法运算单元的等效结构示意图。
图8是本发明一实施例提供的一除法器的结构示意图。
图9是本发明一实施例提供的一位商除法运算单元的结构示意图。
图10是本发明一实施例提供的一位商除法运算单元的等效结构示意图。
图11是本发明一实施例提供的另一除法器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图4,是本发明一实施例提供的一种基于两位商计算的除法运算单元,包括:逻辑移位模块(图中的LSHIFT模块)、第一减法器、第二减法器、第三减法器、余数生成器以及两位商生成器;
所述逻辑移位模块,用于接收第一输入数值,并将第一输入数值进行左移操作生成第一左移数值;
所述第一减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与所述第一左移数值的第一差值以及生成第一错位位,继而将所述第一差值以及所述第一错位位输出至余数生成器,将所述第一错位位输出至所述两位商生成器;
所述第二减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与翻一倍后的第一左移数值的第二差值以及生成第二错位位,继而将所述第二差值以及所述第二错位位输出至余数生成器,将所述第二错位位输出至两位商生成器;
所述第三减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与翻两倍后的第一左移数值的第三差值以及生成第三错位位,继而将所述第三差值以及所述第三错位位输出至余数生成器,将所述第三错位位输出至两位商生成器;
所述余数生成器,用于在第三错位位为0时,将第三差值作为余数;在第三错位位为1且第二错位位为0时,将第二差值作为余数;在第三错位位为1、第二错位位为1且第一错位位为0时,将第一差值作为余数;在第三错位位为1、第二错位位为1且第一错位位为1时,将第二输入值作为余数;
所述两位商生成器,用于在第三错位位为0时,将11作为两位商;在第三错位位为1且第二错位位为0时,将10作为两位商;在第三错位位为1、第二错位位为1且第一错位位为0时,将01作为两位商;在第三错位位为1、第二错位位为1且第一错位位为1时,将00作为两位商。
优选的,所述余数生成器以及所述两位商生成器均为四选一多路复用器。
在这一实施例中,假定第一输入数值为图示所示的d,第二输入数值为图示所示的n,第一输入数值经过逻辑移位处理后得到的第一移位数值为d',则第一减法器用于计算n-d',并通过其输出端“o”输出第一差值r1至余数生成器,通过其输出端“co”输出第一错位位c1(当n-d'≥0时,c1=0,当n-d'<0时,c1=1)至余数生成器以及两位商生成器;第二减法器用于计算n-2*d',并通过其输出端“o”输出第二差值r2至余数生成器,通过其输出端“co”输出第二错位位c2(当n-2*d'≥0时,c2=0,当n-2*d'<0时,c2=1)至余数生成器以及两位商生成器;第三减法器用于计算n-3*d',并通过其输出端“o”输出第三差值r3至余数生成器,通过其输出端“co”输出第三错位位c3(当n-3*d'≥0时,c3=0,当n-3*d'<0时,c3=1)至余数生成器以及两位商生成器;上述三个减法器并行运行计算,互不干扰。
余数生成器以及两位商生成器均为四选一的多路复用器;
余数生成器生成余数的逻辑为:在第c3=0时,将r3作为余数r输出;在c3=1且c2=0时,将r2作为余数r输出;在c3=1、c2=1且c1=0时,将r1作为余数r输出;在c3=1、c2=1且c1=1时,将n作为余数r输出;
两位商生成器生成两位商的逻辑为:在第c3=0时,将11作为两位商q输出;在c3=1且c2=0时,将10作为两位商q输出;在c3=1、c2=1且c1=0时,将01作为两位商q输出;在c3=1、c2=1且c1=1时,将00作为两位商q输出。
根据上述逻辑,图4所示的除法运算单元可实现一次性计算两位商的功能。需要说明的是,逻辑移位模块对第一输入数值左移的位数与除法运算单元计算到第几位商有关,以商的最低位为第1位商,当除法运算单元计算到第i位商时,逻辑移位模块对第一输入数值左移i-1位。则,对于一个8位二进制的除法运算,当除法运算单元计算第8位和第7位的商时,此时计算到了第7位商,则逻辑移位单元控制第一数值左移7-1=6位,当除法运算单元计算第6位和第5位的商时,此时计算到了第5位商,逻辑移位单元控制第一数值左移5-1=4位,当除法运算单元计算第4位和第3位的商时,此时计算到了第3位商,逻辑移位单元控制第一数值左移3-1=2位,当除法运算单元计算第2位和第1位的商时,此时计算到了第1位商,逻辑移位单元控制第一数值左移1-1=0位。此外,也可以根据除法运算单元在由若干个除法运算单元级联而成的除法器的层级的级数确定需要左移的位数,例如各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
此外,在FPGA器件中,减法运算可以通过进位链资源来实现,第一减法器运算n–d'可以直接使用一组进位链资源实现。第二减法器运算n–2*d',可以转换成n–{d',0},即将在左移一位,低位补0;此时同样可以使用一组进位链资源实现。第三减法运算n–3*d',可以转换成n–{d',0}–d';对于支持3输入减法的进位链资源的FPGA器件来说,同样可以实现。
如图5所示,在一个优选的实施例中,余数生成器通过3个二选一多路复用器级联后构成一个四选一多路复用器,具体包括:第一二选一多路复用器1、第二二选一多路复用器2以及第三二选一多路复用器3;
所述第一二选一多路复用器的控制输入端(图示中的“s”端)用于接收第一错位位,所述第一二选一多路复用器的第一输入端(图示中的“0”端)用于接收第一差值,所述第一二选一多路复用器的第二输入端(图示中的“1”端)用于接收第二输入数值,所述第一二选一多路复用器的输出端与第二二选一多路复用器的第二输入端连接;当第一错位位为0时,所述第一二选一多路复用器将其第一输入端的接收值作为输出;当第一错位位为1时,所述第一二选一多路复用器将其第二输入端的接收值作为输出;
所述第二二选一多路复用器的控制输入端用于接收第二错位位,所述第二二选一多路复用器的第一输入端用于接收第二差值,所述第二二选一多路复用器的第二输入端用于接收所述第一二选一多路复用器的输出值,所述第二二选一多路复用器的输出端与第三二选一多路复用器的第二输入端连接;当第二错位位为0时,所述第二二选一多路复用器将其第一输入端的接收值作为输出,当第二错位位为1时,所述第一二选一多路复用器将其第二输入端的接收值作为输出;
所述第三二选一多路复用器的控制输入端用于接收第三错位位,所述第三二选一多路复用器的第一输入端用于接收第三差值,所述第三二选一多路复用器的第二输入端用于接收所述第二二选一多路复用器的输出值,所述第三二选一多路复用器的输出端输出余数;当第三错位位为0时,所述第三二选一多路复用器将其第一输入端的接收值作为输出,当第三错位位为1时,所述第三二选一多路复用器将其第二输入端的接收值作为输出。
如图6所示,在一个优选的实施例中,两位商生成器也通过3个二选一多路复用器级联后构成一个四选一多路复用器,具体包括:
第四二选一多路复用器4、第五二选一多路复用器5以及第六二选一多路复用器6;
所述第四二选一多路复用器的控制输入端用于接收第一错位位,所述第四二选一多路复用器的第一输入端用于接收01,所述第四二选一多路复用器的第二输入端用于接收00,所述第四二选一多路复用器的输出端与第五二选一多路复用器的第二输入端连接;当第一错位位为0时,所述第四二选一多路复用器将其第一输入端的接收值作为输出,当第一错位位为1时,所述第四二选一多路复用器将其第二输入端的接收值作为输出;
所述第五二选一多路复用器的控制输入端用于接收第二错位位,所述第五二选一多路复用器的第一输入端用于接收10,所述第五二选一多路复用器的第二输入端用于接收第四二选一多路复用器的输出值,所述第五二选一多路复用器的输出端与第六二选一多路复用器的第二输入端连接;当第二错位位为0时,所述第五二选一多路复用器将其第一输入端的接收值作为输出,当第二错位位为1时,所述第五二选一多路复用器将其第二接收端的接收值作为输出;
所述第六二选一多路复用器的控制输入端用于接收第三错位位,所述第六二选一多路复用器的第一输入端用于接收11,所述第六二选一多路复用器的第二输入端用于接收第五二选一多路复用器的输出值,所述第六二选一多路复用器的输出端输出两位商;当第三错位位为0时,所述第六二选一多路复用器将其第一输入端的接收值作为输出,当第三错位位为1时,所述第六二选一多路复用器将其第二输入端的接收值作为输出。
为方便后续表述将图4所示的除法运算单元以图7所示的除法运算单元SUB2进行替代。
在上述除法运算单元实施例的基础上,本发明另一实施例提供了一种基于两位商计算的除法器,包括:上述任意一项所述的除法运算单元,且除法运算单元的个数为M/2;其中,M为被除数的位数,且M为偶数;
各除法运算单元级联后构成所述除法器;其中,各级除法运算单元的第一输入值为除数,第一级除法运算单元的第二输入值为被除数,其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,最后一级除法运算单元所生成的余数为被除数与除数相除后的余数,各级除法运算单元所生成的两位商构成被除数与除数相除后的商;各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
具体的,如图8所示,一个8位除法器可由4个图7所示的除法运算单元级联而成,被除数a[7:0]和除数b[7:0]均为8位,各级除法运算单元的第一输入值均为除数b[7:0],第一级除法运算单元的第二输入值即为被除数a[7:0],其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,最后一级除法运算单元最终所输出的余数即为,被除数a[7:0]和除数b[7:0]相除后的余数,第一级除法运算单元所计算出的两位商q[7:6],第二级除法运算单元所计算出的两位商q[5:4],第三级除法运算单元所计算出的两位商q[3:2],最后一级除法运算单元所计算出的两位商q[1:0]构成被除数a[7:0]和除数b[7:0]相除后的商q[7:0],从而完成两位商的计算,在计算过程中,第一级除法运算单元中逻辑移位单元将除数b[7:0]左移6位,第二级除法运算单元中逻辑移位单元将除数b[7:0]左移4位,第三级除法运算单元中逻辑移位单元将除数b[7:0]左移2位,第四级除法运算单元中逻辑移位单元将除数b[7:0]左移0位。
对于一个“M位除以M位,商为M位”的除法运算来说,这一实施例所提供的除法器能够对M为偶数时的除法运算进行计算,其逻辑数为M;
如图9-11所示,在上述除法运算单元实施例的基础上,本发明另一实施例提供了一种基于两位商计算的除法器,包括:若干上述任意一项所述的除法运算单元以及一个一位商除法运算单元,且所述除法运算单元的个数为[M/2](表示取整,例如M为7时,[M/2]=3);其中,M为被除数的位数,且M为奇数;
各所述除法运算单元、所述一位商除法运算单元级联后构成所述除法器,且所述一位商除法运算单元位于最后一级;
所述一位商除法运算单元,用于接收除数以及上一级除法运算单元所生成的余数,并生成第四错位位以及计算上一级除法运算单元所生成的余数与除数的差值,生成第四差值,继而在第四错位位为1时,生成一位商0,在第四错位位为0时,生成一位商1;
其中,各级除法运算单元的第一输入值为除数,第一级除法运算单元的第二输入值为被除数,其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,一位商除法运算单元所生成的余数为被除数与除数相除后的余数,各级除法运算单元所生成的两位商以及一位商除法运算单元所生成的一位商构成被除数与除数相除后的商;各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
优选的,如图9所示,所述一位商除法运算单元:包括第四减法器、第七二选一多路复用器7以及反相器8;
所述第四减法器,用于接收除数以及上一级除法运算单元所生成的余数,并生成第四错位位以及计算上一级除法运算单元所生成的余数与除数的差值,生成第四差值,并将第四差值输出至所述第七二选一多路复用器的第一输入端,将第四错位位输出至所述反相器以及所述第七二选一多路复用器的控制输入端;
所述第七二选一多路复用器的第二输入端用于接收上一级除法运算单元所生成的余数,所述第七二选一多路复用器的输出端用于输出被除数与除数相除后的余数,且在所述第四错位位为0时,将其第一输入端的接收值作为输出,在所述第四错位位为1时,将其第二输入端的接收值作为输出;
所述反相器,用于对第四错位位进行取反,生成一位商。
为方便后续表述将图9所示的一位商除法运算单元以图10所示的SUB3进行替代。
具体的,如图11所示,一个7位除法器可由3个图6所示的除法运算单元以及图10所示的一位商除法运算单元(其具体内部结构如图9所示)级联而成,被除数a[6:0]和除数b[6:0]均为7位,各级除法运算单元的第一输入值均为除数b[6:0],第一级除法运算单元的第二输入值即为被除数a[6:0],其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,而一位商除法运算单元最终所输出的余数即为,被除数a[6:0]和除数b[6:0]相除后的余数,第一级除法运算单元所计算出的两位商q[6:5],第二级除法运算单元所计算出的两位商q[4:3],第三级除法运算单元所计算出的两位商q[2:1],第四级的一位商除法运算单元所计算出的一位商q[0]构成被除数a[6:0]和除数b[6:0]相除后的商q[6:0],在计算过程中,第一级除法运算单元中逻辑移位单元将除数b[6:0]左移5位,第二级除法运算单元中逻辑移位单元将除数b[6:0]左移3位,第三级除法运算单元中逻辑移位单元将除数b[6:0]左移1位。
对于一个“M位除以M位,商为M位”的除法运算来说,这一实施例所提供的除法器能够对M为奇数时的除法运算进行计算,其逻辑数为M+1,相较于现有的除法器也能够明显降低逻辑数,继而减少计算时延。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (7)
1.一种基于两位商计算的除法运算单元,其特征在于,包括:逻辑移位模块、第一减法器、第二减法器、第三减法器、余数生成器以及两位商生成器;
所述逻辑移位模块,用于接收第一输入数值,并将第一输入数值进行左移操作生成第一左移数值;
所述第一减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与所述第一左移数值的第一差值以及生成第一错位位,继而将所述第一差值以及所述第一错位位输出至余数生成器,将所述第一错位位输出至所述两位商生成器;
所述第二减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与翻一倍后的第一左移数值的第二差值以及生成第二错位位,继而将所述第二差值以及所述第二错位位输出至余数生成器,将所述第二错位位输出至两位商生成器;
所述第三减法器,用于接收第一左移数值以及第二输入数值,计算所述第二输入数值与翻两倍后的第一左移数值的第三差值以及生成第三错位位,继而将所述第三差值以及所述第三错位位输出至余数生成器,将所述第三错位位输出至两位商生成器;
所述余数生成器,用于在第三错位位为0时,将第三差值作为余数;在第三错位位为1且第二错位位为0时,将第二差值作为余数;在第三错位位为1、第二错位位为1且第一错位位为0时,将第一差值作为余数;在第三错位位为1、第二错位位为1且第一错位位为1时,将第二输入值作为余数;
所述两位商生成器,用于在第三错位位为0时,将11作为两位商;在第三错位位为1且第二错位位为0时,将10作为两位商;在第三错位位为1、第二错位位为1且第一错位位为0时,将01作为两位商;在第三错位位为1、第二错位位为1且第一错位位为1时,将00作为两位商。
2.如权利要求1所述的基于两位商计算的除法运算单元,其特征在于,所述余数生成器以及所述两位商生成器均为四选一多路复用器。
3.如权利要求2所述的基于两位商计算的除法运算单元,其特征在于,所述余数生成器,包括:第一二选一多路复用器、第二二选一多路复用器以及第三二选一多路复用器;
所述第一二选一多路复用器的控制输入端用于接收第一错位位,所述第一二选一多路复用器的第一输入端用于接收第一差值,所述第一二选一多路复用器的第二输入端用于接收第二输入数值,所述第一二选一多路复用器的输出端与第二二选一多路复用器的第二输入端连接;当第一错位位为0时,所述第一二选一多路复用器将其第一输入端的接收值作为输出;当第一错位位为1时,所述第一二选一多路复用器将其第二输入端的接收值作为输出;
所述第二二选一多路复用器的控制输入端用于接收第二错位位,所述第二二选一多路复用器的第一输入端用于接收第二差值,所述第二二选一多路复用器的第二输入端用于接收所述第一二选一多路复用器的输出值,所述第二二选一多路复用器的输出端与第三二选一多路复用器的第二输入端连接;当第二错位位为0时,所述第二二选一多路复用器将其第一输入端的接收值作为输出,当第二错位位为1时,所述第一二选一多路复用器将其第二输入端的接收值作为输出;
所述第三二选一多路复用器的控制输入端用于接收第三错位位,所述第三二选一多路复用器的第一输入端用于接收第三差值,所述第三二选一多路复用器的第二输入端用于接收所述第二二选一多路复用器的输出值,所述第三二选一多路复用器的输出端输出余数;当第三错位位为0时,所述第三二选一多路复用器将其第一输入端的接收值作为输出,当第三错位位为1时,所述第三二选一多路复用器将其第二输入端的接收值作为输出。
4.如权利要求2所述的基于两位商计算的除法运算单元,其特征在于,所述两位商生成器,包括:第四二选一多路复用器、第五二选一多路复用器以及第六二选一多路复用器;
所述第四二选一多路复用器的控制输入端用于接收第一错位位,所述第四二选一多路复用器的第一输入端用于接收01,所述第四二选一多路复用器的第二输入端用于接收00,所述第四二选一多路复用器的输出端与第五二选一多路复用器的第二输入端连接;当第一错位位为0时,所述第四二选一多路复用器将其第一输入端的接收值作为输出,当第一错位位为1时,所述第四二选一多路复用器将其第二输入端的接收值作为输出;
所述第五二选一多路复用器的控制输入端用于接收第二错位位,所述第五二选一多路复用器的第一输入端用于接收10,所述第五二选一多路复用器的第二输入端用于接收第四二选一多路复用器的输出值,所述第五二选一多路复用器的输出端与第六二选一多路复用器的第二输入端连接;当第二错位位为0时,所述第五二选一多路复用器将其第一输入端的接收值作为输出,当第二错位位为1时,所述第五二选一多路复用器将其第二接收端的接收值作为输出;
所述第六二选一多路复用器的控制输入端用于接收第三错位位,所述第六二选一多路复用器的第一输入端用于接收11,所述第六二选一多路复用器的第二输入端用于接收第五二选一多路复用器的输出值,所述第六二选一多路复用器的输出端输出两位商;当第三错位位为0时,所述第六二选一多路复用器将其第一输入端的接收值作为输出,当第三错位位为1时,所述第六二选一多路复用器将其第二输入端的接收值作为输出。
5.一种基于两位商计算的除法器,其特征在于,包括若干如权利要求1-4任意一项所述的除法运算单元,且除法运算单元的个数为M/2;其中,M为被除数的位数,且M为偶数;
各除法运算单元级联后构成所述除法器;其中,各级除法运算单元的第一输入值为除数,第一级除法运算单元的第二输入值为被除数,其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,最后一级除法运算单元所生成的余数为被除数与除数相除后的余数,各级除法运算单元所生成的两位商构成被除数与除数相除后的商;各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
6.一种基于两位商计算的除法器,其特征在于,包括若干如权利要求1-4任意一项所述的除法运算单元以及一个一位商除法运算单元,且所述除法运算单元的个数为[M/2];其中,M为被除数的位数,且M为奇数;
各所述除法运算单元、所述一位商除法运算单元级联后构成所述除法器,且所述一位商除法运算单元位于最后一级;
所述一位商除法运算单元,用于接收除数以及上一级除法运算单元所生成的余数,并生成第四错位位以及计算上一级除法运算单元所生成的余数与除数的差值,生成第四差值,继而在第四错位位为1时,生成一位商0,在第四错位位为0时,生成一位商1;
其中,各级除法运算单元的第一输入值为除数,第一级除法运算单元的第二输入值为被除数,其余各级除法运算单元的第二输入值为上一级除法运算单元所生成的余数,一位商除法运算单元所生成的余数为被除数与除数相除后的余数,各级除法运算单元所生成的两位商以及一位商除法运算单元所生成的一位商构成被除数与除数相除后的商;各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,各级除法运算单元中逻辑移位模块对第一输入数值左移的位数为N,其中,N=M-2*S,S为除法运算单元所在层级的级数。
7.如权利要求6所述的基于两位商计算的除法器,其特征在于,所述一位商除法运算单元:包括第四减法器、第七二选一多路复用器以及反相器;
所述第四减法器,用于接收除数以及上一级除法运算单元所生成的余数,并生成第四错位位以及计算上一级除法运算单元所生成的余数与除数的差值,生成第四差值,并将第四差值输出至所述第七二选一多路复用器的第一输入端,将第四错位位输出至所述反相器以及所述第七二选一多路复用器的控制输入端;
所述第七二选一多路复用器的第二输入端用于接收上一级除法运算单元所生成的余数,所述第七二选一多路复用器的输出端用于输出被除数与除数相除后的余数,且在所述第四错位位为0时,将其第一输入端的接收值作为输出,在所述第四错位位为1时,将其第二输入端的接收值作为输出;
所述反相器,用于对第四错位位进行取反,生成一位商。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210458292.8A CN114895868A (zh) | 2022-04-28 | 2022-04-28 | 基于两位商计算的除法运算单元及除法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210458292.8A CN114895868A (zh) | 2022-04-28 | 2022-04-28 | 基于两位商计算的除法运算单元及除法器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114895868A true CN114895868A (zh) | 2022-08-12 |
Family
ID=82718619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210458292.8A Pending CN114895868A (zh) | 2022-04-28 | 2022-04-28 | 基于两位商计算的除法运算单元及除法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895868A (zh) |
-
2022
- 2022-04-28 CN CN202210458292.8A patent/CN114895868A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0416869B1 (en) | Digital adder/accumulator | |
JP2585649B2 (ja) | 除算回路 | |
CN111813375A (zh) | 求模运算处理方法及相关产品 | |
US9009209B2 (en) | Processor, control method of processor, and computer readable storage medium storing processing program for division operation | |
JP2502836B2 (ja) | 除算回路の前処理装置 | |
JP2001222410A (ja) | 除算器 | |
CN114895868A (zh) | 基于两位商计算的除法运算单元及除法器 | |
KR101007259B1 (ko) | 패리티 생성 회로, 계수 회로 및 계수 방법 | |
KR19990074385A (ko) | 부동소수점 곱셈기에서 반올림과 덧셈을 동시에 수행하는 장치및 방법 | |
JP2766133B2 (ja) | パラレル・シリアル・データ変換回路 | |
EP0281094A2 (en) | Counter | |
US5691930A (en) | Booth encoder in a binary multiplier | |
JP2002111447A (ja) | ディジタルフィルタ | |
US5905663A (en) | Minimal circuit for detecting loss of precision in floating point numbers | |
US6578062B1 (en) | Method and circuit for digital division | |
EP0442220B1 (en) | Decoder | |
JP3028165B2 (ja) | 高基数除算制御方法および高基数除算器 | |
JP3191442B2 (ja) | ビタビ復号用演算装置 | |
US20240118866A1 (en) | Shift array circuit and arithmetic circuit including the shift array circuit | |
JP4408727B2 (ja) | ディジタル回路 | |
CN1230987C (zh) | 码生成电路 | |
KR100335252B1 (ko) | 비트 분리 구조의 고속 디지털 필터 | |
JP2000010763A (ja) | 除算回路 | |
KR0182169B1 (ko) | 로그값 계산회로 | |
KR940007925B1 (ko) | 부호처리 기능을 가진 누산기 |
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 |