Vitis Model Composer では、コード生成プロセスの一部として、ハードウェア イメージ (BOOT.BIN) を作成するのに必要なコードも生成されます。これには、さまざまなスクリプト、PL データ ムーバー IP、PS で実行されるホスト アプリケーション、入力テスト データ、およびゴールデン出力データが含まれます。run_hw.sh
は、必要な環境を設定し、<code-generation-directory>/run_hw ディレクトリに生成された makefile を実行して BOOT.BIN を生成します。
ハードウェア検証フローで生成されるさまざまなファイルの詳細は、出力ファイル を参照してください。次の図に、BOOT.BIN 生成フローを示します。
次の表に、<code-generation-directory>/run_hw ディレクトリに生成される makefile で実行されるステップを示します。
makefile のステップ | 説明 |
---|---|
prepdir | 必要なファイルを <Target_directory> から run_hw/ ディレクトリにコピーします。また、入力テストデータとゴールデン出力データを生成します。これらはハードウェアに渡され、PL データ ムーバー IP を介して交換できます。 |
datamover_kernels | PL データ ムーバー カーネル (自動生成された mm2s.cpp および s2mm.cpp) をコンパイルし、v++ を使用して対応する XO ファイルを生成します。 |
hls_kernels | デザインに HLS カーネルが含まれている場合に、それらをコンパイルして対応する XO ファイルを生成します。 スクリプト |
hdl_kernels | デザインに HDL カーネルが含まれている場合に、それらをコンパイルして対応する 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 (デフォルト ターゲット) に設定して実行すると、このステップは実行されません。 |