到目前為止,本文關(guān)于 AMD VersalAIE 驗證和 AMD Vitis新的驗證功能的研究,所有內(nèi)容都基于仿真完成。
例如我們已經(jīng)研究了如何使用 MATLAB 或 Python 進(jìn)行 Vitis 功能仿真,研究了如何使用 XSIM 模擬 AIE 設(shè)計。
在這個項目中,我們將研究如何使用 AMD Vitis 硬件在環(huán)(HIL)功能在實際硬件上運行 Vitis 子系統(tǒng)設(shè)計。
AMD Vitis 硬件在環(huán)概述
要使用 Vitis HIL 功能,首先必須將 Vitis 設(shè)計封裝為 Vitis 子系統(tǒng) (VSS)。在通過 Vitis 功能仿真以及 AMD Vivado 中的 XSim 仿真 確認(rèn) VSS 的功能符合預(yù)期之后,我們就可以進(jìn)入硬件測試階段。通過對硬件進(jìn)行測試,可以在將該子系統(tǒng)集成到更大規(guī)模設(shè)計之前,驗證 VSS 是否能在硬件上按預(yù)期運行。
從 VSS 開始,HIL 流程會基于 VSS 創(chuàng)建一個支持 HIL 的設(shè)計。設(shè)計完成后,將創(chuàng)建 HIL 服務(wù)器,并將其與設(shè)計一起打包到 SD 卡上。目標(biāo)板卡通電并通過 SD 卡啟動后,主機(jī)系統(tǒng)即可通過以太網(wǎng)與目標(biāo)板卡進(jìn)行交互。主機(jī)系統(tǒng)可以使用 Python 或 Matlab 通過以太網(wǎng)與設(shè)計進(jìn)行通信。開發(fā)人員能夠向目標(biāo)板卡發(fā)送測試向量,在硬件上執(zhí)行計算,并通過以太網(wǎng)將結(jié)果返回主機(jī),從而夠驗證硬件上的行為。
目前,VCK190 評估套件支持此功能,設(shè)計可以包含 AI 引擎、HLS 或 HDL 模塊或它們的任意組合,只需它們位于 Vitis 子系統(tǒng)內(nèi)即可。
創(chuàng)建 VSS
在 AMD Vitis 中,通過使用 v++ 鏈接器將可重用的 PL 內(nèi)核和/或 AI 引擎圖打包成一個與平臺無關(guān)的組件而創(chuàng)建的 VSS(Vitis 子系統(tǒng))。該流程首先將 PL 內(nèi)核編譯成 .xo 文件(來自 HLS 或 RTL),并在需要時將 AI 引擎圖構(gòu)建成 libadf。
隨后,這些組件在 VSS 配置文件中進(jìn)行描述,該文件定義了內(nèi)核實例、子系統(tǒng)元數(shù)據(jù)以及各組件之間的互連。

VSIS 的生成方式是:針對特定目標(biāo)器件型號,以 VSS 模式運行鏈接器,生成一個 .vss 歸檔文件。只要使用相同的器件,該文件就可以被重復(fù)使用、仿真或以層次化方式集成到更高級別的 Vitis 設(shè)計中。
例如,可以通過使用配置文件創(chuàng)建一個僅包含 PL 的 VSS,該文件實例化一個內(nèi)核并定義子系統(tǒng)。然后,可以使用以下命令進(jìn)行構(gòu)建,這將生成一個可重用的 `my_vss.vss` 子系統(tǒng),可以將其導(dǎo)入到另一個 Vitis 項目中。
v++ --link --mode vss --part xcvc1902-vsva2197-2MP-e-S --config vss.cfg my_kernel.xo
創(chuàng)建 Vitis 子系統(tǒng)的另一種方法是使用 Vitis Model Composer 提供的導(dǎo)出為 VSS(Export to VSS) 功能。
在本項目中,我們將使用 AMD 提供的 VSS,它是 Vitis HIL 演示的一部分。這些 VSS 已以壓縮包形式附在項目中供使用。
準(zhǔn)備工作
首先,我們需要確保開發(fā)機(jī)器上已安裝 Vitis 2025.2。如果尚未安裝,您可以從這里下載:
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis.htlm

安裝完 Vitis 之后,接下來我們需要準(zhǔn)備 SDK 和 RootFS,我們也可以從 AMD 網(wǎng)站下載獲取。

下載完成后,第一步是創(chuàng)建 SDK??梢酝ㄟ^解壓 Versal 通用鏡像并運行腳本 sdk.sh 來完成。

為了能夠運行構(gòu)建,我們需要設(shè)置幾個變量,第一個 SDK_LOCAL 指向剛剛創(chuàng)建的 SDK 的目錄。

第二個 SYSROOT_VERSAL 指向內(nèi)核鏡像的位置,RootFS 也是作為通用鏡像下載的一部分提供的。

現(xiàn)在我們準(zhǔn)備創(chuàng)建目標(biāo) VSS 的 SD 卡鏡像。為此,我們將以通道化器示例為例。
創(chuàng)建 HIL 服務(wù)器 SD 卡鏡像
這將是一個命令行構(gòu)建過程,因此我們首先需要從上面使用的終端啟動 Vitis 2025.2 環(huán)境。

完成后,我們將運行該命令。


啟動構(gòu)建流程:

構(gòu)建過程啟動后,你會看到創(chuàng)建了一個名為 HIL_DUT 的文件夾,它是構(gòu)建的工作目錄。

不久之后,構(gòu)建過程即可完成。

