作者:Mculover666
1.實驗目的
通過例程探索Vivado HLS設計流
- 用圖形用戶界面和TCL腳本兩種方式創建Vivado HLS項目
- 用各種HLS指令綜合接口
- 優化Vivado HLS設計來滿足各種約束
- 用不用的指令來探索多個HLS解決方案
2.實驗內容
實驗中文件中包含一個矩陣乘法器的實現,實現兩個矩陣inA和inB相乘得出結果,并且提供了一個包含了計算結果的testbench文件來與所得結果進行對比驗證。
3.實驗步驟
3.1.在Vivado HLS GUI界面中創建項目
3.1.1.啟動Vivado HLS 2018.1
3.1.2.創建一個新的工程
添加提前創建好的測試文件進來:
工程創建完成,綜合界面如圖所示:
3.2.在Vivado HLS 命令行中快速創建項目
在3.1節中采用GUI界面完成了創建工程的工作,這個工程命名和添加文件創建工程的工作可以由一個TCL腳本完成,可以大幅提高我們的效率~
3.2.1.打開Vivado HLS 命令行界面
3.2.2.編寫創建工程TCL腳本
新建一個文件run_hls_pynq.tcl,然后編寫以下工程配置:
# 創建工程
open_project -reset matrix_mult_prj
# 添加源文件和測試文件
add_files matrix_mult.cpp
add_files matrix_mult.h
add_files -tb matrix_mult_test.cpp
# 設置工程頂層
set_top matrix_mult
# 創建解決方案
open_solution -reset solution1
# 選擇具體的FPGA芯片配置
set_part {xc7z010clg400-1}
create_clock -period 5
exit
3.2.3.在Vivado HLS命令行運行TCL腳本
在剛剛打開的Vivado HLS命令行界面中輸入cd ,然后輸入目錄所在盤符,進入目錄后使用命令vivado_hls -f run_hls_pynq.tcl即可運行腳本,完整過程如圖所示:
這樣一個工程就創建好了;
3.2.4.在Vivado HLS命令行打開創建的工程
使用命令vivado_hls -p matrix_mult_prj即可在GUI界面打開工程,如圖:
3.3.Vidavo HLS中的設計優化
3.3.1.文件作用c
- matrix_mult.cpp 包含了迭代計算矩陣乘法的代碼
- matrix_mult.h 包含了宏定義和函數聲明
- matrix_mult_test.cpp 測試文件,包含了使用HLS硬件解決方案計算和軟件計算的結果,并計算驗證
3.3.2.運行C仿真
點擊Run C Simulation按鈕,然后不用選擇,直接下一步,可以看到控制臺輸出:
3.3.4.新建一個解決方案進行對比
點擊New Solution按鈕新建一個解決方案:
然后打開matrix_mult.cpp文件,選擇右邊的directive視圖,右擊Product,選擇Inser Directive,然后選擇PIPELINE,確定之后運行C綜合來綜合出RTL設計,完成后同樣會彈出設計信息:
然后可以將報告與之前solution1的報告進行對比,
3.3.5.分析
進入Analysis視圖:
3.3.6.新建一個流水線解決方案
3.3.7.解決方案對比
3.4.接口綜合
3.4.1.TCL腳本新建工程
在F:/SOC/PYNQ-Z2/HLSproject/hls/tut3C文件夾,使用命令:
vivado_hls -f run_hls_pynq.tcl
3.4.2.打開工程
vivado_hls -p matrix_mult_prj
3.4.3.C Synthesis
編輯:hfy
-
Vivado
+關注
關注
19文章
797瀏覽量
65853
發布評論請先 登錄
相關推薦
評論