[发明专利]一种使用FPGA实现浮点数据累加的方法有效
申请号: | 201811417160.0 | 申请日: | 2018-11-26 |
公开(公告)号: | CN111221496B | 公开(公告)日: | 2023-06-13 |
发明(设计)人: | 尹珏玮;张辉;李长存 | 申请(专利权)人: | 北京华航无线电测量研究所 |
主分类号: | G06F7/485 | 分类号: | G06F7/485 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100013 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 fpga 实现 浮点 数据 累加 方法 | ||
1.一种使用FPGA实现浮点数据累加的方法,其特征是包括以下步骤:
S1、浮点数据前期无堵塞流水累加;
S2、浮点数据末段累加中间结果;
所述步骤S1浮点数据前期无堵塞流水累加,包括以下步骤:
浮点数据前期无堵塞流水累加操作时,原始输入数据作为浮点加法中的加数A,加法器输出的中间结果反馈到加法器的另一数据输入端,作为加数B;原始输入数据有效标志作为浮点加法器IP的输入有效标志;对加法器的输出结果用内部时钟进行一拍的寄存,整个加法的流水延迟为13个时钟周期;在无堵塞流水累加阶段,时钟周期为M时,加法器输出端结果为:
flt_add_result=X(M+1-13)+X(M+1-2*13)+…+X(M+1-k*13)
其中k为满足M-k*13≥=0的最大整数值;
设原始输入数据长度为N,且N>=13,则在时钟周期为N-12~N期间的13个累加中间值结果将被写入FIFO,在时钟周期为N时结束无堵塞累加阶段;在第N个时钟周期时,第N-13时刻的累加中间结果经过14个时钟延迟已经送至加法器的另一端,因此无堵塞流水累加一直保持到第N个时钟周期;N<13与N>=13的区别仅在于无堵塞累加阶段末尾时写入FIFO的累加中间值结果的个数不是13,而是N,即第二阶段浮点数据末段累加的数据向量长度n的取值为:
所述步骤S2浮点数据末段累加中间结果累加,包括以下步骤:
前期无堵塞累加阶段的最后13个时钟周期将得到n个中间结果,n≤13,记为Z(i),i=1,2,3,…,n,第二阶段即需要对Z(i)进行累加处理;
fifo_wr为FIFO模块写信号,fifo_din、fifo_dout分别为FIFO模块的输入输出数据,fifo_vout为FIFO模块输出数据的有效标志,fifo_vout_flag是FIFO输出数据奇偶计数标志,flt_add_nd为输入到加法器的数据有效标志,flt_add_result为加法器输出,flt_add_rdy是加法器输出结果的有效标志;
末段累加时,当flt_add_rdy为高时,将加法器输出写入FIFO,若FIFO非空,则对FIFO进行读取操作;当fifo_vout有效且fifo_vout_flag为低时即奇数时,将fifo_dout锁存,作为加数A;当fifo_vout有效且fifo_vout_flag为高时即偶数时,将fifo_dout锁存,作为加数B,并且置flt_add_nd为高,完成一次加法;
对于初始输入的13个数据,经过上述操作,其中的12个数据将完成6次加法运算,每次加法经过14个时钟周期的延迟输出加法结果,共有6个中间累加结果将再次写入FIFO中;随后对FIFO中的7个数据重复上述操作,则将从FIFO中读出6个数据完成3次加法运算,得到3个中间结果并写入FIFO中;经过前两轮操作后,此时FIFO中存入了4个数据;对这个4数据再次重复两轮上述操作,得到最终的浮点数据累加结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华航无线电测量研究所,未经北京华航无线电测量研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811417160.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种并行计算方法及装置
- 下一篇:电池系统温度控制方法、控制系统及电池系统