在構(gòu)建的工作目錄下,您可以看到輸出的 SD 卡信息和 SD 卡鏡像。

SD 卡鏡像和主機(jī)應(yīng)用程序代碼引用的 hil_interface_spec.json 文件通過唯一的哈希碼關(guān)聯(lián),從而確保使用正確的文件對,防止與之前的版本混淆。
SD 卡的內(nèi)容:

下一步是將此內(nèi)容復(fù)制到 SD 卡中,將其插入 VK190 并啟動開發(fā)板。
硬件在環(huán) (HIL)
使用 HIL,第一步是將 SD 卡插入 VCK190 并啟動開發(fā)板。

通過串口,使用用戶名 petalinux 登錄到 VCK190 上運行的嵌入式Linux。

如果開發(fā)板已連接到網(wǎng)絡(luò),則 DHCP 服務(wù)器應(yīng)已為其分配 IP 地址,因此可以跳過此步驟。
但如果開發(fā)板的以太網(wǎng)線連接到 PC,則需要執(zhí)行一些步驟才能使開發(fā)板可訪問網(wǎng)絡(luò)。


在信道化器示例中,Python 文件夾下有兩個 Python 文件。打開 Hosts 文件并編輯 VCK190 的 IP 地址。

在 VCK190 上,運行以下命令:


要啟動服務(wù)器,請運行以下命令:


這將啟動硬件在環(huán)服務(wù)器,等待客戶端連接到主機(jī)。
在主機(jī)上運行 hil_host.py 文件,這將啟動 HIL 示例。您將看到 HIL 按預(yù)期處理數(shù)據(jù)。

在 VCK190 目標(biāo)上,您將看到客戶端連接,并且應(yīng)用程序開始在客戶端的控制下運行。

腳本詳解
本應(yīng)用使用了兩個腳本,讓我們來分析它們的關(guān)鍵要素。 wb_src 文件提供了激勵引擎,真正實現(xiàn)了硬件在環(huán) (HIL) 設(shè)置。該模塊生成一個可重復(fù)且完全可控的寬帶復(fù)雜波形,其外觀和行為都與真實信號環(huán)境非常相似。它允許啟用或禁用多達(dá) 16 個獨立的子通道,選擇性地應(yīng)用升余弦脈沖整形的 QAM 調(diào)制,甚至可以注入恒定(類似直流)通道以進(jìn)行快速的基本功能檢查。對于 HIL 至關(guān)重要的是,F(xiàn)IR 濾波器的狀態(tài)在調(diào)用之間得以保留,因此信號在各個處理模塊之間保持連續(xù)——這與硬件在實際數(shù)據(jù)流系統(tǒng)中看到的情況完全一致。






HIL_HOST.py 控制著硬件測試,它將設(shè)計作為可調(diào)用的硬件加速器部署在網(wǎng)絡(luò)上。在 Python 主機(jī)上,我們使用接口規(guī)范 JSON 實例化 HIL 客戶端,并將其指向開發(fā)板的 IP 地址和端口。
在主處理循環(huán)中,HIL 流程與流式系統(tǒng)非常相似,使用 wb_src 生成復(fù)數(shù)樣本,并將其量化為定點 varray,然后通過 hil_chnlzr.run() 將其傳遞給 FPGA。
一個重要的實際問題是,硬件返回的數(shù)據(jù)量并非總是均勻分布在所有輸出或不同調(diào)用之間。為了解決這個問題,我們在主機(jī)上顯式地將每個輸出流緩沖到 FIFO 中,并且僅在所有通道都有數(shù)據(jù)可用時才釋放幀。












總結(jié)
本項目完成了三部曲的演示,展示了如何使用硬件在環(huán)驗證通用的 AIE、HLS 和 RTL 內(nèi)核子系統(tǒng)。這是驗證的最后一個環(huán)節(jié),驗證過程從功能仿真開始,逐步過渡到在 Vivado 中進(jìn)行 RTL 仿真(使用更廣泛的設(shè)計),最終完成硬件在環(huán)驗證。
-
amd
+關(guān)注
關(guān)注
25文章
5708瀏覽量
140448 -
matlab
+關(guān)注
關(guān)注
189文章
3029瀏覽量
239254 -
仿真
+關(guān)注
關(guān)注
55文章
4539瀏覽量
138694 -
Vitis
+關(guān)注
關(guān)注
0文章
158瀏覽量
8433
原文標(biāo)題:AMD Vitis? 硬件在環(huán) - 如何使用 Vitis 在硬件在環(huán)(HIL)上運行 Vitis 子系統(tǒng)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用AMD Vitis Unified IDE創(chuàng)建HLS組件
如何在AMD Vitis Unified IDE中使用系統(tǒng)設(shè)備樹
閑談Vitis AI|DPU在UltraScale平臺下的軟硬件流程(1)
使用AMD Vitis進(jìn)行嵌入式設(shè)計開發(fā)用戶指南
Vitis2023.2使用之—— classic Vitis IDE
Vitis2023.2使用之—— updata to Vitis Unified IDE
使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享
AMD全新Vitis HLS資源現(xiàn)已推出
Vitis Unified IDE 和通用命令行參考手冊
Vitis 統(tǒng)一軟件平臺文檔
AMD Vitis? Embedded嵌入式軟件開發(fā)套件的功能和特性概述
在Windows 10上創(chuàng)建并運行AMD Vitis?視覺庫示例
AMD Vitis?設(shè)計工具中的Libraries新功能介紹
如何使用AMD Vitis硬件在環(huán)功能運行Vitis子系統(tǒng)設(shè)計
評論