這是《創(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 來重構(gòu) Vivado 工程。隨后,它將追加經(jīng)過更新的硬件,并重新創(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)名稱。
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)名稱傳遞到 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)名稱傳遞到 XRT。此處名稱應(yīng)與 Vivado 中提供的平臺(tái)名稱匹配:
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
此外還需要通過 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 中所提供的名稱:
選擇“根據(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文章
8677瀏覽量
145475 -
Vitis
+關(guān)注
關(guān)注
0文章
150瀏覽量
7942
原文標(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)先 登錄
如何在Unified IDE中創(chuàng)建視覺庫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)勢
使用AMD Vitis進(jìn)行嵌入式設(shè)計(jì)開發(fā)用戶指南

全新AMD Vitis統(tǒng)一軟件平臺(tái)2024.2版本發(fā)布
AMD Vitis Unified Software Platform 2024.2發(fā)布
U50的AMD Vivado Design Tool flow設(shè)置

GPU加速計(jì)算平臺(tái)是什么
多封裝的運(yùn)放芯片,沒有使用的運(yùn)放管腳都怎么處理呢?
如何在采用 SOT563 封裝的 TPS56x242-7 上實(shí)現(xiàn)更良好的熱性能

如何在兩種類型的SOT663封裝之間進(jìn)行協(xié)同布局

如何在SOT-563封裝和SOT-236封裝之間實(shí)現(xiàn)共同布局

評(píng)論