流水线技术在基于FPGA的DSP运算中的应用

发布者:RadiantBlossom最新更新时间:2009-09-01 来源: 王春玲关键字:流水线技术  FPGA  DSP  运算 手机看文章 扫描二维码
随时随地手机看文章

  在数字信号处理(DSP)领域,需要处理的数据量很大,并且实时性要求很高。传统的DSP设计方法主要有采用固定功能的DSP器件和采用DSP处理器两种,由于它们灵活性差以及软件算法在执行时的顺序性,限制了它们在高速和实时系统中的应用。随着深亚微米半导体制造工艺的不断创新,百万门可编程器件的不断推出,为DSP提供了第3种有效的解决方案,即利用FPGA实现DSP运算硬件化。它能够在集成度、速度和系统功能方面满足DSP应用的需要。

  然而在应用FPGA进行系统设计综合过程中,选择芯片的运行速度优化和资源利用优化常常是相互矛盾的,对速度指标要求高的设计优化常常要占用较大的芯片资源,而减小芯片面积的设计又需要以降低系统速度为代价。从FPGA发展趋势和DSP运算要求看,系统速度指标的意义比面积指标更趋重要,需要我们进一步深入研究提高芯片的最高工作速度的设计策略。本文讨论在基于FPGA的DSP系统设计中采用流水线技术,充分利用硬件内部的并行性,在FPGA有限资源芯片面积上提高单位时间里的数据处理能力即数据吞吐率(throughput),提高系统的工作速度的具体做法。

  0 流水线技术基本原理和FPGA结构特征   

  流水线是一种在时间上串行,在空间上并行的技术,其基本原理如图1所示。将整个电路划分为若干个流水线级,流水线每级之间设置寄存器锁存上一级输出的数据;每一级只完成数据处理的一部分;一个时钟周期完成一级数据处理,然后在下一个时钟到来时将处理后的数据传递给下一级;第一组数据进入流水线后,经过一个时钟周期传到第二级,同时第二组数据进入第一级,数据队列依次前进。每组数据都要经过所有的流水级后才能得到最后的计算结果,但是对整个流水线而言,每个时钟都能计算出一组结果,所以平均计算一组数据只需要一个时钟周期的时间,这样就大大提高了数据处理速度,电路在单位时间内处理的数据量就愈大,即电路的吞吐量就越大,保证整个系统以较高的频率工作。

  FPGA的结构特点很适合采用流水线设计,以Altera低成本系列Cyclone II为例,不仅有最多达68416个逻辑单元(LE),而且提供嵌入式存储资源支持各种存储应用和低成本DSP应用(如乘法器模块、PLL)。每个LE均含有一个四输入查找表LUT、一个可编程触发器等。一般设计中,这个触发器或者没有用到,或者用来存储布线资源。设计中可将一个算术操作分解成一些小规模的基本操作配置到LUT中,将进位和中间值存储在寄存器中,在下一个时钟内继续运算。因此,在FPGA中采用流水线技术,只需要极少或者根本不需要额外的资源成本。特别是在需要进行大批量重复运算的场合,如数字信号处理中的卷积操作、FFT或FIR滤波器设计,采用流水线技术,可以大大提高系统运行速度。

  1 FPGA中基本DSP运算的流水线设计与性能分析

  加法器和乘法器是DSP中最基本的运算部件。在Quartus软件平台上设计加法器或乘法器可以采用原理图法和VHDL语言两种基本方法。考虑到参数可设置宏模块(Library of Parameterrized Modtlles-LPM)经过严格测试和优化,可以发挥最佳性能,所以,我们采用原理图设计方式,通过MegaWizard P1ug-In Manager工具引入1pm add sub和1pm mult两种可设置流水线的LPM模块,实现了不同位宽、不同流水线级数的加法器和乘法器设计,并选用CycloneII系列EP2C5Q208C7器件进行了综合、布局布线、时序分析和仿真设计,以比较其性能的变化特征。

  1.1 不同流水线级数的运算器性能比较

  对16位加法器和8位乘法器分别选用不同的流水线级数进行设计,比较结果如表1、2所示。

  由比较结果可见:

  (1)采用流水线技术普遍比不用流水线工作速度显著提高,体现流水线技术在高速DSP运算上的优势。

  (2)采用流水线技术在资源耗用(逻辑单元与寄存器个数、存储器位数)上有所增加。

  (3)采用不同的流水线级数在速度指标和资源耗用率上有所不同,流水线级数增加,速度指标不一定增加,但资源耗用大大增加,所以应注意速度和资源耗用指标的权衡。如对16位加法器,如不用M4K(专用存储器资源),以采用2级流水线最佳;如选用M4K,则取6级流水最佳。8位乘法器则以2级或6级流水最佳。对于其他DSP运算,在设计时必须通过反复比较、设计,选择符合系统性能要求的流水线级数。

  1.2 不同位宽运算器相同流水线级数的性能比较

  对采用6级流水的加法器和乘法器的数据位宽加以改变,通过综合仿真,分析其性能指标的变化,见表3。

