基于静态配置数字电路的浮点数乘累加控制方法及系统转让专利

申请号 : CN202110707511.7

文献号 : CN113434113B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马向华边立剑王文好

申请人 : 上海安路信息科技股份有限公司

摘要 :

本发明提供了一种基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器,包括计算临时寄存器的所有输入周期和所有输出周期,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,极大的节约了硬件资源的使用。本发明还提供了一种浮点数乘累加控制系统。

权利要求 :

1.一种基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器和乘法器,其特征在于,包括以下步骤:获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期;

判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;

得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;

得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。

2.根据权利要求1所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期包括初始化步骤,所述初始化步骤包括:将第一次乘累加循环的输入数据个数初始化为所述浮点数加法器的延迟与数值1的和;

将第一次乘累加循环的有效数据间隔初始化为数值1;

将第一次乘累加循环的最后一次加运算的运行周期初始化为与所述浮点数加法器的延迟相同的值。

3.根据权利要求2所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的输入数据个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:将第i‑1次乘累加循环的输入数据个数除以数值2以得到第一过程值,然后将所述第一过程值与第i‑1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环的输入数据个数,i为大于1的自然数。

4.根据权利要求3所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的有效数据间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:

将第i‑1次乘累加循环的有效数据间隔与数值2相加,以得到第i次乘累加循环的有效数据间隔。

5.根据权利要求4所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的最后一次加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包括:将第i‑1次乘累加循环的输入数据个数最低位的值与第i‑1次乘累加循环的最后一次加运算的运行周期相乘,以得到第二过程值;

将数值1减去所述第二过程值,再与数值1相加,以得到第三过程值;

将所述第三过程值、所述浮点数加法器的延迟以及第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环的最后一次加运算的运行周期。

6.根据权利要求5所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输入临时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤包括:将所述第一次乘累加循环的输入数据个数除以数值2,以得到第四过程值;

将所述第四过程值与所述第一次乘累加循环的输入数据个数最低位的值相加,然后减去数值1,以得到第一次乘累加循环需要输入临时寄存器的数据个数;

将第i次乘累加循环的输入数据个数除以数值2,以得到第五过程值;

将第五过程值减去第i‑1次乘累加循环的输入数据个数最低位的值,然后与第i次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输入临时寄存器的数据个数。

7.根据权利要求6所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输入周期计算步骤,所述输入周期计算步骤包括:

预设第一次乘累加循环的第一个寄存数据的寄存周期为2;

将第一次乘累加循环的第n‑1个寄存数据的寄存周期与所述第一次乘累加循环的有效数据间隔相加后,再加数值1,以得到第一次乘累加循环的第n个寄存数据的寄存周期,n为大于1的自然数;

将第i‑1次乘累加循环的有效数据间隔与数值1相加,以得到第六过程值;

将所述第六过程值与第i‑1次乘累加循环的输入数据个数最低位的值相乘,然后在与数值1和第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的寄存周期;

将第i次乘累加循环第n‑1个寄存数据的寄存周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的寄存周期。

8.根据权利要求5所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输出临时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤包括:将所述第一次乘累加循环的输入数据个数除以数值2,然后再减去数值1,以得到第一次乘累加循环需要输出临时寄存器的数据个数;

将第i次乘累加循环的输入数据个数除以数值2,然后再与第i‑1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输出临时寄存器的数据个数。

9.根据权利要求8所述的基于静态配置数字电路的浮点数乘累加控制方法,其特征在于,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输出周期计算步骤,所述输出周期计算步骤包括:

预设第一次乘累加循环的第一个寄存数据的输出周期为3;

将第一次乘累加循环的第n‑1个寄存数据的输出周期、所述第一次乘累加循环的有效数据间隔和数值1相加,以得到第一次乘累加循环的第n个寄存数据的输出周期,n为大于1的自然数;

将数值1减去第i‑1次乘累加循环的输入数据个数最低位的值,以得到第七过程值;

将第i‑1次乘累加循环的有效数据间隔与数值1相加,以得到第八过程值;

将所述第七过程值和所述第八过程值相乘,然后与数值1和第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的输出周期;

将第i次乘累加循环第n‑1个寄存数据的输出周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的输出周期。

10.一种浮点数乘累加控制系统,用于通过如权利要求1~9任一项所述的基于静态配置数字电路的浮点数乘累加控制方法驱动乘累加器,所述乘累加器包括浮点数加法器和乘法器,其特征在于,所述浮点数乘累加控制系统包括计算单元、判断单元和临时寄存器,所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;所述判断单元用于判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;所述判断单元得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;所述判断单元得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。

