对于硬件和硬件仿真,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
下表对硬件和硬件仿真的选项进行了解释。
命令行标志 | 硬件 | 硬件仿真 | 详细信息 |
---|---|---|---|
platform
|
目标平台 | 目标平台 | 满足 AI 引擎流程要求的基础平台或定制平台。 |
target
|
hw
|
hw_emu
|
指定硬件仿真构建目标。指定 hw_emu 作为目标会导致生成多个文件,包括用于启动器件的 PDI 和仿真所需的文件。指定 hw 仅生成配置和启动硬件所需的 PDI 文件。 |
save-temps
|
使 Vitis 编译器保存在构建和封装进程中所创建的中间文件。 | ||
封装选项 | |||
boot_mode 1 | sd | sd | 指示器件是从 SD 卡启动还是从闪存中的 QSPI 镜像启动。可能的值包括:sd 或 qspi 。 |
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.elf 或 a72-0
|
domain
|
aiengine
|
aiengine
|
指定要运行的域。对于 AI 引擎设计,此项应始终设为 aiengine 。 |
sd_file
|
<file>
|
<file>
|
复制将在裸机的 Cortex-A72 处理器上运行的主应用的 ELF,以及在 Linux 上运行所需的任何文件。XCLBIN 文件会被自动复制到 out-dir 或 sd_card 文件夹内。要将更多文件复制到 sd_card 文件夹,必须多次指定该选项。 |
|
下表显示了为硬件和硬件仿真执行构建时生成的 -out-dir
所定义的输出。
构建 | 输出 |
---|---|
硬件 |
|
硬件仿真 |
|
对于硬件仿真,关键输出文件是用于启动仿真的 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 中所述。