[page]

  由比较结果可见:采用同样的流水线级数时,工作速度基本相同,但耗用资源随输入位数的增加而急剧增加,加法器主要是逻辑单元LE个数的增加;乘法器则是存储器位和嵌入式乘法器个数的增加。因此,对于不同的运算器电路,应根据需要选用不同型号的FPGA器件以满足对不同资源的需要。如,仅作加法运算时,可以选用逻辑单元丰富的FPGA器件女HACEX系列、FLEX等系列;乘加运算则需要选择内嵌乘法器模块和存储器模块的Cyclone、CycloneII等系列。

  2 基于FPGA实现DSP流水线设计中应注意的其他问题

  2.1 流水线设计方法的选择

  流水线设计可分为原理图和VHDL两种基本方法。

  如前所述,用原理图输入法设计时,为提高设计效率,应充分利用带有LPM_PIPELINE的LPM模块,并利用QuartusII(提供了40多种LPM函数)编译器给出的LPM PIPELINE最佳数值(即最佳流水线级数),设定最佳LPM_PIPEINE值。

  在无合适的I PM模块可用时,需要用VHDL作为设计输入。

  流水线技术的实质就是在适当的地方加入寄存器,将前面的运算结果或输入数据暂存,并在下一个时钟到来时,将寄存值作为后一级运算的输入。因此在用VHDL描述流水线时,只需对不含流水线的运算器描述代码作适当改写,施加必要的设计约束即可实现。一般通过在进程中加入WAIT语句或IF_THEN语句来测试敏感信号边沿,实现寄存器或锁存器。

  如使用WAIT语句,常用的描述形式为:

  PROCESS

  BEGIN

  wait until clk’event and clk=’1’; (上升沿触发)

  reg<=x;

  END PROCESS;

  其中的x是指输入到所加流水线寄存器reg中的数据。

  使用IF_THEN语句,常用描述方式为:

  IF(clk’event and clk=’1’) THEN…

  另外,用VHDL设计输入时也可以利用Altera所提供的LPM函数,但必须在设计实体前使LPM库可现,即加入以下语句:

  LIBRARY lpm;

  USE lpm.lpm_components.ALL;

  2.2 流水线的首次延时和寄存器的触发时间

  对图1所示系统进行延时分析,图中组合逻辑的延迟包括两级,合理设计的流水线结构中,其延迟时间应大致相等,设为2Tpd,插入每级寄存器组的触发时间为Tco。因此,从输入到输出总的等待时延为:TDl=2(Tpd+Tco),称为流水线设计的首次延时(First Latency)。对于连续的运算,由于加上寄存器组后,每级计算后的中间结果都能暂时保存,下一个时钟到来时,可以直接参与下一级逻辑运算,无需等待从系统的输入端传来数据。因此,第二个结果及以后的运算结果的获得只需要一个时钟周期,等待的时延为:TD2=Tpd+TCO。

  可见,流水线设计的首次延时与流水线正常延时相比要长得多。所以在选择是否采用流水线技术时,要分析DSP运算的频率。当需要进行连续运算(即流水线一直是满负荷)时,采用流水线可以大大提高数据吞吐率;但如果只是偶尔需要加、乘运算,由于首次延时大于非流水线方式下的pin to pin延时,流水线应用效果变差,而且还牺牲了额外的芯片资源,所以不推荐使用流水线。在FPGA/CPLD中,器件的延时Tpd要比寄存器的触发时间TCO长得多,一般分析流水线吞吐延时可以忽略TCO。但是在高速运算场合或流水线技术较多时(如视频信号处理或无线通信中的数据处理),TCO与Tpd相比已不可忽略,必须仔细选择流水线的级数,防止TCO的影响造成流水线的瓶颈。

  2.3 嵌入式存储器块资源的充分利用

  在FPGA器件中,嵌入式存储器块(Embedded Memory)是为支持各种存储器应用和DSP应用提供的专门资源。如Altera公司FLEX10K系列器件提供了3个嵌入式阵列块EAB,每个EAB提供可灵活设置的2048位RAM,Cyclone系列提供了数十个M4K资源,每个M4K提供4608位RAM,可单独使用,也可组合使用。使用EAB或M4K构建运算器如乘法器,实质是构成乘法查找表,其运算速度比采用LPM的乘法器速度更快,只是由于资源有限,只能实现小型乘法器。如能把基于嵌入式阵列块的小型乘法器和流水线技术相结合,则能够实现运算量和速度的进一步提高。

  2.4 控制流水线和数据流水线的划分

  由于数字信号处理系统复杂性的不断提高,在利用流水线技术实现DSP运算设计时,还有一个需要考虑的问题就是控制流水线和数据流水线的划分问题。如在高速数据采集与处理系统中,采样数据的处理主要涉及DSP运算,可以归入数据流水线。各输入通道传感器与信号调理电路的选通控制、模数转换、数据缓冲与传送、数据运算控制则需要主控芯片完成,如图2所示。高速主控芯片可以选用FPGA器件,采用流水线技术,将数据采集与处理过程中的通道选择、模数转换、数据缓冲与发送、数据运算四部分的控制过程设计为四级流水线进程,以减少数据采集与处理的平均作业时间,实现高速率的数据采集。主控芯片的流水线技术可以归入控制流水线范畴。

  3 结论

  通过实验对比,验证了利用流水线技术可以实现基于FPGA器件的高速DSP运算。在具体运算器设计中要通过综合过程,比较和优选流水线级数以满足速度和资源优化的需要。DSP系统在进行流水线设计时要根据运算频率明确用否流水线,合理划分控制流水线和数据流水线,还要注意合理选用原理图和VHDL描述,充分利用带有LPM_PIPELINE的LPM和EAB(M4K)等资源,最大限度提高系统数据吞吐率和设计效率。

