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 以时钟速度两倍的速度运行,并且最优选择因应用而异。
要将流量生成器与 Vitis 编译器搭配使用,需要两个步骤。首先,在 AI 引擎阵列上的 sim_ipc
模块与其对应的 AXI4-Stream 端口之间建立连接。这通常是在 system.cfg 文件中完成的。示例如下:
[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 文件的类型,实例名称应对于您的应用有意义。下一步,将 XO 文件添加到 Vitis 链接命令中。请注意,
sim_ipc
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 编译器搭配使用的更多信息,请访问 https://github.com/Xilinx/Vitis-Tutorials/tree/master/AI_Engine_Development/Feature_Tutorials/05-AI-engine-versal-integration。
注释: 要同时使用多个 AXI4-Stream 主接口,请按需将 system.cfg 文件中的
Number of Masters
字段从 1 更改为尽可能大的值(最大值为 8)。