ハードウェア イメージを生成するためのフロー - 2021.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2021-10-22
Version
2021.2 日本語

Vitis Model Composer では、コード生成プロセスの一部として、ハードウェア イメージ (BOOT.BIN) を作成するのに必要なコードも生成されます。これには、さまざまなスクリプト、PL データ ムーバー IP、PS で実行されるホスト アプリケーション、入力テスト データ、およびゴールデン出力データが含まれます。run_hw.sh は、必要な環境を設定し、<code-generation-directory>/run_hw ディレクトリに生成された makefile を実行して BOOT.BIN を生成します。

ハードウェア検証フローで生成されるさまざまなファイルの詳細は、出力ファイル を参照してください。次の図に、BOOT.BIN 生成フローを示します。

図 1. BOOT.BIN 生成フロー

次の表に、<code-generation-directory>/run_hw ディレクトリに生成される makefile で実行されるステップを示します。

表 1. makefile で実行されるステップ
makefile のステップ 説明
prepdir 必要なファイルを <Target_directory> から run_hw/ ディレクトリにコピーします。また、入力テストデータとゴールデン出力データを生成します。これらはハードウェアに渡され、PL データ ムーバー IP を介して交換できます。
datamover_kernels PL データ ムーバー カーネル (自動生成された mm2s.cpp および s2mm.cpp) をコンパイルし、v++ を使用して対応する XO ファイルを生成します。
hls_kernels デザインに HLS カーネルが含まれている場合に、それらをコンパイルして対応する XO ファイルを生成します。

スクリプト HlsKernelXOGen.sh により、v++ を使用して XO が生成されます。HLS カーネルにコンパイル フラグを指定した場合、それらは対応するカーネルのコンパイル時に v++ コンパイラに渡されます。

hdl_kernels デザインに HDL カーネルが含まれている場合に、それらをコンパイルして対応する XO ファイルを生成します。

スクリプト HDLKernelXOGen.tcl により、Vivado を使用して XO が生成されます。

graph 生成された AIE グラフをコンパイルし、AIE コンパイラを使用して libadf.a を生成します。

反復ワークフロー (AIE コードをインクリメンタルに変更し、ハードウェア イメージを再生成) では、新しい libadf.a を生成するためグラフが再コンパイルされることがあります。その場合でも、実際の AIE シム ソリューションは前の反復と同じであることがあります。makefile により生成された AIE シム ソリューションの変更が検出され、aiesoldiff というファイルのタイムスタンプが更新されます。このタイムスタンプは、プラットフォームを再生成する必要があるかどうかを判断するために使用されます。

platform カーネルとグラフをベース プラットフォームにリンクしてプラットフォームをビルドし、XSA および XCLBIN を生成します。

このステップでは、AIE IP とプラットフォームのほかの部分との接続を含む <AIE_Subsystem>.cfg ファイルも使用されます。

application ホスト アプリケーションをコンパイルして main.elf を生成します。

スクリプト genPSMain.sh によりヘッダー ファイル xmc_ps_main.h はが生成され、これがホスト アプリケーション main.cpp に含まれます。この生成されたファイル xmc_ps_main.h には、PL データ ムーバー カーネルのドライバーの詳細とベース アドレス情報、およびシミュレーション中に生成された入力テスト データと出力ゴールデン データ サンプル サイズが含まれます。

pdi v++ パッケージャーを実行し、ハードウェア イメージ (BOOT.BIN) を生成します。生成された BOOT.BIN をハードウェア上で実行し、結果をシミュレーションからのゴールデン出力データと比較して検証できます。

ハードウェア上での BOOT.BIN の実行に関する詳細は、ハードウェア上での BOOT.BIN の実行 を参照してください。

makefile をターゲットを hw_emu に設定して実行すると、v++ パッケージャーが実行され、デザインでハードウェア エミュレーションを実行するスクリプト launch_hw_emu.sh が生成されます。

run_emu makefile をターゲットを hw_emu に設定して実行すると、生成されたスクリプト launch_hw_emu.sh が実行されてデザイン上でハードウェア エミュレーションが実行されます。

makefile をターゲットを hw (デフォルト ターゲット) に設定して実行すると、このステップは実行されません。