AXI Traffic Generator 内核提供了在仿真期间将流量注入系统设计 I/O、AI 引擎计算图或 PL 内核的方法。AMD 提供的库支持对接 AXI4‑Stream 以模仿串流数据流用于软件和硬件仿真,并支持对接 AXI4 存储器映射接口以模仿存储器映射数据传输用于硬件仿真。
AXI Traffic Generator 是作为 XO 文件来提供的,这些文件可使用 Vitis 编译器 (v++
) 链接至您系统工程内。这些 XO 文件名为 sim_ipc_axis_master_XY.xo 和 sim_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 以时钟速度两倍的速度运行,并且最优选择因应用而异。
要在系统设计中使用流量生成器,须执行以下两个步骤:
-
指定 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>
在您的应用中应取一个有意义的名称
-
-
下一步,将 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 编译器搭配使用的更多信息,请访问 构建器件二进制文件。