系统发生死锁时,在设计中添加 FIFO 可能有用。在简单的系统中,您可从设计推断 FIFO 大小,并执行手动静态分析。但您无从知晓 main_init()
、main()
以及 kernel
开始时耗费的精确时钟周期数。
该工具会从 AI 引擎仿真起为您计算这些 FIFO 长度。您可以使用 aiecompiler
搭配 --evaluate-fifo-depth
标志编译计算图。该选项会在所有相关路径上生成无限 FIFO。
完成代码编译后,利用
aiesimulator
运行独立 AI 引擎仿真。接近仿真开始时,您将收到如下警告:[CRITICAL WARNING]: Design was compiled with --evaluate-fifo-depth option, before deploying the design on hardware compile without --evaluate-fifo-depth option.
- 打开 Vitis Unified IDE 并打开仿真
run_summary
。 - 记录
Estimated FIFO
列,并对特定信号线使用fifo_depth
约束来应用建议的 FIFO 数。
注释: 此功能对于 AI 引擎机器学习设计不可用。
图 1. Vitis Unified IDE
在“
Estimated FIFO (Words)
”列中会给出估算的 FIFO 深度。您可在计算图中使用以下语法搭配这些值来插入含指定长度的 FIFO:fifo_depth(net) = value;
其中,net 是您要在其中插入 FIFO 的连接。