新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 使用FPGA解决DSP设计难题

使用FPGA解决DSP设计难题

作者:时间:2012-12-04来源:网络收藏


3.jpg

本文引用地址:http://www.eepw.com.cn/article/148230.htm


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

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

4.jpg


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

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

如果采用MAC模式,48则非常适合,因为48Slice内含输入寄存器、输出寄存器和加法器单元。实现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设计。只需对器件、资源和工具有基本的了解就够了。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