在Vivado HLS中使用Tcl

  • 2019 年 10 月 30 日
  • 筆記

Vivado HLS不僅支援圖形介面方式,也支援Tcl命令。為方便說明,我們這裡舉一個例子。假定設計中有四個文件fir.h, fir.c,fir_test.c和out.gold.dat。其中fir.h為頭文件;fir.c為源文件,在該文件中定義了待綜合的函數fir;fir_test.c為C模型的測試文件,用於對函數fir進行驗證;out.gold.dat也是測試文件,只是存放的是參考數據(同樣激勵下的正確數據)。

根據HLS的設計流程,需要依次執行以下操作:

  • 創建HLS工程
  • 添加待綜合函數對應的C文件
  • 添加模擬文件
  • 設置晶片型號
  • 設置時鐘周期
  • 執行C模擬
  • 執行C綜合
  • 執行C/RTL協同模擬
  • 導出設計

上述每個操作都有相應的Tcl命令與之對應。例如,添加文件需要用到命令add_files,C模擬需要用到csim_design,C綜合對應命令csynth_design,C/RTL協同模擬對應cosim_design。因此,針對這個案例,整個設計流程的Tcl腳本如下圖所示。

這裡最好將頭文件、源文件、測試文件放在同一目錄下。如果不在同一目錄下,需要通過如下方式指明頭文件所在目錄,可以是絕對路徑也可以是相對路徑。

如果是使用圖形介面方式,則需要在ProjectSettings下指定頭文件路徑,如下圖所示。

將上述所有Tcl命令存放在一個run_hls.tcl的文件里,並將該文件與前文提到的四個文件放在同一目錄下。下面就開始執行該文件。

第一步:打開Vivado HLS 2019.1Command Prompt,切換到run_hls.tcl所在目錄,執行如下命令:

vivado_hls -f run_hls.tcl

如下圖所示。這樣,VivadoHLS會按照run_hls.tcl中的命令執行相應操作

第二步:如果需要打開執行後的工程,查看結果,執行如下命令:

vivado_hls -p fir_prj

其中-p後面的值是run_hls.tcl中open_project命令創建的工程名。這樣就又回到了圖形介面模式。

另外,pragmas也可以用Tcl命令描述,但相對會繁瑣一些。所以,可以在圖形介面方式下設置各種pragmas,選擇將其保存在Tcl文件中,通常在每個Solution下面的constraints里有一個名為directives.tcl的文件,這裡即是工具保存pragmas的位置。

對於directives.tcl,可以結合source命令將其添加到整個設計流程中,這就體現了Tcl的好處:只用提交這些文件即可對工程進行復原。

Tags: