一种除法器及除法处理方法转让专利

申请号 : CN202110655921.1

文献号 : CN113391787B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕阳张坡郑良广任浩侯晓伟王文武黄旭

申请人 : 宁波中车时代传感技术有限公司

摘要 :

本申请公开了一种除法器及除法处理方法,包括:预处理模块,用于将被除数左移小数位宽加1个比特得到第一数据,将除数左移数据位宽个比特得到第二数据;数据位宽为小数位宽与输入数据位宽之和;迭代运算模块执行:步骤01:比较第一数据以及第二数据的大小,若第一数据小于第二数据,则将第一数据存入预设寄存器,否则,第一数据减去第二数据将差值加1的结果存入寄存器;步骤02:判断步骤01的执行次数是否达到数据位宽次,若否,则将寄存器的值左移1个比特并赋值给第一数据,重新执行步骤01,若是,则将寄存器的值作为输出结果输入输出处理模块进行处理,能够实现任意整数的除法运算,且降低综合后电路面积。

权利要求 :

1.一种除法器,其特征在于,包括预处理模块、迭代运算模块、输出处理模块,其中,所述预处理模块,用于将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;

所述迭代运算模块,用于执行:

步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;

步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;

所述输出处理模块,用于将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果;

其中,所述迭代运算模块,还用于利用预设计数器记录所述步骤01的执行次数,每次执行完步骤01,则预设计数器执行加1操作 ,相应的,判断所述步骤01的执行次数是否达到所述数据位宽次,具体为:判断计数器的值是否等于数据位宽;

并且,小数位宽为除法运算得到的无符号位的商精确到的小数位。

2.根据权利要求1所述的除法器,其特征在于,所述预处理模块,具体用于:当采集到预设输入信号的上升沿,则将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据。

3.根据权利要求2所述的除法器,其特征在于,所述预处理模块,还用于:当采集预设输入信号的上升沿,则生成计算开始信号。

4.根据权利要求3所述的除法器,其特征在于,所述预处理模块,还用于:将所述计算开始信号以及所述第一数据、所述第二数据输入至所述迭代运算模块;

相应的,所述迭代运算模块,用于在接收到所述计算开始信号后,执行所述步骤01以及所述步骤02。

5.根据权利要求1所述的除法器,其特征在于,所述迭代运算模块,还用于:在确定所述输出结果之后,生成计算结束信号,并将所述计算结束信号输入所述输出处理模块;

相应的,所述输出处理模块,用于在接收到所述计算结束信号后,将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一。

6.根据权利要求1所述的除法器,其特征在于,所述输出处理模块,还用于:在得到所述除法运算结果之后,将所述除法运算结果赋值给除法器输出信号,并产生表示得到除法运算结果的有效信号;

将所述除法器输出信号以及所述有效信号输出。

7.根据权利要求1至6任一项所述的除法器,其特征在于,所述预处理模块,还用于:获取配置参数;其中,所述配置参数包括所述小数位宽以及所述数据位宽。

8.一种除法处理方法,其特征在于,包括:

通过预处理模块将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;

通过迭代运算模块执行:

步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;

步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入输出处理模块;

通过输出处理模块将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果;

所述方法还包括:利用预设计数器记录所述步骤01的执行次数,每次执行完步骤01,则预设计数器执行加1操作 ,相应的,判断所述步骤01的执行次数是否达到所述数据位宽次,具体为:判断计数器的值是否等于数据位宽;

并且,小数位宽为除法运算得到的无符号位的商精确到的小数位。

9.根据权利要求8所述的除法处理方法,其特征在于,还包括:

获取配置参数;其中,所述配置参数包括所述小数位宽以及所述数据位宽。

说明书 :

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

技术领域

[0001] 本申请涉及IC设计技术领域,特别涉及一种除法器及除法处理方法。

背景技术

[0002] 在IC(即Integrated circui,集成电路)设计中,除法器的设计是必不可少的,虽然Verilog语言中有除法运算指令,但是除法运算中除数以及被除数必须是2的指数幂,且被除数最好是2的指数幂的倍数,否则无法得到准确的计算结果,因此无法实现任意整数的除法运算,很大程度上限制了它的适用领域。并且,对于除法指令,很多综合工具无法综合出较优的结果,面对复杂运算甚至不能综合。

