系统封装 - 2022.1 简体中文

Versal ACAP AI 引擎编程环境 用户指南 (UG1076)

Document ID
UG1076
Release Date
2022-05-25
Version
2022.1 简体中文

对于硬件和硬件仿真,v++ --package 命令会取 XSA 文件和 libadf.a 作为输入、生成脚本以启动硬件仿真 (launch_hw_emu.sh),并写入所需的支持文件。命令行示例如下所示:

v++ --package --config package.cfg ./aie_graph/libadf.a \
./project.xsa -o aie_graph.xclbin

其中,--config package.cfg 选项可指定含下列选项的配置文件:

platform=xilinx_vck190_base_202210_1
target=hw_emu
save-temps=1

[package]
boot_mode=sd
out_dir=./emulation
enable_aie_debug=1
rootfs=<path_to_platform>/sw/versal/xilinx-versal-common-v2022.1/rootfs.ext4
image_format=ext4
kernel_image=<path_to_platform>/sw/versal/xilinx-versal-common-v2022.1/Image
sd_file=host.exe

下表对硬件和硬件仿真的选项进行了解释。

表 1. 硬件和硬件仿真选项
命令行标志 硬件 硬件仿真 详细信息
platform 目标平台 目标平台 满足 AI 引擎流程要求的基础平台或定制平台。
target hw hw_emu 指定硬件仿真构建目标。指定 hw_emu 作为目标会导致生成多个文件,包括用于启动器件的 PDI 和仿真所需的文件。指定 hw 仅生成配置和启动硬件所需的 PDI 文件。
save-temps     使 Vitis 编译器保存在构建和封装进程中所创建的中间文件。
封装选项
boot_mode 1 sd sd 指示器件是从 SD 卡启动还是从闪存中的 QSPI 镜像启动。可能的值包括:sdqspi
out-dir <path> <path> 指定将用于创建输出文件的目录。如不指定 out-dir,则这些文件会写入当前工作目录。
kernel_image <path>/Image <path>/Image 指定在链接命令中所指定的镜像文件。对于两种目标,此处的文件应相同。
rootfs <path>/rootfs.cpio <path>/rootfs.cpio 指定到 Root FS(根文件系统)文件的路径,此路径必须包含在链接命令中。对于两种目标,此文件应相同。
enable_aie_debug     AI 引擎内核生成调试功能特性。可在硬件构建和仿真构建中使用。
defer_aie_run     AI 引擎将由 PS 应用启用。如不设置,则改为在 PDI 加载期间,生成 CDO 命令以启用 AI 引擎。仅当 libadf.a 是输入文件且平台为 Versal 平台时才有效。
ps_elf <file>,core <file>,core 仅适用于裸机设计。自动对要运行的 PS 核进行编程。例如,host.elfa72-0
domain aiengine aiengine 指定要运行的域。对于 AI 引擎设计,此项应始终设为 aiengine
sd_file <file> <file> 复制将在裸机的 Cortex-A72 处理器上运行的主应用的 ELF,以及在 Linux 上运行所需的任何文件。XCLBIN 文件会被自动复制到 out-dirsd_card 文件夹内。要将更多文件复制到 sd_card 文件夹,必须多次指定该选项。
  1. xilinx_vck190_v202210_1 平台不支持 qspi 选项。配置为支持该选项的定制平台则有效。

下表显示了为硬件和硬件仿真执行构建时生成的 -out-dir 所定义的输出。

表 2. 输出表
构建 输出
硬件
|-- BOOT.BIN
|-- boot_image.bif
|-- sd_card
|   |-- BOOT.BIN
|   |-- boot.scr
|   |-- aie_graph.xclbin
|   |-- host.exe
|   |-- Image
|-- sd_card.img
硬件仿真
|-- BOOT_bh.bin	//Boot header
|-- BOOT.BIN			 //Boot File
|-- boot_image.bif
|-- launch_hw_emu.sh	   //Hardware emulation launch script
|-- libadf                  //AIE emulation data folder
|   `-- cfg
|       |-- aie.control.config.json
|       |-- aie.partial.aiecompile_summary
|       |-- aie.shim.solution.aiesol
|       |-- aie.sim.config.txt
|       `-- aie.xpe
|-- plm.bin                 //PLM boot file
|-- pmc_args.txt            //PMC command argument specification file
|-- pmc_cdo.bin             //PMC boot file
|-- qemu_args.txt           //QEMU command argument specification file
|-- sd_card
|   |-- BOOT.BIN
|   |-- boot.scr
|   |-- aie_graph.xclbin
|   |-- host.exe
|   |-- Image
|-- sd_card.img
`-- sim                      //Vivado simulation folder

对于硬件仿真,关键输出文件是用于启动仿真的 launch_hw_emu.sh 脚本。sd_card.img 镜像包含 BOOT.BIN(用于启动 Linux 的 U-Boot、PDI 启动数据等)、镜像(内核镜像)、XCLBIN 文件、用户应用 (host.exe) 和其它文件。例如,所有生成的文件都置于名为 emulation 的文件夹内。

要在 Linux 主机上使用 sd_card.img 文件,请使用 dd 命令将此镜像写入 SD 卡。如果以 Linux 为目标但搭配 package.image_format=fat32 使用,则请将 sd_card 文件夹复制到专为 FAT32 格式化的 SD 卡上。硬件仿真无需此操作。

提示: PS 主机应用包含在 sd_card 输出内,但它不会被整合到 rootfs 中。如果要将可执行镜像包含在 rootfs 中,则必须先重新构建 rootfs,然后运行 v++ --package 命令。

如果设计需编程到本地闪存,请确保使用 --package.boot_mode qspi。这样即可支持使用 program_flash 命令或使用 Vitis IDE 对器件或闪存进行编程,如 使用 Vitis IDE 中所述。