Vivado Tcl 脚本编译工程
1 Vivado的Tcl能力概述
工具命令语言(Tcl--Tool Command Language)是Vivado®工具环境中集成的脚本语言。Tcl是半导体行业中用于应用程序编程接口的标准语言,并由Synopsys®设计约束(SDC)使用。
SDC是用于传达Synopsys Synplify和其他供应商的FPGA综合工具的时序约束的机制,并且是时序约束行业标准;因此,Tcl基础结构是脚本语言的“最佳实践”。
除了执行自动脚本之外,Tcl还使您可以对设计工具执行交互式查询。Tcl能够以交互方式“询问”设计数据库的问题,尤其是围绕工具和设计设置及状态的问题。示例包括:查询特定的时序分析报告命令有效,应用增量约束并在执行后立即执行查询以验证预期行为,而无需重新运行任何工具步骤。
2 Non-Project Mode Tcl Script Example
Non-Project Mode 包含以下6步:
1)创建文件输出文件夹
2)读取资源(verilog ip vhdl)和约束(XDC)
3)综合
4)实现
5)产生bit流
#TCL script to run xilinx vivado
# A Vivado script that demonstrates a very simple RTL-to-bitstream non-project batch flow
#
# NOTE: typical usage would be "vivado -mode tcl -source run.tcl"
#
# STEP#0: define output directory area.
#
set
outputDir ./led/outputfile
mkdir $outputDir
#
#STEP#1: setup design sources and constraints
#
read_verilog
led.v
read_xdc
led.xdc
#
# STEP#2: run synthesis, report utilization and timing estimates, write checkpoint design
#
synth_design
-part xc7a35ticsg324-1L -top led
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, report utilization and timing estimates, write checkpoint design
#
opt_design
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
report_utilizationreport_timing
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_xdc
-no_fixed_only -force $outputDir/led_impl.xdc
write_verilog
-force led_syn.v
#
# STEP#5: generate a bitstream
#
write_bitstream
-force led.bit
exit
最终生成的报告
视频演示