首页> 中国专利> 基于两位商计算的除法运算单元及除法器

基于两位商计算的除法运算单元及除法器

摘要

本发明公开了一种基于两位商计算的除法运算单元及除法器,除法运算单元包括:逻辑移位模块,将第一输入数值左移生成第一左移数值;第一减法器,用于计算第二输入数值与第一左移数值的第一差值以及生成第一错位位;第二减法器,计算第二输入数值与翻一倍后的第一左移数值的第二差值以及生成第二错位位;第三减法器,计算第二输入数值与翻两倍后的第一左移数值的第三差值以及生成第三错位位;余数生成器,根据第一错位位、第二错位位以及第三错位位从第一差值、第二差值、第三差值以及第二输入值从选取一个值作为余数;两位商生成器,根据第一错位位、第二错位位以及第三错位位从11、10、01以及00中选取一个值作为两位商。

著录项

  • 公开/公告号CN114895868A

    专利类型发明专利

  • 公开/公告日2022-08-12

    原文格式PDF

  • 申请/专利权人 上海安路信息科技股份有限公司;

    申请/专利号CN202210458292.8

  • 发明设计人 胡平科;余建德;

    申请日2022-04-28

  • 分类号G06F7/535(2006.01);G06F7/50(2006.01);

  • 代理机构广州三环专利商标代理有限公司 44202;

  • 代理人陈旭红

  • 地址 200434 上海市虹口区纪念路500号5幢202室

  • 入库时间 2023-06-19 16:22:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    实质审查的生效 IPC(主分类):G06F 7/535 专利申请号:2022104582928 申请日:20220428

    实质审查的生效

说明书

技术领域

本发明涉及数字电路技术领域,尤其涉及一种基于两位商计算的除法运算单元及除法器。

背景技术

除法器是算术运算电路中最常用的电路之一,其运算过程本质上是从被除数的最高位开始,循环地进行比较运算和减法运算,计算出来每一位对应的商和余数。设其中某位的减法运算的被减数为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

对于一个给定的除数运算,被除数位数是已知的,则需要的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,相较于现有的除法器也能够明显降低逻辑数,继而减少计算时延。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号