运行仿真目标 - 2023.2 简体中文

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

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

在典型开发流程中,步骤如下。

  1. 对系统进行软件仿真,以验证完整系统的功能正确性
    注释: 这也可包括在 HLS 组件上运行 C 语言仿真,或者运行 x86simulator 来验证 AI 引擎组件
  2. 运行 AI 引擎仿真器来验证 AI 引擎内核与计算图满足应用的性能需求
  3. 执行系统的硬件仿真,以验证设计时序
    注释: 这也可包括在 HLS 组件上运行 C /RTL 协同仿真,或者运行 aiesimulator 来验证 AI 引擎组件
  4. 在硬件上执行测试和调试

在硬件上运行时,在平台或加速器卡的物理器件上运行系统设计。但运行仿真目标则发生在 x86 处理器上的虚拟系统上或者发生在嵌入式处理器上的 QEMU 环境中。软件仿真目标和硬件仿真目标各自有特定于目标的驱动程序,在运行时通过 XRT 来加载。因此,CPU 二进制文件无需重新编译即可按原样运行,在运行时期间更改目标模式即可。

XRT 可基于 XCL_EMULATION_MODE 环境变量的值,加载特定于目标的驱动程序,并使应用与硬件的仿真模型相连。XCL_EMULATION_MODE 允许的值为 sw_emuhw_emu。如未设置 XCL_EMULATION_MODE,则 XRT 将加载硬件驱动程序。

重要: 运行仿真时,必须设置 XCL_EMULATION_MODE
图 1. XRT 驱动程序

您也可以使用 xrt.ini 文件来配置适用于仿真的各项选项。在 xrt.ini 中专为 [Emulation] 提供了一个部分,如 xrt.ini 文件 中所述。

利用 AI 引擎执行系统仿真适用于:

  • 以有限的已知数据集来检查初始系统行为
  • 使用 GDB 对 PS、PL 和 ADF 计算图进行功能性集成和调试
  • 使用 Python 或 C++ 通过外部流量生成器进行系统测试
  • 利用 RTL 内核的 C 语言模型来运行系统
  • 通过 Work/options 中的 x86.options 文件或者 aiesimulator_output 目录中的 aiesim_options.txt 来应用 AI 引擎仿真选项
重要: 软件仿真要求所有 PL 内核都基于 HLS,或者包含 C/C++ 模型。RTL 内核一般不支持软件仿真。

编写主机代码以供在软件仿真内执行时,请将所有缓冲器对象 (xrtBO) 与 xrtBOSync API 调用保持同步。要多次运行数据驱动的 PL 内核,可在软件应用的 while (1) 环路内运行。

启动软件或硬件仿真时,您可根据所使用的仿真器来为 AI 引擎组件指定选项。这些选项可从 launch_sw_emu.sh 脚本使用 -x86-sim-options 来指定,或者也可从 launch_hw_emu.sh 脚本使用 -aie-sim-options 来指定。如需了解更多信息,请参阅 AI 引擎工具和流程用户指南(UG1076) 中的复用 AI 引擎仿真器选项

当仿真环境完全启动并且出现 Linux 提示符后,请确保在 QEMU 环境中设置以下环境变量,以确保主机应用正常工作。在硬件上运行时也必须完成这些设置。

export XILINX_XRT=/usr
export LD_LIBRARY_PATH=/mnt/sd*1:
export XCL_EMULATION_MODE=hw_emu