关键字:流水线技术  FPGA  DSP  运算 引用地址:流水线技术在基于FPGA的DSP运算中的应用

上一篇:基于SOPC技术的远程测控系统设计方案
下一篇:TI 助Optisense Network打造智能电网解决方案

推荐阅读最新更新时间:2024-05-02 20:51

Altera Stratix 10 :FPGA首次集成浮点DSP
Altera公司日前宣布在FPGA浮点DSP性能方面实现了重大突破。该公司首席DSP产品规划经理Michael Parker称,Altera是第一家能够在FPGA中集成硬核IEEE 754兼容浮点运算功能的可编程逻辑公司,前所未有的提高了DSP性能、逻辑效率和设计效能。根据规划,硬核浮点DSP模块将集成在正在发售的20nm Arria 10 FPGA和SoC中,也将集成在14nm Stratix 10 FPGA和SoC中,DSP设计人员可以选择定点或者浮点模式,浮点模块与现有设计后向兼容。 面向高性能计算,与GPGPU展开竞争 与传统使用定点乘法器和FPGA逻辑来实现浮点功能的做法不同,Altera的硬核浮点DSP几
[嵌入式]
Altera Stratix 10 :<font color='red'>FPGA</font>首次集成浮点<font color='red'>DSP</font>
基于DSP离散频率编码雷达信号的实现
摘要:离散频率编码序列集合是一种具有良好自相关和互相关性的正交编码波形序列集合,其信号可以提升网状多雷达系统的目标搜索能力、追踪与识别能力。为了设计这种信号,需要求解NP-难的组合优化问题,且考虑到DSP的速度限制和信号产生的实时性要求,采取简单有效的局部搜索算法,并利用TI公司的 TMS320F28335 和BB公司的DAC7724完成目标算法和波形输出,得到了符合要求的波形。 关键词:离散频率编码序列;局部搜索算法;数字信号处理器;数/模转换 0 引言     随着信息融合技术的快速发展,网状多雷达系统的目标搜索能力、追踪与识别能力都得到了极大的提升,进而凭借其高性能得到更加广泛的应用。然而,为了避免自干扰和检测混乱,网状雷达
[嵌入式]
基于FPGA的多路脉冲重复频率跟踪器
摘要:在反辐射导弹的雷达导引头中,信号跟踪器的实时性是影响系统性能的重要因素之一。介绍了利用高性能FPGA丰富的资源实现的多路脉冲重复频率跟踪器,它解决了在密集信号环境下信号跟踪的实时性问题,减小了系统体积。经过实验验证,其各项指标均达到了设计要求。 关键词:反辐射导弹 信号跟踪 现场可编程门阵列 随着高科技的迅速发展,现代战争已经不仅是传统意义战场上的较量,电子战已经成为决定战争胜负的重要因素之一。反辐射导弹在电子战中扮演着重要的角色,它在战争中可以有效地压制或摧毁敌方武器系统中的雷达,使敌方武器系统失去攻击能力,取得制空权,发挥己方的空中优势。在反辐射导弹中引导攻击目标的是雷达导引头,它截获目标雷达的信号并检测出信号入射
[应用]
用于下一代汽车专用集成电路(ASIC)的嵌入式现场可编程逻辑门阵列(eFPGA)
对于最近研究过新车的任何人来说,很难不注意到汽车电子产品的发展是多么的迅速。仅仅将三年前的汽车安全性技术与今天的技术进行对比,您就会发现摄像头数量已显著增加,以支持诸如全景可视、驾驶员注意力分散监测器、立体视觉摄像头、前向摄像头和多个后视摄像头等应用。除了摄像头,系统功能也增强了,包括自动紧急制动、车道偏离警告、后方盲点检测和交通标志识别等。这一趋势表明,汽车电子类产品在持续快速地创新,但这也给汽车原始设备制造商(OEM)带来了全新的挑战,包括: ● 当研发一辆新车的平均时间从48个月缩短至24个月左右,同时还要支持长达10年以上的生命周期时,如何快速开发新特性和安全性功能? ● 平台架构的确定都比车辆上市提前数年,如
[汽车电子]
用于下一代汽车专用集成电路(ASIC)的嵌入式现场可编程逻辑门阵列(eFPGA)
STM32单片机按键消抖和FPGA按键消抖大全
写在前面: STM32单片机按键消抖和FPGA按键消抖大全 按键去抖:由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。 1. 单片机中按键消抖程序 1.1 单片机中,比如STM32中,一般的方法(最简单的方法) 软件消抖程序: if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_14
[单片机]
STM32单片机按键消抖和<font color='red'>FPGA</font>按键消抖大全
引领创新潮流 石墨存储器架构掀FPGA设计新风
  有芯片新兴公司创始人表示,石墨存储器架构有望给FPGA设计带来一股新风。   新兴公司NuPGA创始人ZviOr-Bach为EETimes年度创新奖得主。在之前他经手成立了eASIC和ChipExpress。Or-Bach已和莱斯大学(RiceUniversity)一同为由JamesTour教授研发的基于碳的存储器工艺制程申请专利。该方案采用石墨打造可重复编程存储器,区别于传统FPGA。   “采用导孔中的石墨作为熔丝是一个非常有意思的想法”,GartnerInc资深分析师DeanFreeman表示,“在接下来的五年里,我们将看到许多非常具有创新性和创造性的想法出现在我们的产品中。”   莱斯大学研究人员开发了一个将纳米