发明内容

[0003] 有鉴于此,本申请的目的在于提供一种除法器及除法处理方法,能够实现任意整数的除法运算,且降低综合后电路面积。其具体方案如下:
[0004] 第一方面,本申请公开了一种除法器,包括预处理模块、迭代运算模块、输出处理模块,其中,
[0005] 所述预处理模块,用于将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;
[0006] 所述迭代运算模块,用于执行:
[0007] 步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;
[0008] 步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;
[0009] 所述输出处理模块,用于将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。
[0010] 可选的,所述预处理模块,具体用于:
[0011] 当采集到预设输入信号的上升沿,则将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据。
[0012] 可选的,所述预处理模块,还用于:
[0013] 当采集预设输入信号的上升沿,则生成计算开始信号。
[0014] 可选的,所述预处理模块,还用于:
[0015] 将所述计算开始信号以及所述第一数据、所述第二数据输入至所述迭代运算模块;
[0016] 相应的,所述迭代运算模块,用于在接收到所述计算开始信号后,执行所述步骤01以及所述步骤02。
[0017] 可选的,所述迭代运算模块,还用于:
[0018] 在确定所述输出结果之后,生成计算结束信号,并将所述所述计算结束信号输入所述输出处理模块;
[0019] 相应的,所述输出处理模块,用于在接收到所述计算结束信号后,将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一。
[0020] 可选的,所述输出处理模块,还用于:
[0021] 在得到所述除法运算结果之后,将所述除法运算结果赋值给除法器输出信号,并产生表示得到除法运算结果的有效信号;
[0022] 将所述除法器输出信号以及所述有效信号输出。
[0023] 可选的,所述迭代运算模块,还用于利用预设计数器记录所述步骤01的执行次数。
[0024] 可选的,所述预处理模块,还用于:
[0025] 获取配置参数;其中,所述配置参数包括所述小数位宽以及所述数据位宽。
[0026] 第二方面,本申请公开了一种除法处理方法,包括:
[0027] 通过预处理模块将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;
[0028] 通过迭代运算模块执行:
[0029] 步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;
[0030] 步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;
[0031] 通过输出处理模块将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。
[0032] 可选的,还包括:
[0033] 获取配置参数;其中,所述配置参数包括所述小数位宽以及所述数据位宽。
[0034] 可见,本申请公开的除法器,包括预处理模块、迭代运算模块、输出处理模块,其中,所述预处理模块,用于将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;所述迭代运算模块,用于执行:步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;所述输出处理模块,用于将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。这样,对除数和被除数的值没有限制,能够实现任意整数的除法运算,并且,通过简单的移位、比较、减法运算,易于综合,能够降低综合后电路面积。

附图说明

[0035] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0036] 图1为本申请公开的一种除法器结构示意图;
[0037] 图2为本申请公开的一种具体的除法器结构示意图;
[0038] 图3为本申请公开的一种具体的除法器各模块处理示意图;
[0039] 图4为本申请公开的一种具体的除法器除法运算示意图;
[0040] 图5为本申请公开的一种除法处理方法流程图。

具体实施方式

