打印

转:采用FPGA解决DSP设计难题

[复制链接]
1545|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
angerbird|  楼主 | 2012-12-17 16:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 angerbird 于 2012-12-17 16:15 编辑

这个是我看到的很好的这方面系统性介绍的资料的,分享给各位了。。
       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等高级描述语言进行编程,也可以在方框图中用系统生成器(System Generator)编程。FPGA还提供众多的专用功能和IP核,用于以高度优化的方式直接完成实现方案。

相关帖子

沙发
angerbird|  楼主 | 2012-12-17 17:52 | 只看该作者
    在FPGA中完成数字信号处理的主要优势在于能够根据系统要求定制实现方案。这意味着对于多通道或高速系统,用户可以充分利用FPGA器件的并行性来实现性能的最佳化,而对低速系统,则可以更多地采用串行方式完成设计。这样,设计人员就能够根据算法和系统的要求来定制实现方案,而不必折衷期望的理想设计来迎合纯顺序器件的诸多局限。另外,超高速I/O通过最大限度地提高从捕捉经处理链再到最终输出的数据流,可进一步降低成本并减少瓶颈问题。
   下面以一个同时使用传统DSP架构和FPGA架构的FIR滤波器实现方案为例,来说明每种解决方案的优劣。

数字FIR滤波器实例
   有限脉冲响应(FIR)滤波器是一种使用最广的数字信号处理元件。设计人员使用滤波器来改变数字信号的幅度或频谱,通常用于隔离或突出样本数据频谱中的特定区域。从这个角度说,可以把滤波器视为信号的预处理方式。在典型的滤波器应用中,输入数据样本通过小心同步的数**算与滤波器系数相结合(这取决于滤波器的类型和实现策略),随后数据样本进入下一个处理阶段。如果数据源和目的地都是模拟信号,则数据样本必须首先通过A/D转换器,而结果则必须馈送给D/A转换器。
   最简单的FIR滤波器类型采用一系列的延迟元件、乘法器和加法器树或加法器链来实现。
  下面的等式是单通道FIR滤波器的数学表达式:
   该等式中的各项分别代表输入样本、输出样本和系数。假设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)的方框图。
   在选择滤波器的理想长度和系数值时,有多种设计工具可供使用。其目的是通过选择适当的参数来实现所需的滤波器性能。参数选择最常用的设计工具是MATLAB。一旦选定了滤波器参数,就可以用数学等式实现。

图2_长度为31抽头的FIR滤波器.jpg (377.98 KB )

图2_长度为31抽头的FIR滤波器.jpg

FIR滤波器的数学表达式.jpg (72.12 KB )

FIR滤波器的数学表达式.jpg

使用特权

评论回复
板凳
jxmzzr| | 2012-12-17 21:39 | 只看该作者
分析的很有道理,FPGA可以构建从小型到大型的所有数字电路系统。

使用特权

评论回复
地板
shenmu2012| | 2012-12-18 18:03 | 只看该作者
这个看似分析起来挺不容易的啊,挺一下的

使用特权

评论回复
5
laserpic| | 2012-12-19 00:02 | 只看该作者
有没有FPGA芯片像STM32那样带ADC和DAC的.

使用特权

评论回复
6
shibalihuandao| | 2012-12-23 18:08 | 只看该作者
这个思路不错

使用特权

评论回复
7
zgsxhzac| | 2012-12-23 18:17 | 只看该作者
参考参考

使用特权

评论回复
8
someontime| | 2012-12-23 18:20 | 只看该作者
学习一下别人的思路

使用特权

评论回复
9
specialfrin| | 2012-12-23 18:28 | 只看该作者
呵呵 拓展一下思路

使用特权

评论回复
10
justbybing| | 2012-12-23 19:07 | 只看该作者
写的很有水平的一篇**

使用特权

评论回复
11
waitingf| | 2012-12-23 19:11 | 只看该作者
将dsp和fpga结合起来肯定大有前途

使用特权

评论回复
12
angerbird|  楼主 | 2013-1-25 12:50 | 只看该作者
与传统的DSP相比,FPGA是由可配置逻辑块(CLB)、存储器、DSP逻辑片(Slice)及一些其它元件组成的统一阵列构成的巨大并行结构。它们既可以使用VHDL和Verilog等高级描述语言进行编程,也可以在方框图中用系统生成器(System Generator)编程。

使用特权

评论回复
13
pmp| | 2013-1-25 12:51 | 只看该作者
不错,就是设计困难的

使用特权

评论回复
14
angerbird|  楼主 | 2013-1-25 13:18 | 只看该作者
该分享的资料的谢谢各位的参与,我结贴了,各位继续了

使用特权

评论回复
15
拿起书本| | 2013-1-25 16:18 | 只看该作者
FPGA的确是一种使用很灵活的器件啊……学习了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

4032

帖子

5

粉丝