基于DSP Builder数字信号处理器的FPGA设计
DSP技术广泛应用于各个领域,但传统的数字信号处理器由于以顺序方式工作使得数据处理速度较低,且在功能重构及应用目标的修改方面缺乏灵活性。而使用具有并行处理特性的FPGA实现数字信号处理系统,具有很强的实时性和灵活性,因此利用FPGA实现数字信号处理成为数字信号处理领域的一种新的趋势。
以往基于FPGA的数字信号处理系统的模型及算法采用VHDL或VerilogHDL等硬件描述语言描述。但这些硬件描述语言往往比较复杂,而采用Altera公司推出的专门针对数字信号处理器设计工具DSP BuildIer则可大大简化设计过程,提高设计效率。
1 基于DSP Builder的数字信号处理器设计流程
DSP Builder是一个系统级(或者说算法级)设计工具,它架构在多个软件工具之上,并连接系统级的算法仿真建模和RTL级的硬件实现两个设计领域的设计工具,最大程度地发挥了这两种工具的优势。
DSP Builder依赖于Math-Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可在simulink中进行图形化设计和仿真,同时又通过signal Compiler把Maltlab/Simulink/DSP Builder的设计文件转成相应的VHDL设计文件,以及用控制综合与编译的tcl脚本。而对后者的处理可以由FPGA/CPLD开发工具QuartusⅡ完成。其设计流程如下:
Step1:在Simulink环境中调用Altera DSP库(非MATLAB自带的DSP库)中的块,进行数学模型设计。
Step2:在MATLAB中进行纯数学上的仿真、验证及修改。
Step3:当仿真符合设计要求后,再加入并运行Signal Compiler模块,将.mdl文件自动转成.vhd文件,进行RTL级的功能仿真和逻辑综合。
Step4:在QuartusⅡ中进行编译设计并进行时序仿真。
Step5:下载到一个硬件开发板上并测试。
2 设计实例
FIR和IIR滤波器是当前数字信号处理巾最常用的2种滤波器,其中FIR因其具有精确的线性相位特性而得到广泛应用。下面以截止频率为5 kHz,采样频率为32 kHz,输入序列位宽为9位(最高位为符号位)的12阶FIR低通数字滤波器为例,阐述基于DSP Builder的数字信号处理器设计方案。
2.1 FIR数字滤波器结构模型
对于N阶FIR数字滤波系统,其冲击响应总是有限长的,系统函数为:
滤波器的差分方程为:
式中,x(n)是输入采样序列,h(n)是滤波器系数,N是滤波器的阶数,y(n)表示滤波器的输出序列。
设计滤波器的任务就是寻找一个因果、物理上可实现的系统函数H(z),使其频率响应满足所希望的频域指标。图1为阶FIR数字滤波器的结构图。可见,FIR的数字滤波过程就是一个信号逐级延迟的过程,将各级的延迟输出加权累计,即得到FIR的输出。
2.2 滤波器系数的确定
滤波器系数使用Matlab的FDNTool设计工具获得。FDATool即为Filter Design&Analysys Tool,可以完成多种滤波器的设计、分析和性能评估。
启动FDATool后就是滤波器的设计界面,设置相应参数,便可生成所需的系数。由于得到的系数均为介于[-1,1]区间的浮点数,而在DSP Builder下建立的FIR滤波器模型需要一个整数(有符号整数类型)作为滤波器系数,故需将其量化为整数。量化后滤波器系数为:
2.3 滤波器模型的建立
在DSP Builder平台上设计FIR滤波器,首先在Matlab的Simulink中建立一个.MDL模型文件,即根据所要设计FIR滤波器的结构调用Al-tera DSP Builder和其他Simulink库中的图形模块,构成设计框图文件。
如果把所有的模块放在一个Simulink图中,设计图会显得非常复杂、庞大,不利于阅读或排错,这时可以利用层次设计方法设计。对于12阶FIR数字滤波器,可以先设计一个3阶FIR滤波器子模块fir3(图2),然后调用3个fir3子模块构造成12阶nR数字滤波器。使用。DSPBuilder工具箱建立的12阶FIR数字滤波器模型,如图3所示。
2.4 基于Simnlink的系统VHDL代码生成
完成模型设计后,先在Simulink中对模型进行系统仿真,即通过Simulink中的2通道示波器Scope模块查看仿真结果。DSP Builder可提供QuartusⅡ软件和MATLAB/Simulink工具之间的接口,即Signal Compiler模块。
若通过系统仿真,该系统已达到设计要求,双击SignalCompiler模块,设置好相关参数后,即可将模型文件.mdl转化为硬件描述语言文件.vhd,并可对其进行综合。之后在OuartusⅡ环境中,打开DSP Builder,建立的QuartusⅡ工程文件,就可以对生成的VHDL代码进行器件配置、引脚设定、编译、时序仿真、硬件下载等工作。
2.5 基于QuartusⅡ的时序仿真
在Simulink中进行
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)