为设计添加流量生成器 - 2023.2 简体中文

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

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

AXI Traffic Generator 内核提供了在仿真期间将流量注入系统设计 I/O、AI 引擎计算图或 PL 内核的方法。AMD 提供的库支持对接 AXI4‑Stream 以模仿串流数据流用于软件和硬件仿真,并支持对接 AXI4 存储器映射接口以模仿存储器映射数据传输用于硬件仿真。

AXI Traffic Generator 是作为 XO 文件来提供的,这些文件可使用 Vitis 编译器 (v++) 链接至您系统工程内。这些 XO 文件名为 sim_ipc_axis_master_XY.xosim_ipc_axis_slave_ZW.xo,其中 XY 和 ZW 对应于 PLIO 接口中的位数。例如,sim_ipc_axis_master_128.xo 提供位宽为 128 位的 AXI4‑Stream 主数据总线。接口越宽,PL 就能以更低的时钟频率达成相同的吞吐量,并允许 AI 引擎阵列尽可能增大其存储器带宽。但每个 PLIO 接口拼块位宽均为 64 位,并且属于受限资源。以时钟速度两倍的速度来使用一个 64 位 PLIO 接口所提供的带宽与仅使用单个 PLIO 拼块时的 128 位 PLIO 所提供的带宽相同。这要求 PL 以时钟速度两倍的速度运行,并且最优选择因应用而异。

要在系统设计中使用流量生成器,须执行以下两个步骤:

  1. 指定 AI 引擎阵列上的流量生成器 (sim_ipc) 模块与其对应的 AXI4‑Stream 端口之间的连接。此操作通常是在 system.cfg 文件中使用 --connectivity.nk 命令和 --connectivity.sc 命令完成的,如 链接系统 中所述。下面给出了 1 个示例:

    [connectivity]
    nk=sim_ipc_axis_master:1:inst_sim_ipc_axis_master
    nk=sim_ipc_axis_slave:1:inst_sim_ipc_axis_slave
    stream_connect=sim_ipc_axis_master.M00_AXIS:ai_engine_0.DataIn
    stream_connect=ai_engine_0.DataOut:sim_ipc_axis_slave.S00_AXIS

    连接 sim_ipc_axis XO 文件的语法如下。

    nk=sim_ipc_axis_master:<Number Of Masters>:<inst_name_1>.<inst_name_2>.<...>
    nk=sim_ipc_axis_slave:<Number Of Slaves>:<inst_name_1>.<inst_name_2>.<...>

    其中:

    • sim_ipc_axis_master/slave 用于在设计中指定 XO 内核
    • <Number Of Masters><Number Of Slaves> 字段允许您在设计中指定最多 8 个不同的流量生成器
    • <inst_name> 在您的应用中应取一个有意义的名称
  2. 下一步,将 XO 文件添加到 Vitis 链接命令中,如下所示。

    重要: 流量生成器 XO 在硬件仿真中只能搭配 hw_emu 目标来使用。
    v++ -l --platform <platform.xpfm> sim_ipc_axis_master_128.xo sim_ipc_axis_slave_128.xo libadf.a -target hw_emu --config system.cfg

如需了解有关如何将 XO 文件与 Vitis 编译器搭配使用的更多信息,请访问 构建器件二进制文件