AI 引擎仿真器支持显式包切换。以前述 graph 为例,其中期望来自 PL 的包切换数据,此数据在 AI 引擎内进行拆分并发送到 4 个 AI 引擎内核。在输出侧,这 4 个内核输出合并为一条输出串流进入 PL。
来自 PL 的输入数据文件包含来自前述示例中 4 个 AI 引擎内核的 PL 的所有包切换数据。它包含不同内核的数据,并按包区分。每个数据包对应于一个 AI 引擎内核的单个窗口输入。数据格式如下。
2415853568
0
1
2
3
4
5
6
TLAST
7
此处
2415853568
即十六进制的 0x8fff0000
。5 个最低有效位是包 ID,此例中为 0。包中的最后一条数据包含关键字 TLAST,表示内核的窗口输入的最后一条数据。 注释: 对于进入 AI 引擎仿真器的 PL 包输入,仅接受整数值作为包报头 ID。
您可为每个包手动构造报头,或者也可以编写帮助程序函数来生成报头。AI 引擎编译器会生成包切换报告文件 Work/reports/packet_switching_report.json,以列出 graph 中使用的包 ID。此外,它还会生成 Work/temp/packet_ids_c.h 和 Work/temp/packet_ids_v.h 头文件,这些头文件可包含在您的 C 语言或 Verilog 内核代码中。