说明书 :

基于静态配置数字电路的浮点数乘累加控制方法及系统

技术领域

[0001] 本发明涉及浮点数乘累加器技术领域,尤其涉及一种基于静态配置数字电路的浮点数乘累加控制方法及系统。

背景技术

[0002] 目前在设计浮点数的乘累加功能时,大部分设计倾向于将浮点数乘法器和浮点数累加器分解、重组实现,形成独立的完整乘累加模块,其带来的好处是减少乘法器的规格化
还原过程和浮点数加法器的浮点数规格化分解和还原过程,但缺需要使用大量的硬件资源
构建独立的浮点数乘累加功能。
[0003] 公开号为CN108694038A的中国专利公开了一种专用处理块中的混合精度浮点运算电路,公开了混合精度的浮点数的乘法器、浮点数加法器实现过程以及通过级联的模式
进行向量计算的方法的技术方案,但使用了大量的硬件资源构。
[0004] 公开号为CN111767025A的中国专利公开了一种包括乘累加器的芯片、终端及浮点运算的控制方法,通过对浮点数的乘法器和浮点数加法器进行拆分和重组,形成一个新的
乘累加模块,实现了乘累加功能,但使用了大量的硬件资源构。
[0005] 因此,有必要提供一种新型的基于静态配置数字电路的浮点数乘累加控制方法及系统以解决现有技术中存在的上述问题。

发明内容

