11.1 基于FPGA+DSP协同处理平台的优势和适用领域
11.1.1 基于FPGA的信号处理系统的特点
FPGA的一个重要的应用领域就是数字信号处理,随着FPGA密度和速度的提高,现在FPGA已经可以胜任一些原来只有专用芯片或者多DSP才能完成的计算任务。
1.基于FPGA的信号处理系统的优点
首先,FPGA支持并行和流水结构。这样可以通过多个处理单元(PE)的并行工作,实现高性能的数字信号处理。特别适合那些结构性好、数据量大的算法实现,比如快速傅立叶变换(FFT)、数字滤波算法(FIR)等。
其次,FPGA内部越来越多地内嵌了DSP乘法模块。这些模块是硬件模块,运行速度很高,特别适合那些需要大量乘法计算的算法。如表11-1所示为Xilinx公司FPGA的硬件乘加单元资源和性能。
表11.1 Xilinx公司FPGA的硬件乘加单元资源和性能
最大的产品系列成员 |
最高的MAC数量 |
最高的时钟频率 |
GMAC |
Virtex-5 LX330 |
192 |
550MHz |
105 |
Virtex-4 SX55 |
512 |
500MHz |
256 |
Virtex-4 FX140 |
192 |
500MHz |
96 |
Virtex-4 LX200 |
96 |
500MHz |
48 |
Virtex-II Pro100 |
444 |
300MHz |
133 |
Spartan-3S5000 |
104 |
185MHz |
19 |
可以看到,FPGA的乘法运算性能最高已经超过了100GMAC的水平,远超过通用的DSP芯片,接近了专用处理芯片(ASIC)的能力。
另外,FPGA和其他所有可编程器件一样,具体非常好的灵活性。特别是某些型号的FPGA已经开始支持动态配置或者局部重构,为设计高智能型的信号处理设备提供了可能。
2.基于FPGA的信号处理系统的不足
目前FPGA系统的主要设计手段还是通过硬件描述语言(HDL)来描述完成的。对于大型复杂的算法实现,设计人员需要做大量的结构设计和仿真验证工作。而且,FPGA是基于硬件连线可编程的器件,因此不支持在线调试功能。
11.1.2 基于DSP的信号处理系统的特点
1.基于DSP的信号处理系统的优点
DSP芯片是基于软件可编程的,开发语言主要是C语言,个别场合需要编写汇编语言。相对与HDL语言,C语言更容易让初学者接受,因此DSP芯片在信号处理领域得到了广泛的应用。
C语言属于高级语言,因此在DSP上描述复杂算法的难度要低于FPGA。另外,DSP芯片的结构也适合数据量大,重复性高的算法。特别是乘加累加计算(MAC)密集和for循环密集的算法。
DSP芯片一般采用时间上压缩和空间上并行两种主要手段来实现高性能的数据处理。时间上压缩技术包括单周期指令、专用的硬件乘法累加器以及多种寻址方式等;空间上并行技术包括哈佛式总线结构、多运算单元以及灵活的流水线技术等。
2.基于DSP的信号处理系统的不足
DSP芯片是基于软件可编程的,因此不可避免的问题就是功耗大,处理能力受到主频的限制等不足。而且,DSP芯片的数据带宽受到总线接口位宽限制,不能应付高速数据流的处理要求。
通用DSP的接口扩展能力有限,不能直接和ADC或者DAC芯片互联。DSP需要外部的逻辑器件来配合才能实现数据采集或者输出,例如CPLD或者FPGA。
目前大部分的DSP都没有内存管理单元(MMU),还不能支持复杂的操作系统,如Linux或者Windows CE等。DSP的内存管理和保护能力比较弱,目前还不支持虚拟内存。
11.1.3 基于FPGA+DSP的信号处理系统优势和应用领域
1.基于FPGA+DSP的信号处理系统的优势
基于FPGA+DSP的信号处理系统可以同时具备FPGA和DSP的优势。
(1)支持更高的计算处理能力。
FPGA+DSP的双芯片处理系统的计算能力相对单芯片系统更加强大,而且可以充分发挥两种芯片的性能潜力。
(2)灵活的系统重构方案。
FPGA芯片和DSP芯片两者之间可以相互配置。通常情况下,DSP会作为系统的主控制器,FPGA上电后由DSP来完成配置。在系统的工作期间,DSP可以根据需要,重新配置FPGA,实现系统的功能重构。
例如,在软件无线电应用中,经常需要根据发射系统调制方式的改变来动态调整接收系统功能。这种应用中就可以充分发挥FPGA+DSP构建的灵活性,DSP可以根据调制方式来选择不同的配置文件加载到FPGA中,实现自适应的动态配置。
另外,系统工作过程中,如果DSP芯片在自检过程中发现功能异常,也可以请求FPGA芯片重新配置自己。这样的系统具备一定的自我修复能力,更加智能化。
(3)开发难度和系统成本的折衷
从控制系统成本角度来看,单芯片应该是最好的方案。但是,无论是采用FPGA还是DSP,单芯片的方案开发难度都会提高。单FPGA的方案实现复杂的控制会比较困难,而单DSP的方案实现大数据量的重复计算也有很大难度。
采用了FPGA+DSP的方案虽然成本要高于单芯片方案,但是降低了开发难度,可以加快产品的上市时间。因此,双芯片的构建是一种开发难度和系统成本的折衷选择。同时,也降低系统开发的技术风险。
2.基于FPGA+DSP的信号处理系统的应用领域
基于FPGA+DSP的非常适合既有复杂算法处理又需要大量的重复计算应用,例如软件无线电、高清视频图像处理、信息安全等领域。
FPGA作为DSP的协处理器,给DSP提供单元加速功能。例如,FPGA可以实现一个浮点协处理单元(FPU),给高性能的定点DSP提供浮点计算能力,适合于数值分析和高精度信号处理领域。
基于FPGA+DSP的系统配置方式比较灵活。FPGA和DSP可以单独配置,也可以相互配置。因此,这种方案可以用于智能的动态重构计算平台。