launch_emulator 实用工具 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

对于具有 Arm® 子系统的嵌入式平台,AMD Vitis™ 工具使用 QEMU 来对 PS 子系统进行仿真。QEMU 进程必须随 RTL 仿真器 (simulator) 进程一起运行,才能对硬件仿真中的整个系统进行仿真。launch_emulator.py 实用工具用于启动 QEMU 并管理 PL 仿真器进程的同步。它会以所提供的实参来启动 QEMU 和仿真进程。Vitis IDE 在启动和停止仿真器 (emulator) 时也会调用此命令。

提示: 如需获取 QEMU 内的帮助信息,请在仿真器 (emulator) shell 内按Ctrl + a h。要终止 QEMU 命令,请在仿真器 (emulator) shell 内按Ctrl + a x

对于嵌入式平台,--package 选项 命令可生成 launch_hw_emu.shlaunch_sw_emu.sh 脚本以根据平台和目标应用通过所需实参来调用 launch_emulator.py 命令。

使用 launch_hw_emu.shlaunch_sw_emu.sh 封装文件脚本时,您可通过命令行向 launch_emulator 实用工具传递其他实参。只需在运行脚本时向命令行追加相应选项即可。这样您即可按需自定义 launch_emulator 实用工具以支持自己的特定平台或应用。

下表显示了可用选项列表。

表 1. launch_emulator 的常用选项
选项 接受的值 描述
-add-env ADD_ENV_CMD 不适用 为仿真 shell 指定其他环境变量。
-aie-sim-options AIE_SIM_OPTIONS 文件 指向 AI 引擎仿真选项文件,其中包含 AI 引擎 SystemC 模块调试所需的各种 AI 引擎调试标志。如需了解更多信息,请参阅 AI 引擎工具和流程用户指南(UG1076) 的“复用 AI 引擎仿真器选项”章节。

指定的选项文件应包含与 package.hw_emu/sim/behav_waveform/xsim/ 相关的相对路径。

提示: 该选项为可选,仅适用于 AI 引擎设计。
您可启用先前在 aiesimulator 中使用的剖析选项,以便将这些选项应用于系统级别设计的硬件仿真。要执行此操作,请添加下列命令:
-aie-sim-options ../aiesimulator_output/aiesim_options.txt
-enable-debug 不适用 调试模式,为 QEMU 和 PL 打开 2 个不同 XTERM。
重要: 该选项对于批处理模式用户了解 QEMU 与 PL 进程之间的流程和握手很有用。
-graphic-qemu 不适用 以 GUI 模式启动 Quick Emulator (QEMU)
-help 不适用 打印帮助消息。
-kernel-dbg truefalse 在 SW_EMU 中启用调试。该选项仅用于软件仿真。
-pl-kernel-debug truefalse 为 PL 内核启用调试。
-run-app <application_script_name> 确保在封装步骤中,使用 --package.sd_file 选项来封装应用脚本。仅当应用脚本已封装在 sd_card 中之后,在 QEMU 装载、启动并正常运行后,才能运行此应用脚本。
提示: 使用 -run-app 选项时,根据您的仿真目标,所有 QEMU 消息初始都写入 package.hw_emupackage.sw_emu 文件夹内名为 qemu_output.log 的文件,稍有延迟后再重新写入控制台。此延迟可能导致您认为 QEMU 存在问题,但您可按需检验 qemu_output.log 的内容。
-timeout <n> <n> 秒后终止仿真 (emulation)。使用 -run-app 时,默认值为 4000 秒。这意味着应用在运行 4000 秒后即终止,无需用户干预。
-user-post-sim-script 该选项表示仿真后,在退出前需执行的 Tcl 脚本的路径 为转发到 Tcl 文件中的任意操作创建 Tcl 并将 Tcl 脚本传递到此开关。
-user-pre-sim-script Tcl 脚本路径 对于首次运行,在 GUI 模式下执行 launch_emulator.py,并添加要观测的信号。

将命令从 Tcl 控制台复制并保存到 Tcl 脚本中。

从下一次运行开始,以批处理模式传递此 Tcl 脚本,launch_emulator.py -user-pre-sim-script <path_to_saved_tcl_script>

仅支持 Vivado 仿真器 (xsim)。

-verbose 不适用 启用额外的调试消息
-wcfg-file-path 不适用 指定 XSIM 创建的 wcfg 文件,指定的文件将在 GUI 仿真期间打开。需指定该文件的完整绝对路径。
-wdb-File WDB 文件路径

用于指定要加载的 wdb 文件。需指定该文件的完整绝对路径。

-x86-sim-options 不适用 指向 x86 仿真选项文件,其中包含调试 AI 引擎模型所需的各种 AI 引擎调试标志。仅用于软件仿真。
-xtlm-aximm-log 不适用 此开关可生成 xTLM AXI4 传输事务 log 日志用于 2 个 SystemC 模型之间的接口连接(包含诸如地址、数据、大小等信息)。

运行此开关时,可从以下位置获取仿真 (emulation) log 日志(目录结构因使用的 v++ 选项和仿真器 (simulator) 而异):

package.hw_emu/sim/behav_waveform/xsim/xsc_report.log

-xtlm-axis-log 不适用 此开关可生成 xTLM AXI4‑Stream 传输事务 log 日志,用于 2 个 SystemC 模型之间的接口连接。

运行此开关时,可从以下位置获取仿真 (emulation) log 日志(目录结构因使用 v++ 选项和仿真器 (simulator) 而异):

package.hw_emu/sim/behav_waveform/xsim/xsc_report.log

表 2. launch_emulator 的高级选项
选项 接受的值 描述
-disable-host-completion-check 不适用 跳过主机/测试完成检查。通常在使用 python 脚本来检查测试完成状态 (PASS/FAIL) 的应用中使用该选项。

默认情况下,使用 -run-app 开关时搜索“TEST PASSED”。

-enable-tcp-sockets 不适用 启用 TCP 插槽
-kill <pid> 结束指定的仿真器 (emulator) 进程。
-kill-pid-file 不适用 指定要用于终止进程的文件。该文件用于存储进程的组 PID。可使用 -pid-file 来创建。
-no-reboot 不适用 退出 QEMU,而不是重启。用于通过在嵌入式 Linux 提示符处执行 reboot -f 命令来正常退出 QEMU。
-no_build 不适用 支持在不运行构建进程的情况下即可对构建命令执行检查。
-no_run 不适用 执行构建,但不运行仿真。
-ospi-image OSPI 镜像文件 指定 OSPI 镜像文件用于启动。
-pl-sim-args 仿真器 (simulator) 的实参 这些实参将被追加到仿真器 (simulator) 命令行中。可替代 pm-sim-args-file
-pmc-args PMC 实参

PMC/PMU 由 qemu-system-microblazeel 进行仿真。在 pmc_args.txt 中可捕获大部分常用的 PMC 命令行切换。

您可直接提供需追加到 PMC 命令行的所有实参,而无需写入名为 pmc_args.txt 的文件。该选项可替代 -pmc-args-file

适用于 QEMU 的 Versal PS 和 PMC 实参适用于 QEMU 的 Zynq UltraScale+ MPSoC PS 和 PMU 实参 中可找到特定器件的 PMC/PMU 实参。

提示: AMD Zynq™ 7000 器件不支持此选项。
-pmc-args-file PMC QEMU 实参文件名 在此文件中可提供要传递给 PMU/PMC 的任意选项。具体格式由所选平台上的库文件来确定。

该选项在 v++ 包生成的脚本中自动传递。

适用于 QEMU 的 Versal PS 和 PMC 实参适用于 QEMU 的 Zynq UltraScale+ MPSoC PS 和 PMU 实参 中可找到特定器件的 PMC/PMU 实参。

提示: Zynq 7000 器件不支持此选项。
-print-qemu-version 不适用 打印当前使用的 QEMU 的版本。
-qemu-args QEMU 实参

PS 由 qemu-system-aarch64 进行仿真。在 qemu_args.txt 中可捕获大部分常用的 PS 命令行切换。

您可直接提供需追加到 QEMU 命令行的所有实参,而无需写入名为 qemu_args.txt 的文件。该选项可替代 qemu-args-file

适用于 QEMU 的 Versal PS 和 PMC 实参 以及后续有关 AMD Zynq™ UltraScale+™ MPSoC 的章节中可找到特定器件的 PS 实参。

-qemu-dtb <path_to_DTB_file>

v++ --package 会基于设计中的寻址来自动创建 DTB 文件,并将此文件传递给 launch_emulator 命令。该选项允许您指定用于覆盖默认设置的 DTB 文件。

注释: 请确保此 DTB 与所使用的 noc_memory_config.txt 文件兼容。
-qspi-high-image 指定 QSPI 高位镜像文件

此镜像文件作为 QEMU 实参(以启动模式的形式)来传递。该选项在 V++ 包生成的脚本中自动传递。

仅当使用 DUAL QSPI 模式时,才需要该选项。

-qspi-image 指定 qspi.bin 此镜像文件作为 QEMU 实参(以启动模式的形式)来传递。该选项在 V++ 包生成的脚本中自动传递。

仅当选择采用 QSPI 模式时,才需要该选项。

-qspi-low-image 指定 QSPI 低位镜像文件 此镜像文件作为 QEMU 实参(以启动模式的形式)来传递。该选项在 V++ 包生成的脚本中自动传递。

仅当使用 DUAL QSPI 模式时,才需要该选项。

-result-string 不适用 Result 字符串用于搜索测试完成的状态。默认值 = TEST PASSED。
-use-qemu-version-v4 不适用 使用 QEMU v4.2
表 3. 在仿真脚本中由 V++ 自动填充
选项 接受的值 描述
-aie-sim-config 不适用 指向 AI 引擎仿真配置文件,此文件可提供 AI 引擎的 SystemC 模型所需的各种 AI 引擎文件。

该选项由 v++ 包自动传递。

对于 AI 引擎设计,该选项是必需的。

-boot-bh BH 文件路径 指定启动 BH 文件路径
-device-family 7Series | UltraScale | Versal 该选项为必需,用于指定平台的器件系列。

该选项由 v++ 包生成的 launch_hw_emu.shlaunch_sw_emu.sh 脚本根据所选目标来自动传递。

要直接使用 launch_emulator 命令,需手动传递该选项。

-enable-prep-target 不适用 启用预处理目标。
-forward-port <目标> <主机> 将 TCP 端口从目标转发到主机。
-gdb-port 端口号 QEMU 会等待 <端口> 上的 GDB 连接。
-noc-memory-config <path/to/noc_memory_config.txt> 不适用 默认情况下,v++ --package 会基于设计配置创建 NoC 存储器配置,您可在看到仿真二进制文件的同时看到此文件。您可通过覆盖仿真二进制文件夹中指定的文件来覆盖此文件。-user-pre-sim-script 选项可用于将您的 noc_memory_config.txt 文件复制到仿真二进制文件区域,并应用配置。
-pid-file 文件名 将进程 ID 写入 <文件>,以便稍后用于 -kill。在仿真成功后,用于结束 Vitis 软件平台。
-pl-sim-dir 仿真 (Simulation) 目录 通过从该目录启动脚本来启动可编程逻辑仿真器 (Programmable Logic Simulator)。该选项在 v++ 包生成的脚本中自动传递。该工具预期在指定目录中存在名为 simulate.sh 的文件,并且将执行该文件以启动 PL 仿真器(例如,XSIM)。
-pl-sim-script 仿真脚本位置 高级用户可使用单个直接脚本来启动仿真(例如,Vivado 用户)。

指定该选项后,运行脚本时其他选项无价值。

-platform-name NAME 平台名称
-pmc-args-file PMC QEMU 实参文件名 在此文件中可提供要传递给 PMU/PMC 的任意选项。具体格式由所选平台上的库文件来确定。

该选项在 v++ 包生成的脚本中自动传递。

适用于 QEMU 的 Versal PS 和 PMC 实参适用于 QEMU 的 Zynq UltraScale+ MPSoC PS 和 PMU 实参 中可找到特定器件的 PMC/PMU 实参。

提示: Zynq 7000 器件不支持此选项。
-pmc-dtb <path_to_DTB_file>

v++ --package 会基于设计中的寻址来自动创建设备树二进制 (DTB) 文件,并将此文件传递给 launch_emulator 命令。该选项允许您指定用于覆盖默认设置的 DTB 文件。

注释: 请确保此 DTB 与所使用的 noc_memory_config.txt 文件兼容。

适用于 QEMU 的 Versal PS 和 PMC 实参适用于 QEMU 的 Zynq UltraScale+ MPSoC PS 和 PMU 实参 中可找到特定器件的 PMC/PMU 实参。

提示: Zynq 7000 器件不支持此选项。
-protoinst-File ProtoInst 文件路径

用于指定要加载的 protoinst 文件。提供完整的绝对路径。

-qemu-args-file PS QEMU 实参文件名 在此文件中可提供要传递给 QEMU 的任意选项。您可通过此特定格式从所选平台提取库文件。该选项在 v++ 包生成的脚本中自动传递。
-qemu-dtb <path_to_DTB_file>

v++ --package 会基于设计中的寻址来自动创建 DTB 文件,并将此文件传递给 launch_emulator 命令。该选项允许您指定用于覆盖默认设置的 DTB 文件。

注释: 请确保此 DTB 与所使用的 noc_memory_config.txt 文件兼容。
-sd-card-image 指定 sd_card.img 此镜像文件作为 QEMU 实参(以启动模式的形式)来传递。该选项在 V++ 包生成的脚本中自动传递。

仅当使用 SD 模式时,才需要该选项。

-t | -target sw_emuhw_emu 指定运行 sw_emuhw_emu

根据 v++ 中所选的目标,v++ 包会生成相应的脚本。

对于 sw_emu 目标,会生成 launch_sw_emu.sh,对于 hw_emu 目标,则会生成 launch_hw_emu.sh

-xtlm-log-state WAVEFORM | LOG | BOTH

该选项用于指定 XTLM log 日志文件应包含的内容。其中可包含波形和/或文本 log 日志。该选项仅用于硬件仿真。