2.3 基于DSP Builder的系统级仿真
输入信号采用频率分别为f1=8KHz和f2=16KHz的两个正弦信号进行叠加,其中的仿真波形如图2所示,从FIR滤波电路的仿真结果看出,输入信号通过滤波器后输出基本上变成单频率的正弦信号,至此完成了模型仿真。
3 基于 FPGA的数字滤波器的实现
3.1 运用Modelsim进行功能仿真
在DSP Builder中进行的仿真是属于系统验证性质的,是对MDL文件进行的仿真,并没有对生成的VHDL代码进行过仿真。事实上,生成VHDL描述是RTL级的,是针对具体的硬件结构的,这两者之间有可能存在软件理解上的差异,转换后的VHDL代码实现可能与MDL模型描述的情况不完全相符,这就需要针对生成的RTL级VHDL代码进行功能仿真。
我们利用Modelsim来对生成的VHDL代码进行功能仿真。设置输入输出信号均为模拟形式,出现如图3所示的仿真波形,可以看到这与Simulink里的仿真结果基本一致。即可在Quartus II环境下的硬件设计[4]。
3.2 在FPGA器件中实现FIR滤波器
用FPGA实现的数字滤波器处理的是数字信号,在实际应用中,首先就要用A/D转化器对模拟信号进行采样与量化。传统的方法多数是用CPU或单片机完成的,缺点是控制周期长,速度慢。而利用同步时序状态机来控制A/D采样是一种既简单可靠,又能显著提高采样周期的行之有效的方法。
在Quartus II环境通过VHDL语言按要求设计该状态机并转换为.bsf文件;打开DSP Builder建立的Quartus II项目文件fir.qpf及fir.vhd并转换为相应的.bsf文件,由此可以得到对应设计的模块,如图4所示,调用这两个模块建立新的顶层原理图文件,在软件环境里通过时序仿真,指定器件管脚、进行编译、最后下载到实验箱的EP1K10TC100-3器件中。
4 结语
用信号发生器产生所要求的两个不同频率的正弦信号,就可以示波器上看到滤波以后的结果,需要设计不同的滤波电路时,仅修改滤波器模型文件就可以实现。可见在利用FPGA进行数字滤波器的开发时,采用DSP Builder作为设计工具能快捷、可靠地设计实用滤波系统。