這篇文章在開發者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 傳統 IDE) 的基礎上撰寫,但使用的是 AMD Vitis Unified IDE,而不是之前傳統版本的 Vitis HLS。
工具流程為:AMD Vitis Unified (HLS) > AMD Vivado> Vitis Unified(平臺和嵌入式應用)。我們將創建一個 HLS 組件,并將其整合到 Vivado 硬件設計中。然后,我們將創建一個獨立的嵌入式應用工程,該工程使用 Vivado 中創建的 XSA 作為平臺。該嵌入式應用工程將控制 HLS IP:
https://docs.amd.com/access/sources/dita/topic?isLatest=true&url=ug1399-vitis-hls&resourceid=fem1539734223327.html&ft:locale=zh-CN
本教程的運行條件如下:
操作系統:Ubuntu 20.04
版本:2023.2
注釋:請確保使用適合您的版本的操作系統 - 受支持的操作系統:
https://docs.amd.com/access/sources/dita/topic?isLatest=true&url=ug973-vivado-release-notes-install-license&resourceid=ypb1549384088486.html&ft:locale=zh-CN
與 Vitis 傳統 IDE 相比,Vitis Unified IDE 發生了一些變化:
外觀 - GUI 基于 Visual-Studio 而不是基于 Eclipse。
Vitis HLS、Vitis 庫和 Vitis 應用工程以及 Vitis 平臺創建都在同一個 GUI 內進行操作。
術語 - HLS 設計現在稱為“組件”,而不是 IP 或內核。
不再支持多個 HLS“解決方案”并存 - 您將克隆自己的 HLS 設計來比較結果。
創建 HLS 組件
1. 啟動 Vitis Unified IDE 并選擇一個工作空間,該工作空間用于集中保存每個 Vitis 工程(HLS 組件、平臺工程和應用工程)。
只需在命令行中輸入 Vitis 即可啟動 IDE。
工作空間會顯示在左上角,即“VitisWS”。在“Welcome”頁面上,有不同的 Vitis 開發框可供選擇。我們將創建上面圈出的工程。我們將根據 HLS 設計示例創建一個 HLS 組件。
2. 選擇左側的示例圖標。導航到“using_axi_master”并單擊 + 號。
注釋:如果未顯示 HLS 示例,請通過選擇“Vitis HLS Introductory Examples”標題旁邊的下載箭頭來下載倉庫。
3. 選擇組件的名稱和位置,然后選擇“Next”。
4. 復查匯總信息,然后單擊“Finish”。
5. 打開設置文件 hls_config.cfg,編輯“Part”、“Flow”和“Output”文件。
hls_config.cfg 文件是新 IDE 的一部分,也是控制設計設置和編譯指示使用的方法之一。還可以在編輯器窗口(而不是 GUI 視圖)中查看該文件。
對于部件,請選擇“ZCU104”,對于目標流程,請選擇“Vivado IP Flow” 。
選擇“IP/XO Packaging”,并確保針對輸出格式選擇“Generate Vivado IP and .zip archive”。
6. 選擇“C Simulation”,并選中“Code Analyzer”框。當前設計過于簡單,無法利用該功能,但將來可參考該方法啟用該功能。可在“C Simulation > Reports > Code Analyzer”下查看分析結果。
7. 從 Flow Navigator 運行“C-Simulation”(、“C-Synthesis”、“C/RTL Co-Simulation”和“Package”。每一項的旁邊都有一個綠色的勾選標記。現在已經準備就緒,可以在 Vivado 中使用 HLS 組件了。
8. 要更深入地了解如何使用 Unified GUI 進行 HLS 設計,請參閱在 Vitis Unified IDE 中創建 HLS 組件:
https://github.com/Xilinx/Vitis-Tutorials/blob/2024.1/Getting_Started/Vitis_HLS/unified_ide_project.md
創建 Vivado 平臺
1. 啟動 Vivado 并使用 ZCU104 評估板創建一個新工程。
注釋:請勿將 Vivado 工程保存在您的 Vitis 工作空間文件夾中 - 請將這些工程/工作空間分開保存,以避免工具之間發生任何意外沖突/行為。
2. 將 HLS 組件添加到 IP 目錄中。
打開 IP 目錄,右鍵單擊“Vivado Repository”,選擇“add Repo”。
瀏覽到導出 IP 的位置,并將“ip”文件夾添加到目錄中。默認路徑為
3. 創建一個新的塊設計,并添加 HLS IP 和 AMD ZynqUltraScale+MPSoC。通過添加 S_AXI_HP0_FPD 端口來自定義 Zynq 器件。該評估板默認啟用 DDR,但請在“DDR Configurations”選項卡中確認 DDR 是否已啟用。
4. 使用設計輔助來運行自動連接。它將通過 AXI Interconnect 和 AXI SmartConnect 自動連接 Zynq 和 HLS IP。
5. 當前示例中并未使用中斷,但您可以手動將 HLS IP 上的中斷端口連接到 Zynq 器件上的 pl_ps_irq 端口。您的設計應與以下示例相似:
6.打開“Address Editor”選項卡,確保已如下所示分配了所有地址 。
7. 確認該設計。創建封裝文件以及綜合、實現和生成比特流的步驟。完成后,選擇“File > Export > Export Hardware”,并選中“Include bitstream”以導出設計,并將 XSA 文件保存到期望的位置。
創建獨立的嵌入式應用
Vitis Unified 工作空間應該仍處于打開狀態。如果未打開,請重新打開用于 HLS 組件的工作空間。嵌入式應用的設置分為兩步。
構建平臺
從“Welcome”屏幕中選擇“Create Platform Component”,用 XSA 創建自定義平臺。
選擇“Name”,將“Location”保留默認值(前提是默認設為工作空間路徑)。
瀏覽至第 2 步中創建的 XSA。
這時將自動填充操作系統和處理器。
復查匯總信息,然后單擊“Finish”。
注釋:此過程需要一些時間,但您將在左下角圈出位置看到平臺創建的進度,然后它將作為一個工程出現在工作空間中。
在工作空間中列出平臺工程后,從 Flow Navigator 中選擇“Build”來構建平臺,以供嵌入式應用工程使用。
構建應用
要更深入地了解應用過程,請參閱 Vitis Unified 嵌入式 IDE 入門:
https://github.com/Xilinx/Vitis-Tutorials/tree/2024.1/Embedded_Software/Getting_Started
從“Welcome”頁面選擇“Create Application Component”,或者選擇“File/New Component/Application”。
選擇“Name”,將“Location”設置為工作空間路徑,單擊“Next”。
選擇剛剛構建的平臺,單擊“Next” 。
“Domain”將會自動生成 - 對于本示例,應該會列出 standalone 和 psu_cortexa53_0。
復查匯總信息,然后單擊“Finish”。
現在,以下三個 Vitis 組件全都會出現在當前工作空間內 - HLS 組件、平臺組件和嵌入式應用組件:
將這篇博客隨附的源代碼添加到應用工程中:
展開應用的 component/Sources/src。
右鍵單擊“src”文件夾,然后選擇“Import > Files”。
在應用代碼中,可通過調用 HLS 自動生成的驅動程序函數 xexamples.h 來控制 HLS IP。這些驅動程序來自 XSA,在創建平臺工程時生成。
? ? ?
構建應用工程。
構建完成后,您即可編輯調試/運行配置選項,以連接到評估板,并在硬件上運行設計。
在 ZCU104 評估板上,已通過選擇“Run As”選項中的“Launch Hardware”來對該工程進行了測試和驗證。當連接到該評估板時,您還可以運行調試器并單步執行代碼。您可使用終端連接到 UART (com0),以查看硬件上的輸出。
-
amd
+關注
關注
25文章
5574瀏覽量
136034 -
嵌入式
+關注
關注
5143文章
19574瀏覽量
315710 -
Vivado
+關注
關注
19文章
834瀏覽量
68366 -
HLS
+關注
關注
1文章
132瀏覽量
24706 -
Vitis
+關注
關注
0文章
149瀏覽量
7870
原文標題:開發者分享|AMD Vitis? HLS 系列 2:AMD Vivado? IP 流程(Vitis Unified)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Vitis2023.2使用之—— classic Vitis IDE
Vitis2023.2使用之—— updata to Vitis Unified IDE
FPGA高層次綜合HLS之Vitis HLS知識庫簡析
使用Vitis HLS創建屬于自己的IP相關資料分享
Vitis HLS工具簡介及設計流程
Vitis HLS知識庫總結
研討會:利用編譯器指令提升AMD Vitis? HLS 設計性能

評論