ZCU104 での Vitis カスタム エンベデッド プラットフォームの作成¶
バージョン: Vitis 2020.2 + Vitis AI 1.3
このモジュールでは、ZCU104 用のカスタム Vitis エンベデッド プラットフォームを作成します。このプラットフォームでは、Vitis AI アプリケーションを含む Vitis アクセラレーション アプリケーションを実行できます。もちろん、一般的なエンベッド ソフトウェア アプリケーションもこのプラットフォームで実行できます。
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 デザインから始めます。
参考資料¶
プラットフォーム例
Vitis エンベデッド プラットフォーム ソース GitHub リポジトリの ZCU102 および ZCU104 ベース プラットフォームのソース コード
Copyright© 2020-2021