基于dsp_builder的算法在FPGA上的实现
一、摘要
结合dsp_builder、matlab、modelsim和quartus ii等软件完成算法的FPGA实现。
二、实验平台
硬件平台:DIY_DE2
软件平台:quartus ii9.0 + ModelSim-Altera 6.4a (Quartus II 9.0) + dsp_builder9.0 + matlab2010b
三、软件平台的准备
1、软件的匹配
根据altera的官方文档,可以看到quartus ii、modelsim、dsp_builder和matlab的版本匹配信息。如图1所示。
http://www.altera.com/support/ip/dsp/ips-dsp-version.html
图1 软件版本匹配
一般情况下,quartus ii、modelsim和dsp_builder版本一定要匹配,而matlab版本高于规定的版本也可以,但这样做有可能会出现某些模块不能使用的情况。
2、软件的安装
安装与破解dsp_builder的步骤可以参看“清风醉明月”同学的文章,链接如下:
需要说明的是:
针对dsp_builder9.0版本的matlab版本应为2007b,而我的是2010b,虽说是兼容的,但是仍出现了些问题,如高级库的一些组件无法显示,如图2所示。最好的解决办法还是按照建议,使版本完全匹配。
图2 某些功能无法使用
四、例程
通过一个正弦波的例程阐述dsp_builder的使用流程。可参看潘松著《EDA技术与VHDL》(第3版)第9章的例程。
1、建立simulink设计模型
在matlab中,新建立一个simulink模型,如图3所示。
图3 建立的simulink模型
2、simulink模型仿真(系统级,即算法级)
设置好参数后,运行仿真,双击scope可以看到仿真波形,如图4所示。
图4 simulink仿真波形
3、SignalCompiler使用方法
在simulink中完成仿真验证后,就需要把设计转到硬件上加以实现。这是整个DSP builder设计中最关键的一步,据此可以获得针对FPGA的VHDL RTL代码。如图5所示。
图5 SignalCompiler
4、使用modelsim进行RTL级仿真
这一步,其实是对由.mdl文件转换的VHDL文件进行仿真验证,可以通过添加TestBench组件实现。如图6所示。
图6 TestBench
另外,Launch GUI选型,勾选的话,则直接启动modelsim进行仿真;不勾选的话,可以通过modelsim的Tools菜单下的TCL——>Execute Macro...查找工程文件夹下的sinwave_add.tcl文件进行仿真。
5、使用Quartus II实现时序仿真
上一步是功能仿真,即modelsim中的前仿真。这是进一步验证时序仿真的正确与否,即后仿真。这一步,需要说明几点:
(1)Quartus II 9.1之前的软件自带仿真组件,而之后软件不再包含此组件。
(2)可以用modelsim实现后仿真,验证时序仿真。
6、FPGA的验证
将设计下载到FPGA,进行验证。通过示波器验证波形的正确与否。
五、总结
上面的流程涉及到的各个部分的具体使用,可以参看altera的dsp_builder官方文档。
dsp_builder的介绍:http://www.altera.com.cn/literature/hb/dspb/hb_dspb_intro.pdf
dsp_builder的基本库:http://www.altera.com.cn/literature/hb/dspb/hb_dspb_std.pdf
dsp_builder的高级库:http://www.altera.com.cn/literature/hb/dspb/hb_dspb_adv.pdf