プラットフォームの作成

ハードウェアおよびソフトウェア コンポーネントが作成されたら、Vitis ツールで Vitis プラットフォームが作成され、2 つのコンポーネントを統合した特定のソリューションが提供されます。アクセラレーション カーネルを使用しないプラットフォームは、以前と同様、ザイリンクス ソフトウェア開発キット (SDK) を使用して作成でき、エンベデッド ソフトウェア開発がサポートされるようになっています。ただし、Vitis ツール セットの主な機能は、アクセラレーション カーネルをサポートするプラットフォームの作成および使用するためのものです。Vitis ツールを使用すると、カーネルおよび Linux XRT サポートを含むプラットフォームにより、OpenCL 実行モデルおよび従来の C/C++ コンパイルが提供されます。

このプラットフォーム作成例 (zcu102_min) の場合、Cortex™-A53 プロセッサ コアの 1 つの Linux ドメインがプラットフォームに含まれます。このプラットフォームを使用すると、アクセラレーション カーネルを使用して、PetaLinux で生成される SMP Linux システムに使用可能な 4 つの Cortex-A53 コアのいずれかで実行できる Linux アプリケーションを作成できます。

ほかのドメインをプラットフォームに追加したり、アプリケーション開発者に提供することもできます。プラットフォームは複数のドメインを使用して定義でき、ドメインごとにプロセッサ コアとそこで実行される OS/BSP が指定されます。プラットフォームにはいくつでもドメインを定義できますが、アプリケーションがプラットフォームで実行される際は、相互に競合しないドメインを使用している必要があります。つまり、エンベデッド ボードでアプリケーションのセットを実行するのに選択したドメインは、同時に実行できるようになっている必要があります。

同時に実行可能なドメインのセットは、システム プロジェクトの Vitis コンセプトでカプセル化されます。次の図では、4 つのドメインがプラットフォームに定義され、各システム プロジェクトに同時に実行可能なドメイン セットを使用するアプリケーションが含まれています。システム プロジェクト 1 は 2 つの異なる A53 コアで 2 つのベアメタル アプリケーションを実行します。システム プロジェクト 2 は 4 つの A53 コアすべてで複数の Linux アプリケーションを実行します。プラットフォームからは R5 プロセッサ ドメインをいずれかのシステム プロジェクトに追加しつつ、要件 (システム プロジェクト内のアプリケーションを同時に実行できるようにする必要あり) を満たすことができます。

1: プラットフォーム、ドメイン、およびシステム プロジェクト

Vitis プラットフォーム作成ツールの特性は、次のとおりです。

  • システム プロジェクトは、プラットフォームの異なるドメインを同時に実行する複数アプリケーションのコンテナーです。
  • ドメインは、同じタイプの 1 つまたは複数のプロセッサを制御する BSP/OS です。
  • プラットフォームには、1 つまたは複数のドメインが含まれます。
  • Vitis ワークスペースには、プラットフォームおよびシステム プロジェクトをいくつでも含めることができます。

XRT およびカーネル サポートを使用したプラットフォームの作成

