非プロジェクト モードで実行する際は、AMD Vivado™ Design Suite を Tcl モードで起動するか、次の Tcl スクリプトを作成してツールをバッチ モードで実行することをお勧めします。
% vivado -mode batch -source non_project_script.tcl
非プロジェクト モードでは、プロジェクト オプションを次のように設定します。
set_part <part_name>
set_property TARGET_LANGUAGE <VHDL/Verilog> [current_project]
set_property BOARD_PART <board_part_name> [current_project]
set_property DEFAULT_LIB work [current_project]
非プロジェクト モードでは、ディスクにプロジェクト ファイルは保存されず、インメモリの Vivado プロジェクトが作成されます。ブロック デザインのデバイス、パーツ、ターゲット言語は、ブロック デザイン ソースの一部として格納されません。set_part
コマンドは、非プロジェクト ベース デザインのインメモリ プロジェクトを作成するか、既存のインメモリ プロジェクトのパーツを設定します。
インメモリ プロジェクトが作成されたら、ブロック デザインのソース ファイル (.bd) をプロジェクトに追加できます。この手順では、ブロック デザインが既に作成済みで、非プロジェクト フローで再利用することを想定しています。ブロック デザインの作成方法については、ブロック デザインの作成 および Tcl スクリプトを使用したプロジェクトおよびブロック デザインの作成 を参照してください。
次のいずれかの方法を使用すると、ブロック メモリをインメモリ プロジェクトに追加できます。
- 出力ファイルが生成されているブロック デザインがある場合、次のように
read_bd
Tcl コマンドを使用するとブロック デザインを追加できます。read_bd <path to the bd file>
注記: ブロック デザインが生成されない場合は、次のコマンドを追加してブロック デザインの出力ファイルを生成する必要があります。set_property synth_checkpoint_mode None [get_files <path to the bd file>] generate_target all [get_files <path to the bd file>] read_bd <path to the bd file>
注意:新しいデザインの設定 (ボード、パーツ、ユーザー リポジトリ) は、元のブロック デザインの設定と同じである必要があります。同じでない場合、ブロック デザイン内の IP がロックされます。新しいブロック デザインの設定が元のブロック デザインとは異なるものになる可能性があります。ブロック デザインが問題なく追加されたら、最上位 RTL ファイルと最上位 XDC 制約を追加する必要があります。また、ブロック デザインを最上位 RTL にインスタンシエートする必要があります。
read_verilog <top-level>.v read_xdc <top-level>.xdc
- 次のコマンドを使用してブロック デザインの HDL ラッパー ファイルを作成すると、ブロック デザインを最上位デザインとして使用できます。
make_wrapper -files [get_files <path to bd>/<bd instance name>.bd] -top read_vhdl <path to bd>/<bd instance name>_wrapper.vhd update_compile_order -fileset sources_1
これにより、最上位 HDL ファイルが作成され、ソース リストに追加されます。ブロック デザイン ソースは直接合成できないため、最上位 HDL ラッパーが必要です。
MicroBlaze™ ベースのプロセッサ デザインの場合、ELF ファイルを追加して、ブロック デザインの MicroBlaze インスタンスに関連付ける必要があります。これにより、ブロック RAM の初期化文字列に ELF ファイルからのデータが挿入されます。これは、次のコマンドで実行できます。
add_files <file_name>.elf
set_property SCOPED_TO_REF {<bd_instance_name>} [get_files <file_name>.elf]
ビットストリームを生成した後に、updatemem
ユーティリティを使用して MMI、ELF、および BIT ファイルを結合することもできます。詳細は、
『Vivado Design Suite ユーザー ガイド: エンベデッド プロセッサ ハードウェア デザイン』 (UG898) を参照してください。
デザインに複数の階層レベルがある場合は、正しい階層を指定してください。この後、通常どおりに合成、配置配線を実行し、デザインをインプリメントします。
synth_design -top <top module name>
opt_design
place_design
route_design
write_bitstream <bitstream file name>
インプリメントされたハードウェア システムを AMD Vitis™ 環境にエクスポートするには、次のコマンドを使用します。
write_hw_platform -fixed -force -file <path_to_xsa>/<xsa_name>.xsa
Tcl コマンドの詳細は、
『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) の write_hw_platform
または write_hwdef
を参照してください。