非プロジェクト モードのフローの作成 - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: IP インテグレーターを使用した IP サブシステムの設計 (UG994)

Document ID
UG994
Release Date
2023-10-18
Version
2023.2 日本語

非プロジェクト モードで実行する際は、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]
ヒント: プロジェクトに ELF ファイルを追加してプロセッサに関連付けると、デバイスをプログラムするビットストリームを生成するときに、Vivado ツールでブロック RAM メモリ情報 (MMI ファイル) と ELF ファイルの内容がデバイス ビットストリーム (BIT) に自動的に統合されます。

ビットストリームを生成した後に、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 を参照してください。