エンベデッド プラットフォームのパッケージ - 2023.2 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

AMD Zynq™ UltraScale+™ MPSoC および AMD Zynq™ 7000 エンベデッド プラットフォームの場合、--package コマンド ラインは次のようになります。

v++ --package -t [sw_emu | hw_emu | hw] --platform <platform> input.xclbin [ -o output.xclbin ]
注記: 出力オプション (-o) が指定されていない場合は、デフォルト名の a.xclbin で出力ファイルが作成されます。

Versal デバイスの場合、v++ --link コマンドは、.xclbin ファイルの代わりに .xsa ファイルを作成します。この場合、.xclbin ファイルを生成するには、.xsa をパッケージ プロセスに提供する必要があります。Versal デバイスの場合の --package コマンド ラインは、次のようになります。

v++ --package -t [sw_emu | hw_emu | hw] --platform <platform> input.xsa [ -o output.xclbin ]

Versal プラットフォームの場合、パッケージ プロセスで v++ --link コマンドで生成された .xsa ファイルが使用されるほか、aiecompiler コマンドで生成された libadf.a ファイルも使用されて、出力デバイス バイナリに統合されます (Versal デザインのパッケージ を参照)。

--package コマンドには、Vitis ツールでサポートされるさまざまなプラットフォームおよびビルド ターゲットで使用できるさまざまなオプションがあります。Vitis IDE では、パッケージ プロセスが自動化されており、必要に応じて必要なファイルが作成されるようになっています。ただし、コマンド ライン フローでは、v++ --package コマンドを指定するか、config ファイルに [package] タグを追加して、そのジョブに正しいオプションを指定する必要があります。次に、ハードウェア エミュレーションのコマンド例を示します。

v++ --package --config package.cfg ./aie_graph/libadf.a \
./project.xsa -o aie_graph.xclbin

--config package.cfg オプションでは、パッケージ プロセスのさまざまなオプションを使用して、Vitis コンパイラのコンフィギュレーション ファイルを指定できます。次に、コンフィギュレーション ファイルの例を示します。

platform=xilinx_vck190_base_202310_1
target=hw_emu
save-temps=1

[package]
boot_mode=sd
out_dir=./emulation
enable_aie_debug=1
rootfs=<path_to_platform>/sw/versal/xilinx-versal-common-v2023.1/rootfs.ext4
image_format=ext4
kernel_image=<path_to_platform>/sw/versal/xilinx-versal-common-v2023.1/Image
sd_file=host.exe

ソフトウェア エミュレーションの場合、このコマンドは .xclbin または .xsa ファイルを入力として使用し、エミュレーションを起動するスクリプト (launch_sw_emu.sh または launch_hw_emu.sh) を生成し、指定した出力フォルダーに必要なサポート ファイルを書き込みます (--package.out_dir)。

アプリケーションの実行に必要な追加ファイル (入力として必要なデータ ファイル、アプリケーションの検証に必要なデータファイル、プロファイリングとデバッグ用の xrt.ini ファイルなど) を出力ファイルに含める必要があり、--package.sd_file オプションを使用して個別に転送したり、--package オプション で説明される sd_dir オプションを使用してディレクトリとして転送したりできます。

ハードウェア ビルドの場合、--package コマンドで sd_card フォルダー、または --package.boot_mode オプションで指定したブート モードによって QSPI.img が作成されます。

ヒント: PS コアで実行されるベアメタル ELF ファイルの場合、コマンド ラインに次のオプションも追加する必要があります。
--package.ps_elf <elf>,<core>

package コマンドでは、sd_card という出力フォルダーが作成され、sd_card のブート プロセスを記述した、アプリケーションのハードウェア エミュレーションを実行するのに必要なファイルすべてが含まれます。ハードウェア ビルドの場合は、デバイスをブートする SD カードを作成するのに必要なファイルすべてが含まれます。次に、ハードウェア エミュレーションのパッケージ出力例を示します。

|-- BOOT_bh.bin	//Boot header
|-- BOOT.BIN			 //Boot File
|-- boot_image.bif
|-- launch_hw_emu.sh	   //Hardware emulation launch script
|-- libadf                  //AIE emulation data folder
|   `-- cfg
|       |-- aie.control.config.json
|       |-- aie.partial.aiecompile_summary
|       |-- aie.shim.solution.aiesol
|       |-- aie.sim.config.txt
|       `-- aie.xpe
|-- plm.bin                 //PLM boot file
|-- pmc_args.txt            //PMC command argument specification file
|-- pmc_cdo.bin             //PMC boot file
|-- qemu_args.txt           //QEMU command argument specification file
|-- sd_card
|   |-- BOOT.BIN
|   |-- boot.scr
|   |-- aie_graph.xclbin
|   |-- host.exe
|   |-- Image
|-- sd_card.img
`-- sim                      //Vivado simulation folder

ハードウェア ビルド用に sd_card フォルダーを作成したら、内容を SD カードにコピーして、物理的デバイス用のブート イメージを作成します。

注記: Windows OS の場合、Etcher などのサードパーティ ツールを使用して、AMD デバイスをブートする際に使用する SD カードに書き込みます。