這是《創(chuàng)建 Vitis 加速平臺(tái)》系列的第 3 篇博文。在前文中,我們講解了如何創(chuàng)建硬件和軟件工程。在本文中,我們將講解如何在 Vitis 中將所有這些工程封裝在一起。
在 Vitis 中加速軟件功能(創(chuàng)建內(nèi)核)即表示創(chuàng)建硬件 IP 核,并使用由此產(chǎn)生的基礎(chǔ)架構(gòu)將此功能連接到現(xiàn)有平臺(tái)。
為此,Vitis 需要重構(gòu)平臺(tái)。Vitis 使用 XSA 來(lái)重構(gòu) Vivado 工程。隨后,它將追加經(jīng)過(guò)更新的硬件,并重新創(chuàng)建 Vivado 工程。
其它所有一切都保持不變,當(dāng)然比特流和生成的內(nèi)核應(yīng)用除外。因此,啟動(dòng)鏡像不能保持不變。而是由我們提供 BIF 文件,并在其中包含鏡像占位符用于在 Vitis 中創(chuàng)建這些鏡像。
此外,為了能夠執(zhí)行內(nèi)核,我們需要為目標(biāo)硬件執(zhí)行交叉編譯。此處使用的是 PetaLinux 中創(chuàng)建的 sysroot。
準(zhǔn)備鏡像
為了便于使用,我在此對(duì)平臺(tái)文件進(jìn)行了組織,但這并非必要步驟。重要的是,請(qǐng)牢記創(chuàng)建 BIF 文件時(shí)的啟動(dòng)鏡像位置,因?yàn)槲覀兪褂玫氖钦嘉环?/p>
mkdir -p sw_comp/src/a53/xrt/image mkdir sw_comp/src/boot
將 image.ub、boot.scr 和 rootfs.cpio.gz 從 PetaLinux image/linux 文件夾復(fù)制到 sw_comp/src/a53/xrt/image
將 bl31.elf、uboot.elf、zynqmp_fsbl(已重命名為 fsbl.elf)和 pmufw.elf 從 PetaLinux image/linux 文件夾復(fù)制到 sw_comp/src/boot
創(chuàng)建 BIF
BIF 文件在 bootgen 中用于創(chuàng)建 SD 啟動(dòng)鏡像。
其中包括 BOOT.BIN 文件中所有分區(qū)的位置。以下提供了一個(gè)模板。
此處請(qǐng)務(wù)必注意,我們只提供占位符文件名,而不提供實(shí)際文件名。工具將添加指向這些文件的路徑。因此,我建議將所有這些文件保存在相同啟動(dòng)文件夾內(nèi)。zcu104_base 將用作為平臺(tái)名稱(chēng)。
the_ROM_image: { [fsbl_config] a53_x64 [bootloader]
將 linux.bif 復(fù)制到 sw_comp/src/boot
創(chuàng)建 init.sh 腳本
啟動(dòng)時(shí)將運(yùn)行此腳本以進(jìn)行 XRT 設(shè)置,并將平臺(tái)名稱(chēng)傳遞到 ZOCL。
將 init.sh 復(fù)制到 sw_comp/src/a53/xrt/image
cp ./platform_desc.txt /etc/xocl.txt export XILINX_XRT=/usr
將 init.sh 復(fù)制到
sw_comp/src/a53/xrt/image
創(chuàng)建 platform_desc.txt
這樣即可將平臺(tái)名稱(chēng)傳遞到 XRT。此處名稱(chēng)應(yīng)與 Vivado 中提供的平臺(tái)名稱(chēng)匹配:
zcu104_base
將 platform_desc.txt 復(fù)制到
sw_comp/src/a53/xrt/image
創(chuàng)建 QEMU 文件
Vitis IDE 支持軟件仿真和硬件仿真。QEMU 即可用于執(zhí)行此操作。但我們需要傳遞 QEMU 機(jī)器詳細(xì)信息。
針對(duì) PMU,需使用 pmu_args.txt 執(zhí)行此操作
-M microblaze-fdt -device loader,file=
將 pmu_args.txt 復(fù)制到 sw_comp/src/boot
此外還需要通過(guò) qemu_args.txt 傳遞 PSU 機(jī)器詳細(xì)信息:
-M arm-generic-fdt -serial mon:stdio -global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true -net nic -net nic -net nic -net nic -net user -m 4G -device loader,file=
將 qemu_args.txt 復(fù)制到
sw_comp/src/boot
在 Vitis 中封裝平臺(tái)
啟動(dòng) Vitis 并選擇“創(chuàng)建平臺(tái)工程 (Create Platform Project)”:

使用 BIF 中所提供的名稱(chēng):

選擇“根據(jù)硬件規(guī)范 (XSA) 創(chuàng)建 (Create from hardware specification (XSA))”:

針對(duì)操作系統(tǒng)選擇 Linux,然后取消勾選“生成啟動(dòng)組件 (generate boot components)”,因?yàn)樵?PetaLinux 中已創(chuàng)建這些組件:

注:此處警告信息僅用于聲明需添加 sysroot。
填入上一篇博文中創(chuàng)建的軟件鏡像:

然后執(zhí)行構(gòu)建:
完成此操作后,平臺(tái)將置于 exportzcu104_base.... 至此大功告成。
原文標(biāo)題:創(chuàng)建 Vitis 加速平臺(tái)第 3 部分:在 Vitis 中封裝加速平臺(tái)
文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
封裝
+關(guān)注
關(guān)注
128文章
9023瀏覽量
147478 -
Vitis
+關(guān)注
關(guān)注
0文章
152瀏覽量
8226
原文標(biāo)題:創(chuàng)建 Vitis 加速平臺(tái)第 3 部分:在 Vitis 中封裝加速平臺(tái)
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何在應(yīng)用程序調(diào)試期間分析棧和堆使用情況
集成電路制造中封裝失效的機(jī)理和分類(lèi)
如何在AMD Vitis Unified 2024.2中連接到QEMU
如何在Unified IDE中創(chuàng)建視覺(jué)庫(kù)HLS組件
全新AMD Vitis統(tǒng)一軟件平臺(tái)2025.1版本發(fā)布
使用AMD Vitis Unified IDE創(chuàng)建HLS組件
如何使用AMD Vitis HLS創(chuàng)建HLS IP
如何在基于Arm Neoverse平臺(tái)的CPU上構(gòu)建分布式Kubernetes集群
GPU加速計(jì)算平臺(tái)的優(yōu)勢(shì)
國(guó)家超算平臺(tái)推出AI生態(tài)加速計(jì)劃
NVIDIA發(fā)布Cosmos平臺(tái),加速物理AI開(kāi)發(fā)
使用AMD Vitis進(jìn)行嵌入式設(shè)計(jì)開(kāi)發(fā)用戶(hù)指南
全新AMD Vitis統(tǒng)一軟件平臺(tái)2024.2版本發(fā)布
AMD Vitis Unified Software Platform 2024.2發(fā)布
U50的AMD Vivado Design Tool flow設(shè)置

如何在Vitis中封裝加速平臺(tái)?
評(píng)論