次の図は、Versal ACAP、Zynq UltraScale+ MPSoC および Zynq-7000 SoC デバイスのプログラマブル ロジック領域で実行される Arm® プロセッサとカーネルを使用して、アプリケーションをビルドおよび実行するために必要な手順を示しています。各手順は次にまとめていますが、その詳細はこの資料全体で説明します。
図 1.
Versal ACAP および Zynq UltraScale+ MPSoC デバイスのアプリケーション開発フロー
- PS アプリケーションのコンパイル
- GNU Arm クロス コンパイラを使用して、 Cortex®-A72 または Cortex-A53 コア プロセッサで実行するホスト アプリケーションをコンパイルし、ELF ファイルを作成します。ホスト プログラムは、デバイスの PL および AI エンジン 領域内のカーネルとインタラクティブです。ホスト アプリケーションの詳細は、アプリケーションの開発 を参照してください。ホスト アプリケーションのコンパイルの詳細は、ホスト プログラムのビルド を参照してください。
- AI エンジン アレイ (Versal AI エンジン Core シリーズの場合のみオプション)
-
Versal ACAP デバイスの中には、単一命令複数データ (SIMD) ベクター ユニットを含む VLIW (Very-Long Instruction Word) プロセッサの AI エンジン アレイが搭載されているものもあり、5G ワイヤレスおよび人工知能 (AI) アプリケーションなどの演算負荷の高いアプリケーション向けに高度に最適化されています。AI エンジン グラフとカーネルは、
aiecompiler
やaiesimulator
などの Vitis ツールを使用して構築されており、 『Versal ACAP AI エンジン プログラミング環境ユーザー ガイド』 (UG1076) で説明されているように、エンベデッド プロセッサ アプリケーションのアクセラレーション フローに統合できます。 - PL カーネルのコンパイルおよびリンク
-
PL カーネルは、ターゲット プラットフォームの PL 領域にインプリメンテーションできるようにコンパイルされます。PL カーネルは、Vitis コンパイラ (
v++
) または C/C++ カーネルの場合は Vitis HLS を使用し、RTL カーネルの場合はpackage_xo
コマンドを使用して、ザイリンクス オブジェクト形式 (XO) ファイルにコンパイルできます。カーネルのコーディングに関する詳細は、C/C ++ カーネル または RTL カーネル を参照してください。Vitis コンパイラは、カーネル XO ファイルをハードウェアプラットフォームにリンクして、アプリケーションのデバイス実行ファイル (.xclbin) を作成します。詳細は、デバイス バイナリのビルドを参照してください。
v++ --link
コマンドでザイリンクス オブジェクト (XO) ファイルをターゲット ハードウェア プラットフォームとリンクしてデバイス バイナリ ファイル (.xclbin) を作成し、これをターゲット プラットフォーム上のザイリンクス デバイスに読み込みます。 - システム パッケージ
-
v++ --package
コマンドを使用して、ホスト アプリケーションおよび PL カーネル バイナリを含むアプリケーションをロードおよび実行するために、システムの設定と起動に必要なファイルを収集します。この段階では、ソフトウェアまたはハードウェアのエミュレーションとデバッグを実行するために必要なパッケージをビルドしたり、ハードウェア上でアプリケーションを実行するための SD カードを作成したりします。詳細は、システムのパッケージを参照してください。 - アプリケーションの実行
- アプリケーションを実行する際は、ソフトウェア エミュレーション、ハードウェア エミュレーションを実行するか、実際の物理的なアクセラレータ プラットフォームで実行できます。エンベデッド プロセッサ プラットフォームでのアプリケーションの実行は、データセンター アクセラレータ カードでの実行とは異なります。詳細は、アプリケーション ハードウェア ビルドの実行を参照してください。
- ビルド ターゲットがソフトウェアまたはハードウェア エミュレーションの場合、Vitis コンパイラでカーネルのシミュレーション モデルがデバイス バイナリに生成されます。ビルド ターゲット で説明されているように、 ターゲットを使用すると、デザインをビルドおよび実行して比較的速いサイクルで反復実行し、アプリケーションをデバッグしてパフォーマンスを評価できます。
- ビルド ターゲットがハードウェア システムの場合、Vitis コンパイラは Vivado Design Suite を使用して合成およびインプリメンテーションを実行してからタイミングを解決し、.xclbin を生成します。このプロセスは自動化されて高品質の結果を生成しますが、ハードウェアに精通した開発者の場合は、設計プロセスで Vivado ツールを完全に活用することもできます。