使用FPGA解决DSP设计难题

发布者:shtlsw最新更新时间:2012-12-07 来源: 21ic关键字:FPGA  DSP 手机看文章 扫描二维码
随时随地手机看文章
   

    由于DSP能够迅速测量、过滤或压缩实时模拟信号,因此DSP在电子系统设计中非常重要。这样,DSP有助于实现数字世界与真实(模拟)世界的通信。但是随着电子系统变得越来越精细,需要处理多个模拟信号源,工程师们不得不作出艰难的决策。是使用多个DSP并使其功能与系统的其余部分同步,还是使用一个能够实现多个功能的带精细软件的高性能DSP更具优势?

由于现在的系统很复杂,在许多情况下,单DSP的实现方案的往往没有足够的处理能力。同时,系统架构也不能满足多芯片系统的成本、复杂性和功耗要求。

FPGA现已成为需要高性能DSP功能的系统的绝佳选择。事实上,与独立的数字信号处理器相比,FPGA技术一般可以为DSP难题提供更加简单的解决方案。要了解其中的原因,需要回顾一下DSP的起源和发展过程。

专用微处理器

在过去的二十多年里,传统的DSP架构一直在竭力跟上日益增长的性能要求的步伐。随着视频系统大踏步地迈进高清和3D时代,并且通信系统为实现更高带宽已经将现有技术发挥到极致,设计师们需要可替代的实现策略。用于实现数字信号处理算法的硬件不外乎以下三种基本器件之一:微处理器、逻辑电路和存储器。有些设计可能还需要额外硬件来实现模数转换(A/D)、数模转换(D/A)以及高速数字接口。

传统的数字信号处理器是设计用于实现专门目的的微处理器。这类处理器非常适合用于处理算法密集型任务,但是性能却受到时钟速率及其内部设计顺序性的限制。这限制了它们对输入数据采样每秒最多执行的运算次数。一般来讲,每执行一次算术逻辑单元(ALU)运算需要三或四个时钟周期。多核架构可以提高性能,但是提升幅度有限。因此,采用传统信号处理器的设计必须重复利用架构单元来实现算法。对于每次执行的加、减、乘或其他任何基本运算,不论是内部还是外部反馈,每次执行都必须循环通过ALU。

遗憾的是,在处理当今众多的高性能应用时,典型的DSP难以满足系统要求。过去已经提出过多种解决方案,包括在一个器件中使用多个ALU或者在一块板上使用多个DSP器件;不过这类方案往往会大大增加成本,并且只会将问题转移到另外一个领域。比如,用多个器件提高性能遵循指数曲线。要使性能提高一倍,需要用两个器件,若要再提高一倍,则需要用四个器件,依此类推。此外,程序员关注的重点往往会从信号处理功能转移到多个处理器和内核之间的任务调度上。这会产生大量的附加代码,而且这些代码会成为系统开销,而不是用于解决眼前的数字信号处理问题。

FPGA 技术的引进为解决DSP方案与日俱增的复杂性带来了福音。FPGA最初开发的目的是为了整合和集中分立的存储器和逻辑电路,以实现更高的集成度、更出色的性能和更高的灵活性。FPGA技术现已成为目前使用的几乎所有高性能系统的一个重要组成部分。相比传统DSP,FPGA是由可配置逻辑阵列(CLB)、存储器、DSP逻辑片(Slice)和一些其他元件组成的统一阵列构成的巨大并行结构。它们可以使用VHDL和Verilog等高级描述语言进行编程,或者在框图中使用系统生成器进行编程。FPGA还提供许多专用功能和IP核,用来以高度优化的方式直接完成实现方案。

FPGA内的数字信号处理器的主要优势是能够定制满足系统要求的方案。这意味着在多通道或高速系统中,用户可以充分利用器件内部的并行性,从而最大限度地提高性能,而对于低速系统,则可以更多地采用串行方式完成设计。因此,设计人员可以定制满足算法和系统要求的方案,而不是取期望的理想设计的折衷方案来迎合纯顺序器件的诸多局限。另外,超高速I/O通过最大限度地提高从捕捉经处理链再到最终输出的数据流,可进一步降低成本并减少瓶颈问题。

