高速流水线浮点加法器的FPGA实现

发布者:psi33最新更新时间:2010-02-12 来源: 电子元器件应用关键字:高速流水线  浮点加法器  FPGA 手机看文章 扫描二维码
随时随地手机看文章

  0  引言

  现代信号处理技术通常都需要进行大量高速浮点运算。由于浮点数系统操作比较复杂,需要专用硬件来完成相关的操作(在浮点运算中的浮点加法运算几乎占到全部运算操作的一半以上),所以,浮点加法器是现代信号处理系统中最重要的部件之一。FPGA是当前数字电路研究开发的一种重要实现形式,它与全定制ASIC电路相比,具有开发周期短、成本低等优点。但多数FPGA不支持浮点运算,这使FPGA在数值计算、数据分析和信号处理等方面受到了限制,由于FPGA中关于浮点数的运算只能自行设计,因此,研究浮点加法运算的FPGA实现方法很有必要。

  1 IEEE 754单精度浮点数标准

  浮点数可以在更大的动态范围内提供更高的精度,通常,当定点数受其精度和动态范围所限不能胜任时,浮点数标准则能够提供良好的解决方案。

  IEEE协会制定的二进制浮点数标准的基本格式是32位宽(单精度)和64位宽(双精度),本文采用单精度格式。图1所示是IEEE754单精度浮点数格式。图中,用于单精度的32位二进制数可分为三个独立的部分,其中第0位到22位构成尾数,第23位到第30位构成指数,第31位是符号位。

IEEE754单精度浮点数格式

  实际上,上述格式的单精度浮点数的数值可表示为:

公式

  上式中,当其为正数时,S为0;当其为负数时,S为1;(-1)s表示符号。指数E是ON255的变量,E减127可使指数在2-127到2128变化。尾数采用科学计算法表示:M=1.m22m21m20……m0。m22,m21,…,m0,mi为Mp的各位,设计时应注意尾数中隐含的整数部分1。0是一个特殊的数,0的指数位和尾数位均为0,符号位可以是1,也可以是0。

  2电路的流水线结构

  一般情况下,结构化设计是电路设计中最重要的设计方法之一,采用结构化设计方法可以将一个复杂的电路分割为独立的功能子模块,然后按一定的原则将各子模块组合成完整的电路,这几乎是电路设计的通用模式。这种设计方法便于设计人员分工合作、实现设计和功能测试,缩短上市时间、升级和二次开发,因而具有其它方法无法比拟的优势。

  结构化设计基本上可归结为两种方法:流水线(pipeline)和握手原则。其中握手原则适用于各功能子模块内部运算比较复杂、数据运算时延(latency)不确定的设计。由于数据运算时延不确定,所以,各子模块间的时序配合必须通过握手信号的交互才能完成。握手原则设计的电路一般采用复杂的有限状态机(FSM)作为控制单元,工程设计难度大,故在设计时应慎重使用。流水线法适用于各功能子模块内部运算简单整齐、数据运算时延确定的设计。由于数据运算时延比较确定,各前后级功能子模块不需要任何交互信号就能完成时序配合,故可方便地实现数据的串行流水运算。流水线控制比较简单,一般不需要设计专门的有限状态机,而且工程设计容易,设计时可优先选用。

  3  工程的FPGA实现

  3.1开发环境和器件选择

  本工程开发可在FPGA集成开发环境QuartusII 8.0 spl中完成。OuartusⅡ是世界著名PLD设计生产厂商——Altera公司的综合性PLD开发软件,内嵌综合器和仿真器,并有可与第三方工具协作的灵活接口,可以完成从设计输入到硬件配置的完整PLD设计流程,而且运行速度快,界面统一,功能集中,易学易用。

  本设计中的器件选用Stratix IIEP2S15F484C3。Stratix II是Altera公司的高性能FPGA Stratix系列的第二代产品,具有非常高的内核性能,在存储能力、架构效率、低功耗和面市及时等方面均有优势。

  本系统的顶层框图如图2所示。为了显示清楚,图2被分成两个部分显示。本工程采用异步置位的同步电路设计方法,其中clk、reset、enab分别为系统时钟、系统异步置位、系统使能信号。din_a、din_b分别为两个输入的单精度浮点数,data_out则是符合IEEE 754标准的两输入浮点数之和。

