SV/Verilog でのトラフィック ジェネレーターの記述 - 2022.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

次に説明するように、System Verilog/Verilog で記述された既存のテストベンチを使用すると、テストベンチ階層をわずかに変更するだけで、トラフィックを生成できます。

図 1. テストベンチ階層

上の図に示すように、外部テストベンチ (左側) と Vitis エミュレーション (右側) は、両方とも別々のシミュレーション プロセスとして実行されます。IPC を使用して 2 つのプロセス間の通信を確立するには、SIM_IPC マスター/スレーブ モジュールをインスタンシエートする必要があります。

次の変更を加えます。

  1. Vitis エミュレーション デザインに IPC モジュールを追加します。これらは、あらかじめパッケージされた XO として提供されており、v++ コマンド ラインを使用して挿入できます (ストリーミング トラフィック用の AXI4-Stream I/O モデル を参照)。
  2. SV/V テストベンチに SIM IPC モジュールを追加します。Traffic Generator トップ内に ipc_axis_master_mirror モジュールをインスタンシエートし、SV インターフェイスを介してピン レベルで接続します。ipc_axis_master_mirror はピン レベルの AXI トランザクションを generic_payload に変換し、IPC ソケットを介して Vitis エミュレーション デザインの ipc_axis_master モジュールに送信します。同様に、Vitis エミュレーション デザインの ipc_axis_slave モジュールに接続するために、Traffic Generator トップにインスタンシエートされた ipc_axis_slave_mirror モジュールもあります。

同じ手法を使用して、外部の SystemVerilog/Verilog トラフィック ジェネレーター/テストベンチから AI エンジン シミュレータまたは x86 シミュレータへのトラフィックを駆動できます。

図 2. XTLM テストベンチの階層
注記: 外部 TG とエミュレーション プロセス/AI エンジン シミュレータ/xx86-sim 間でデータを送信するために使用されるモジュールには、シミュレーション コンテキストごとに異なる名前を付けることができるので、次のようになります。
  • xtlm_ipc_pl2aie または ipc_axis_master_mirror が同じ
  • tlm_ipc_aie2pl または ipc_ais_slave_mirror が同じ
  • これらはまとめて xtlm_ipc_verilog_stub モジュールで、すべての名前に互換性があります。