Vitis エンベデッド プラットフォーム

Vitis™ 統合ソフトウェア プラットフォームは、FPGA、Zynq®-7000 SoC、および Zynq® UltraScale+™ MPSoC に基づいたヘテロジニアス プラットフォームでエンベデッド ソフトウェアおよびアクセラレーション アプリケーションを作成する環境を製品開発者に提供します。この資料では、Zynq UltraScale+ MPSoC のエンベデッド プラットフォームの作成について説明します。

Vitis ターゲット プラットフォームは独自のハードウェアおよびソフトウェア コンポーネントでカスタマイズできますが、2 つの一般的なプラットフォーム タイプがあります。1 つ目のプラットフォーム タイプは、アナログを直接以前にザイリンクス SDK ツールによるソフトウェア開発で使用されたハードウェア定義ファイルにしたものです。2 つ目のプラットフォーム タイプは、アクセラレーション カーネルをサポートするハードウェアと、Linux およびザイリンクス ランタイム (XRT) ライブラリを実行するターゲット用のソフトウェアを含むものです。XRT ライブラリの詳細は、https://github.com/Xilinx/XRT を参照してください。

次の図は、2019.2 リリースよりも前のエンベデッド ソフトウェア アプリケーション開発の SDK フローを示しています。ハードウェア定義ファイル (HDF) が Vivado® Design Suite からエクスポートされて SDK で使用され、ボード サポート パッケージ (BSP) が生成されたら、その BSP を適用したソフトウェア アプリケーションを作成します。

1: SDK フロー

次の図は、2019.2 リリースから SDK に代わって使用される Vitis エンベデッド ソフトウェア アプリケーション開発フローを示しています。ハードウェア仕様はザイリンクス シェル アーカイブ (XSA) と呼ばれるようになり、Vivado デザインからエクスポートされますが、フォーマットが異なり、ファイル拡張子は .xsa になります。Vitis コア ツールは、プラットフォームおよび BSP のほか、このタイプの XSA の場合は FSBL および PMU ファームウェアのような、プラットフォームに関連付けられたソフトウェア ブート コンポーネントを自動的に作成します。Vitis コア ツールを使用して、プラットフォームをターゲットにするソフトウェア アプリケーションを開発します。Linux および XRT ライブラリは必要ありません。詳細は、『Vitis 統合ソフトウェア プラットフォームの資料』 (UG1416) の Vitis アプリケーション アクセラレーション開発フロー を参照してください。

2: Vitis エンベデッド ソフトウェア開発フロー

製品開発者がアプリケーションを加速させる場合は、アクセラレーション カーネルをサポートするハードウェアおよびソフトウェア コンポーネントを使用するプラットフォームを Vitis コア ツールで作成できます。Vivado Design Suite は、カーネル接続をサポートするその他の IP ブロックおよびメタデータをいくつか含む 2 つ目のタイプの XSA を生成して書き出すために使用します。次の図は、アクセラレーション カーネル アプリケーション開発フローを示しています。

3: Vitis アクセラレーション カーネル フロー

Vitis コア ツールでは、複数の言語 (OpenCL™、C、C++) でのアプリケーション開発がサポートされますが、アプリケーションは Vitis ターゲット プラットフォームをターゲットにする必要があります。ターゲット プラットフォームには、次の図に示すようにハードウェア コンポーネントとソフトウェア コンポーネントが含まれます。ページの左側のターゲット プラットフォーム表示は Vitis エンベデッド ソフトウェア開発フロー用のもので、右側がアクセラレーション カーネルをサポートするプラットフォームを示しています。違いは太字でハイライトされ、Linux + XRT、メタデータ、およびカーネル インターフェイス宣言を使用したターゲットのアクセラレーション カーネル要件を含みます。

4: Vitis ターゲット プラットフォーム

Vitis デベロッパーは、ターゲット プラットフォーム プロジェクト作成フローを使用して、ハードウェアおよびソフトウェア コンポーネントをアセンブルしてターゲット プラットフォームを生成します。コンポーネントが統合できるようになる前に、Vivado Design Suite を使用してハードウェアを作成し、PetaLinux または PetaLinux ツールと同じ Linux 出力ファイルを生成するその他の Linux 開発ツールを使用して Linux ソフトウェアを作成する必要があります。このセクションでは、Vivado を使用してハードウェアおよび必要なメタデータを作成する方法について説明します。その後、PetaLinux フローで XRT ライブラリを含む Linux ソフトウェア イメージを作成します。次の図は、ハードウェアおよびソフトウェア コンポーネントをが作成された後のエンベデッド プラットフォームの Vitis ターゲット プラットフォーム プロジェクト フローを示しています。

5: Vitis プラットフォーム プロジェクト フロー