一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种适用于商位宽固定情况的除法器装置

2023-03-18 13:24:02 来源:中国专利 TAG:


1.本发明属于数字集成电路设计领域,具体涉及一种特殊的除法器装置。


背景技术:

2.在数字集成电路设计中,除法器是关键的运算单元,虽然在ver i log语言中有除法运算的指令,但是对于被除数和除数均为变量的情况,直接用除法指令可能导致综合工具无法综合出较优的结果,且面对被除数和除数的位宽均较大的情况,除法运算会占用较多资源,并可能无法保证在一个时钟周期内完成运算,导致电路时序出现问题。因此,对于被除数和除数均为变量的情况,通常设计相应的算法来实现除法,比如基于减法操作的除法,即对于n位的无符号除法,将被除数转换成高n位为0,低n位为被除数的中间变量一,除数转换成高n位为除数,低n位为0的中间变量二。在每个周期开始时,先将中间变量一左移一位,末尾补0,然后与除数比较;若大于除数,则将中间变量一减去中间变量二且加1,作为更新的中间变量一,否则继续向下执行。上述的移位、比较和减法要执行n次,执行结束后中间变量一的高n位为余数,低n位为商。
3.但是,在某些应用场景下,比如视频编解码协议中的运算,由于数据的位深被限定在n位,协议中除法运算的结果也往往限定其位宽。在商的位宽固定的情况下,若m位的被除数与除数运算,商被限定在n位,采用前面所述的算法进行运算,需要m个时钟得出m位的商,再将其限制到n位无符号数表示的范围。然而当m远大于n时,除法运算消耗的周期数较多,且运算的中间变量位宽大,占用资源较多。故针对这一类应用场景,需要设计一种新型的除法器来完成商位宽固定的除法。


技术实现要素:

4.针对上述存在的问题或不足,本发明提供了一种特殊的除法器装置,能够实现商位宽固定的除法运算,当商位宽小于被除数位宽时,可以减少运算时间,且降低综合后电路的面积。其具体方案如下:
5.本发明公开了一种针对商位宽固定的情况的除法器装置,包括预处理模块、计数模块、迭代运算模块和输出模块。
6.所述预处理模块,用于对输入的被除数和除数进行预处理,将被除数左移一个比特,低位补0,得到第一数据,除数左移数据位宽个比特,低位补0,得到第二数据;其中,所述数据位宽为所述商的位宽。
7.所述计数模块,用于对运算周期进行计数,计数值可以表示商已经更新的位数。设置一个初始值为0的计数值,当除法使能信号拉高时,每个时钟周期,计数值在原来的基础上加1;当收到除法运算完成的标志信号时,计数值清零;其余情况下计数值保持不变。
8.所述迭代运算模块,按照下面的步骤执行迭代的运算。
9.s1:当计数值为0时,执行s1,比较所述第一数据和第二数据的大小:若所述第一数据大于或等于第二数据,则将第一数据左移一个比特,低位补0,再减去第二数据,两者的差
再左移一个比特,低位补0,将运算结果存入预设寄存器,所述预设寄存器的值作为第三数据,同时将所述商寄存器的最高位赋值为1;若所述第一数据小于第二数据,则将第一数据左移一个比特再低位补0的运算结果存入所述预设寄存器,预测寄存器的值作为第三数据,同时将所述商寄存器的最高位赋值为0;
10.s2:当计数值非0时,执行s2,比较所述第三数据和所述第二数据的大小:若所述第三数据大于所述第二数据,则将第三数据左移一个比特再减去第二数据,两者的差再左移一个比特,低位补0,将运算结果存入预设寄存器,预设寄存器的值作为更新的第三数据,同时将商寄存器的某一数据位赋值为1,所述数据位在商寄存器中的位数为:商的位宽与所述计数值的差,所述的位数按照从低位到高位的顺序进行计算,最低位对应的位数为第1位;若所述第三数据小于第二数据,则将第三数据左移一个比特再低位补0的运算结果存入所述预设寄存器,预测寄存器的值作为更新的第三数据,同时将所述商寄存器的所述数据位赋值为0;若所述第三数据等于第二数据,则将第三数据清零,同时将所述商寄存器的所述数据位赋值为1。
11.所述输出模块,对除法运算结束的条件进行判断,当满足条件时,输出除法运算结束标志以及除法运算结果。
12.进一步的,所述预处理模块,具体用于:
13.当采集到除法开始信号的上升沿,则将被除数左移一个比特,低位补0,得到所述第一数据,除数左移数据位宽个比特,低位补0,得到所述第二数据。
14.进一步的,所述预处理模块,还用于:
15.与所述计数模块连接,当采集到除法开始信号的上升沿,则将除法使能信号拉高,并送入所述计数模块;当采集到所述除法结束标志信号的上升沿,将除法使能信号拉低。
16.进一步的,所述预处理模块,还用于:
17.为数据配置参数;其中,所述配置参数包括所述第一数据、第二数据的位宽以及所述计数值的位宽。
18.进一步的,所述预处理模块,还用于:
19.与所述迭代运算模块连接,将所述除法使能信号以及所述第一数据、所述第二数据输出至所述迭代运算模块;
20.进一步的,所述计数模块,用于在接收到所述除法使能信号后,从初始值0开始计数,每个时钟上升沿时自加1;在接收到所述除法结束标志信号后,将计数值清零。
21.进一步的,所述计数模块,还用于记录s1和s2的执行次数。
22.进一步的,所述计数模块,还用于与所述输出模块连接,将计数器的计数值输出至所述输出模块,作为判断除法结束的条件之一;
23.进一步的,所述迭代运算模块,用于在接收到所述除法使能信号后,执行所述s1和s2;在接收到所述除法结束标志信号后,停止迭代运算。
24.进一步的,所述输出模块,用于与所述迭代运算模块和所述计数模块连接,在接收到所述计数模块送入的计数值以及所述迭代运算模块送入的第三数据和第二数据后,判断除法是否结束,若计数值等于商的位宽减一的值或者所述第三数据等于所述第二数据,则产生表示除法运算结束的有效标志信号,并将该有效标志信号输出至所述计数模块,同时将所述除法运算结果赋值给除法器的输出。
附图说明
25.为了更清楚地说明本技术实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为现有技术中提供的基于减法的除法运算算法流程图;
27.图2为本发明提供的除法运算算法流程图;
28.图3为实施例的除法器装置的结构示意图;
29.图4为实施例的迭代模块的结构示意图;
具体实施方式
30.为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的实施例。但是,本技术可以以多种不同的形式来实现,并不局限于本文所描述的实施例。相反地,提供这些实施例的目的是使本技术的公开内容更加透彻全面。
31.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
32.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
33.在其中一个实施例中,提供了一种商位宽固定为16的特殊除法器装置0005,如图3所示,包括预处理模块0001、计数模块0002、迭代运算模块0003以及输出模块0004。
34.所述预处理模块0001用于对输入的被除数和除数进行预处理,所述预处理模块0001内部有两个寄存器,用于寄存第一数据与第二数据。在接收到来自外部的除法开始信号后,将被除数左移1位,低1位补0,赋值给第一数据;除数左移16位,低16位补0,赋值给第二数据。同时所述预处理模块0001在采集到除法开始信号的上升沿后将除法使能标志拉高,采集到所述除法结束标志信号的上升沿后将除法使能标志拉低。
35.所述计数模块0002内部包含一个周期计数器,计数模块0002的输入端与所述预处理模块0001和所述输出模块0004连接,当所述预处理模块0001输出的除法使能标志信号为高时,计数值从初始值0开始计数,每个时钟上升沿,计数值在原来基础上加1,当所述输出模块0004送入的除法结束标志信号为高时,在下一个时钟的上升沿,计数值恢复为0。所述计数模块0002的输出端与所述迭代模块0003和所述输出模块0004连接,在进行计数的同时,将计数值输出到所述迭代模块0003以及所述输出模块0004。
36.图4是本实施例所提供的迭代模块0003的结构示意图。所述迭代模块0003的输入端与所述计数模块0002、所述预处理模块0001以及所述输出模块0004连接。从图中可以看出,所述迭代模块0003的内部有一个二选一数据选择器(简称为二选一mux),将二选一mux的输出记为第四数据。二选一mux的其中一路输入信号是所述预处理模块0001送入的第一数据,另一路输入信号是所述迭代模块0003内部寄存器的值,即第三数据;当所述计数模块0002的计数值为0时,将所述预处理模块0001送入的第一数据赋值给第四数据;当所述计数模块0002的计数值非0时,将所述第三数据的值赋给第四数据。所述迭代模块0003内部有一
个16位的寄存器,寄存器每一位的值记为m1-m16,用来存放商的结果,且m1表示商的最低位,m16表示商的最高位。当复位信号有效时,商寄存器的初始值为0,即m1至m16均为0;当复位信号无效,且所述除法使能标志为高时,开始迭代运算。每个时钟可以完成一次迭代运算,且在时钟上升沿对m1-m16中的一个赋值0或1。迭代运算的流程如下:将所述第四数据与所述第二数据一起送入比较器进行比较,根据比较的结果对m1-m16其中一个进行赋值。若所述第四数据大于所述第二数据,则将所述第四数据与所述第二数据的差左移一位,低位补0,赋值给所述第三数据,同时将mm赋值为1(m=16-计数值);若所述第四数据小于所述第二数据,则将所述第四数据左移一位,低位补0,赋值给所述第三数据,同时将mm赋值为0;若所述第四数据等于所述第二数据,则将所述第三数据赋值为0,同时将mm赋值为1。当所述除法结束标志信号为高时,停止迭代运算。所述迭代模块0003的输出端与所述输出模块0004连接,将第二数据、第四数据输出至输出模块0004。
37.所述输出模块0004,用于对除法运算结束的条件进行判断,当满足条件时,输出除法运算结束标志以及除法运算结果。所述输出模块0004的输入端与所述计数模块0002以及所述迭代模块0003相连,所述计数模块0002的计数值和所述迭代运算模块0003的第二数据、第四数据都送入所述输出模块0004。所述输出模块0004的内部包含两个二输入比较器,其中一个比较计数值和15的大小,另一个比较第四数据和第二数据的大小;当所述计数模块0002的计数值等于15或者所述迭代模块0003输出的第四数据等于第二数据时,在下个时钟的上升沿,所述输出模块0004将除法结束标志信号拉高,表示除法运算完成,同时将当前商的结果输出,作为除法运算的结果。由于商的位宽固定为16位,使用本实施例提供的除法器装置实现除法运算消耗的时钟周期数最多为16,最少为1。
38.综上所述,对于在特定应用场景下商位宽固定的除法运算,本发明设计了一种特殊的除法器装置,采用串行的思想实现除法,通过计数模块以及迭代模块的配合,按照从最高位到最低位的顺序,串行地对商的每一位进行赋值。本发明设计的除法器装置,将除法运算转化为相对简单的比较、减法以及移位运算,方便硬件实现,也减小了除法运算电路消耗的面积;同时每个时钟周期对商的一位进行赋值,运算消耗的时钟周期数不超过商的位数,在被除数和除数位宽均大于商的位宽时,相比传统的基于减法的除法运算算法,可以节约运算的时间;另外,每个时钟周期的运算最多仅包括一次比较、减法和移位,大大减小了电路中组合逻辑路径的延迟,更容易满足时序的要求。
39.可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此本发明不受此处所公开的具体实施例的限制,所有落入本技术的权利要求范围内的实施例都属于本发明所保护的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献