[0006] 本发明的目的在于提供一种基于静态配置数字电路的浮点数乘累加控制方法及系统,节约了硬件资源的使用。
[0007] 为实现上述目的,本发明的所述基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器,包括以下步骤:
[0008] 获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期;
[0009] 判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所述乘
累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算状
态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法器
的输出值作为所述浮点数加法器的第二输入值;
[0010] 得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的
运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期
输出的数据作为寄存数据寄存到所述临时寄存器中;
[0011] 得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的
运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述
浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数
据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与
所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
[0012] 所述基于静态配置数字电路的浮点数乘累加控制方法的有益效果在于:根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入
周期和所有输出周期,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输
入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输入周期相同,则
将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数据寄存到所述
临时寄存器中,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期
相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述
临时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加
法器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,极大
的节约了硬件资源的使用。
[0013] 优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期包括初始化步骤,所述初始化步骤包
括:
[0014] 将第一次乘累加循环的输入数据个数初始化为所述浮点数加法器的延迟与数值1的和;
[0015] 将第一次乘累加循环的有效数据间隔初始化为数值1;
[0016] 将第一次乘累加循环的最后一次加运算的运行周期初始化为与所述浮点数加法器的延迟相同的值。
[0017] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的输入数据
个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
[0018] 将第i‑1次乘累加循环的输入数据个数除以数值2以得到第一过程值,然后将所述第一过程值与第i‑1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循
环的输入数据个数,i为大于1的自然数。其有益效果在于:便于计算乘累加循环的输入数据
个数。
[0019] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的有效数据
间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
[0020] 将第i‑1次乘累加循环的有效数据间隔与数值2相加,以得到第i次乘累加循环的有效数据间隔。其有益效果在于:便于计算乘累加循环的有效数据间隔。
[0021] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的最后一次
加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包
括:
[0022] 将第i‑1次乘累加循环的输入数据个数最低位的值与第i‑1次乘累加循环的最后一次加运算的运行周期相乘,以得到第二过程值;
[0023] 将数值1减去所述第二过程值,再与数值1相加,以得到第三过程值;
[0024] 将所述第三过程值、所述浮点数加法器的延迟以及第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环的最后一次加运算的运行周期。其有益
效果在于:便于计算乘累加循环的最后一次加运算的运行周期。
[0025] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输入临
时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤
包括:
[0026] 将所述第一次乘累加循环的输入数据个数除以数值2,以得到第四过程值;
[0027] 将所述第四过程值与所述第一次乘累加循环的输入数据个数最低位的值相加,然后减去数值1,以得到第一次乘累加循环需要输入临时寄存器的数据个数;
[0028] 将第i次乘累加循环的输入数据个数除以数值2,以得到第五过程值;
[0029] 将第五过程值减去第i‑1次乘累加循环的输入数据个数最低位的值,然后与第i次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输入临时寄存
器的数据个数。其有益效果在于:便于计算输入临时寄存器的数据个数。
[0030] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输入周期计算步骤,所述
输入周期计算步骤包括:
[0031] 预设第一次乘累加循环的第一个寄存数据的寄存周期为2;
[0032] 将第一次乘累加循环的第n‑1个寄存数据的寄存周期与所述第一次乘累加循环的有效数据间隔相加后,再加数值1,以得到第一次乘累加循环的第n个寄存数据的寄存周期,
n为大于1的自然数;
[0033] 将第i‑1次乘累加循环的有效数据间隔与数值1相加,以得到第六过程值;
[0034] 将所述第六过程值与第i‑1次乘累加循环的输入数据个数最低位的值相乘,然后在与数值1和第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加
循环第一个寄存数据的寄存周期;
[0035] 将第i次乘累加循环第n‑1个寄存数据的寄存周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的寄存周期。其有益效果在于:
便于计算寄存周期。
[0036] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输出临
时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤
包括:
[0037] 将所述第一次乘累加循环的输入数据个数除以数值2,然后再减去数值1,以得到第一次乘累加循环需要输出临时寄存器的数据个数;
[0038] 将第i次乘累加循环的输入数据个数除以数值2,然后再与第i‑1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输出临时寄存器的数据个数。
其有益效果在于:便于计算输出临时寄存器的数据个数。
[0039] 进一步优选地,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输出周期计算步骤,所述
输出周期计算步骤包括:
[0040] 预设第一次乘累加循环的第一个寄存数据的输出周期为3;
[0041] 将第一次乘累加循环的第n‑1个寄存数据的输出周期、所述第一次乘累加循环的有效数据间隔和数值1相加,以得到第一次乘累加循环的第n个寄存数据的输出周期,n为大
于1的自然数;
[0042] 将数值1减去第i‑1次乘累加循环的输入数据个数最低位的值,以得到第七过程值;
[0043] 将第i‑1次乘累加循环的有效数据间隔与数值1相加,以得到第八过程值;
[0044] 将所述第七过程值和所述第八过程值相乘,然后与数值1和第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的输出周期;
[0045] 将第i次乘累加循环第n‑1个寄存数据的输出周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的输出周期。其有益效果在于:
便于计算输出周期。
[0046] 本发明还提供了一种浮点数乘累加控制系统,用于驱动乘累加器,所述乘累加器包括浮点数加法器和乘法器,所述浮点数乘累加控制系统包括计算单元、判断单元和临时
寄存器,所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟
以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期;
所述判断单元用于判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器
进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得
到所述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加
运算状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数
加法器的输出值作为所述浮点数加法器的第二输入值;所述判断单元得到所述乘累加器的
最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算的运行周期是
否与任意所述输入周期相同,若所述乘累加器的最后一次加运算的运行周期与任意所述输
入周期相同,则将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为寄存数
据寄存到所述临时寄存器中;所述判断单元得到所述乘累加器的最后一次加运算的运行周
期后,还用于判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相
同,若所述乘累加器的最后一次加运算的运行周期与任意所述输出周期相同,则将所述临
时寄存器中对应周期存储的数据作为所述浮点数加法器的第一输入值,将所述浮点数加法
器在最后一次加运算的运行周期输出的数据作为所述浮点数加法器的第二输入值,若所述
乘累加器的最后一次加运算的运行周期与所有所述输出周期不相同,则将数值0作为所述
浮点数加法器的第一输入值和第二输入值。
[0047] 所述浮点数乘累加控制系统的有益效果在于:所述计算单元用于获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算
临时寄存器的所有输入周期和所有输入周期;所述判断单元用于判断所述乘累加器的最后
一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运算
的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行周
期输出的数据作为寄存数据寄存到所述临时寄存器中,所述判断单元还用于判断所述乘累
加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后
一次加运算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的
数据作为所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行
周期输出的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算
的运行周期与所有所述输出周期不相同,极大的节约了硬件资源的使用。

附图说明

[0048] 图1为本发明基于静态配置数字电路的浮点数乘累加控制方法的流程图;
[0049] 图2为本发明浮点数乘累加控制系统的结构框图。

具体实施方式

