2 现场可编程门阵列(FPGA)
FPGA (Field Programmable Gate Atray)是现场可编程门阵列的英文缩写,是可编程专用集成电路(ASIC)的一种(同类的还包括CPLD)。1984年,Xilinx公司首创了现场可编程逻辑阵列(FP-GA)这一创新性技术,并于1985年首次推出了世界上第一块FPGA芯片。在二十多年的发展过程中,FPGA的硬件体系结构和软件开发工具都在不断的完善且日趋成熟。从最初的1200个可用门到90年代时的几十万个可用门,发展到目前的数百万门至上千万门的单片FPGA芯片,Xilinx等世界顶级厂商已经将FPGA器件的集成度提高到了一个新的水平。 本文使用的是Spartan-3E Starter Kit Board开发板,芯片采用Xilinx公司的Spartan-3E系列中的XC3S500E芯片。XC3S500E系统门资源包括1164个可配置单元(可换算为4656个片资源)、4个DCM、360K位块存储器、20个乘法器以及232个可以使用的IO端口。设计时可以采用MathWorks公司的Matlab和Xilinx公司的System Generator来负责系统级设计。 Matlab作为线性系统的一种分析和仿真工具,在工程和计算科学上有着广泛的应用。Simulink作为Matlab的一个工具箱(toolbox),在整个的数字信号处理(Digital Signal Processing,DSP)设计中起着举足轻重的作用。它是一个交互式的工具,可用于对复杂的系统进行建模、仿真和分析。System Generator是Xilinx公司的一个模块集(blockset),是simulink的一个插件,其中设置了Xilinx特有的DSP功能的IP核,也包括了基本DSP函数和逻辑算符,如FIR ( Finite Impulse Re-sponse)、FFT(Fast Fourier Transform)、存储器、数学函数、转换器、延时线等。这些预先定义好的模块保证了FPGA实现时的位(-bit)和周期(-cycle)的正确性。使用它可以自动生成VHDL/Verilog语言、测试向量以及可以对ModelSim进行仿真的“.do'’文件。为了得到最佳的性能、密度和可预测性,System Generator还会自动将特定的设计模块映射成高度优化了的IP核模型。XilinxBlockset中的模块,有的可以直接映射到硬件,有的对应着IP核。它们中每个都可以根据设计要求更改参数,并支持双精度和定点的算法。这个模块集是一个可以外部扩展的库,使用的是C++的定点算法,所以,用户可以创建自己的基于C++类的Simulink库元件,以在设计中被当作黑箱(Blackbox)处理。System Generator同Simulink模型工具相结合,可以参数化、最优化算法。也可以自动从行为级的系统模型转换到FPGA实现,且其间不再需要手工重设,因而大大节省了开发时间并降低了出错概率。通过软件,用户可以在DSP函数的算法、性能、节能、硅片面积中进行选取,以便快速分析出它的运算速度和花费。 |