AR# 53732

14.4 - Vivado/XPS - Vivado での XPS/XMP ソース用の非プロジェクト フロー チュートリアル

説明

背景
非プロジェクト フローは、デザイン データおよびデザインのステートをユーザーが自分で管理するフローです。このフローでは、Vivado ツールでさまざまなソース ファイルを読み込み、デザインをインプリメントするまでのすべてのフローをメモリ内で実行します。インプリメンテーション プロセスの度の段階でも、スクリプトに基づいてさまざまなレポートを生成できます。非プロジェクト モードで実行している場合、
ソース ファイルおよび run の管理、ソース ファイルへのクロスプローブ、デザインのステートのレポートなど、プロジェクト ベースの機能は使用できないことに注意してください。ディスクのソース ファイルがアップデートされるたびに、デザインを読み込み直す必要があります。プロジェクト モードでは、デフォルトのレポートや中間ファイルは生成されません。レポートの生成は、Tcl コマンドを使用してスクリプトで実行します。
ツール要件
Vivado 2012.4 以降

ソリューション


フロー図

ProjectLess_Flow_Diagram.jpg


非プロジェクト フローの例
コンソールに次のコマンドを入力すると、Vivado ツールを GUI モードではなく Tcl モードで起動できます。このコマンドにより Vivado のコマンド ライン インターフェイスが起動し、vivado% プロンプトが表示されます。このモードを使用する場合は、Tcl スクリプトを作成し、Vivado プロンプトで source コマンドを使用して読み込む方法をお勧めします。
vivado -mode tcl
まず、エンベデッド デザインのソース ファイルを追加します。
vivado% add_files -norecurse <absolute path to the XMP file>
XMP ファイルを追加したときに、クリティカル警告メッセージが表示されることがあります。これは、Vivado で読み込まれるデフォルトのデバイスと XMP ファイルで設定されているデバイスが一致していないためです。この後説明するように、synth_design 段階でデバイスを設定するので、この警告は無視しても問題ありません。
エンベデッド ソースが正しく追加されたら、最上位 RTL ファイルおよび最上位 XDC 制約を追加します。
vivado% read_verilog <top-level>.v
vivado% read_xdc <top-level>.xdc
XMP ソースは直接合成できないので、次のコマンドを使用して最上位 HDL ラッパーを作成することも可能です。
vivado% make_wrapper-files[get_files <path to XMP file>] -top -fileset [get_filesets sources_1] -import
vivado% read_verilog <absolute path to the generated wrapper file>
これにより最上位 HDL ファイルが作成され、ソース リストに追加されます。最上位ラッパー ファイルは、XMP ファイルと同じ場所に作成されます。
MicroBlaze ベースのデザインでは、I-LMB にブートループまたは独自の ELF 形式の実行ファイルを格納する必要があります。
ブートループ ELF の例は、$XILINX_EDK/sw/lib/microblaze/mb_bootloop_le.elf にあります。
その後、ELF を追加し、MicroBlaze インスタンスに関連付けます。これを実行するには、次のコマンドを使用します。
vivado% add_files <ELF file Targeted to BRAM with .elf extension>
vivado% set_property MEMDATA.ADDR_MAP_CELLS {<XPS system instance name>/microblaze_0} [get_files <BRAM Targeted ELF File>]
デザインに複数の階層レベルがある場合は、階層が正しいことを確認してください。
この後、通常どおり合成、配置配線を実行し、デザインをインプリメントします。合成 (synth_design) の段階では、ターゲット デバイスをデフォルトのターゲット デバイスとして指定する必要がありますが、これは必要なデバイスとは限りません。
デザイン インプリメンテーションの特定の段階でレポートを生成したり、チェックポイントを生成する場合は、スクリプトに適切なコマンドを追加します。
デザインが配線されたら、Tcl プロシージャ write_bitstream を拡張子 .bit を含めたファイル名を指定して実行し、ビットストリームを生成します。このビットストリームでは、BRAM に ELF データが含まれています。
vivado% write_bitstream <bitfile name>
ハードウェア システムを SDK にエクスポートする場合は、次のコマンドを使用します。
vivado% export_hardware [get_files <Path to XMP file>] -dir <Absolute Export Directory Path>
スクリプト
次に、XPS/XMP ソース用の非プロジェクト フローを実行するテンプレート スクリプトを示します。
add_files <Absolute path to XMP file>
vivado% read_verilog <top-level>.v *
vivado% read_xdc <top-level>.xdc *
add_files <ELF file Targeted to BRAM with .elf extension>
set_property MEMDATA.ADDR_MAP_CELLS {{<XPS system instance name>/microblaze_0} [get_files <BRAM Targeted ELF File>]
synth_design -part <part_name> -top <top-level module name>
opt_design
place_design
route_design
write_bitstream system.bit
export_hardware [get_files <Absolute path to XMP file>] -dir <Absolute Export Directory Path>
* -> 最上位スタブが存在しない場合は、次のコマンドを使用してエンベデッド ソース用に最上位ラッパーを生成します。
make_wrapper-files[get_files <path to XMP file>] -top -fileset [get_filesets sources_1] -import
read_verilog <absolute path to the generated wrapper file>
このスクリプトを必要に応じて変更し、Vivado Tcl プロンプトで source コマンドを使用して実行します。
vivado% source <user_script_for project_less_flow>.tcl

参照
AR# 53732
日付 03/07/2013
ステータス アクティブ
種類 一般
ツール