本发明专利技术公开了一种基于FPGA的高速低延迟浮点累加器及其实现方法。本发明专利技术的浮点累加器包括一个浮点加法器单元、N个中间结果缓冲器、输入控制单元和输出控制单元。本发明专利技术的浮点累加实现方法对整个累加计算过程进行分级,不同级数的累加计算过程交叉进行,不同级数的累加计算中间结果分级存储;同时,完全采用流水线方式工作,大大提高内部浮点加法器利用效率,浮点累加计算最终结果的输出具有较低的延迟。本发明专利技术通过对内部浮点加法器单元输入数据的动态分配,提高浮点加法器的利用效率,从而能够在所需逻辑或DSP资源消耗不大的同时,保证较高的运算速度和较低的延迟。
【技术实现步骤摘要】
本专利技术涉及FPGA技术及高性能计算
,具体来说是一种基于FPGA的高速 低延迟浮点累加器及其实现方法。
技术介绍
浮点累加运算是浮点计算中的一个重要操作,在过程控制、数字信号处理等领域 广泛存在。以前的浮点运算系统通常采用通用浮点处理器或DSP实现,虽然具有技术较为 成熟、实现工具完善、编程简单等优点,但是由于其内部结构的限制,处理器在进行计算时 经常会出现缓存扑空(Cache Miss)等现象,影响系统计算性能。基于通用处理器和DSP技 术的设计通常持续计算性能只能维持在其峰值计算性能的10% 33%,无法取得很高的 计算性能。近年来FPGA技术取得了飞速发展,已经从最初只能面向纯逻辑替代的应用转变 为能够面向复杂的计算密集型应用。最新推出的FPGA器件中,不仅集成有丰富的可配置逻 辑块资源(Configurable Logic Block,CLB),还包括大量面向计算密集应用的DSP单元、块 状RAM(Block RAM, BRAM)和用于高速串行通信的RocketIO GTP收发器单元。同时为方便 FPGA的调试,各FPGA厂商还推出了片内逻辑分析测试工具(如Xilinx公司的Chipkope), 在软硬件上保证了在FPGA上实现高性能计算的可行性。在浮点运算方面,凭借着更灵活的 配置特性和较低的功耗,FPGA也正获得越来越多的应用。在FPGA内部,浮点加法器通常通过逻辑资源或可配置的DSP模块实现,为了获得 更高的运算速度,浮点加法器往往需要使用多达10级以上的流水线实现,这样浮点加法结 果的输出往往具有较大延迟。因此,在常规设计中,基于FPGA的浮点累加器通常对不同级 数的加法运算依照级数大小顺序进行,通过内部缓冲器存储每一级加法运算结果,并用于 下一级运算。这样,对于一些累加次数与浮点加法器流水线级数相当甚至更小的情形,由于 需要等待加法流水线操作完成的时间比输入数据的时间更长,加法器往往出现空闲工作状 态,最终累加结果的输出相对于原始数据的输入往往具有很大的时间延迟。在这种情况下, 下一次浮点累加操作的原始数据需要等待上一次浮点累加操作接近全部完成的时候才允 许输入,从而造成较大的延迟。在一些实时性要求很高的场合,这种累加器就无法满足应用 需求。虽然可以通过增加浮点加法器的数目来解决该问题,但是由于浮点运算的复杂度,对 FPGA的逻辑资源或DSP模块消耗急剧增加。
技术实现思路
本专利技术提供了一种具备优良实时性能的、基于FPGA的高速低延迟浮点累加器及 其实现方法,能够有效提高浮点加法器的利用率,在所需逻辑或DSP资源基本不变的同时 具有较低的延迟。一种基于FPGA的高速低延迟浮点累加器,包括—个浮点加法器单元,用于对输入的浮点数进行加法操作,所述的浮点数包括原始数据和各级浮点累加运算的中间结果数据;以及用于对输入的浮点数的标志位进行与相 应的浮点数的加法操作同步的延迟;所述的浮点加法器单元包括一个常规的浮点加法模块 和一个标志位同步延迟逻辑模块,可使用FPGA内部逻辑资源或可配置的DSP模块实现;为 了获得更高的运算速度,浮点加法器单元通常采用多级流水线的方式实现;N个中间结果缓冲器单元,分别与各级浮点累加运算对应,用于缓存各级浮点累 加运算的中间结果;所述的中间结果缓冲器单元利用FPGA内部fifo实现,由于各级浮点 累加运算得到的中间结果数据总量并不一致,对中间结果缓冲器单元的大小需求也会有所 差别,因此,为了获得更高的资源利用率,可以根据各级浮点累加运算得到的中间结果数据 量,为存储不同浮点累加运算级数中间结果的中间结果缓冲器单元选择合适大小和类型的 fifo,从而减少对FPGA内部存储资源的消耗;输入控制单元,用于接收原始数据和各级浮点累加运算的中间结果数据,并对不 同来源的数据设立不同的优先级,按照优先级高低将相同优先级的成对数据输入到浮点加 法器单元进行加法操作,同时给每对输入到浮点加法器单元的数据设立标志位,标示对于 当前数据对进行加法操作所属的浮点累加运算级数;其中,对不同来源的数据设立不同的 优先级,为将原始数据设为最高优先级,对于各级浮点累加运算的中间结果数据,其对应 的浮点累加运算级数越高,越是靠近最终结果,其优先级越高;输出控制单元,用于根据所述的浮点加法器单元同步延迟输出的标志位,确定浮 点加法器单元当前输出的数据所属的浮点累加运算级数,判断所述的浮点加法器单元输出 的当前加法操作的计算结果是中间结果还是最终结果,将中间结果存入相应浮点累加运算 级数的中间结果缓冲器单元;将最终结果输出。一种基于FPGA的高速低延迟浮点累加的实现方法,包括(1)原始浮点数据输入步骤每个时钟周期从前级计算或处理模块输入一个原始 浮点数据到浮点加法器单元,所述原始浮点数据WM = 2n+1个数据为一组被累加,各组原始 浮点数据被连续输入;N为累加级数;(2)输入控制步骤输入控制单元接收原始浮点数据和各级浮点累加运算的中间 结果浮点数据,并对不同来源的浮点数据设立不同的优先级,按照优先级高低将相同优先 级的成对浮点数据输入到浮点加法器单元进行加法操作,同时给每对输入到浮点加法器单 元的浮点数据设立标志位,标示对于当前浮点数据对进行加法操作所属的浮点累加运算 级数;其中,对不同来源的浮点数据设立不同的优先级,为将原始浮点数据设为最高优先 级,对于各级浮点累加运算的中间结果浮点数据,其对应的浮点累加运算级数越高,越是靠 近最终结果,其优先级越高;(3)浮点累加运算步骤,浮点加法器单元对每个时钟周期输入的成对浮点数据进 行加法计算,同时也对输入控制单元设立的与该对浮点数据对应的标志位进行同步延迟;(4)输出控制步骤,根据所述的浮点加法器单元同步延迟输出的标志位,输出控制 单元确定浮点加法器单元输出的当前加法操作的计算结果所属的浮点累加运算级数,从而 判断所述的浮点加法器单元输出的当前加法操作的计算结果是中间结果还是最终结果,将 中间结果存入相应浮点累加运算级数的中间结果缓冲器单元;将最终结果输出。当原始浮点数据按照时钟周期连续输入到浮点加法器单元时,上述过程各步骤以 流水线方式进行,各组原始浮点数据累加最终结果以M = 2n+1-1个时钟为间隔持续输出。与现有技术相比,本专利技术具有以下有益的技术效果本专利技术中,所述的高速低延迟浮点累加器内部仅使用一个浮点加法器单元,减少 了对浮点运算所需的大量FPGA内部逻辑资源或DSP资源的消耗。采用所述的高速低延迟 浮点累加器进行浮点累加运算时,对整个累加计算过程进行分级,不同级数的累加计算过 程交叉进行,不同级数的累加计算中间结果分级存储;同时,完全采用流水线方式工作,大 大提高内部浮点加法器单元利用效率,浮点累加计算最终结果的输出具有较低的延迟。本专利技术通过对输入到内部浮点加法器单元的数据的动态分配,在等待浮点加法器 单元流水线输出的同时,保持浮点加法器单元各级流水线的运作,有效提高浮点加法器单 元的利用率,从而能够在所需逻辑或DSP资源消耗不大的同时,保证较高的运算速度和较 低的延迟。附图说明图1为本专利技术的高速低延迟浮点累加器的内部结构示意框图2为本专利技术的高速低延迟浮点累加实现方法中一组数据进行多级浮点累加运 算过程示意图,累加级数N=本文档来自技高网...
【技术保护点】
一种基于FPGA的高速低延迟浮点累加器,其特征在于,包括:一个浮点加法器单元,用于对输入的浮点数进行加法操作,所述的浮点数包括原始数据和各级浮点累加运算的中间结果数据;以及用于对输入的浮点数的标志位进行与相应的浮点数的加法操作同步的延迟;N个中间结果缓冲器单元,分别与各级浮点累加运算对应,用于缓存各级浮点累加运算的中间结果;输入控制单元,用于接收原始数据和各级浮点累加运算的中间结果数据,并对不同来源的数据设立不同的优先级,按照优先级高低将相同优先级的成对数据输入到浮点加法器单元进行加法操作,同时给每对输入到浮点加法器单元的数据设立标志位,标示对于当前数据对进行加法操作所属的浮点累加运算级数;其中,对不同来源的数据设立不同的优先级,为:将原始数据设为最高优先级,对于各级浮点累加运算的中间结果数据,其对应的浮点累加运算级数越高,其优先级越高;输出控制单元,用于根据所述的浮点加法器单元同步延迟输出的标志位,确定浮点加法器单元当前输出的数据所属的浮点累加运算级数,判断所述的浮点加法器单元输出的当前加法操作的计算结果是中间结果还是最终结果,将中间结果存入相应浮点累加运算级数的中间结果缓冲器单元;将最终结果输出。...
【技术特征摘要】
1.一种基于FPGA的高速低延迟浮点累加器,其特征在于,包括一个浮点加法器单元,用于对输入的浮点数进行加法操作,所述的浮点数包括原始数 据和各级浮点累加运算的中间结果数据;以及用于对输入的浮点数的标志位进行与相应的 浮点数的加法操作同步的延迟;N个中间结果缓冲器单元,分别与各级浮点累加运算对应,用于缓存各级浮点累加运算 的中间结果;输入控制单元,用于接收原始数据和各级浮点累加运算的中间结果数据,并对不同来 源的数据设立不同的优先级,按照优先级高低将相同优先级的成对数据输入到浮点加法器 单元进行加法操作,同时给每对输入到浮点加法器单元的数据设立标志位,标示对于当前 数据对进行加法操作所属的浮点累加运算级数;其中,对不同来源的数据设立不同的优先 级,为将原始数据设为最高优先级,对于各级浮点累加运算的中间结果数据,其对应的浮 点累加运算级数越高,其优先级越高;输出控制单元,用于根据所述的浮点加法器单元同步延迟输出的标志位,确定浮点加 法器单元当前输出的数据所属的浮点累加运算级数,判断所述的浮点加法器单元输出的当 前加法操作的计算结果是中间结果还是最终结果,将中间结果存入相应浮点累加运算级数 的中间结果缓冲器单元;将最终结果输出。2.如权利要求1所述的基于FPGA的高速低延迟浮点累加器,其特征在于,所述的浮点 加法器单元使用FPGA内部逻辑资源或可配置的DSP模块实现。3.如权利要求1或2所述的基于FPGA的高速低延迟浮点累加器,其特征在于,所述的 浮点加法器单元采用多级流水线的方式实现。4.如权利要求1所述的基于FPGA的高速低延迟浮点累加器,其特征在于,所述的中间 结果缓冲器单元利用FPGA内部fifo实现。5.如权利要求1或4所述的基于FPGA的高速低延迟浮点累加器,其特征在于,所述的 中间结果缓冲器单元的大小和类型由各级浮点累加运算得到的中间结果数据量确定。6.一种基于FPGA的高速低延...
【专利技术属性】
技术研发人员:陈耀武,袁龙涛,周凡,
申请(专利权)人:浙江大学,
类型:发明
国别省市:86[中国|杭州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。