ミラー モジュールのソースの手動作成 - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語
  1. Vitis プラットフォーム プロジェクトにインスタンシエートされたすべての ipc_axis_<master/slave> IP モジュールに対して、同様のミラー IP モジュールが作成されます。
  2. これらのミラー モジュールのサンプル ソース コードは、https://github.com/Xilinx/Vitis_Accel_Examples/tree/master/emulation/external_traffic_generator/example を参照してください。
    1. ipc_axis_master_mirror: Vitis プラットフォームで開始された ipc_axis_master IP に対するミラー モジュールのソース コード例:
      • sim_ipc_axis_master_mirror.h
      • sim_ipc_axis_master_mirror.cpp
      • sim_ipc_axis_master_mirror.sv
    2. ipc_axis_slave_mirror: Vitis プラットフォームで開始された ipc_axis_slave IP に対するミラー モジュールのソース コード例:
      • sim_ipc_axis_slave_mirror.h
      • sim_ipc_axis_slave_mirror.cpp
      • sim_ipc_axis_slave_mirror.sv
    3. utils: このディレクトリには、ミラー モジュールに必要なユーティリティ ファイルが含まれています。
      • sim_ipc_axis_master.h
      • sim_ipc_axis_master.cpp
      • sim_ipc_axis_slave.h
      • sim_ipc_axis_slave.cpp
    4. run.sh: このファイルは、ミラー モジュールのコンパイル、エラボレーション、およびスクリプトの例です。
  3. 各ミラー モジュールにはスタブ システム Verilog モジュールがあり、信号が接続される Traffic Generator トップにインスタンシエートする必要があります。このモジュールは、AXI4-Stream バス プロトコル用のピン レベルのバス インターフェイスを提供します。このバス インターフェイスは、AXI4-Stream トラフィックを駆動する該当の SV インターフェイスまたは Traffic Generator RTL モジュール インターフェイスに接続されます。このスタブ SV モジュールは、SystemC モジュールをインプリメントするためのプレースホルダーです。SystemC モジュールには、ピン レベルの信号を axis_payload (TLM ペイロード) に変換するトランザクターがあります。このペイロードは、google protobuf を使用してシリアライズされ、ソケット通信を介して Vitis エミュレーション プロセスに送信されます。Vitis エミュレーション プロセスでは、ipc_axis_<master/slave> IP の場合、このペイロードがデシリアライズされ、ピン レベルに変換され、ユーザー カーネルのバス インターフェイスに駆動されます。
  4. SystemC モデルは、その下にあるさまざまなライブラリを使用します。Vivado のインストールには、すべてのライブラリ バイナリおよびヘッダーが含まれます。サンプルの run.sh スクリプトには、これらのすべてのライブラリとヘッダーへのパスが含まれます。
  5. 上記のミラー モジュール ソースに関する情報を例として使用し、独自のミラー モジュールを開発します。
  6. 提供されているスクリプト (run.sh) を参考に、コンパイル、エラボレーション、およびシミュレーション スクリプトを記述できます。