[0041] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0042] 虽然Verilog语言中有除法运算指令,但是除法运算中除数以及被除数必须是2的指数幂,且被除数最好是2的指数幂的倍数,否则无法得到准确的计算结果,因此无法实现任意整数的除法运算,很大程度上限制了它的适用领域。并且,对于除法指令,很多综合工具无法综合出较优的结果,面对复杂运算甚至不能综合。为此,本申请提供了一种除法器及除法处理方法,能够实现任意整数的除法运算,且降低综合后电路面积。
[0043] 参见图1所示,本申请实施例公开了一种除法器,包括预处理模块11、迭代运算模块12、输出处理模块13,其中,
[0044] 所述预处理模块11,用于将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;
[0045] 所述迭代运算模块12,执行的步骤包括:
[0046] 步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;
[0047] 步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;
[0048] 所述输出处理模块13,用于将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。
[0049] 其中,在具体的实施方式中,所述预处理模块11,具体用于:
[0050] 当采集到预设输入信号的上升沿,则将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据。并且,当采集预设输入信号的上升沿,则生成计算开始信号。然后将所述计算开始信号以及所述第一数据、所述第二数据输入至所述迭代运算模块12。
[0051] 相应的,所述迭代运算模块,用于在接收到所述计算开始信号后,执行所述步骤01以及所述步骤02。
[0052] 并且,所述迭代运算模块12,还用于:
[0053] 在确定所述输出结果之后,生成计算结束信号,并将所述所述计算结束信号输入所述输出处理模块;
[0054] 相应的,所述输出处理模块13,用于在接收到所述计算结束信号后,将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一。
[0055] 进一步的,所述输出处理模块13,还用于:
[0056] 在得到所述除法运算结果之后,将所述除法运算结果赋值给除法器输出信号,并产生表示得到除法运算结果的有效信号;将所述除法器输出信号以及所述有效信号输出。
[0057] 需要指出的是,将有效信号输出,除法器的应用电路可判断出得到除法运算结果,进行后续处理。
[0058] 并且,在具体的实施方式中,所述迭代运算模块12,还用于利用预设计数器记录所述步骤01的执行次数。
[0059] 也即,每次执行完步骤01,则预设计数器执行加1操作。其中,所述预设计数器的初始值为0。
[0060] 相应的,在判断所述步骤01的执行次数是否达到所述数据位宽次,具体为,判断计数器的值是否等于数据位宽。
[0061] 在具体的实施方式中,所述预处理模块,还用于:
[0062] 获取配置参数;其中,所述配置参数包括所述小数位宽以及所述数据位宽。
[0063] 需要指出的是,本申请实施例可以通过配置参数,实现任意精度的除法运算,得到的无符号位的商可精确到固定小数位,参数选择根据实际应用电路决定,主要由待计算数据位宽(即除数、被除数的数据位宽,要求位宽一致;),以及所需计算精度(小数位宽)决定。
[0064] 可见,本申请实施例公开的除法器,包括预处理模块、迭代运算模块、输出处理模块,其中,所述预处理模块,用于将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;所述迭代运算模块,用于执行:步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;所述输出处理模块,用于将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。这样,对除数和被除数的值没有限制,能够实现任意整数的除法运算,并且,通过简单的移位、比较、减法运算,易于综合,能够降低综合后电路面积。
[0065] 参见图2所示,本申请实施例公开了一种具体的除法器结构示意图,包括预处理模块,迭代运算模块,以及输出处理模块,其中,所述预处理模块,对输入数据进行预处理,并根据触发信号产生计算开始信号;所述迭代运算模块,对预处理完的信号进行迭代计算,即比较当前输入数据的值,根据比对结果重新处理数据,再进行比较,直至计算结束,得到计算结果并产生输出信号;所述输出处理模块,根据迭代运算模块得到的计算结果进行输出处理,并产生以及输出有效信号。结和图3,图3为本申请实施例公开的一种具体的除法器各模块处理示意图,对本申请的除法器的计算过程具体描述:
[0066] 所述输入数据预处理模块,采集输入信号trig的上升沿,作为除法计算的开始命令,产生cal_start(计算开始信号),并同时对输入数据code_a_in(除数)以及code_b_in(被除数)进行预处理:
[0067] 根据所需计算精度(小数位宽PARAMETER FRACTIONAL_WIDTH)左移code_a_in,若小数位宽为N,则左移N+1个比特,得到temp_a;根据数据位宽(PARAMETER WIDTH,即输入数据位宽以及小数位宽之和)左移code_b_in;若输入数据位宽为M,则左移M+N个比特,得到temp_b;将预处理完的数据temp_a,temp_b以及cal_start,送到迭代运算模块进行计算。
[0068] 进一步的,所述迭代运算模块接收到计算开始信号后对预处理完的数据进行计算,其计算步骤如下:
[0069] 步骤1,比较预处理完后temp_a以及temp_b的大小,若temp_a小于temp_b,则直接将temp_a的值暂存于delta_code;否则,将temp_a‑temp_b+1的计算结果暂存于delta_code;
[0070] 步骤2,计算结束逻辑开始判断是否结束计算,该判断逻辑为一个计数器,每经过一次步骤1的操作,计数器加1,计数结果与数据位宽(M+N)比较,若不相等,重新处理待计算数据,delta_code寄存的值左移一位并赋值给temp_a;跳回步骤1,否则,输出计算结束信号(cal_end)以及delta_code寄存的值。
[0071] 进一步的输出处理模块,在接收到计算结束信号后,会将delta_code寄存的值中的余数(r_temp)以及商(q_temp)赋给余数寄存器以及商寄存器,以进行输出结果处理,若余数(r_temp)大于除数(code_b_in)值的1/2,则当前q_temp加1输出;否则当前q_temp赋值给输出信号(q_out);同时,产生输出有效信号(out_en)供应用电路判断。
[0072] 另外,图2中的I_clk为时钟信号,I_rstn为复位信号。
[0073] 参见图4所示,图4为本申请实施例公开的一种具体的除法器除法运算示意图。以9除以2为例,设整数位宽M=4,小数位N=4。当前的例子中,remainder全为0,不大于1,无需加1操作;可以理解的是,对于商,二进制转十进制:Quoteint:8'b0100_1000=8'd72,商的实际结果:72/2^4=4.5;其中高4比特为整数位,低4比特为小数位,可见,本申请实施例得到了准确的除法运算结果。
[0074] 需要指出的是,本申请公开的除法器可以应用到传感器IC设计中,例如,功率测量计算,提升计算效率。
[0075] 参见图5所示,本申请实施例公开了一种除法处理方法,包括:
[0076] 步骤S11:通过预处理模块将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽;
[0077] 步骤S12:通过迭代运算模块执行:
[0078] 步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;
[0079] 步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块;
[0080] 步骤S13:通过输出处理模块将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。
[0081] 可见,本申请实施例先通过预处理模块将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据;其中,所述数据位宽为所述小数位宽与输入数据位宽之和,所述输入数据位宽为所述被除数以及所述除数的位宽,之后通过迭代运算模块执行:步骤01:比较所述第一数据以及所述第二数据的大小,若所述第一数据小于所述第二数据,则将所述第一数据存入预设寄存器,否则,利用所述第一数据减去所述第二数据,得到目标差值,并将所述目标差值加1的结果存入所述预设寄存器;步骤02:判断所述步骤01的执行次数是否达到所述数据位宽次,若否,则将所述预设寄存器的值左移1个比特并赋值给所述第一数据,重新执行所述步骤01,若是,则将所述预设寄存器的值作为输出结果输入所述输出处理模块,最后通过输出处理模块将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一,若是,则将所述商寄存器中的值加1,得到除法运算结果,否则,将当前所述商寄存器中的值作为除法运算结果。这样,对除数和被除数的值没有限制,能够实现任意整数的除法运算,并且,通过简单的移位、比较、减法运算,易于综合,能够降低综合后电路面积。
[0082] 在具体的实施方式中,通过所述预处理模块采集预设输入信号的上升沿,当采集到预设输入信号的上升沿,则将被除数左移小数位宽加1个比特,得到第一数据,以及将除数左移数据位宽个比特,得到第二数据。并且,当采集预设输入信号的上升沿,则生成计算开始信号。将所述计算开始信号以及所述第一数据、所述第二数据输入至所述迭代运算模块;
[0083] 相应的,通过迭代运算模块在接收到所述计算开始信号后,执行所述步骤01以及所述步骤02。
[0084] 并且,通过所述迭代运算模块,在确定所述输出结果之后,生成计算结束信号,并将所述所述计算结束信号输入所述输出处理模块;
[0085] 相应的,通过输出处理模块在接收到所述计算结束信号后,将所述输出结果中最低的数据位宽个比特的值作为商存入商寄存器、非最低的数据位宽个比特的值作为余数,并判断所述余数是否大于所述除数的二分之一。
[0086] 进一步的,通过所述输出处理模块在得到所述除法运算结果之后,将所述除法运算结果赋值给除法器输出信号,并产生表示得到除法运算结果的有效信号;将所述除法器输出信号以及所述有效信号输出。
[0087] 并且,本申请实施例,可以利用预设计数器记录所述步骤01的执行次数。
[0088] 在具体的实施方式中,可以获取配置参数;其中,所述配置参数包括所述小数位宽以及所述数据位宽。
[0089] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0090] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0091] 以上对本申请所提供的一种除法器及除法处理方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。