Vitis™ プラットフォームの作成チュートリアル

xilinx.com の Vitis™ 開発環境を参照

ZCU104 での Vitis カスタム エンベデッド プラットフォームの作成

バージョン: Vitis 2021.2 + Vitis AI 1.4

このモジュールでは、ZCU104 用のカスタム Vitis エンベデッド プラットフォームを作成します。このプラットフォームでは、Vitis AI アプリケーションを含む Vitis アクセラレーション アプリケーションを実行できます。もちろん、一般的なエンベッド ソフトウェア アプリケーションもこのプラットフォームで実行できます。

注記: Vitis-AI 1.4は、Vitis 2021.2 でも動作しますが、このカスタム プラットフォームの検証アプリケーションは、Vitis 2021.2 用の Vitis-AI がリリースされた後に更新される場合があります。

ZCU104 は検証済みのザイリンクス評価ボードであり、Vivado にプロセッシング システムのプリセットが含まれているため、前回の概要モジュールで述べた手順 0 をスキップして、ハードウェアのビルドおよび XSA の生成から開始します。

ソフトウェア コンポーネントを準備するため、PetaLinux プロジェクトに XSA をインポートし、いくつかオプションを設定します。ソフトウェアおよびハードウェアのコンポーネントをビルドした後、プラットフォームをパッケージします。最後に、このカスタマイズされたプラットフォームをテストするため、このプラットフォームで Vitis AI アプリケーションを含むテスト アプリケーションをいくつか実行します。

カスタム プラットフォーム プランニング

作成するプラットフォームでは、最終的に次のアプリケーションを実行できるようにします。

  • Vector Addition などの Vitis アクセラレーションの例

  • Vitis AI アプリケーション

Vector Addition アプリケーションには、カーネル制御用に 1 x クロック、1 x 割り込み、1 x M_AXI、メモリ アクセス用に 1 x S_AXI が必要です。

Vitis AI アプリケーションでは、DPU が RTL カーネルとして統合されます。clk と clk2x の 2 つのクロックが必要です。200 MHz と 400 MHz のクロックを供給でき、タイミング クロージャを簡単に達成できます。割り込みも 1 つ必要です。DPU はメモリを多く必要とする IP なので、プラットフォームには複数の AXI HP インターフェイスを使用する必要があります。

ソフトウェア側では、プラットフォームで XRT、ZOCL パッケージを供給する必要があります。ホスト アプリケーションでは、XRT OpenCL API を使用してカーネルを制御できます。Vitis AI ソフトウェア フレームワークでは、XRT を使用して DPU を制御できます。ZOCL は、アクセラレーション カーネルと通信するカーネル モジュールで、デバイス ツリー ノードが必要なので、追加します。ほかの Vitis AI の依存関係も追加します。これらすべての機能は、ザイリンクスが提供する共通イメージで達成できます。これらの共通機能のほかに、GCC コンパイラを追加してアプリケーションのネイティブ コンパイルを実行し、Vitis AI デモ アプリケーション用の mesa-mega ドライバーを追加し、ネットワークがより高速に動作するようにするため dropbear を openssh に置き換える必要があります。

詳細手順チュートリアル

次のページから、プラットフォーム作成手順を示します。各ページで、プラットフォーム作成プロセスの主な手順が 1 つずつ説明されています。

まずは、手順 1: Vivado デザインから始めます。

変更ログ

2021.2

  • Vivado プロジェクトは、ハードウェアとハードウェアのエミュレーション用に XSA を個別にエクスポートします。手順 3 でプラットフォームを作成する際に、ハードウェアとハードウェア エミュレーション用に別々の XSA を指定することをお勧めします。