Vitis IDE では、次のようにプラットフォームを作成できます。ハードウェアおよびソフトウェア コンポーネントは、それぞれ ハードウェア コンポーネントの作成 および ソフトウェア コンポーネントの作成 の方法で生成されているはずです。

  1. 作成した Vitis ワークスペース ディレクトリを使用して、プラットフォーム プロジェクトを保存します。
    cd zcu102_min_pkg/pfm
    vitis -workspace wksp1
  2. Vitis IDE で File > New > Platform Project をクリックしてプラットフォーム プロジェクトを作成します。
  3. [Create New Platform Project] ダイアログ ボックスで次を実行します。
    1. プロジェクト名を入力します。この例の場合、「zcu102_min」と入力します。
    2. チェック ボックスをそのままにして、デフォルトのディレクトリを使用します。
    3. Next をクリックします。
  4. [Platform Project] ページで次を実行します。
    1. Create from hardware specification (XSA) をクリックします。
    2. Next をクリックします。
  5. [Platform Project Specification] ページで次を実行します。
    1. Vivado® Design Suite で生成された XSA ファイルを参照します。この場合、zcu102_min_pkg/vivado/zcu102_min.xsa にあります。
    2. オペレーティング システムを linux に設定します。
    3. プロセッサを [psu_cortexa53 に設定します。
    4. チェックマークはオンのままにして、ブート コンポーネントを生成します。
    5. Finish をクリックします。
  6. [Platform Settings] ビューで次を確認します。
    • [Platform Settings] ビューの名前が zcu102_min のプラットフォーム プロジェクト名と同じになっている。
    • psu_cortexa53 デバイス アイコンが表示され、psu_cortexa53 ドメインに Linux が含まれる。
    • psu_cortexa53 デバイス アイコンが表示され、zynqmp_fsbl BSP が含まれる。
    • psu_pmu_0 デバイス アイコンが表示され、zynqmp_pmu BSP が含まれる。
  7. linux on psu_cortexa53 ドメインをクリックし、生成した Linux ソフトウェア出力ファイルへのパスを設定します。1 つの Linux ドメインを含むプラットフォームを作成していますが、[Platform Settings] ダイアログ ボックスでドメインにプラットフォームを追加することもできます。
  8. ディレクトリを参照してダイアログ ボックスを終了するのに必要なディレクトリやファイルを選択します。
    [Linux Build Output]
    zcu102_min_pkg/pfm/boot を参照して OK をクリックします。
    [Bif file]
    zcu102_min_pkg/pfm/boot/linux.bif ファイルを参照して OK をクリックします。
    グラフ
    zcu102_min_pkg/pfm/boot を参照して OK をクリックします。
    sysroot
    zcu102_min_pkg/pfm/sysroots/aarch64-xilinx-linux を参照して OK をクリックします。
  9. プラットフォームでエミュレーションをオプションでイネーブルにするには、次の手順を実行します。

    エミュレーションをサポートするため、プラットフォームは QEMU 引数ファイル、PMU 引数ファイル、およびエミュレーターが起動されたときに必要となる ELF ファイルを含むディレクトリを必要とします。zcu102_min プラットフォーム例に使用する QEMU および PMU 引数ファイルを zcu102_base プラットフォームから取得して変更します。

    1. zcu102_base プラットフォームのリンクを見つけます。
      https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/embedded-platforms.html
    2. 既存の zcu102_min_pkg/pfm ディレクトリ内に ./emulation という名前でディレクトリを作成し、zcu102_base ZIP ファイルから qemu_args.txt および pmu_args.txt ファイルを追加します。
      cd zcu102_min_pkg/pfm
      mkdir emulation
    3. qemu_args.txt および pmu_args.txt ファイルでプラットフォーム名 zcu102_base をすべて zcu102_min に置換して、保存します。
    4. [Platform Settings] ダイアログ ボックスで次を設定します。
      • QEMU Data: zcu102_min_pkg/pfm/boot ディレクトリを指定して OK をクリックします。
      • QEMU Arguments: zcu102_min_pkg/pfm/emulation/qemu_args.txt ファイルを指定して OK をクリックします。
      • PMU QEMU Arguments: zcu102_min_pkg/pfm/emulation/pmu_args.txt ファイルを指定して OK をクリックします。
  10. Vitis のエクスプローラー ビューで zcu102_min プロジェクトを選択し、Build ボタンをクリックしてプラットフォームを生成します。
生成したプラットフォームがエクスポート ディレクトリに保存されます。FSBL および PMU を再構築するのに必要な場合は、BSP およびソース ファイルも提供され、プラットフォームと関連付けられます。プラットフォームがアプリケーション開発に使用できるようになりました。
2: 生成されたプラットフォームを含むエクスポート ディレクトリ