作者:Mculover666
1.實驗?zāi)康?br /> 通過例程探索Vivado HLS設(shè)計流
- 用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項目
- 用各種HLS指令綜合接口
- 優(yōu)化Vivado HLS設(shè)計來滿足各種約束
- 用不用的指令來探索多個HLS解決方案
2.實驗內(nèi)容
實驗中文件中包含一個矩陣乘法器的實現(xiàn),實現(xiàn)兩個矩陣inA和inB相乘得出結(jié)果,并且提供了一個包含了計算結(jié)果的testbench文件來與所得結(jié)果進行對比驗證。
3.實驗步驟
3.1.在Vivado HLS GUI界面中創(chuàng)建項目
3.1.1.啟動Vivado HLS 2018.1
3.1.2.創(chuàng)建一個新的工程
添加提前創(chuàng)建好的測試文件進來:
工程創(chuàng)建完成,綜合界面如圖所示:
3.2.在Vivado HLS 命令行中快速創(chuàng)建項目
在3.1節(jié)中采用GUI界面完成了創(chuàng)建工程的工作,這個工程命名和添加文件創(chuàng)建工程的工作可以由一個TCL腳本完成,可以大幅提高我們的效率~
3.2.1.打開Vivado HLS 命令行界面
3.2.2.編寫創(chuàng)建工程TCL腳本
新建一個文件run_hls_pynq.tcl,然后編寫以下工程配置:
# 創(chuàng)建工程
open_project -reset matrix_mult_prj
# 添加源文件和測試文件
add_files matrix_mult.cpp
add_files matrix_mult.h
add_files -tb matrix_mult_test.cpp
# 設(shè)置工程頂層
set_top matrix_mult
# 創(chuàng)建解決方案
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即可運行腳本,完整過程如圖所示:
這樣一個工程就創(chuàng)建好了;
3.2.4.在Vivado HLS命令行打開創(chuàng)建的工程
使用命令vivado_hls -p matrix_mult_prj即可在GUI界面打開工程,如圖:
3.3.Vidavo HLS中的設(shè)計優(yōu)化
3.3.1.文件作用c
- matrix_mult.cpp 包含了迭代計算矩陣乘法的代碼
- matrix_mult.h 包含了宏定義和函數(shù)聲明
- matrix_mult_test.cpp 測試文件,包含了使用HLS硬件解決方案計算和軟件計算的結(jié)果,并計算驗證
3.3.2.運行C仿真
點擊Run C Simulation按鈕,然后不用選擇,直接下一步,可以看到控制臺輸出:
3.3.2.使用HLS綜合C++代碼
點擊C Synthesis按鈕,Vivado HLS會開始綜合C++代碼,綜合完成后會自動打開綜合報告,其中詳細的描述了設(shè)計的時序以及FPGA資源占用估算等:
3.3.4.新建一個解決方案進行對比
點擊New Solution按鈕新建一個解決方案:
然后打開matrix_mult.cpp文件,選擇右邊的directive視圖,右擊Product,選擇Inser Directive,然后選擇PIPELINE,確定之后運行C綜合來綜合出RTL設(shè)計,完成后同樣會彈出設(shè)計信息:
然后可以將報告與之前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
+關(guān)注
關(guān)注
19文章
812瀏覽量
66470
發(fā)布評論請先 登錄
相關(guān)推薦
評論