KRS Unleashed: 4——Vitis工作區(qū)
這個項(xiàng)目是KRS Unleashed系列的一部分,KRS是原始KRS的修訂版。本文將介紹Vitis工作空間。
本文將介紹新開發(fā)的自動化Vitis工作區(qū)流。原始的KRS流自動將內(nèi)核生成到配置在ROS 2包的CMakeLists.txt中的xclbin中,但目前未使用。雖然原始流程允許在ROS 2中直接生成內(nèi)核,但在開發(fā)新內(nèi)核時,該流程很難使用。由于v++的大部分輸出都隱藏在CMake命令之后,開發(fā)人員幾乎得不到任何反饋。此外,測試和調(diào)整配置不是微不足道的,需要在CMake中顯式配置。由于直接調(diào)用了v++編譯器,因此之后不存在以更圖形化的方式檢查結(jié)果的項(xiàng)目,這需要進(jìn)一步的專業(yè)知識。
Vitis統(tǒng)一軟件平臺流程
開發(fā)HLS內(nèi)核的常用方法是使用AMD/Xilinx提供的Vitis統(tǒng)一軟件平臺IDE。在這里,首先創(chuàng)建一個捕獲Vivado基礎(chǔ)平臺的平臺組件,包括CPU架構(gòu),系統(tǒng)根等等。
接下來,為每個內(nèi)核創(chuàng)建HLS和應(yīng)用程序(主機(jī)代碼)組件,并配置正確的依賴項(xiàng)、鏈接器標(biāo)志等。綜合設(shè)計和探索權(quán)衡。
在最后一步中,將所有內(nèi)核與系統(tǒng)組件中的平臺放在一起,以生成最終的xclbin。遺憾的是,自動閃爍和調(diào)試功能不適用于Kria板,因此流需要在成功生成比特流后停止。在創(chuàng)建組件之后,開發(fā)人員仍然可以調(diào)整其文件和配置,或者返回到其他組件,從而允許探索系統(tǒng),而不必總是從頭開始重新構(gòu)建所有內(nèi)容。
The Vitis Flow Conceptually
新的Vitis Workspace Flow通過新的Python API以半自動化的方式實(shí)現(xiàn)了這個流程。一個簡化的配置文件用于創(chuàng)建所有這些組件并對它們進(jìn)行預(yù)配置。通過遵循特定的命名約定,流程不僅允許自動生成xclbin文件并在導(dǎo)出文件夾中檢索它以供在電路板上使用,而且還允許進(jìn)一步創(chuàng)建整個開發(fā)工作空間以改進(jìn)/開發(fā)系統(tǒng)。
當(dāng)啟動一個新程序時,添加了一個干燥模式,它只配置所有組件,但不觸發(fā)構(gòu)建。該流程還允許重新觸發(fā)各個階段,即清理工作空間、創(chuàng)建帶有平臺組件的工作空間(ws)、添加包含應(yīng)用程序代碼的HLS組件、組裝最終系統(tǒng)并導(dǎo)出它。該流目前不支持自動獲取Vitis內(nèi)部執(zhí)行的更新,因此用戶需要確保事先將源文件/調(diào)整后的配置復(fù)制到KRS/ Vitis文件夾中。
在新創(chuàng)建的exports/文件夾下是各自的文件,最后將它們復(fù)制到電路板上。
使用Vitis Flow
流是通過腳本調(diào)用的:
首先,通過采購葡萄和潛在必要的依賴關(guān)系來準(zhǔn)備環(huán)境:
OpenCV源代碼對于Vitis Vision庫宿主代碼是必要的——如果你不打算使用它們,你可以跳過這一部分。
確保你配置了。Yaml是正確的,并定義了預(yù)期的行為:
每個內(nèi)核需要一個名稱和一個頂級函數(shù),vitis庫和opencv依賴項(xiàng)是可選的
你可以通過一個單獨(dú)的腳本檢查設(shè)置是否正確:
有必要在單獨(dú)的腳本中完成此操作,因?yàn)閂itis的Python API不是一個可以安裝的簡單模塊,而是帶有自己的Python解釋器,因此無法輕松安裝依賴項(xiàng)。
之后,只需通過以下方式調(diào)用腳本:
如果您看到以下輸出,則說明一切都很成功,并且您應(yīng)該看到一個導(dǎo)出文件夾,其中包含準(zhǔn)備在電路板上進(jìn)行設(shè)置的最終工件。
本文編譯自hackster.io





