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