下面以一个同时使用传统DSP架构和FPGA架构的FIR滤波器实现方案为例,来说明每种解决方案的优劣。

数字FIR滤波器实例

有限脉冲响应(FIR)滤波器是一种使用最广的数字信号处理元件。设计人员使用滤波器来改变数字信号的幅度或频谱,通常用于隔离或突出样本数据频谱中的特定区域。从这个角度来讲,可以把滤波器视为信号的预处理方式。在典型的滤波器应用中,输入数据样本通过小心同步的数学运算与滤波器系数相结合(这取决于滤波器的类型和实现策略),随后数据样本进入下一个处理阶段。如果数据源和目的地都是模拟信号,则数据样本必须首先通过A/D转换器,而结果则必须馈送给D/A转换器。

最简单的FIR滤波器是通过用一系列的延迟元件、乘法器和加法器树或加法器链来实现的。

下面的等式是单通道FIR滤波器的数学表达式:

f1.jpg

公式1

该等式中的各项分别表示输入样本、输出样本和系数。假设S为连续的输入样本流,Y为经滤波后产生的输出样本流,那么n和k则对应特定的瞬时时间。这样,若要计算时间n时的输出样本Y(n),则需要一组在N个不同时间点的样本,即:S(n)、S(n-1)、s(n-2)、…s(n-N+1)。将这组N个输入样本乘以N个系数并求和,便可得出最终结果Y。

图2是一个简单的31抽头FIR滤波器(长度N=31)的框图。

1.jpg


图1:传统的DSP架构

2.jpg


图2:长度为31抽头的FIR滤波器

在选择滤波器的理想长度和系数值时,有多种设计工具可供使用。其目的是通过选择适当的参数来实现所需的滤波器性能。参数选择最常用的设计工具是MATLAB。一旦选定了滤波器参数,就可以用数学等式实现。

实现FIR滤波器的基本步骤包括:

1. 对输入数据流采样;
2. 在缓冲区组织输入样本,以便让每个捕捉到的样本与每项滤波器系数相乘;
3. 让每个数据样本与每项系数相乘,并累加结果;
4. 输出滤波结果。

使用“相乘累加法”在处理器上实现FIR滤波器的典型C语言程序,如下列代码所示。

f2.jpg 

图3所示的实现方案被称为相乘累加或MAC型实现方案。这基本上就是用传统的DSP处理器实现滤波器的方法。采用内核时钟速率为1.2GHz的典型DSP处理器并以这种方式实现的31抽头FIR滤波器的最高性能约为9.68MHz,或最大的输入数据率为968MS/s。[page]

 

   
3.jpg


图3:传统DSP中的MAC实现方案

而FPGA提供了许多不同的实现和优化选择。如果需要高资源效率的实现,MAC引擎法则相当不错。还是以31抽头滤波器为例来说明滤波器规范对所需逻辑资源的影响,这种实现方案的框图如图4所示。

4.jpg


图4:FPGA中的MAC引擎FIR滤波器

这种设计需要存储器存储数据和系数,可以混合采用FPGA内部的RAM和ROM。RAM用于存储数据样本,故而采用循环的RAM缓冲器实现。字的数量与滤波器抽头数相等,位宽按样本大小设置。ROM用于存储系数。在最差情况下,字的数量与滤波器抽头的数量相等,但如果存在对称,则可以减少字的数量。位宽必须足以支持最大的系数。因为数据样本和系数数据都随每个周期改变,所以需要全乘法器。累加器负责将产生的结果累加起来。因为随着滤波器采集数据,累加器的输出会随每个时钟周期改变,所以需要捕捉寄存器。当全套N个样本完成累加后,输出寄存器负责捕捉最终结果。

如果采用MAC模式,DSP48则非常适合,因为DSP48Slice内含输入寄存器、输出寄存器和加法器单元。实现31抽头MAC引擎需要的资源包括一个DSP48、一个18kb块RAM和9个逻辑片。另外,还需要一些逻辑片用于采样、系数地址生成和控制。如果FPGA内置有600MHz的时钟,则在一个-3速度等级的Xilinx7系列器件中,该滤波器能够以19.35MHz或1,935MSps的输入采样速率运行。

