- 各 xtlm_ipc_verilog_stub モジュールには、次の 3 つのファイルが含まれている必要があります。
- System Verilog ラッパー: このモジュールは、AXIS バス プロトコル用のピン レベルのバス インターフェイスを提供します。このモジュールは、User TG 最上位モジュールにインスタンシエートする必要があり、このバス インターフェイスは、対応する SV インターフェイスまたは AXIS トラフィックを駆動するまたはトラフィック ジェネレーター (RTL モジュール) インターフェイスに接続する必要があります。このスタブ SV モジュールは、SystemC モジュールをインプリメントするためのプレースホルダーです。
- SystemC ヘッダー ファイル (.h): このファイルには、systemc モジュールの宣言が含まれています。
- SystemC インプリメンテーション ファイル (.cpp): SystemC モジュールのインプリメンテーションには、ピン レベルの信号を axis_payload (tlm ペイロード) に変換するトランザクターがあります。このペイロードは、Google の protobuf を使用してシリアライズされ、ソケット通信を介して Vitis エミュレーション/AI エンジン シミュレータ/x86-Simulation プロセスに送信されます。Vitis エミュレーション/AI エンジン シミュレータ/x86-Simulation プロセスでは、対応する xtlm_ipc_<master/slave> でこのペイロードがデシリアライズされ、AI エンジン/PL カーネルに駆動されるピン レベル/TLM ペイロード (ターゲットごと) に変換されます 。
- 次のモジュールが、さなざまな TDATA_WIDTH 設定で前もってパッケージされたソースとして提供されています。$XILINX_VIVADO/data/emulation/ip_utils/xtlm_ipc/xtlm_ipc_v1_0/sv は 32 ビット、64 ビット、および 128 ビットの幅設定で使用可能です。
- xtlm_ipc_aie2pl<width>.sv
- xtlm_ipc_aie2pl<width>.cpp
- xtlm_ipc_aie2pl<width>.h
- xtlm_ipc_pl2aie<width>.sv
- xtlm_ipc_pl2aie<width>.cpp
- xtlm_ipc_pl2aie<width>.h
- 別の設定が必要な場合は、上記のパスにあるファイルを参照に、手動で作成することもできます。
- xtlm_ipc_verilog_stub モジュールには、次の 2 つのファイルがさらに必要とされます。これらのファイルは、Vivado をインストールすると含まれ、コンパイルする必要があります。
- $XILINX_VIVADO/data/emulation/hw_em/ip_repo/sim_ipc_axis_slave_v1_0/sysc/ sim_ipc_axis_slave.cpp
- $XILINX_VIVADO/data/emulation/hw_em/ip_repo/sim_ipc_axis_master_v1_0/sysc/sim_ipc_axis_master.cpp
注記: これらのディレクトリにはさらにヘッダー ファイルも含まれるので、コンパイルでパスが含まれるように追加しておく必要があります。 - SystemC モデルは、その下にあるさまざまなライブラリを使用します。Vivado のインストールには、すべてのライブラリ バイナリおよびヘッダーが含まれます。
- テスト ベンチでの xtlm_ipc_verilog_stubs の使用と統合の詳細は、チュートリアルとサンプル デザインを参照してください。コンパイル、エラボレーション、およびシミュレーション スクリプトの例も含まれています。