在 Vitis 分析器的时间线中可使用基于 VCD 的分析来查看 DMA FIFO 大小。Vitis 分析器可显示实时使用的 FIFO 深度。根据使用的 FIFO 深度,Vitis 分析器可帮助分析设计停滞问题、最优化所需 FIFO 大小,然后最优化设计性能。
注释: 不支持串流交换机 FIFO 大小。
为了启用 DMA FIFO 大小可视化,应启用
aiesimulator
的 VCD 转储选项。并且还可在 Vitis 分析器中打开仿真运行结果,例如:aiesimulator --pkg-dir=./Work --online -wdb -ctf
vitis_analyzer aiesimulator_output/default.aierun_summary
如需了解有关如何在 Vitis 分析器中运行仿真器和打开运行结果的其它选项的信息,请参阅 在 Vitis 分析器中执行 AI 引擎停滞分析。
提示: 如果设计仿真时挂起,请使用
--simulation-cycle-timeout=<cycles>
选项在建立时间停止 aiesimulator
仿真。在 Vitis 分析器中,选中Graph视图,然后选中视图中的 DMA FIFO。
提示: 将鼠标悬停在 DMA FIFO 上即可显示有关 DMA FIFO 的信息,例如,FIFO 深度(以码字数来表示)。
下图显示了 graph 视图中的 DMA FIFO 示例:
图 1. graph 视图中的 DMA FIFO
graph 视图中选定的 DMA FIFO 也会同时在“Trace”视图中高亮显示。您必须切换至“Trace”视图。
在时间线中会以码字数来表示 DMA FIFO 大小,如下图所示。在“Events”(事件)视图中,它包含 DMA_FIFO_SIZE
事件和大小信息
图 2. “Trace”视图中的 DMA FIFO
注释: DMA FIFO 大小将显示为 4 的倍数,因为仅当它在存储体中一次性成功写入 4 个码字(128 位)后,才会递增。如果最后写入的字数小于 4,那么最后写入的码字会暂存在 S2MM 通道内,使用者从不读取这些码字。为确保没有任何数据暂存在 S2MM 通道内,串流必须连续或者为 4 个码字的倍数。
DMA FIFO 信息可搭配其它设计分析技巧一起使用来帮助设计最优化。如需了解其它设计分析技巧,请参阅 在 Vitis 分析器中执行 AI 引擎停滞分析。