vivadoコマンドライン実行のまとめ

FPGA

最低限の設定ファイルを使って、Vivadoのコマンドラインからプロジェクト環境を再構築する場合の例です。

実行に必要なファイル

TclスクリプトファイルとRTL、SDK用のCソースがあれば、プロジェクト環境を再生成できます。VivadoのIPコアなどは、生成できるので不要です。

プロジェクトのファイル

プロジェクトのファイル

ファイル名 内容
sdk プロジェクトデータ(Cソースファイル)
rtl Verilog RTL
run.bat Vivado実行バッチファイル(Windowsの場合)
ip.tcl IP Integrator用Tclスクリプト
synth.tcl 合成用Tclスクリプト
implement.tcl インプリメンテーション用Tclスクリプト
bitgen.tcl ビットデータ生成用Tclスクリプト
load_fpga.tcl ビットデータロード用Tclスクリプト
launch_sdk.tcl SDK起動用Tclスクリプト
user_const.xdc ピンアサインなどの制約情報
dont_touch.xdc ドントタッチなどの制約情報

実行方法

Vivadoコマンドプロンプトからrun.batを実行すると、.bitが生成されます。run.batはTclスクリプトを順番に実行しているだけです。callを付けないと、バッチファイルが途中で終了してしまいました。今回は、合成用、インプリメンテーション用などでTclスクリプトを分割していますが、必ずしも分割する必要はありません。

call vivado -m64 -mode batch -source ip.tcl
call vivado -m64 -mode batch -source synth.tcl
call vivado -m64 -mode batch -source implement.tcl
call vivado -m64 -mode batch -source bitgen.tcl

実行後、ディレクトリには.bitを含めて次のような大量のファイルが生成されます。

データ生成後のディレクトリ内容

データ生成後のディレクトリ内容

SDK環境の再構成

Cソースを含むプロジェクトディレクトリだけを用意しておけば、それ以外のデータは生成できます。例えば、*_hw_platform_0やstandalone_bsp_0といったファイルは生成できるの不要です。
この例の場合、ビットデータ生成後、sdkディレクトリには次のファイルが含まれています。zed_base_wrapper.hdfは、ビットデータ生成時に生成したファイルです。

SDK用ディレクトリの中身

SDK用ディレクトリの中身

まず、launch_sdk.tclでSDKを起動します。

vivado -m64 -mode batch -source launch_sdk.tcl
create_project -in_memory -part xc7z020clg484-1
launch_sdk -workspace ./sdk -hwspec ./sdk/zed_base_wrapper.hdf

*.hdfを指定してSDKを起動すると、*hw_platform0が自動的にワークスペースに追加されます。

SDK起動時

SDK起動時

次に、File->Board Support PackageでBSPを生成します。

BSPの生成

BSPの生成

BSPの生成つづき

BSPの生成つづき

表示されるウィンドウをデフォルトの設定で確定していくと、最終的にstandalone_bsp_0が生成されます。

standalone_bsp_0の生成

standalone_bsp_0の生成

次に、File->Importで既存のプロジェクトをインポートします。インポートウィンドウの、General->Existing Projects into Workspaceを選択してNextをクリックします。

インポート

インポート

“Select root directry”に既存プロジェクトのディレクトリを指定してFinishをクリックします。

既存プロジェクトの指定

既存プロジェクトの指定

ワークスペースに既存プロジェクトが追加されます。

プロジェクト追加完了

プロジェクト追加完了

既存プロジェクトが参照するBSP名が異なる場合は、プロジェクトを右クリックして表示されるChange Referenced BSPで変更します。この例の場合はstandalone_bsp_0に変更します。

BSPを変更する場合

BSPを変更する場合

Build ConfigurationのRelease/Debugの設定を確認後、Project->Build Allを実行すればバイナリを再生成できます。

タイトルとURLをコピーしました