非プロジェクト モードの場合、ソース ファイルが自動的に管理されるプロジェクト モードと異なり、ソース ファイルはユーザーが管理する必要があります。Tcl コマンドを使用すると、ネットリスト、ビットストリーム、レポート ファイルなど、処理するファイルおよび生成する出力ファイルを指定できます。表 1 は、よく使用されるプロジェクト モードのコマンドとそれに対する非プロジェクト モードのコマンドをリストしています。デザイン フローのプロジェクト モードおよび非プロジェクト モードの詳細は、 『Vivado Design Suite ユーザー ガイド: デザイン フローの概要』 (UG892) のこのセクションを参照してください。Tcl コマンドの詳細は、 『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) を参照してください。
read_*
コマンドのリスト順にコンパイルされます。操作 | プロジェクト モードのコマンド | 非プロジェクト モードのコマンド |
---|---|---|
デザイン ソースの読み込み |
|
(例: 非プロジェクト モードの場合、 |
合成の実行 |
launch_runs synth_1
|
synth_design
|
インプリメンテーションの実行 |
launch_runs impl_1
|
|
launch_runs impl_1 -to_step write_bitstream
|
write_bitstream <file_name>
|
|
レポートの生成 |
report_methodology
プロジェクト モードでは、多くのレポートが自動的に生成されます。すべてのレポートをリストするには、 |
プロジェクト モードと同じ |
シミュレーションの実行 |
launch_xsim
|
このコマンドは、Vivado IDE 外で Vivado シミュレーションを起動します。 |
デザイン チェックポイントの書き出し |
プロジェクト モードの場合、DCP ファイルはインプリメンテーションの段階ごとに自動的に作成されます。 |
プロジェクト モードと同じ |
次は、さまざまなソース ファイルを読み込む非プロジェクト モードのスクリプト例です。
# create_bft_batch.tcl
# bft sample design
# A Vivado script that demonstrates a very simple RTL-to-bitstream batch flow
#
# NOTE: typical usage would be "vivado -mode tcl -source create_bft_batch.tcl"
#
# STEP#0: define output directory area.
#
set outputDir ./Tutorial_Created_Data/bft_output
file mkdir $outputDir
#
# STEP#1: setup design sources and constraints
#
read_vhdl -library bftLib [ glob ./Sources/hdl/bftLib/*.vhdl ]
read_vhdl ./Sources/hdl/bft.vhdl
read_verilog [ glob ./Sources/hdl/*.v ]
read_xdc ./Sources/bft_full.xdc
#
# STEP#2: run synthesis, report utilization and timing estimates, write checkpoint
design
#
synth_design -top bft -part xc7k70tfbg484-2 -flatten rebuilt
write_checkpoint -force $outputDir/post_synth
report_timing_summary -file $outputDir/post_synth_timing_summary.rpt
report_power -file $outputDir/post_synth_power.rpt
#
# STEP#3: run placement and logic optimzation, check against the UltraFast
methodology checks, report utilization and timing estimates, write checkpoint design
#
opt_design
report_methodology -file $outputDir/post_opt_methodology.rpt
place_design
phys_opt_design
write_checkpoint -force $outputDir/post_place
report_timing_summary -file $outputDir/post_place_timing_summary.rpt
#
# STEP#4: run router, report actual utilization and timing, write checkpoint design,
run drc, write verilog and xdc out
#
route_design
write_checkpoint -force $outputDir/post_route
report_timing_summary -file $outputDir/post_route_timing_summary.rpt
report_timing -sort_by group -max_paths 100 -path_type summary -file
$outputDir/post_route_timing.rpt
report_clock_utilization -file $outputDir/clock_util.rpt
report_utilization -file $outputDir/post_route_util.rpt
report_power -file $outputDir/post_route_power.rpt
report_drc -file $outputDir/post_imp_drc.rpt
write_verilog -force $outputDir/bft_impl_netlist.v
write_xdc -no_fixed_only -force $outputDir/bft_impl.xdc
#
# STEP#5: generate a bitstream
#
write_bitstream -force $outputDir/bft.bit