注:本文轉(zhuǎn)自賽靈思中文社區(qū)論壇,源文鏈接在此。本文原作者為XILINX工程師。
以下為個(gè)人譯文,僅供參考,如有疏漏之處,還請(qǐng)不吝賜教。
本篇博文是面向希望學(xué)習(xí) Xilinx System Generator for DSP 入門知識(shí)的新手的系列博文第一講。
其中提供了有關(guān)執(zhí)行下列操作的分步操作方法指南:
- 使用 Xilinx System Generator 塊集合對(duì)用戶算法進(jìn)行建模
- 對(duì)設(shè)計(jì)進(jìn)行仿真并以可視化方式直觀展示輸入/輸出以驗(yàn)證設(shè)計(jì)
- 為設(shè)計(jì)生成測(cè)試激勵(lì)文件、測(cè)試矢量和 RTL (VHDL/Verilog) 代碼
Xilinx System Generator for DSP 可為基于模型的設(shè)計(jì)與系統(tǒng)集成平臺(tái)提供模塊框圖環(huán)境,以支持將 DSP 系統(tǒng)的 RTL、Simulink?、MATLAB? 和 C/C++ 組件整合到面向賽靈思 FPGA 器件的單一仿真和實(shí)現(xiàn)環(huán)境中。
它包含一個(gè)已預(yù)定義并預(yù)優(yōu)化的開(kāi)箱即用的塊集合,可用于對(duì)算法進(jìn)行建模、仿真和分析,并生成測(cè)試激勵(lì)文件、測(cè)試矢量以及 HDL 代碼,從而加速 FPGA 開(kāi)發(fā)。
System Generator 支持針對(duì)以下編譯目標(biāo)生成自動(dòng)代碼 (Automatic Code):
- HDL 網(wǎng)表
- IP 目錄
- 已綜合的檢查點(diǎn)
- 硬件協(xié)同仿真
配置 MATLAB
首先,我們需要安裝 MATLAB 并對(duì) MATLAB 進(jìn)行相應(yīng)配置,確保它可配合 Vivado Design Suite 一起使用。
具體操作如下:
在 Windows 上:
以管理員身份打開(kāi)“開(kāi)始 >(所有)程序 > Xilinx Design Tools > Vivado 2019.x > System Generator > System Generator 2019.x MATLAB Configurator”。
出現(xiàn) MATLAB 配置窗口后,勾選相應(yīng)版本的 MATLAB 對(duì)應(yīng)的復(fù)選框。
單擊“Apply”,然后單擊“OK”。

在 Linux 上:
請(qǐng)確保可在 Linux 系統(tǒng)的 $PATH 環(huán)境變量中找到 MATLAB 可執(zhí)行文件。
Linux 下的 System Generator 是使用名為“sysgen”的 shell 腳本處理的,此腳本位于 /bin 目錄中。
本實(shí)踐教程操作步驟如下:
本篇博文是面向希望學(xué)習(xí) Xilinx System Generator for DSP 入門知識(shí)的新手的系列博文第一講。
其中提供了有關(guān)執(zhí)行下列操作的分步操作方法指南:
1. 使用 Xilinx System Generator 塊集合對(duì)用戶算法進(jìn)行建模
2. 對(duì)設(shè)計(jì)進(jìn)行仿真并以可視化方式直觀展示輸入/輸出以驗(yàn)證設(shè)計(jì)
3. 為設(shè)計(jì)生成測(cè)試激勵(lì)文件、測(cè)試矢量和 RTL (VHDL/Verilog) 代碼
實(shí)踐教程將按以上指定的編譯目標(biāo)順序予以展示。
步驟 1:遵循以下對(duì)應(yīng)于您的操作系統(tǒng)的步驟調(diào)用 System Generator:
- 在 Windows 系統(tǒng)上,選擇“開(kāi)始 >(所有)程序 > Xilinx Design Tools > Vivado 2019.x >System Generator > System Generator 2019.x”
- 在 Linux 系統(tǒng)上的命令提示符處輸入 sysgen
此步驟將打開(kāi)包含 System Generator 塊集合的 MATLAB 會(huì)話。
如以下截屏所示:

步驟 2:將工作目錄更改為包含創(chuàng)建的 Sysgen 模型的任意本地目錄。
單擊位于 MATLAB 窗口右上角的 Simulink 圖標(biāo)。
這樣將打開(kāi) Simulink Start Page:

步驟 3:?jiǎn)螕?Simulink 下拉選項(xiàng)的“Blank model”圖標(biāo)。
這樣將打開(kāi)空白或“Untitled”模型,其中包含空白的模型畫(huà)布。

步驟 4:?jiǎn)螕簟癠ntitled”模型窗口中的“Library browser”圖標(biāo)以便在“Simulink Library Browser”窗口中查看賽靈思?jí)K集合。
單擊并展開(kāi)“Xilinx Blockset”菜單,以查看不同類別的塊。單擊“Basic elements”類別,以查看基本 sysgen 塊,如下所示:

步驟 5:右鍵單擊并選擇“Add block to model”(Ctrl+I) 選項(xiàng)將 System Generator 標(biāo)識(shí)塊添加到模型中以定義 FPGA 技術(shù)。
以同樣方式添加“Gateway In”和“Gateway Out”塊,以定義設(shè)計(jì)的 System Generator 部分與 Simulink 部分之間的界限。
注:任何模型都必須包含這些必需的塊。每個(gè)模型都必須至少包含 1 個(gè) System Generator 塊,可包含多個(gè)“Gateway In”和“Gateway Out”塊,具體取決于設(shè)計(jì)的輸入和輸出。