如果系统规范需要更高性能的FIR滤波器,则可采用并行结构来实现。图5显示了直接I型实现方案的框图。

5.jpg


图5:FPGA中的直接I型滤波器

直接I型滤波器结构能够在FPGA中实现最高性能。这种结构(通常也被称作脉动FIR滤波器)采用流水线和加法器链,使DSP48 Slice发挥出最高性能。输入馈送到用作数据样本缓冲器的级联寄存器;每个寄存器向DSP48提供一个样本,然后乘以对应的系数;加法器链存储部分乘积,然后依次相加,从而得到最终结果。

这种设计无需外部逻辑电路支持滤波器,并且该结构可扩展用于支持任意数量的系数。因为没有高扇出的输入信号,所以这种结构能够实现最高性能。实现31抽头FIR滤波器仅需要31个DSP48逻辑片。如果FPGA内置有600MHz的时钟,则在一个-3速度等级的Xilinx7系列器件中,该滤波器能够以600MHz或600MSps的输入采样速率运行。

从这个实例可以清晰地看出,FPGA不仅在性能上显著超越了传统的数字信号处理器,而且要求的时钟速率也显著降低(因此,功耗也显著降低)。

这个实例只反映了采用PFGA实现FIR滤波器的两种技术。为了充分利用数据采样率规范,可对该器件进行进一步定制,此时,数据采样率可在连续MAC运算极值和全并行运算极值之间。您还可考虑在包括对称系数、插值、抽取、多通道或多速率的资源利用与性能之间进行更多的权衡取舍。Xilinx CORE Generator?或System Generator(系统发生器)实用工具可以帮助用户充分利用这些设计变量和技术。

在传统DSP和FPGA之间选择

传统的数字处理器已经有多年的应用历史,当然有为特定问题提供最佳解决方案的实例。如果系统采样率低于数kHz且为单通道方案,DSP可能是不二之选。但是,当采样率增加到数MHz以上,或者如果系统要求多通道,FPGA就越来越有优势。在高数据率条件下,DSP可能只能勉为其难地在不造成任何损耗的情况下采集、处理和输出数据。这是因为在处理器中存在大量的共享资源、总线乃至内核。然而,FPGA却能够为每项功能提供专门的资源。

DSP是基于指令而非基于时钟的器件。一般来讲,对单个样本上的任何数学运算需要三到四条指令。数据必须首先经输入端采集,再发送到处理内核,每完成一次运算后再循环通过内核,然后发送到输出端。相比之下,FPGA基于时钟,所以每个时钟周期都有可能在输入数据流上进行一次数学运算。

由于DSP的运算以指令或代码为基础,编程机制为标准C语言,或者在需要更高性能的情况下,采用低级汇编语言。这种代码可能包含高级的决策树或者转移操作,而难以在FPGA中实现。例如,存在大量的用于执行如音频和电话编解码器之类的预定义功能或标准的遗留代码。

FPGA厂商和第三方合作伙伴已经意识到将FPGA用于高性能DSP系统的优势,并且如今已有许多IP核广泛应用于视频、图像处理、通信、汽车、医疗和军用等大部分垂直应用市场。与将高级系统框图映射成为C语言代码的DSP设计相比,将高级系统框图分解为FPGA模块和IP核会更加简便易行。

从DSP转向FPGA

研究一些主要标准将有利于在传统DSP和FPGA之间作出选择(请参见表1)。

表1: 传统DSP和FPGA之间的比较
t1.jpg

软件编程人员的数量远远超过硬件设计人员的数量,这已是不争的事实。DSP编程人员的数量与FPGA设计人员的数量之间的关系也是如此。不过,让系统架构师或者DSP设计人员转为使用FPGA的难度,并不像让软件编程人员转为从事硬件设计那么大。有大量的资源可以大大简化DSP算法开发和FPGA设计工作的学习过程。

