エクステンシブル XSA のハードウェア エミュレーションのイネーブル - 2020.2 Japanese

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

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

次の手順は、カスタム プラットフォームの開発者用です。

  1. 必要な BD、RTL、テストベンチ、およびその他のソースを使用して Vivado プロジェクトを作成します。
    1. 2020.1 では、BD で使用できたのは HW EMU だけでしたが、2020.2 からは、その他のソースも使用できるようになりました。
    2. Versal ACAP の場合のみ、テストベンチに BD を直接含めるのではなく、 BD ラッパーを含める必要があります。これは、Vitis が NoC をシミュレーションに挿入するジョブをこのレベルで実行するためです。
    3. Versal ACAP の場合のみ、Vitis プラットフォームで AI エンジン をイネーブルにするには、1 つのスレーブ AXI4 メモリ マップド ポートだけをイネーブルにし、NoC に接続するように AI エンジン ブロックを設定する必要があります。AI エンジン グラフ ソフトウェアに基づく Vitis は、v++ リンク段階で追加の自動接続をします。
    4. DFX プラットフォームの場合は、Vitis ツールがアクセラレータを正しく接続できるように、ダイナミック領域 BD で正しい PFM プロパティを指定する必要があります。
  2. HW エミュレーションを XSA にパッケージするようにデザインをアップデートします。
    1. デザインは XSA にパッケージする前に、シミュレータで正しく実行されていることが重要です。
    2. Versal ACAP の場合のみ、SystemC モデルをイネーブルにするプラットフォーム デザインを準備する必要があります。SELECTED_SIM_MODEL プロパティを TLM に変更するように、CIPS および NoC IP 設定を更新します。これにより、CIPS IP でソフトウェアを実行できる QEMU モデルが使用されるようになります。デザインでは、次の Tcl コマンドを使用できます。また、Vivado で SystemC シミュレーションをイネーブルにするようにパラメーターを設定します。
      foreach tlmCell [get_bd_cells * -hierarchical -filter {VLNV =~ "*:*:axi_noc:*" || VLNV =~ "*:*:versal_cips:*"}] {set_property SELECTED_SIM_MODEL tlm $tlmCell }
      set_param bd.generateHybridSystemC true
    3. sim_1 fileset にテストベンチを作成し、デザインの <top> モジュールをインスタンシエートします。Versal ACAP の場合、Vivado でテストベンチが <top> モジュールを直接インスタンシエートしないようにする必要があります。代わりに、<top>_sim_wrapper モジュールをインスタンシエートしてください。launch_simulation -scripts_only コマンドを呼び出すと、<top>_sim_wrapper.v というファイルが生成されます。このモジュールのインターフェイスは <top> モジュールと同じですが、集約型 NoC モジュールに関連する追加のシミュレーション モデル (デザインにインスタンシエートされたさまざまな論理 NoC モジュールから作成) をインスタンシエートする点が異なります。
    4. デザインをコンパイルし、上記の手順を実行して、シミュレーションを開始します。デザインは QEMU を使用するように設定されているため、Vivado シミュレータでシミュレーションする際に SW が存在しないので、CIPS IP はトランザクションを生成しません。Vivado シミュレーションでは次のエラーメッセージが表示されますが、基本デザインがシミュレータに正しく読み込まれたことを示しています。
      ##############################################################
      #
       #  Simulation does not work as Versal CIPS Emulation (SELECTED_SIM_MODLE=tlm) only works with Vitis tool(launch_emulator tool in Vitis)
      #
      ##############################################################
       
      ERROR: [Simtcl 6-50] Simulation engine failed to start: The Simulation shut down unexpectedly during initialization.
      注記: デザインのトランザクションが正しいかどうかは、オプションで CIPS VIP を使用してデザインのシミュレーションを実行してから、TLM (QEMU) を使用するように変更して確認します。まず、NoC および CIPS IP の SELECTED_SIM_MODEL プロパティを RTL にする必要があります。また、CIPS VIP を駆動し、NoC Verilog モデルの要件も満たす別のテストベンチを作成します。Verilog ベースのシミュレーション用にテストベンチを設定する方法は、CIPS VIP および NoC IP の資料を参照してください。
  3. ハードウェア エミュレーションのみの XSA をパッケージします。
    1. ハードウェア エミュレーション プラットフォームをエクスポートするには、Vivado File > Export > Export Platform をクリックするか、次の Tcl コマンドを使用します。
      set_property platform.platform_state "pre_synth" [current_project]
      write_hw_platform -hw_emu -file  platform_hw_emu.xsa
    2. この XSA とプリビルドされた Linux イメージや PetaLinux を一緒に使用すると、カスタム Linux イメージを作成して、完全なプラットフォームを構築できます。その後、残りの Vitis ツールを使用して、XRT で設計するカーネルを追加できます。