此處演示的是添加乘累加 (Mult-add) 運(yùn)算的建模過(guò)程,因此我們需要將“Mult”、“AddSub”和“Delay”塊添加到模型中。
步驟 6:選中“Xilinx Blockset”下的“Floating-Point”類別中的“AddSub”塊,右鍵單擊,然后單擊“Add block to model”選項(xiàng)。

步驟 7:以同樣方式選中“Xilinx Blockset”下的“Floating-Point”類別中的“Mult”塊和“Basic Elements”類別下的“Delay”塊,并將這兩個(gè)塊添加到模型中。
這樣模型將如下圖所示:

步驟 8:現(xiàn)在,添加 3 個(gè)“Constant”塊實(shí)例,此“Constant”塊可在“Simulink Library Browser”的“Simulink”塊集合下的“Sources”類別中找到:

以同樣方式添加來(lái)自“Simulink”塊集合下的“Sinks”類別的“Display”塊。
這些塊用作為 System Generator 設(shè)計(jì)的激勵(lì)塊。
步驟 9:按住鼠標(biāo)左鍵并繪制一條從源端口到目標(biāo)端口的線,以將塊連接在一起。
完整的模型將如下所示:

步驟 10:雙擊“Gateway In”塊以打開(kāi)“Properties Editor”,根據(jù)塊 GUI 中的“Output type”和“Sample period”下的輸入值來(lái)設(shè)置輸入數(shù)據(jù)類型,然后單擊“OK”。
針對(duì)其他輸入重復(fù)該過(guò)程:

步驟 11:雙擊 System Generator 標(biāo)識(shí)以更改系統(tǒng)和仿真參數(shù)。
確?!癱locking”選項(xiàng)卡下的“Simulink system period”與“Gateway In”塊的樣本周期相同。
“FPGA clock period”應(yīng)為“Simulink system period”的整數(shù)倍。
單擊“OK”。

步驟 12:?jiǎn)螕裟P凸ぞ邫谏系谋4姘粹o、為其提供有效的名稱,然后單擊“Save”以保存設(shè)計(jì)(在步驟 3-9 間可隨時(shí)執(zhí)行此步驟)。
步驟 13:?jiǎn)螕簟癛un”按鈕以對(duì)模型進(jìn)行仿真并驗(yàn)證輸出:

步驟 14:雙擊 System Generator 標(biāo)識(shí),確保:
- “Compilation”已設(shè)置為“HDL Netlist”
- “Target directory”選項(xiàng)設(shè)置為包含所生成 RTL 代碼的任意有效目錄(在此示例中目錄為 netlist)
- 已選中“Compilation”選項(xiàng)卡上的“Create testbench”選項(xiàng)
對(duì)于其他選項(xiàng),保留默認(rèn)設(shè)置。
現(xiàn)在,單擊“Apply”,然后單擊“Generate”按鈕。

注:System Generator 標(biāo)識(shí)充當(dāng)用于控制系統(tǒng)和仿真參數(shù)的控制面板,并且還可用于調(diào)用代碼生成器。
步驟 15:代碼生成過(guò)程開(kāi)始后,就會(huì)彈出狀態(tài)窗口,如下所示:

步驟 16:代碼生成完成后,狀態(tài)窗口將通知您代碼生成過(guò)程已完成。

在此處截屏中所示的示例中,System Generator 已成功生成 Kintex-7 xc7k325t-3fbg676 器件的 VHDL RTL 設(shè)計(jì),包括測(cè)試矢量和測(cè)試激勵(lì)文件。
現(xiàn)在,請(qǐng)啟動(dòng) Vivado,打開(kāi)“netlist/hdl_netlist/Multadd_test.xpr”文件,然后按下文中詳述的步驟運(yùn)行 Vivado 流程:
Vivado 設(shè)計(jì)輸入紀(jì)事 - RTL 設(shè)計(jì)輸入
審核編輯:符乾江
-
dsp
+關(guān)注
關(guān)注
555文章
8078瀏覽量
352194 -
RTL
+關(guān)注
關(guān)注
1文章
386瀏覽量
60183
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
SRIO介紹及xilinx的vivado 2017.4中生成srio例程代碼解釋

Xilinx_Vivado_SDK的安裝教程

FIFO Generator的Xilinx官方手冊(cè)

system verilog語(yǔ)言簡(jiǎn)介
如何使用Beep Generator (PRB_P25)使得TLV320AIC3120內(nèi)部產(chǎn)生固定頻率的正弦信號(hào)?
RTL8187L和802.11n
生成對(duì)抗網(wǎng)絡(luò)(GANs)的原理與應(yīng)用案例
ESP32連接RTL8201F芯片,網(wǎng)速自動(dòng)協(xié)商失敗,無(wú)法通信怎么解決?
任意波形發(fā)生器中波形生成方法
rtl8367rb-cg數(shù)據(jù)手冊(cè)
基于樹(shù)莓派5的RTL仿真體驗(yàn)
Vivado 使用Simulink設(shè)計(jì)FIR濾波器
如何通過(guò)優(yōu)化RTL減少功耗

評(píng)論