このセクションでは、次の図に示す Vitis エクスポート フローについて説明します。完全なフロー (ハードウェア デザインの作成から .xclbin のエクスポートまで) は、7 つのステップに分かれています。
このフローの実行手順は、次のとおりです。
-
Versal カスタム プラットフォーム デザインの作成から開始します。Vitis エクスポート フローでは、XSA ファイルの生成 で説明されるブロック デザイン コンテナー (BDC) デザインが必要で、フラット デザインはサポートされていません。Vivado デザインでは、HLS ベースのコンポーネント、または RTL ベースのパッケージ IP、または IP カタログからの標準 IP を使用できます。
プラットフォームを作成した後、合成を実行してハードウェアの実現に関連する問題をなくしておきます。このフローは、Versal デバイス プラットフォームにのみ使用します。次の手順で、プラットフォームを
extensible.xsa
にエクスポートします。-
Flow Navigator の IP Integrator の下にある Export Platform をクリックします。
Export Platform で、Presynthesis オプションを選択し、extensible.xsa を生成します。
ヒント: Export Platform オプションがオフの場合は、Project Settings にアクセスし、Project is an extensible Vitis Platform をオンにします。
- Tcl コンソールに
write_hw_platform -f <filename>.xsa
コマンドを入力します。
-
-
Vitis ツールでは、エクスポートされた .xsa がプラットフォームとなり、システム デザインが完了します。
- AI エンジン グラフ (libadf.a) をコンパイルします。
- PL カーネル (.xo) をコンパイルします。
- 接続用の system.cfg ファイルを更新します。
-
--export_archive
オプションを付けてv++
リンカーを実行します。
Vitis を Vivado にエクスポートするフローでは、システム リンク プロセスは通常通り実行されますが、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
) コマンドとは併用できません。エラー メッセージが表示されます。 -
Vitis ツールから .vma ファイルを生成した後、Vivado プロジェクトを開きます。Vivado プロジェクトに .vma ファイルをインポートするか、次の Tcl プロシージャで新しいプロジェクトを作成します。
vitis::import_archive ./vma_path/<vma_file>.vma
- ダイナミック領域ブロック デザイン コンテナーの新しいバリアントは、VMA のブロック デザインをクローンして作成し、アクティブにします。
- ダイナミック領域ブロック デザイン内では、Vivado でデザインをインプリメントした後に XRT を使用する場合、基本的に読み取り専用のはずのレベルの階層に Vitis のコンテンツがカプセル化されます。Vivado でデザインを更新しつつ、XRT メタデータの一貫性を保つ方法は、Vitis エクスポート フローのガイドラインと制限事項 セクションを参照してください。
-
.vma 領域は、Vivado で開くことができます。また、Vitis フローを再実行するには、
vitis::remove_archive_hierarchy
を使用して Vitis のコンテンツを削除した後、拡張可能な XSA をエクスポートし直します。
-
.vma を Vivado ツールにインポートした後、デザインは Vivado でのみ変更できます。詳細は、Vitis エクスポート フローのガイドラインと制限事項を参照してください。
-
AI エンジン デザイン、PL カーネル、PLIO バウンダリの変更など、
.vma
ファイルに変更がある場合は、手順 5 に進んで .xsa ファイルを再生成し、Vitis を Vivado にエクスポートするフローを再び繰り返します。 - デザインの変更が Vivado に関するものだけである場合、デザインをシミュレーションし、タイミングを満たすようにデザインを合成してインプリメントし、手順 6 に進んで fixed.xsa を生成します。
-
AI エンジン デザイン、PL カーネル、PLIO バウンダリの変更など、
-
AI エンジン、PL カーネル、または PLIO バウンダリの更新に関するデザインの変更が必要な場合、リンクされたシステム デザインを更新し、Vitis ツールで .vma を再生成する必要があります。このため、まず、2 つの Tcl プロシージャのうちの 1 つを使用して、前にインポートした .vma を Vivado プロジェクトから削除する必要があります。
-
vitis::remove_archive_hierarchy
プロシージャを使用すると、.vma のインポート後に Vivado プロジェクトの作業を保持したまま、インポートした .vma ファイルを削除できます。 -
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 にインポートします。 -
- デザインをインプリメントしたら、次のコマンドで 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
- デザインを修正したら、ハードウェア上でデザインをテストしたり、ハードウェア エミュレーションを実行できます。次の手順に従って、固定 XSA を生成して、ハードウェアおよびハードウェア エミュレーションでデザインをテストします。
ハードウェア上でデザインをテストするには、まずデザインに対して合成とインプリメンテーションを実行する必要があります。
write_hw_platform -fixed ./<path to fixed.xsa>
コマンドを使用して、固定 XSA を生成します。ハードウェア エミュレーションを実行するには、次の手順で固定 XSA を生成します。
- 出力ファイルを再度生成します。
-
launch_simulation -scripts only
コマンドを実行します。 -
compile.sh
を実行します。 -
elaborate.sh
を実行します。 -
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