当前位置: 首页 > 专利查询>湖南大学专利>正文

基于FPGA的流水浮点乘累加方法技术

技术编号:7662536 阅读:297 留言:0更新日期:2012-08-09 07:06
一种基于FPGA的流水浮点乘累加方法,其步骤为:(1)输入需要进行乘累加计算的数量M;(2)将需要计算的M对32位二进制浮点数A、B依次输入浮点乘法器进行乘法运算,直至完成所有M对数据的运算;同时,将浮点乘法器的乘积结果与第一浮点加法器自身的加法结果连续输入到第一浮点加法器完成部分累加运算得到累加结果;(3)将所述步骤(2)得到的累加结果中的最后N级流水线的数据输入至第二浮点加法器中进行运算以得到整个乘累加过程的结果。本发明专利技术具有原理简单、通用性好、可提高运算速度等优点。

【技术实现步骤摘要】

本专利技术主要涉及到嵌入式系统的设计领域,特指一种基于FPGA的流水浮点乘累加方法
技术介绍
计算机运算主要分两种定点运算和浮点运算。其中,定点运算主要是用于算术运算、逻辑运算、地址计算等,比如对定点整数和小数的运算、对逻辑数据的运算;浮点运算与定点运算相比,具有运算速度快、有效精度高、计数范围宽等特点,因此其更适合运用在工程计算与科学计算中,它已成为计算机运算的重要方式。当前浮点运算多数采用DSP芯片来实现运算功能,这样可以简化算法,精度也变得更高。但是在某些情况下必须采用专门的浮点运算处理器来实现浮点运算,这是由于浮点运算结构比较复杂,在系统对速度要求较高的情况下采用DSP芯片来实现浮点运算会增加系统的负担并降低系统的速度,使得继续采用DSP来实现浮点运算的优势不再明显。然而随着FPGA技术的不断成熟以及它所具有的高速、高集成、低成本、可在线编程等优点使FPGA广泛应用于各科学领域。乘累加(Multiply Accumulate, MAC)是一个基本的数学运算,大型浮点数乘累加运算在DSP算法中有着举足轻重的地位,广泛的应用于图像处理、统计分析、生物医学等众多领域。近年来,很多学者基于FPGA的特性来研究浮点乘累加的算法,但都是基于目前比较成熟复杂的算法进行优化与改进,虽然此种思路可以细微的优化、提升整个算法在FPGA上的性能,但是并没有从业人员充分的利用知识产权核(Intellectual Property, IP)来设计优化乘累加器。由于IP核是FPGA的开发商根据自身FPGA的工艺与设计进行功能与布线的优化,从某种程度上讲已经达到较佳的性能,而且浮点运算的IP核全部都是基于流水线设计,为在此基础上进行进一步的设计应用提供了很好的基础。因此综合分析、巧妙的运用IP核的特性设计出实现浮点乘累加的方法,可以更好的达到FPGA的速度与面积的优化和算法性能的提升。
技术实现思路
本专利技术要解决的技术问题就在于针对现有技术存在的技术问题,本专利技术提供一种原理简单、通用性好、可提高运算速度的基于FPGA的流水浮点乘累加方法。为解决上述技术问题,本专利技术采用以下技术方案一种基于FPGA的流水浮点乘累加方法,其步骤为(I)输入需要进行乘累加计算的数量M ;(2)将需要计算的M对32位二进制浮点数A、B依次输入浮点乘法器进行乘法运算,直至完成所有M对数据的运算;同时,将浮点乘法器的乘积结果与第一浮点加法器自身的加法结果连续输入到第一浮点加法器完成部分累加运算得到累加结果;(3)将所述步骤(2)得到的累加结果中的最后N级流水线的数据输入至第二浮点加法器中进行运算以得到整个乘累加过程的结果。作为本专利技术的进一步改进所述步骤(2)中的执行流程为(2. I)根据浮点乘法计算的流水特性,将外部要计算的数据直接连续输入到浮点乘法器中进行运算,并在乘积输出流水线数据有效的时候使能第一浮点加法器的使能信号; (2. 2)根据浮点加法计算的流水特性,将浮点乘法器的结果作为第一浮点加法器的一个数据,而第一浮点加法器自身的输出和作为另一个数据连续输入,不断完成加法的操作。所述步骤(3)中第二浮点加法器采用加法树,第二浮点加法器的流水线为7级,它的执行流程为(3. I)加法树的第一级分别将6个数据划分为三组,在第1-3个周期输入第二浮点加法器;由于流水线为7级,因此在第8、9、10个周期的时候分别输出三组结果;(3. 2)加法树的第二级在第10和11个周期的时候分别将步骤(3. I)中的三个结果和之前剩下的一个数据组成两组连续输入到第二浮点加法器进行运算,分别在第17、18个周期的时候输出两个结果;(3. 3)最后在第19个周期的时候将步骤(3. 2)中的两个结果同时输入第二浮点加法器完成加法树的最后一级运算,在第26个周期的时候输出最终的累加结果。与现有技术相比,本专利技术的优点在于(I)本专利技术的浮点乘累加方法可以实现任意大小的乘法累加运算,不对数据有任何的约束与局限,能够广泛的应用于任何从简单到复杂的数字信号处理算法中;(2)本专利技术的结构是基于流水线进行设计,巧妙的应用浮点乘法器与浮点加法器IP核的流水线特性,使得复杂的乘累加运算在经过前端的乘法与加法运算之后,最后只需要计算加法器N级流水线的数据之和即可,不仅简化了乘累加器的实现方法,同时提升了其在FPGA上的运行速度,可以有效的加快各种复杂的数学运算速度;(3)本专利技术具有模块化设计思想,使得本专利技术的可移植性较强,通用性较好,针对不同平台只需要重新配置IP核即可使用。附图说明图I是本专利技术的整体流程示意图。图2是用来实现本专利技术方法的模块结构原理示意图。图3是本专利技术中所采用单精度浮点数的存储格式示意图。图4是具体实施例中浮点乘法器与第一浮点加法器的结构示意图。图5是具体实施例中浮点乘法器与第一浮点加法器工作的流程示意图。图6是具体实施例中第一浮点加法器实现累加的原理示意图。图7是具体实施例中第二浮点加法器实现加法树的流程示意图。图8是具体实施例中加法树的结构示意图。具体实施方式以下将结合说明书附图和具体实施例对本专利技术做进一步详细说明。如图I所示,本专利技术基于FPGA的浮点乘累加器方法,其流程为(I)通过外部模块输入需要进行乘累加计算的数量M ;整个计算过程将根据M值来驱动浮点乘法器、浮点加法器以及各个计算模块的使能信号;(2)根据乘法累加器的计算法则以及浮点乘法器与加法器IP核的流水特性,将需要计算的M对32位二进制浮点数A、B依次同时输入浮点乘法器进行乘法运算,每对A、B为一组输入,直至完成所有M对数据的运算;同时,根据控制信号分别将乘积结果与第一浮点加法器自身的加法结果连续输入第一浮点加法器中完成部分累加运算得到累加结果; (3)将步骤(2)得到的累加结果中最后N级流水线的数据输入第二浮点加法器中进行加法树的运算来实现整个乘累加过程的运算。如图2所示,为具体实施例中用来实现本专利技术方法的模块结构原理示意图。其中,通过逻辑单元来控制浮点乘法器、第一浮点加法器、第二浮点加法器的使能信号及数据流向;再通过第一状态机来实现第一浮点加法器往存储模块中的数据结果存储以及通过第二状态机来实现最后第二浮点加法器中加法树的运算控制。正是经过上述各个模块的相互控制与运算,进而得出最终的累加结果输出。图中的En、En’表示模块的使能信号;Control、control’、Control "表示信号按照箭头所指方向控制后面模块;M_Result和A_Result、A_Result’分别表示浮点乘法器、第一浮点加法器、第二浮点加法器的计算结果。本实施例中,采用的浮点数格式为IEEE754标准格式,其存储格式如图3所示。IEEE754标准是现代处理器中最常用的浮点数表示方法,它不仅规定了浮点数的格式,还规定了摄入模式和处理舍入误差、上溢出、下溢出等异常情况的方法,IEEE754标准规定了单精度浮点数表示为32位,由三部分组成23位的尾数f,8位偏指数e,I位符号位S。s位中0表示正数,I表示负数;1. f是有效数,I是隐藏位,f是小于I的小数。浮点数值的计算公式可表示为Val = (-l)s*l. f*2(e_b)其中b为偏置值127。如图4和图5所示,在本实施例中,上述步骤(2)的具体步骤为(2. I)根据浮点本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:徐成秦云川张婷肖雄仁戚芳芳周圣韬文龙李涛张良聂敏
申请(专利权)人:湖南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利