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

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

手順 4: プラットフォームのテスト

テスト 1: プラットフォーム情報の読み込み

Vitis 環境設定では、platforminfo ツールで XPFM プラットフォーム情報をレポートできます。

詳細なログ
# in kv260_custom_pkg directory platforminfo ./kv260_custom/export/kv260_custom/kv260_custom.xpfm ========================== Basic Platform Information ========================== Platform: kv260_custom_platform File: <your path to>/kv260_custom_platform.xpfm Description: A custom platform KV260 platform ===================================== Hardware Platform (Shell) Information ===================================== Vendor: xilinx Board: KV260_Custom_Platform Name: KV260_Custom_Platform Version: 0.0 Generated Version: 2021.1 Hardware: 1 Software Emulation: 1 Hardware Emulation: 1 Hardware Emulation Platform: 0 FPGA Family: zynquplus FPGA Device: xck26 Board Vendor: xilinx.com Board Name: xilinx.com:kv260:1.1 Board Part: XCK26-SFVC784-2LV-C ================= Clock Information ================= Default Clock Index: 2 Clock Index: 1 Frequency: 100.000000 Clock Index: 2 Frequency: 200.000000 Clock Index: 3 Frequency: 400.000000 ================== Memory Information ================== Bus SP Tag: HP0 Bus SP Tag: HP1 Bus SP Tag: HP2 Bus SP Tag: HP3 Bus SP Tag: HPC0 Bus SP Tag: HPC1 ============================= Software Platform Information ============================= Number of Runtimes: 1 Default System Configuration: kv260_custom_platform System Configurations: System Config Name: kv260_custom_platform System Config Description: kv260_custom_platform System Config Default Processor Group: xrt System Config Default Boot Image: standard System Config Is QEMU Supported: 1 System Config Processor Groups: Processor Group Name: xrt Processor Group CPU Type: cortex-a53 Processor Group OS Name: linux System Config Boot Images: Boot Image Name: standard Boot Image Type: Boot Image BIF: kv260_custom_platform/boot/linux.bif Boot Image Data: kv260_custom_platform/xrt/image Boot Image Boot Mode: sd Boot Image RootFileSystem: Boot Image Mount Path: /mnt Boot Image Read Me: kv260_custom_platform/boot/generic.readme Boot Image QEMU Args: kv260_custom_platform/qemu/pmu_args.txt:kv260_custom_platform/qemu/qemu_args.txt Boot Image QEMU Boot: Boot Image QEMU Dev Tree: Supported Runtimes: Runtime: OpenCL

クロック情報とメモリ情報が正しく設定されていることを確認できます。

テスト 2: Vector Addition アプリケーション

ベクター加算は、最も単純なアクセラレーション PL カーネルです。Vitis では、このアプリケーションを自動的に作成できます。このテストを実行すると、プラットフォームの AXI 制御バス、メモリ インターフェイス、および割り込み設定が正しく機能しているかどうかを確認できます。

  1. Vector Addition アプリケーションの作成

    • 以前使用していた Vitis ワークスペースを開きます。

    • [File] → [New] → [Application Project] をクリックします。

    • [Next] をクリックします。

    • プラットフォームに kv260_custom を選択し、[Next] をクリックします。

    • プロジェクトの名前を vadd に設定し、[Next] をクリックします。

    • ドメインを linux on psu_cortexa53 に設定します。

    • Sys_root path<full_pathname_to_kv260_custom_pkg>/sysroots/cortexa72-cortexa53-xilinx-linux に設定します (sdk.sh を実行して作成したため)。

    • Root FS を手順 2 で作成した kv260_custom_plnx/images/linux ディレクトリの rootfs.ext4 に設定します。

    • [Kernel Image]kv260_custom_plnx/images/linux ディレクトリの Image に設定します。[Next] をクリックします。

    • [Acceleration templates with PL and AIE accelerators] → [Vector Addition] をクリックし、[Finish] をクリックしてアプリケーションを生成します。

    • [Explorer] ビューで vadd.prj ファイルをダブルクリックして開き、[Active build configuration][Emulation-SW] から [Hardware] に変更します。

    • [Explorer] ビューで vadd_system を選択し、ツールバーの [Build] ボタンをクリックします。

ビルド タスクにかかる時間は 10 〜 30 分程度です。ビルドが完了すると、ビルド結果が vadd_system/Hardware/ ディレクトリに格納されます。

  • package.build/package/system.bit: vadd カーネルおよびプラットフォーム コンポーネントを含む PL ビットストリーム。

  • package/sd_card/binary_container_1.xclbin: XRT 設定用のアクセラレーション バイナリ コンテナー。system.bit とカーネルを記述するメタデータが含まれます。

  • package/sd_card/vadd: コンパイルされたホスト アプリケーション。

注記: 作成した kv260_custom プラットフォームが表示されない場合は、[New Application Project] ウィザードで [Add] ボタンをクリックしてプラットフォーム リストに追加し、kv260_custom_pkg/kv260_custom ディレクトリを指定します。

