在数字电路设计方案中DSP与FPGA的比较与选择
以很方便地将复杂的电路在FPGA中实现。象微处理器一样,许多FPGA可以无限的重新编程,加载一个新的设计方案只需要几百毫秒。甚至现场产品可以很简单而且快速的实现。这样,利用重配置可以减少硬件的开销。
超过几MHz的取样率,一个DSP仅仅能完成对数据非常简单的运算。而这样简单的运算用FPGA将很容易实现,并且能达到非常高的取样速率。在比较低的取样速率时,整体上很复杂的程序可以使用DSP,这对于FPGA来讲是很困难的。
对于较低速的事件,DSP是有优势的。可以将它们排队,并保证它们都能执行,但是在它们处理前可能会有些时延。而FPGA不能处理多事件,因为每个事件都有专用的硬件,但是采用这种专用硬件实现的每个事件的方式可以使各个事件同时执行。
如果需要主工作环境进行切换,DSP可以通过在程序里分出一个新的子程序的方式来完成,而对于每种配置FPGA需要建立专门的资源。如果这些配置是比较小的,那么在FPGA中可以同时存在几种配置;如果配置较大则意味着FPGA需要重新配置,而这种方法只在某些时候可以采用。
最后,FPGA是以框图方式编程的,这样很容易看数据流。DSP是按照指令的顺序流来编程的。大多数的单处理系统都是以某种框图方式开始设计的。实际上,系统设计者大多认为将框图移植给FPGA比将其转化为DSP的C代码更容易。
3 如何进行DSP和FPGA方案选择
3.1 方案选择原则
在选择数字系统核心处理部分的方案时,有很多因素需要考虑。例如如何充分利用已有资源(包括软、硬件)、系统要求的工作时钟速率以及算法或工作方式的特点等,这些对最佳方案的选择有很大的影响。
具体地说,在最初的方案论证阶段,可以根据如下问题的回答情况来进行方案选择:
(1)该系统的取样速率是多少?
如果高于几MHz,FPGA是理所当然的选择。
(2)系统是否已经使用C语言编制的程序?如果是,DSP可以直接地实现。它可能达不到方案的最佳实现,但很容易进一步开发。
(3)系统的数据率是多少?
如果高于20~30Mbyte/second,则用FPGA处理更佳。
(4)有多少个条件操作?
如果没有,FPGA是很好的;如果很多,则软件的实现即DSP的实现是更好的选择。
(5)系统是否使用浮点?
如果是,则使用可编程的DSP更好。目前为止,一些FPGA开发商,如Xilinx 公司的核还不支持浮点,尽管自己可以设计。
(6)所需要的库是否能够获得?
DSP和FPGA都提供诸如FIR或FFT等基本的构建模块。然而,更复杂的或专用的构件可能得不到,这将决定选择。
3.2 方案选择示例
下面提供了几个数字电路设计例子,有助于理解前面介绍的方案选择原则。
(1)用于无线数据接收机的抽样滤波器。典型的CIC(Control Integrated Circuit 控制集成电路)滤波器工作在50~100MHz的取样率,5步CIC有10个寄存器和10个加法器。要求加速度在500~1000MHz。
在这一速率下任何的DSP处理器将很难实现。然而CIC只有非常简单的结构,这样以FPGA来实现将会很简单。100MHz的取样率可以达到,甚至某些型号的FPGA还可以有些剩余资源来实现进一步的处理。
(2)实现通信堆栈协议——ISDN(Integrated Services Digital Network 综合服务数字网)。IEEE1394有很复杂、大量的C代码,完全不适合用FPGA来实现;但是用DSP来实现却很简单。不仅如此,一个信号编码基数可以得到保留,这样可以使代码堆栈在某一产品的DSP上来实现,或者在另一块DSP上的分离的协议处理器来实现。这将给专门提供为代码堆栈授权的供应厂家以机会。
(3)数字射频接收机的基带处理器。一些类型的接收机需要FFT来获得信号,然后匹配滤波器一次获得信号,这两个模块可以很简单的用任何一种方案实现。然而如果要求工作模式转换/信号获得和信号接收的转换;则采用DSP方案更适合。因为FPGA方案需要同时完成两个模块。
这里要注意,射频用FPGA实现更好,因为这是一个混合、多任务的系统。如果应用更大的FPGA,这样两个模块可以同时用一个FPGA来实现。
(4)图象处理器。对于图象的处理过程多是简单的和重复的,这样很适合用FPGA实现。然而,一个成像处理流程往往用于在所观测的目标识别“斑点”或“感兴趣的区域”。这些“斑点”可能大小不一样,造成后端的判断及处理过程趋于复杂。同时,所用的算法往往是自适应的,取决于斑点是什么样的。所以用DSP构成图象处理管道的后端处理部分是合适的。
总之,DSP和FPGA代表着两种数字系统的信号处理的过程,各有所长和不足之处。对于许多高速采样频率的应用,特别是任务比较固定或重复的情况下,适合采用FPGA方案;同样,对于较低的取样速率和有很高复杂度的软件问题的情况适合采用DSP方案。
4 新的设计思想
4.1 DSP+FPGA
比较 选择 FPGA DSP 电路设计 方案 数字 相关文章:
- 数据处理指令之: CMP比较指令(08-13)
- 数据处理指令之:CMN负数比较指令(08-13)
- 高效的C编程之:布尔表达式(08-30)
- 设计超低功耗的嵌入式应用(二):五种电源模式的详细介绍(09-22)
- 设计超低功耗的嵌入式应用(三)(09-22)
- 基于VHDL的智能温室环境测控系统专用CPU设计(06-05)