主要的障碍是从基于样本和事件的方法转向基于时钟的问题描述和解决方案。如果能够在设计流程的系统架构和定义阶段就能够完成,对这种转换的理解和应用就会简单得多。由不同的工程师和数学专家来定义系统架构(DSP算法和FPGA设计在某种程度上相互孤立)是很寻常的事情。当然,如果每个成员对其他小组成员面临的难题有一定程度认识的话,这个过程会顺利得多。要掌握FPGA方案,架构师不需要精通FPGA设计。只需对器件、资源和工具有基本的了解就够了。
 

关键字:FPGA  DSP 引用地址:使用FPGA解决DSP设计难题

上一篇:多路交流异步采样及DSP软件校准技术
下一篇:基于莱迪思FPGA的安防和监控设计解决方案

推荐阅读最新更新时间:2024-05-02 22:28

瑞萨全新PMIC参考设计加速FPGA和SoC产品问市
全球领先的半导体解决方案供应商瑞萨电子株式会社宣布推出三款易于使用的电源管理IC(PMIC)参考设计,用于为Xilinx Artix-7、Spartan-7系列FPGA以及Zynq-7000 SoC的多个电源轨供电,并可选配DDR存储器。瑞萨与Xilinx紧密合作,提供低风险且易于开发的电源解决方案,以加速FPGA和SoC设计。该参考设计可加快各种工业及运算类应用的电源研发速度,其中包括电机控制、机器视觉摄像头、可编程逻辑控制器(PLC)、家庭网关与家电、便携式医疗和无线设备等。 瑞萨高效PMIC参考设计提供了用户友好的交钥匙解决方案,使单个设计能够支持不同的Xilinx速度等级和DDR存储器类型,包括DDR3、DDR3
[嵌入式]
瑞萨全新PMIC参考设计加速<font color='red'>FPGA</font>和SoC产品问市
通过JTAG口对DSP外部Flash存储器的在线编程
引言 在采用TI数字信号处理器(DSP)的嵌放式硬件系统开发完成,软件也有CCS2.0集成开发环境下仿真测试通过后,怎样将编译、链接后生成的可执行文件(.Out),经过转换后的十六进制文件(.Hex)写入硬件系统的Flash存储器中,让系统脱机运行,这是许多DSP开发人员及初学者遇到并需要解决的问题。 从JTAG接口对DSP外部Flash的编程方法不只一种。本文以TMS320C6711-150 DSK板为例,介绍“在线仿真状态下”对Flash的编程。 1 Flash存储器的擦除 Flash编程之前,应对Flash进行擦除,使其每个数据位都恢复为1状态,即全FF状态。对Flash的擦除操作需要6个总线周期,总线时
[单片机]
通过JTAG口对<font color='red'>DSP</font>外部Flash存储器的在线编程
基于MCU+FPGA的LED大屏幕控制系统的设计
引言 只要在现在的市场上走一圈就会发现,大部分的中小规模 LED显示系统,采用的是传统的单片机作为主控芯片。但是内部资源较少、运行速度较慢的单片机,很难满足LED大屏幕的显示屏,因为系统要求数据传输量大,扫描速度要快。以FPGA作为控制器,一方面,FPGA采用软件编程实现硬件功能,可以有效提高运行速度;另一方面,它的引脚资源丰富,可扩展性强。因此,用单片FPGA和简单的外围电路就可以实现大屏幕LED显示屏的控制,具有集成度高、稳定性好、设计灵活和效率高等优点。 1 系统总体结构 LED大屏幕显示系统由上位机(PC机)、单片机系统、FPGA控制器、LED显示屏的行列驱动电路等模块组成,如图1所示。上位机负责汉字、字符等数
[单片机]
基于MCU+<font color='red'>FPGA</font>的LED大屏幕控制系统的设计
基于DSP的软件无线电基频发射机的设计与仿真
引言 软件无线电突破了传统的无线电台以功能单一、可扩展性差的硬件为核心的设计局限,强调以开放性最简硬件为通用平台,尽可能地使用可升级、可重配置的应用软件来实现各种无线电功能。用户在同一硬件平台上可以通过配置不同的应用软件来满足不同时间、不同环境下的不同功能需求,具有很强的灵活性和开放性。 DSP(数字信号处理器)凭着灵活性、精确性、稳定性、可重复性、体积小、功耗小、易于大规模集成,特别是可编程性和易于实现自适应处理等特点,给数字信号处理带来了巨大的发展机遇。 基于上述优点,用DSP实现基于软件无线电技术的基频发射机,不仅降低了产品的成本,减小了设备体积,满足系统的需要,而且随着DSP处理速度的不断提高,可将内插等复杂运算集成
[嵌入式]
FPGA系统的供电要求和最新DC/DC稳压器解决方案
随着FPGA制造工艺尺寸持续缩小、设计配置更加灵活,以及采用FPGA的系统的不断发展,原来只采用微处理器和ASIC的应用现在也可以用FPGA来实现了。最近FPGA供应商推出的新型可编程器件进一步缩小了FPGA和ASIC之间的性能差别。尽管这类器件的可配置性对设计工程师很有吸引力,但使用这些器件所涉及的复杂设计规则和接口协议,要求设计工程师经过全面的培训,并需要进行参考设计评估、设计仿真和验证工作。另一方面,FPGA应用中非常复杂的模拟设计,例如用于内核、I/O、存储器、时钟和其它电压轨的DC/DC稳压器,也要求新的解决方案。本文讨论的高性能DC/DC转换器有助于系统设计工程师克服这些挑战。 FPGA系统的供电要求 1.
[应用]
基于FPGA的人工神经网络实现方法的研究
   引言   人工神经网络(ArtificialNeuralNetwork,ANN)是一种类似生物神经网络的信息处理结构,它的提出是为了解决一些非线性,非平稳,复杂的实际问题。目前实现ANN还主要依靠软件程序.但是依靠程序很难达到实时性的要求。   神经网络在FPGA上实现是独立于冯·诺依曼架构,利用FPGA的并行性,在一些实时性要求很强的领域应用。通用计算机虽然编程容易,但是很多时间浪费在分析指令,读出写入数据等。于是人们想利用ASIC(专用计算芯片)完成神经网络的计算任务,但是由于资源有限,这种芯片只限于实现特定的算法结构和小规模网络,而且专用芯片的制作成本很高,只适合大批量生产。   可编程逻辑器件FPGA的出现给I
