FPGA的一大應用就是數字信號處理(DSP),尤其是大數據量高速處理的場合,比如雷達,成像,超聲等領域。
但是直接用Verilog實現DSP算法,是一件很費時費力的事情,而且改動也不是很方便。目前有幾種折中的辦法,
一是用HLS,大概的思路就是用C/C++先編寫算法,然后轉譯為Verilog語言;另一種就是用MATLAB等工具,
直接生成Verilog代碼。
步驟如下:
首先,關聯MATLAB和Vivado
在【開始】菜單,找到配置工具,打開
選擇MATLAB路徑
注意到 R2015a 目錄 即可。
打開MATLAB2015,新建一個simulink模型
可以看到如下一個空白窗體
打開【simulink Library】
找到Xilinx相關仿真模塊
拖到simulink 模型窗體即可,完畢后聯線
單擊【RUN】進行仿真即可
最后,生成Vivado項目工程,雙擊【System Generator】
選擇正確的芯片型號和你自己使用的語言,目錄選擇默認即可。
單擊【Generate】,生成工程。
完成后,可以在【netlist】文件夾的【ip_catalog】子目錄中找到xpr工程文件
雙擊可以用Vivado打開,編譯綜合后即可生成IP核。
濾波器參數如下
原始信號頻譜
模塊仿真輸出信號頻譜-8it定點,可以看到明顯的量化噪聲
最后消耗資源如下
詳細的FDATool及相關組件的使用方法,請查閱MATLAB help和Xilinx的相關手冊。
參考資料:
1.Xilinx UG948 《Vivado Design Suite Tutorial,Model-Based DSP Design Using System Generator》
2.Xilinx UG958 《Vivado Design Suite Reference Guide,Model-Based DSP Design Using System Generator》