1. 程式人生 > >基於dsp_builder的算法在FPGA上的實現

基於dsp_builder的算法在FPGA上的實現

雙擊 arc cut 設置 img version 時序 blog tro

基於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 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

轉載自:http://www.cnblogs.com/sunev/archive/2012/11/17/2774836.html

基於dsp_builder的算法在FPGA上的實現