[嵌入式]
基于<font color='red'>FPGA</font>的人工神经网络实现方法的研究
Altera为三洋后视倒车摄像添图像功能
  Altera公司宣布,三洋电子有限公司在其CCA-BC200汽车后视倒车摄像系统中采用了Cyclone II FPGA和Nios II嵌入式处理器。Cyclone II FPGA的Nios II嵌入式处理器为三洋公司提供了高性能图像处理解决方案,降低了广角和偏角失真。和数字信号处理器(DSP)方案相比,单芯片FPGA是更紧凑、更可靠的解决方案,而前者通常需要两个以上的器件。   CCA-BC200是业界的首款配件市场后视倒车摄像系统。该系统可以连接至所有汽车的视频监视系统,对图像进行数字校正,实现更清晰自然的图像。三洋公司在消费类电子产品展(CES)上展示了这一后视倒车摄像系统。   三洋电子有限公司汽车高级技术中心经理Hi
[嵌入式]
基于DSP和PCI总线的通信数据采集系统
    摘要: 介绍一种基于DSP和PCI总线的移动通信数据采集系统。提出了一种双映射方式,成功地解决了DSP的主机通信接口(host port interface,简称HPI口)和PCI9052之间的通信连接。     关键词: 数字信号处理器 数据采集 PCI总线 随着移动通信突飞猛进的发展,移动通信的数据业务量急剧上升,监控大容量的移动数据业务成了电信运营商刻不容缓的需求。而移动通信数据的传输一般都是基于E1链路。因此从E1链路上采集通信数据成了移动数据业务监控最基础的一部分。 数字信号处理器能够高速地处理数据并具有强大的数字吞吐能力,在数据采集领域获得了广播的应用。而PCI总线也因为极高
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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