[嵌入式]
基于FPGA/CPLD和USB技术的无损图像采集卡
摘要:介绍了外置式USB无损图像采集卡的设计和实现方案,它用于特殊场合的图像处理及其相关领域。针对图像传输的特点,结合FPGA/CPLD和USB技术,给出了硬件实现框图,同时给出了FPGA/CPLD内部时序控制图和USB程序流程图,结合框图和部分程序源代码,具体讲述了课题中遇到的难点和相应的解决方案。 关键词:无损图像采集 图像处理 FPGA/CPLD USB SAA7111A 现场图像采集技术发展迅速,各种基于ISA、PCI等总线的图像采集卡已经相当成熟,结合课题设计了一款USB外置式图像采集卡。该图像采集卡已成功应用于一个图像处理和识别的项目中,由于图像信号不经过压缩处理,对后续处理没有任何影响,因此图像处理和识别的效果比
[半导体设计/制造]
配备Stratix 10 FPGA,英特尔加速卡实现视频转码和流分析
随着物联网的发展,接入互联网的设备越来越多,数据量也随之飞速增长,而绝大多数数据流量都源自或者终止于数据中心。根据Cisco测算,从2015年至2020年,全球数据中心IP流量预计增长三倍,而我国数据中心IP流量规模预计到2020年也将达到8.6ZB。面对如此海量的数据,数据中心需要完成海量的数据分析才能提取出有效信息,加上AI技术的发展,数据中心计算加速刻不容缓。   由于FPGA 同时拥有流水线并行和数据并行的架构,比 GPU 延迟低,因此在数据中心加速应用中被广泛采用。 英特尔 之前也推出了基于Arria 10 FPGA的 加速卡 ,近期又推出了采用英特尔 Stratix 10 SX FPGA的新一代可编程加速卡 ( PAC
[嵌入式]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved