DSP

基于dsp_builder的算法在FPGA上的实现

2019-07-13 12:36发布

一、摘要

  结合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 builder安装指南(以9.1为例)  需要说明的是:   针对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