注記: KV260 プラットフォームはエミュレーションをサポートしていません。

注記: ホスト アプリケーションのクロスコンパイルには、アプリケーション プロジェクトの Sysroot が必要です。KV260 スターター キットにプリインストールされている Linux カーネルと rootfs を使用するため、このチュートリアルでは Linux カーネル イメージと rootfs はオプションですが、アプリケーション プロジェクトの作成時にカーネル イメージと rootfs の情報を追加しておくと、v++ パッケージの段階でシステム プロジェクトのビルド時にこれらのファイルを使って完了できるため有益なことがあります。Image と rootfs の追加を省略すると、ホスト アプリケーションと hw_link コンポーネントを別々にビルドできます。必要なファイルは引き続き生成されます。

  1. ボードに転送するファイルを準備します。

    Kria SOM は xmutil を使用してアプリケーションをダイナミックにロードします。ロード プロセスには、PL ビットストリームのダウンロードとデバイス ツリー オーバーレイのロードが含まれます。xmutil を実行するには、アプリケーション ファイルが /lib/firmware/xilinx ディレクトリに保存されている必要があります。

    このアプリケーションに関連するファイルには、同じファイル名を使用する必要がありますが、拡張子は異なっている必要があります。これはベクター加算アプリケーションなので、この例では vadd と呼びます。ボードの最終的なディレクトリは次のようになります。

    # On target board ls /lib/firmware/xilinx/vadd vadd.dtbo vadd.bit.bin shell.json

    fpgamanager がロードできるように、ビットストリームは bin 形式である必要があります。次のコマンドを使用して、.bit ファイルを .bit.bin ファイルに変換します。

    cd vadd_system/Package echo 'all:{system.bit}'>bootgen.bif bootgen -w -arch zynqmp -process_bitstream bin -image bootgen.bif mv system.bit.bin vadd.bit.bin

    DTBO のソースは、手順 2 で生成されます。dtbo を生成して名前を変更するには、ファイル名がアプリケーション名に合うように、少しアップデートが必要です。

    • step2_petalinux/dt_output/pl.dtsi を開きます。

    • firmware-name = の行をアップデートします。xmutil がビットストリームをロードできるように値に vadd.bit.bin と入力します (firmware-name = "vadd.bit.bin";)。

    • dtc -@ -O dtb -o step4_validate/vadd.dtbo step2_petalinux/dt_output/pl.dtsi コマンドを使用して pl.dtsi を dtbo にコンパイルします。

    shell.json を準備します。これは、ほかのアプリケーションからコピーしたり、次のコンテンツを使用して作成したりできます。

    { "shell_type" : "XRT_FLAT", "num_slots": "1" }
  2. ボードにファイルを転送します。

    SOM Starter Kit のイーサネット ケーブルが接続されていることを確認します。SCP または SFTP を使用して、ホストからターゲット ボードにファイルをアップロードします。

    # Running on host machine scp vadd.dtbo vadd.bit.bin shell.json vadd binary_container_1.xclbin petalinux@<SOM Starter Kit IP>:/home/petalinux
  3. ハードウェアをロードします。

    # Running on target board sudo mkdir /lib/firmware/xilinx/vadd cd /home/petalinux mv vadd.dtbo vadd.bit.bin shell.json /lib/firmware/xilinx/vadd sudo xmutil listapps sudo xmutil unloadapp sudo xmutil loadapp vadd
  4. ボード上での Vector Addition アプリケーションの実行

    • vadd アプリケーションを実行します

    chmod +x ./vadd ./vadd binary_container_1.xclbin
    • プログラムの結果が表示されます。

     xilinx-k26-starterkit-2021_1:~$ ./vadd binary_container_1.xclbin INFO: Reading binary_container_1.xclbin Loading: 'binary_container_1.xclbin' TEST PASSED

注記: 「error while loading shared libraries: libxilinxopencl.so.2: cannot open shared object file: No such file or directory」のようなエラーが出る場合は、KV260 のデフォルトの rootfs に XRT がインストールされていないことが原因です。sudo dnf install xrt を実行して XRT をインストールしてください。

まとめ

カスタム プラットフォームを最初から作成し、簡単な vadd アプリケーションを使用して検証しました。

このリポジトリに含まれるほかのチュートリアルも参照してください。

ファースト トラック

このチュートリアルでカスタム プラットフォームと検証アプリケーションを作成するときに問題が発生した場合は、ref_files ディレクトリで make all を実行して、リファレンス デザインを生成すると、ご自身のデザインと比較できます。

PetaLinux プロジェクトは KV260 BSP を必要とするので、make 実行前に KV260 Starter Kit BSP をダウンロードし、ref_files/step2_petalinux ディレクトリに保存してください。

コマンド ライン フローは、Vitis IDE フローと比較すると、わずかに違います。

  • ベクター加算アプリケーションは、Vitis IDE フローでは vadd および binary_container_1.xclbin と呼ばれます。コマンド ライン フローで生成されたファイルは、simple_vadd および krnl_vadd.xclbin と呼ばれます。

Copyright© 2021 Xilinx