デッドロックの解消を目的とした FIFO 深さの評価 - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

システムがデッドロック状態の場合、デザイン内に FIFO を追加することでこの問題を解決できることがあります。単純なシステムであれば、デザインから FIFO のサイズを推測し、スタティックな解析を手動で実行できます。ただし、main_init()main()、および kernel の開始時に何クロック サイクルが費やされるかは正確には把握できません。

このツールは、AI エンジン シミュレーションからこれら FIFO の長さを計算します。フラグ --evaluate-fifo-depth を使用すると、aiecompiler を用いてグラフをコンパイルできます。このオプションによって、関連するすべてのパスに無限の 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.
  1. Vitis Unified IDE を開き、シミュレーションの run_summary を開きます。
  2. Estimated FIFO の列を参照し、fifo_depth 制約を使用して推奨される数の FIFO を特定のネットに適用します。
注記: この機能は AI エンジン ML デザインでは利用できません。
図 1. Vitis Unified IDE
推測される FIFO の深さは、Estimated FIFO (Words) の列に表示されます。これらの値をグラフで使用し、次の構文を用いて指定した長さの FIFO を挿入できます。
fifo_depth(net) = value;
ここのネット (net) は、FIFO を挿入する接続です。