次に説明するように、System Verilog/Verilog で記述された既存のテストベンチを使用しても、テストベンチ階層をわずかに変更するだけで、トラフィックを生成できます。
図 1. テストベンチ階層
上の図に示すように、外部テストベンチ (左側) と Vitis エミュレーション (右側) は、両方とも別々のシミュレーション プロセスとして実行されます。IPC を使用して 2 つのプロセス間の通信を確立するには、SIM_IPC マスター/スレーブ モジュールをインスタンシエートする必要があります。
次の変更を加えます。
-
Vitis エミュレーション デザインに IPC モジュールを追加します。これらは、あらかじめパッケージされた XO として提供されており、
v++
コマンド ラインを使用して挿入できます (ストリーミング トラフィック用の AXI4-Stream I/O モデル を参照)。 - 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
モジュールもあります。