[0050] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实
施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造
性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使
用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常
意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该
词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
[0051] 针对现有技术存在的问题,本发明的实施例提供了一种基于静态配置数字电路的浮点数乘累加控制方法,应用于乘累加器,所述乘累加器包括浮点数加法器和乘法器。参照
图1,所述基于静态配置数字电路的浮点数乘累加控制方法包括以下步骤:
[0052] S1:获取所述浮点数加法器的延迟,根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输出周期;
[0053] S2:判断所述乘累加器是否进入最后一次加运算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后一次加运算的周期计数,以得到所
述乘累加器的最后一次加运算的运行周期,若判断所述乘累加器没有进入最后一次加运算
状态,则将所述乘法器的输出值作为所述浮点数加法器的第一输入值,将所述浮点数加法
器的输出值作为所述浮点数加法器的第二输入值;
[0054] S3:得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一次加运
算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算的运行
周期输出的数据作为寄存数据寄存到所述临时寄存器中;
[0055] S4:得到所述乘累加器的最后一次加运算的运行周期后,判断所述乘累加器的最后一次加运算的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运
算的运行周期与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为
所述浮点数加法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出
的数据作为所述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周
期与所有所述输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输
入值。步骤S3和步骤S4没有固定的先后顺序,也可以步骤S4在前,步骤S3在后。
[0056] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期包括初始化步骤,所述初始化步
骤包括:
[0057] 将第一次乘累加循环的输入数据个数初始化为所述浮点数加法器的延迟与数值1的和;
[0058] 将第一次乘累加循环的有效数据间隔初始化为数值1;
[0059] 将第一次乘累加循环的最后一次加运算的运行周期初始化为与所述浮点数加法器的延迟相同的值。
[0060] 一些具体实施例中,所述初始化步骤中,通过公式N[1]=ADD_DLY+1、BLANK[1]=1和CYCLE_step[1]=ADD_DLY实现初始化。其中,N[1]表示第一次乘累加循环的输入数据个
数,ADD_DLY表示所述浮点数加法器的延迟,BLANK[1]表示第一次乘累加循环的有效数据间
隔,CYCLE_step[1]表示第一次乘累加循环的最后一次加运算的运行周期。
[0061] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的输入数据
个数计算步骤,所述乘累加循环的输入数据个数计算步骤包括:
[0062] 将第i‑1次乘累加循环的输入数据个数除以数值2以得到第一过程值,然后将所述第一过程值与第i‑1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循
环的输入数据个数,i为大于1的自然数。
[0063] 一些具体实施例中,所述乘累加循环的输入数据个数计算步骤中,通过公式N[i]=N[i‑1]/2+N[i‑1][0]依次计算N[2]、N[3]、N[4]·····N[step_max],以得到step_
max次乘累加循环的输入数据个数。其中,step_max表示乘累加循环的最大次数,N[i]表示
第i次乘累加循环的输入数据个数,N[i‑1]表示第i‑1次乘累加循环的输入数据个数,N[i‑
1][0]表示第i‑1次乘累加循环的输入数据个数最低位的值,N[step_max]表示第step_max
次乘累加循环的输入数据个数,即最后一次乘累加循环的输入数据个数。
[0064] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的有效数据
间隔计算步骤,乘累加循环的有效数据间隔计算步骤包括:
[0065] 将第i‑1次乘累加循环的有效数据间隔与数值2相加,以得到第i次乘累加循环的有效数据间隔。
[0066] 一些具体实施例中,所述乘累加循环的输入数据个数计算步骤中,通过公式BLANK[i]=BLANK[i‑1]+2依次计算BLANK[2]、BLANK[3]、BLANK[4]、BLANK[5]·····BLANK
[step_max],以得到step_max次乘累加循环的有效数据间隔。其中,BLANK[i‑1]表示第i‑1
次乘累加循环的有效数据间隔,BLANK[step_max]表示第step_max次乘累加循环的有效数
据间隔,即最后一次乘累加循环的有效数据间隔。
[0067] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环的最后一次
加运算的运行周期计算步骤,所述乘累加循环的最后一次加运算的运行周期计算步骤包
括:
[0068] 将第i‑1次乘累加循环的输入数据个数最低位的值与第i‑1次乘累加循环的最后一次加运算的运行周期相乘,以得到第二过程值;
[0069] 将数值1减去所述第二过程值,再与数值1相加,以得到第三过程值;
[0070] 将所述第三过程值、所述浮点数加法器的延迟以及第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环的最后一次加运算的运行周期。
[0071] 一些具体实施例中,所述乘累加循环的输入数据个数计算步骤中,通过公式CYCLE_step[i]=ADD_DLY+(1‑N[i‑1][0])×(BLANK[i‑1]+1)+CYCLE_step[i‑1]依次计算
CYCLE_step[2]、CYCLE_step[3]、CYCLE_step[4]、CYCLE_step[5]·····CYCLE_step
[step_max],以得到step_max次乘累加循环的最后一次加运算的运行周期。其中,CYCLE_
step[i]表示第i次乘累加循环的最后一次加运算的运行周期,CYCLE_step[i‑1]表示第i‑1
次乘累加循环的最后一次加运算的运行周期,CYCLE_step[step_max]表示第step_max次乘
累加循环的最后一次加运算的运行周期,即最后一次乘累加循环的最后一次加运算的运行
周期。
[0072] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输入临
时寄存器的数据个数计算步骤,所述乘累加循环需要输入临时寄存器的数据个数计算步骤
包括:
[0073] 将所述第一次乘累加循环的输入数据个数除以数值2,以得到第四过程值;
[0074] 将所述第四过程值与所述第一次乘累加循环的输入数据个数最低位的值相加,然后减去数值1,以得到第一次乘累加循环需要输入临时寄存器的数据个数;
[0075] 将第i次乘累加循环的输入数据个数除以数值2,以得到第五过程值;
[0076] 将第五过程值减去第i‑1次乘累加循环的输入数据个数最低位的值,然后与第i次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输入临时寄存
器的数据个数。
[0077] 一些具体实施例中,所述乘累加循环需要输入临时寄存器的数据个数计算步骤中,通过公式reg_in_num[1]=N[1]/2+N[1][0]‑1计算第一次乘累加循环需要输入临时寄
存器的数据个数,其中,reg_in_num[1]表示第一次乘累加循环需要输入临时寄存器的数据
个数。
[0078] 又一些聚义实施例中,所述乘累加循环需要输入临时寄存器的数据个数计算步骤中,通过公式reg_in_num[i]=N[i]/2‑N[i‑1][0]+N[i][0]依次计算reg_in_num[2]、reg_
in_num[3]、reg_in_num[4]·····reg_in_num[step_max],以得到step_max次乘累加
循环需要输入临时寄存器的数据个数。其中,reg_in_num[i]表示第i次乘累加循环需要输
入临时寄存器的数据个数,reg_in_num[step_max]表示第step_max次乘累加循环需要输入
临时寄存器的数据个数,即最后一次乘累加循环需要输入临时寄存器的数据个数。
[0079] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输入周期计算步骤,所述
输入周期计算步骤包括:
[0080] 预设第一次乘累加循环的第一个寄存数据的寄存周期为2;
[0081] 将第一次乘累加循环的第n‑1个寄存数据的寄存周期与所述第一次乘累加循环的有效数据间隔相加后,再加数值1,以得到第一次乘累加循环的第n个寄存数据的寄存周期,
n为大于1的自然数;
[0082] 将第i‑1次乘累加循环的有效数据间隔与数值1相加,以得到第六过程值;
[0083] 将所述第六过程值与第i‑1次乘累加循环的输入数据个数最低位的值相乘,然后在与数值1和第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加
循环第一个寄存数据的寄存周期;
[0084] 将第i次乘累加循环第n‑1个寄存数据的寄存周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的寄存周期。
[0085] 一些具体实施例中,所述输入周期计算步骤通过公式step_reg_in[1][n]=step_reg_in[1][n‑1]+(BLANK[1]+1)依次计算step_reg_in[1][2]、step_reg_in[1][n]、step_
reg_in[1][3]····step_reg_in[1][reg_in_num[1]],以得到第一次乘累加循环的
reg_in_num[1]个寄存数据的寄存周期。其中,step_reg_in[1][n]表示第一次乘累加循环
的第n个寄存数据的寄存周期,step_reg_in[1][n‑1]表示第一次乘累加循环的第n‑1个寄
存数据的寄存周期,step_reg_in[1][reg_in_num[1]]表示第一次乘累加循环的第reg_in_
num[1]个寄存数据的寄存周期,即第一次乘累加循环的最后一个寄存数据的寄存周期。
[0086] 又一些具体实施例中,所述输入周期计算步骤通过公式step_reg_in[i][1]=N[i‑1][0]×(BLANK[i‑1]+1)+1+CYCLE_step[i‑1]依次计算step_reg_in[2][1]、step_reg_
in[3][1]、step_reg_in[4][1]·····step_reg_in[step_max][1],以得到step_max次
乘累加循环的第一个寄存数据的寄存周期。其中,step_reg_in[i][1]表示第i次乘累加循
环的第一个寄存数据的寄存周期,step_reg_in[step_max][1]表示第step_max次乘累加循
环的第一个寄存数据的寄存周期,即最后一次乘累加循环的第一个寄存数据的寄存周期。
[0087] 另一些具体实施例中,所述输入周期计算步骤通过公式Step_reg_in[i][n]=step_reg_in[i][n‑1]+BLANK[i]+1依次计算Step_reg_in[2][2]、Step_reg_in[2[3]、
Step_reg_in[2][4]·······Step_reg_in[2][reg_in_num[2]],Step_reg_in[3]
[2]、Step_reg_in[3][3]、Step_reg_in[3][4]·······Step_reg_in[3][reg_in_
num[3]],Step_reg_in[step_max][2]、Step_reg_in[step_max][3]、Step_reg_in[step_
max][4]·····Step_reg_in[step_max][reg_in_num[step_max]],以得到每一次乘累
加循环的每一个寄存数据的寄存周期。
[0088] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括乘累加循环需要输出临
时寄存器的数据个数计算步骤,所述乘累加循环需要输出临时寄存器的数据个数计算步骤
包括:
[0089] 将所述第一次乘累加循环的输入数据个数除以数值2,然后再减去数值1,以得到第一次乘累加循环需要输出临时寄存器的数据个数;
[0090] 将第i次乘累加循环的输入数据个数除以数值2,然后再与第i‑1次乘累加循环的输入数据个数最低位的值相加,以得到第i次乘累加循环需要输出临时寄存器的数据个数。
[0091] 一些具体实施例中,所述乘累加循环需要输出临时寄存器的数据个数计算步骤中通过公式reg_out_num[1]=N[1]/2–1计算第一次乘累加循环需要输出临时寄存器的数据
个数,reg_out_num[1]表示第一次乘累加循环需要输出临时寄存器的数据个数。
[0092] 又一些具体实施例中,所述乘累加循环需要输出临时寄存器的数据个数计算步骤中通过公式reg_out_num[i]=N[i]/2+N[i‑1][0]依次计算reg_out_num[2]、reg_out_num
[3]、reg_out_num[4]·····reg_out_num[step_max]。其中,reg_out_num[i]表示第i
次乘累加循环需要输出临时寄存器的数据个数,reg_out_num[step_max]表示第step_max
次乘累加循环需要输出临时寄存器的数据个数,即最后一次乘累加循环需要输出临时寄存
器的数据个数。
[0093] 一些实施例中,所述根据所述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输入周期和所有输入周期还包括输出周期计算步骤,所述
输出周期计算步骤包括:
[0094] 预设第一次乘累加循环的第一个寄存数据的输出周期为3;
[0095] 将第一次乘累加循环的第n‑1个寄存数据的输出周期、所述第一次乘累加循环的有效数据间隔和数值1相加,以得到第一次乘累加循环的第n个寄存数据的输出周期,n为大
于1的自然数;
[0096] 将数值1减去第i‑1次乘累加循环的输入数据个数最低位的值,以得到第七过程值;
[0097] 将第i‑1次乘累加循环的有效数据间隔与数值1相加,以得到第八过程值;
[0098] 将所述第七过程值和所述第八过程值相乘,然后与数值1和第i‑1次乘累加循环的最后一次加运算的运行周期相加,以得到第i次乘累加循环第一个寄存数据的输出周期;
[0099] 将第i次乘累加循环第n‑1个寄存数据的输出周期、第i次乘累加循环的有效数据间隔和数值1相加,以得到第i次乘累加循环第n个寄存数据的输出周期。
[0100] 一些具体实施例中,所述输出周期计算步骤通过公式step_reg_out[1][n]=step_reg_out[1][n‑1]+(BLANK[1]+1)依次计算step_reg_out[1][2]、step_reg_out[1]
[3]、step_reg_out[1][4]·····step_reg_out[1][reg_out_num[1]]。其中,step_
reg_out[1][n]表示第一次乘累加循环的第n个寄存数据的输出周期,step_reg_out[1][n‑
1]表示第一次乘累加循环的第n‑1个寄存数据的输出周期,step_reg_out[1][reg_out_num
[1]]表示第一次乘累加循环的第reg_out_num[1]个寄存数据的输出周期,即第一次乘累加
循环的最后一个寄存数据的输出周期。
[0101] 又一些具体实施例中,所述输出周期计算步骤通过公式step_reg_out[i][1]=(1‑N[i‑1][0])×(BLANK[i‑1]+1)+1+CYCLE_step[i‑1]依次计算step_reg_out[2][1]、
step_reg_out[3][1]·····step_reg_out[step_max][1]。其中,step_reg_out[i][1]
表示第i次乘累加循环第一个寄存数据的输出周期,step_reg_out[step_max][1]表示第
step_max次乘累加循环第一个寄存数据的输出周期,即最后一次乘累加循环第一个寄存数
据的输出周期。
[0102] 另一些实施例中,所述输出周期计算步骤通过公式Step_reg_out[i][n]=step_reg_out[i][n‑1]+BLANK[i]+1依次计算Step_reg_out[2][2]、Step_reg_out[2]
[3]·····Step_reg_out[2][reg_out_num[2]],Step_reg_out[3][2]、Step_reg_out
[3][3]·····Step_reg_out[3][reg_out_num[3]],Step_reg_out[step_max][2]、
Step_reg_out[step_max][3]·····Step_reg_out[step_max][reg_out_num[step_
max]],以得到每一次乘累加循环的每一个寄存数据的输出周期。
[0103] 图2为本发明一些实施例中浮点数乘累加控制系统的结构框图。参照图2,所述浮点数乘累加控制系统100用于驱动乘累加器,所述乘累加器包括浮点数加法器(图中未标
示)和乘法器(图中未标示),所述浮点数乘累加控制系统100包括计算单元(图中未标示)、
判断单元101和临时寄存器102,所述计算单元用于获取所述浮点数加法器的延迟,根据所
述浮点数加法器的延迟以及预设的乘累加循环的有效数据间隔计算临时寄存器的所有输
入周期和所有输入周期;所述判断单元101用于判断所述乘累加器是否进入最后一次加运
算状态,若判断所述乘累加器进入最后一次加运算状态,则开始进行所述乘累加器的最后
一次加运算的周期计数,以得到所述乘累加器的最后一次加运算的运行周期,若判断所述
乘累加器没有进入最后一次加运算状态,则将所述乘法器的输出值作为所述浮点数加法器
的第一输入值,将所述浮点数加法器的输出值作为所述浮点数加法器的第二输入值;所述
判断单元101得到所述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加
器的最后一次加运算的运行周期是否与任意所述输入周期相同,若所述乘累加器的最后一
次加运算的运行周期与任意所述输入周期相同,则将所述浮点数加法器在最后一次加运算
的运行周期输出的数据作为寄存数据寄存到所述临时寄存器中;所述判断单元101得到所
述乘累加器的最后一次加运算的运行周期后,还用于判断所述乘累加器的最后一次加运算
的运行周期是否与任意所述输出周期相同,若所述乘累加器的最后一次加运算的运行周期
与任意所述输出周期相同,则将所述临时寄存器中对应周期存储的数据作为所述浮点数加
法器的第一输入值,将所述浮点数加法器在最后一次加运算的运行周期输出的数据作为所
述浮点数加法器的第二输入值,若所述乘累加器的最后一次加运算的运行周期与所有所述
输出周期不相同,则将数值0作为所述浮点数加法器的第一输入值和第二输入值。
[0104] 参照图2,所述判断单元101包括计数器1011、第一数据选择器1012、第二数据选择器1013和寄存器输入判断单元1014,所述计数器1011的输入端用于接收Last信号以启动计
数,以得到所述乘累加器的最后一次加运算的运行周期,所述计数器1011的输出端与所述
第一数据选择器1012的第一输入端、所述寄存器输入判断单元1014的第一输入端和所述第
二数据选择器的第一输入端连接,所述第一数据选择器1012的第二输入端用于与所述乘法
器的输出端连接,以接收数据mul_res,所述第一数据选择器1012的第三输入端、所述寄存
器输入判断单元1014的第二输入端和所述第二数据选择器1013的第二输入端均用于与所
述浮点数加法器的输出端连接,以接收数据add_res,所述第一数据选择器1012的输出端与
所述浮点数加法器的第一输入端连接,用于向所述浮点数加法器传输第一输入值add_a,所
述寄存器输入判断单元1014的输出端与所述临时寄存器102的输入端连接,所述临时寄存
器102的输出端与所述第二数据选择器1013的第三输入端连接,所述第二数据选择器1013
的输出与所述浮点数加法器的第二输入端连接,用于向所述浮点数加法器传输第二输入值
add_b。其中,Last信号为一次乘累加最终阶段的标志信号,即最后一组数据进行加计算的
标志信号,Mac_res为乘累加计算最终输出的结果数据,若所述计数器1011接收到Last信
号,所述判断单元101判断所述乘累加器进入最后一次加运算状态,若所述所述计数器1011
没有接收到Last信号,所述判断单元101判断所述乘累加器没有进入最后一次加运算状态。
[0105] 一些实施例中,所述浮点数乘累加控制系统100还包括结果有效标志生成单元103,所述结果有效标志生成单元103的输入端与所述计数器1011的输出端连接,用于输出
结果有效标志信息或结果无效标志信息,当输出所述结果有效标志信息时Mac_res_valid
=1,当输出所述结果无效标志信息时Mac_res_valid=0。
[0106] 一些具体实施例中,假设所述浮点数加法器的延迟为7,则ADD_DLY=7,则可以得到N[1]=8、N[2]=4、N[3]=2、BLANK[1]=1、BLANK[2]=3、BLANK[3]=5、step_max=3、
CYCLE_step[1]=7、CYCLE_step[2]=16、CYCLE_step[3]=27;
[0107] 然后计算得到reg_in_num[1]=3、reg_in_num[2]=2、reg_in_num[3]=1;step_reg_in[1][1]=2、step_reg_in[1][2]=4、step_reg_in[1][3]=6、step_reg_in[2][1]=
8、step_reg_in[2][2]=12、step_reg_in[3][1]=17,所有乘累加循环的所有寄存数据的
寄存周期的集合为reg_in{2、4、6、8、12、17};
[0108] 然后计算得到reg_out_num[1]=3、reg_out_num[2]=2、reg_out_num[3]=1;step_reg_out[1][1]=3、step_reg_out[1][2]=5、step_reg_out[1][3]=7、step_reg_
out[2][1]=10、step_reg_out[2][2]=14、step_reg_out[3][1]=21,所有乘累加循环的
所有寄存数据的输出周期的集合为reg_out{3、5、7、10、14、21}。
[0109] 一些实施例中,在Last_flag信号到来之前,所述计数器输出数据cnt,此时cnt为0,当Last信号到来之后,所述计数器输出数据last_cnt,此时cnt为1,并处于自增状态,直
至当last_cnt为CYCLE_step[step_max]时,即当last_cnt为27时,将last_cnt重置为0。
[0110] 一些实施例中,当所述计数器向所述第一数据选择器发送的数据cnt为0时,所述第一数据选择器将所述乘法器输出的数据传输给所述浮点数加法器的第一输入端;当所述
计数器向所述第二数据选择器发送的数据cnt为0时,所述第二数据选择器将所述浮点数加
法器的输出数据传输给所述浮点数加法器的第二输入端。
[0111] 一些具体实施例中,当所述计数器向所述第一数据选择器发送的数据last_cnt大于0时,若判断last_cnt在集合reg_out{3、5、7、10、14、21}内,则将所述浮点数加法器的输
出数据作为第一输入值输送给所述浮点数加法器的第一输入端,若判断last_cnt在集合
reg_out{3、5、7、10、14、21}外,则将数值0作为第一输入值输送给所述浮点数加法器的第一
输入端。
[0112] 一些具体实施例中,当所述计数器向所述寄存器输入判断单元发送的数据last_cnt大于0时,若判断last_cnt在集合reg_in{2、4、6、8、12、17}内,则将所述浮点数加法器的
输出数据存储到所述临时寄存器中。
[0113] 一些具体实施例中,当所述计数器向所述第二数据选择器发送的数据last_cnt大于0时,若判断last_cnt在集合reg_out{3、5、7、10、14、21}内,则将存储到所述临时寄存器
中的数据作为第二输入值输送给所述浮点数加法器的第二输入端,若判断last_cnt在集合
reg_out{3、5、7、10、14、21}外,则将数值0作为第二输入值输送给所述浮点数加法器的第二
输入端。
[0114] 一些具体实施例中,在所述浮点数加法器的延迟为7,即ADD_DLY=7时,一组乘累加最终阶段的延迟情况,在所述计数器接收Last信号的第27个周期,输出有效的乘累加结
果,temp_reg表示所述临时寄存器存储的数据,每一个周期分为7个阶段Dly_0、Dly_1、Dly_
2、Dly_3、Dly_4、Dly_5和Dly_7,表格中temp_reg、Dly_0、Dly_1、Dly_2、Dly_3、Dly_4、Dly_5
和Dly_7中的数字代表倒数第几个被累加的缓存数据,其所在行表示其缓存位置,每个周期
中每个阶段的数据如表1所示:
[0115] 表1
[0116]
[0117]
[0118] 虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都
属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的
实施方式,并且可通过多种方式实施或实现。