本系统的顶层框图[page]

  3.2浮点加法运算的实现

  浮点加法运算可总结为比较、移位、相加、规范化等四个步骤,分别对应于compare、shift、sum、normalize四个模块。

  (1)compare模块

  本模块主要完成两输入浮点数的比较,若din_a、din_b为两个输入单精度浮点数,则在一个时钟周期内完成的运算结果如下:

  ◇大数指数b_exp这里的大数指绝对值的比较;

  ◇两浮点数的指数差sube,正数;

  ◇大数尾数b_ma;

  ◇小数尾数s_ma,该尾数已加入隐含1;

  ◇和符号c_sgn,为确定输出结果的符号;

  ◇加减选择add_sub,两输入同符号时为0(相加)、异符号时为1(相减),sum模块中使用实现加减选择。

  (2)shift模块

  shift模块的作用主要是根据两个输入浮点数的指数差来执行小数尾数(已加入隐含1)向右移动相应的位数,以将输入的两个浮点数指数调整为相同的数(同大数),若b_exp、sube、b_ma、s_ma、c_sgn、add_sub为输入信号(其含义见compare模块),则可输出如下运算结果(在一个时钟周期内完成):

  ◇大数指数(sft_bexp),将b_exp信号用寄存器延迟一个周期,以实现时序同步;

  ◇小数尾数(sft_sma),已完成向右移动相应的sube位;

  ◇大数尾数(sft_bma),将b_ma信号用寄存器延迟一个周期,以实现时序同步;

  ◇和符号(sft_csgn),将c_sgn信号用寄存器延迟一个周期,以实现时序同步;

  ◇加减选择(sft_addsub),将add_sub信号用寄存器延迟一个周期,以实现时序同步;

  (3)sum模块

  本模块可根据加减选择(sft_addsub(信号完成两输入浮点数尾数(已加入隐含1)的加减,若sft_bexp、sft_sma、sft_bma、sft_csgn、sft_addsub为输入信号(其含义见shift模块),则可输出如下运算结果(在一个时钟周期内完成):

  ◇大数指数(sum_bexp),将sft_bexp信号用寄存器延迟一个周期,以实现时序同步;

  ◇尾数和(sum_ma),为大数尾数与移位后小数尾数的和,差(两尾数已加入隐含1);

  ◇和符号(sum_csgn),将sft_csgn信号用寄存器延迟一个周期,以实现时序同步;

  (4)normalize模块

  normalize模块的作用主要是将前三个模块的运算结果规范为IEEE 754单精度浮点数标准,若sum_bexp、sum_ma、sum_csgn为输入信号(其含义见sum模块),则其输出的运算结果(在一个时钟周期内完成)只有一个和输出(data_out),也就是符合IEEE754浮点数标准的两个输入浮点数的和。

  4系统综合与仿真

  由于本工程是由compare、shift、sum、normalize四个模块组成的,而这四个模块通过串行方式进行连接,每个模块的操作都在一个时钟周期内完成,因此,整个浮点数加法运算可在四个时钟周期内完成。这使得工程不仅有确定的数据运算时延(latency),便于流水线实现,而且方便占用的时钟周期尽可能减少,从而极大地提高了运算的实时性。

  4.1工程综合结果

  经过Quartus II综合可知,本设计使用的StratixⅡEP2S15F484C3芯片共使用了641个ALUT(高级查找表)、188个寄存器、0位内存和可达到80 MHz的时钟频率,因此可证明,本系统利用合理的资源实现了高速浮点数加法运算。

  4.2工程仿真结果

  本工程仿真可使用Quartus II 8.0内嵌式仿真工具来编写Matlab程序,以生成大量随机单精度浮点数(以便于提高仿真代码覆盖率,提高仿真的精确度),然后计算它们相加的结果,并以文本形式存放在磁盘文件中。编写Matlab程序可产生作为仿真输入的*.vec文件,然后通过时序仿真后生成*.tbl文件,再编写Matlab程序提取其中有用的结果数据,并与先前磁盘文件中的结果相比较,以验证设计的正确性。[page]

  图3所示是其仿真的波形图。

仿真的波形图

  从图3可以看出表1所列的各种运算关系。表2所列为其实际的测试数据。

各种运算关系

实际的测试数据

  表中“A+B实数表示(M)”指Matlab计算的结果;“误差”指浮点处理器计算结果与Matlab计算结果之差。

  综上所述,本工程设计的浮点加法器所得到的运算结果与Matlab结果的误差在10-7左右,可见其精度完全能够符合要求。

  5  结束语

  本工程设计完全符合IP核设计的规范流程,而且完成了Verilog HDL建模、功能仿真、综合、时序仿真等IP核设计的整个过程,电路功能正确。实际上,本系统在布局布线后,其系统的最高时钟频率可达80MHz。虽然使用浮点数会导致舍入误差,但这种误差很小,可以忽略。实践证明,本工程利用流水线结构,方便地实现了高速、连续、大数据量浮点数的加法运算,而且设计结构合理,性能优异,可以应用在高速信号处理系统中。

关键字:高速流水线  浮点加法器  FPGA 引用地址:高速流水线浮点加法器的FPGA实现

上一篇:基于图像处理的铁路沿线视频监控算法设计
下一篇:基于FPGA和DDS的信号源研究与设计

推荐阅读最新更新时间:2024-05-02 21:00

45纳米FPGA明年推出 考验设计和制造协作
  由于引入了可编程功耗技术,Altera在65纳米FPGA推出时间上落后于竞争对手,其正努力在45纳米工艺节点上实现反超,预计将于2008年推出首个45纳米FPGA。45纳米将继续实现成本和功耗降低、性能提升,但会同时带来设计和工艺挑战,需要FPGA供应商和晶圆代工厂间更紧密的合作。Altera宣称其和台积电(TSMC)这种“1+1排他性合作”模式在45纳米节点显示现更大优势。   在摩尔定律指引下,过去10多年来,半导体产业仍是每两年推出一个新工艺,预计这还会在未来10年内持续,从目前的65纳米到45纳米再到32纳米以下。这背后的驱动力是每一代新工艺会将片上晶体管密度翻倍(每个晶体管的成本每年降低25~30%),这意味着更高性能
[嵌入式]
Altera基于MIPS软式核心处理器的FPGA的五问五答
Q1: 日前Altera与MIPS推出业界第一款的软式核心处理器的FPGA,请谈谈此一产品对于处理器IP与FPGA产业的意义为何? A1:SoC FPGA时代已经来临。在经济(更高的研发成本)、技术(过渡到并行和多内核处理,以及FPGA向前沿新工艺技术的发展)和市场(CPU体系结构的统一,以及FPGA在嵌入式系统中日益广泛的应用等)等重要因素的推动下,这些器件达到了关键点。 最新推出的MP32是业界的第一款100% MIPS2.0体系结构兼容软核处理器,它针对Altera FPGA进行了优化。MP32处理器采用了MIPS软件和工具辅助系统,支持用户使用WindRiver VxWorks实时操作系统和Wind R
[嵌入式]
下一代MachXO3D FPGA 让汽车更安全
我们生活在一个高度互连的世界,很容易受到各种来源的网络攻击。仅2018年,硬件攻击让超过30亿系 统暴露在数据盗窃、非法操作和其它安全隐患中1。 在汽车领域,如今的智能联网汽车则加剧了这类安全问题。若网络攻击造成汽车失控不仅会对目标车辆中 的人员造成伤害,更有可能危及附近的车辆、行人和财产。 因此,汽车的设计人员和厂商正极力寻找保障系统安全之道。正如本文所述,解决方法之一是采用莱迪思 半导体的MachXO3D™ FPGA。 老式汽车时代已经过去 汽车市场在不断演变,近些年来的变化尤其剧烈,变化速度极快。 以微处理器单元(MPU)和微控制器单元(MCU)为主的计算器件在20世纪七八十年代晚期开始应用于汽 车。起初,这些
[嵌入式]
下一代MachXO3D <font color='red'>FPGA</font> 让汽车更安全
选用FPGA和完整的IP解决方案优化电气架构设计
过去十年来,车载网络架构变得越来越复杂。虽然车载网络协议的数量有所减少,但实际部署的网络数量却有显著增加。这就提出了网络架构的可缩放性问题,并且要求为满足各种应用和网络的实际需要而优化半导体器件。 FPGA曾一度被认为是仅用于开发的解决方案,但如今其价位下降非常迅速,使得许多问题迎刃而解,甚至能以低于传统ASIC或ASSP解决方案的总体系统成本投产。现在,面向汽车市场的各大FPGA供应商均已通过ISO-TS16949认证,使得可编程逻辑器件逐渐成为汽车市场的主流技术。 车载网络电气架构 在过去十年间,很多专用的OEM汽车制造商的网络协议已经让位于CAN、MOST 和 FlexRay等更为标准化的全球协议。因此,半导体供
[嵌入式]
基于FPGA的机载视频图形显示系统架构设计与优化
  随着航空 电子技术 的不断发展,现代机载视频图形显示系统对于实时性等性能的要求日益提高。常见的系统架构主要分为三种:   (1)基于GSP+VRAM+ASIC的架构,优点是图形ASIC能够有效提高图形显示质量和速度,缺点是国内复杂AS IC设计 成本极高以及工艺还不成熟。   (2)基于DSP+FPGA的架构,优点是,充分发挥DSP对算法分析处理和FPGA对数据流并行执行的独特优势,提高图形处理的性能;缺点是,上层CPU端将OpenGL绘图函数封装后发给DSP,DSP拆分后再调用FPGA,系统的集成度不高,接口设计复杂。   (3)基于FPGA的SOPC架构,优点是,集成度非常高;缺点是逻辑与CPU整合到一起,不利于开发
[嵌入式]
基于FPGA的错误检测与自动纠正的设计实现
    引言     在一些电磁环境比较恶劣的情况下,一些大规模集成电路常常会受到干扰,导致不能正常工作。特别是像RAM这种利用双稳态进行存储的器件,往往会在强干扰下发生翻转,使原来存储的"0"变为"1",或者"1"变为"0",造成的后果往往是很严重的。例如导致一些控制程序跑飞,存储的关键数据出错等等。现在,随着芯片集成度的增加,发生错误的可能性也在增大。在一些特定的应用中,这已经成为一个不能忽视的问题。例如在空间电子应用领域,单粒子翻转效应就成为困扰设计师的一个难题。     在这种情况下,我们可以采用错误检测与纠正EDAC(ErrorDetectionAndCorrection)电路来有效地减少或避免这种情况的出现。根据检错、
[电源管理]
基于<font color='red'>FPGA</font>的错误检测与自动纠正的设计实现
医疗电子市场 FPGA技术市场巨大
    目前,世界各地对医疗保健的需求在不断增长,对保健模式的要求也越来越高。Altera医疗业务部高级市场经理John Sotir认为,变化体现在两方面,特别是医院环境中。首先,预测和预防保健的发展提高了患者的生活质量,在不断便携式医疗发展的诊断成像平台的支持下,社会医疗保健总成本也在不断下降。其次,功能强大的、基于价值的设备在性能上超越了几年前的大型高成本设备,在此基础上,政府政策能够扩大医疗保健的覆盖范围。 Altera医疗业务部高级市场经理John Sotir     他还指出, 推动中国医疗电子设计快速发展的几个因素包括 :经济增长推动了市场需求;人口增长和老龄化,预期寿命延长等;生活水平的提高,患者更高的期
[医疗电子]
DS-SS接收机全数字AGC的FPGA实现
  DS-SS(Direct-Sequence Spread-Spectrum)接收机具有抗干扰、通信保密性好、低信噪比下兼具测距功能等特点,在航天领域得到广泛应用。某航天器的DS-SS接收机用于测控和通信,实际工作时,输入信号变化的动态范围高达100dB。在发射机距离工作时(几百米),接收机所接收的信号功率就会出现超出射频前端芯片动态范围的情况,这会使射频前端内部的AGC失去作用,致使输出信号幅度不恒定,且有可能因为输入信号过大而烧毁放大器。避免上述情况,本文提出了通过增加一个数控衰减器和外部AGC系统来保证整个接收系统具有100dB的动态范围,并给出基于FPGA的电路实现算法。   该DS-SS接收机系统构成如图1所示。
[嵌入式]
DS-SS接收机全数字AGC的<font color='red'>FPGA</font>实现
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved