在典型开发流程中,步骤如下。
- 对系统进行软件仿真,以验证完整系统的功能正确性 注释: 这也可包括在 HLS 组件上运行 C 语言仿真,或者运行
x86simulator
来验证 AI 引擎组件 - 运行 AI 引擎仿真器来验证 AI 引擎内核与计算图满足应用的性能需求
- 执行系统的硬件仿真,以验证设计时序注释: 这也可包括在 HLS 组件上运行 C /RTL 协同仿真,或者运行
aiesimulator
来验证 AI 引擎组件 - 在硬件上执行测试和调试
在硬件上运行时,在平台或加速器卡的物理器件上运行系统设计。但运行仿真目标则发生在 x86 处理器上的虚拟系统上或者发生在嵌入式处理器上的 QEMU 环境中。软件仿真目标和硬件仿真目标各自有特定于目标的驱动程序,在运行时通过 XRT 来加载。因此,CPU 二进制文件无需重新编译即可按原样运行,在运行时期间更改目标模式即可。
XRT 可基于 XCL_EMULATION_MODE
环境变量的值,加载特定于目标的驱动程序,并使应用与硬件的仿真模型相连。XCL_EMULATION_MODE
允许的值为 sw_emu
和 hw_emu
。如未设置 XCL_EMULATION_MODE
,则 XRT 将加载硬件驱动程序。
XCL_EMULATION_MODE
。您也可以使用 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 引擎仿真选项
编写主机代码以供在软件仿真内执行时,请将所有缓冲器对象 (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