フローの詳細とインプリメンテーション - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

このセクションでは、次の図に示す Vitis エクスポート フローについて説明します。完全なフロー (ハードウェア デザインの作成から .xclbin のエクスポートまで) は、7 つのステップに分かれています。

図 1. VitisVivado にエクスポートするフロー

このフローの実行手順は、次のとおりです。

  1. Versal カスタム プラットフォーム デザインの作成から開始します。Vitis エクスポート フローでは、XSA ファイルの生成 で説明されるブロック デザイン コンテナー (BDC) デザインが必要で、フラット デザインはサポートされていません。Vivado デザインでは、HLS ベースのコンポーネント、または RTL ベースのパッケージ IP、または IP カタログからの標準 IP を使用できます。

    プラットフォームを作成した後、合成を実行してハードウェアの実現に関連する問題をなくしておきます。このフローは、Versal デバイス プラットフォームにのみ使用します。次の手順で、プラットフォームを extensible.xsa にエクスポートします。

    1. Flow NavigatorIP Integrator の下にある Export Platform をクリックします。



      Export Platform で、Presynthesis オプションを選択し、extensible.xsa を生成します。

      ヒント: Export Platform オプションがオフの場合は、Project Settings にアクセスし、Project is an extensible Vitis Platform をオンにします。


    2. Tcl コンソールに write_hw_platform -f <filename>.xsa コマンドを入力します。
  2. Vitis ツールでは、エクスポートされた .xsa がプラットフォームとなり、システム デザインが完了します。
    • AI エンジン グラフ (libadf.a) をコンパイルします。
    • PL カーネル (.xo) をコンパイルします。
    • 接続用の system.cfg ファイルを更新します。
    • --export_archive オプションを付けて v++ リンカーを実行します。

    VitisVivado にエクスポートするフローでは、システム リンク プロセスは通常通り実行されますが、Vivado 合成と配置配線の自動起動がスキップされます。その代わり、v++ --link --export_archive コマンドで Vitis メタデータ アーカイブ (.vma) を生成し、Vivado Design Suite へエクスポートします。

    v++ --link --export_archive --platform ../<>.xsa --config ../system.cfg \
    <>.xo ./libadf.a -o <vma_file>.vma
    重要: --export_archive コマンドは --target (または -t) コマンドとは併用できません。エラー メッセージが表示されます。
  3. Vitis ツールから .vma ファイルを生成した後、Vivado プロジェクトを開きます。Vivado プロジェクトに .vma ファイルをインポートするか、次の Tcl プロシージャで新しいプロジェクトを作成します。
    vitis::import_archive ./vma_path/<vma_file>.vma 
    1. ダイナミック領域ブロック デザイン コンテナーの新しいバリアントは、VMA のブロック デザインをクローンして作成し、アクティブにします。
    2. ダイナミック領域ブロック デザイン内では、Vivado でデザインをインプリメントした後に XRT を使用する場合、基本的に読み取り専用のはずのレベルの階層に Vitis のコンテンツがカプセル化されます。Vivado でデザインを更新しつつ、XRT メタデータの一貫性を保つ方法は、Vitis エクスポート フローのガイドラインと制限事項 セクションを参照してください。
    3. .vma 領域は、Vivado で開くことができます。また、Vitis フローを再実行するには、vitis::remove_archive_hierarchy を使用して Vitis のコンテンツを削除した後、拡張可能な XSA をエクスポートし直します。
  4. .vmaVivado ツールにインポートした後、デザインは Vivado でのみ変更できます。詳細は、Vitis エクスポート フローのガイドラインと制限事項を参照してください。
    1. AI エンジン デザイン、PL カーネル、PLIO バウンダリの変更など、.vma ファイルに変更がある場合は、手順 5 に進んで .xsa ファイルを再生成し、VitisVivado にエクスポートするフローを再び繰り返します。
    2. デザインの変更が Vivado に関するものだけである場合、デザインをシミュレーションし、タイミングを満たすようにデザインを合成してインプリメントし、手順 6 に進んで fixed.xsa を生成します。
  5. AI エンジン、PL カーネル、または PLIO バウンダリの更新に関するデザインの変更が必要な場合、リンクされたシステム デザインを更新し、Vitis ツールで .vma を再生成する必要があります。このため、まず、2 つの Tcl プロシージャのうちの 1 つを使用して、前にインポートした .vmaVivado プロジェクトから削除する必要があります。
    1. vitis::remove_archive_hierarchy プロシージャを使用すると、.vma のインポート後に Vivado プロジェクトの作業を保持したまま、インポートした .vma ファイルを削除できます。
    2. vitis::remove_archiveプロシージャを使用すると、.vma ファイルをインポートする前の状態に Vivado プロジェクト戻して、.vma とプロジェクトの変更の両方を削除します。

    Vivado デザインから .vma を削除したら、プロジェクトに変更を加えることができます。Vitis は、ダイナミック領域ブロック デザインと、PFM API を介して宣言された潜在的な接続ポイントにのみ依存します。system.cfg を更新して、バウンダリ接続を更新します。2 回目以降に Vivado から extensible.xsa をエクスポートする必要がある場合は、vitis::remove_archive コマンドを使用して手順 1 を繰り返して、extensible.vma をエクスポートします。手順 2 と 3 を繰り返して、それぞれ Vitis から VMA をエクスポートし、VMA を Vivado にインポートします。

  6. デザインをインプリメントしたら、次のコマンドで Vivado プロジェクトから fixed.xsa を生成できます。
    write_hw_platform -fixed ./<fixed_xsa>.xsa

    この XSA を使用すると、PetaLinux/Yocto や XRT ベースのアプリケーション開発、PS ベースのアプリケーション開発を、Vitis エンベデッド ソ ソフトウェア フロー、または従来からのベアメタル フローで実行できます。

    先のコマンドで生成された固定 XSA は、ハードウェア ターゲット上でのみデザインをテストするために使用できます。ハードウェア エミュレーションを実行する場合は、代わりに次のコマンドを使用して XSA を生成します。

    write_hw_platform -fixed -include_sim_content ./<fixed_xsa>.xsa
  7. デザインを修正したら、ハードウェア上でデザインをテストしたり、ハードウェア エミュレーションを実行できます。次の手順に従って、固定 XSA を生成して、ハードウェアおよびハードウェア エミュレーションでデザインをテストします。

    ハードウェア上でデザインをテストするには、まずデザインに対して合成とインプリメンテーションを実行する必要があります。write_hw_platform -fixed ./<path to fixed.xsa> コマンドを使用して、固定 XSA を生成します。

    ハードウェア エミュレーションを実行するには、次の手順で固定 XSA を生成します。

    1. 出力ファイルを再度生成します。
    2. launch_simulation -scripts only コマンドを実行します。
    3. compile.sh を実行します。
    4. elaborate.sh を実行します。
    5. write_hw_platform -fixed -include_sim_content <path to fixed xsa> コマンドを実行します。
    ハードウェア ターゲット (-t=hw) またはハードウェア エミュレーション ターゲット (-t=hw_emu) 上でデザインを実行する準備ができたら、v++ --package を実行し、.xclbin を生成します。ハードウェアおよびハードウェア エミュレーション用の xclbin を生成するには、それぞれの fixed.xsa を使用します。t= hw または hw_emu を設定し、.xclbinを生成するために必要なソフトウェアのバイナリおよびファイルを指定します。

リビジョン管理のガイドライン

Vitis および Vivado ツールを使用してデザインを開発しつつ、プロジェクト ソースをリビジョン管理することをお勧めします。このフローでは、ハードウェアの設計開発には何度もデザインを繰り返す必要があります。ユーザーの標準に従って、リビジョン管理のメカニズムを採用できます。リビジョン管理には、次のファイルをお勧めします。

  • C++ ソース ファイル
  • AI エンジン グラフ (.libadf)
  • コンフィギュレーション ファイル
  • Tcl スクリプト
  • *.vma
  • *.xsa