1.4.2 FPGA的特点及优势

FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列(Logic Cell Array,LCA),内部包括CLB、IOB和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。FPGA还具有静态可重复编程和动态在线系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张地讲,FPGA能完成任何数字器件的功能,上至高性能的CPU,下至简单的74系列电路,都可以用FPGA来实现。FPGA如同一张白纸或一堆积木,工程师可以通过传统的原理图输入法或硬件描述语言自由设计一个数字系统。通过软件仿真,可以事先验证设计的正确性。在完成PCB以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB的面积,提高系统的可靠性。FPGA是由存放在其片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。当需要修改FPGA的功能时,只需修改EPROM中的程序即可。同一片FPGA,不同的程序,可以实现不同的功能,因此,FPGA的使用非常灵活。可以说,FPGA是小批量系统提高系统集成度、可靠性的最佳选择之一。

上述四种处理平台的区别是什么呢?DSP主要用来计算,如加/解密、调制解调等,优势是具有强大的数据处理能力和较高的运算速度。ARM具有比较强的事务管理功能,可以用来运行界面和应用程序等,其优势主要体现在控制方面。FPGA可以用VHDL或Verilog HDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以灵活地进行设计开发和验证。当电路有少量的改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,因为这种能力可以用来进行系统升级或除错。

任何处理器性能的评估必须包括衡量该器件是否能在指定时间内完成所需的功能。这类评估中一种最基本的方法就是测量多个乘加运算处理的时间。考虑一个具有16个抽头的简单FIR滤波器,该滤波器要求在每次采样中完成16次乘加运算(MAC操作)。TI公司的TMS320C6203具有300 MHz的时钟,在合理的优化设计中,每秒可完成4亿至5亿次MAC操作。这意味着由TMS320C6203构成的FIR滤波器具有最大为每秒3100万次采样的输入速率。但在FPGA中,所有16次MAC操作均可并行执行。对于Xilinx公司的Virtex系列FPGA,16 bit的MAC操作大约需要配置160个CLB,因此16个并发MAC操作大约需要2560个CLB。

目前,无线通信技术的发展十分迅速,无线通信技术发展的理论基础之一是软件无线电技术,而数字信号处理技术是实现软件无线电技术的基础。无线通信一方面正向语音和数据融合的方向发展;另一方面,在手持PDA产品中越来越多地需要使用移动技术。这一要求对应用于无线通信中的FPGA提出了严峻的挑战,其中最重要的三个方面是功耗、性能和成本。为了适应无线通信技术的发展需要,FPGA系统芯片(System on a Chip,SoC)的概念、技术、芯片应运而生。利用系统芯片技术将尽可能多的功能集成在一片FPGA上,使其性能上具有速率高、功耗低的特点,不仅价格低廉,还可以降低复杂性,便于使用。

实际上,FPGA的功能早已超越了传统意义上的胶合逻辑功能。随着各种技术的相互融合,为了同时满足运算速度、复杂度,以及降低开发难度的需求,目前在数字信号处理领域及嵌入式技术领域,“FPGA+DSP+ARM”的配置模式已浮出水面,并逐渐成为标准的配置模式。