Xilinx 的数据手册UG895提供了一些系统级设计的方法,写得很详细,详细到得不到重要的消息(我菜)。
Tcl命令在工程模式下以及非工程模式下有一些差异,具体什么差异,这里暂时不说,后面我想应该会有一篇博文专门讲解。(我懂了的话会有,我相信会有。)
这里寻求一种方法来学习Vivado的工程模式下如何掌握Tcl命令(工程模式下的Tcl命令)。那就是通过vivado.jou 和 vivado.log文件来学习。
下面是UG895对两者的说明:
As an alternative to creating a project in the Vivado IDE, you can create a project using a Tcl script. Most actions run in the Vivado IDE result in a Tcl command being executed. The Tcl commands appear in the Vivado IDE Tcl Console and are also captured in the vivado.jou and vivado.log files. The vivado.jou file contains just the commands, and the vivado.log file contains both commands and any returned messages. You can use these files to develop scripts for use with Project Mode.
翻译:
作为在Vivado IDE中创建项目的替代方法,您可以使用Tcl脚本创建项目。 在Vivado IDE中运行的大多数操作都会导致执行Tcl命令。 Tcl命令出现在Vivado IDE Tcl控制台中,也可以在vivado.jou和vivado.log文件中捕获。 vivado.jou文件仅包含命令,vivado.log文件包含命令和任何返回的消息。 您可以使用这些文件开发用于项目模式的脚本。
使用Vivado IDE是了解Vivado最快速的方法,通过GUI界面的方式去执行工程的创建,RTL代码的编写,综合,实现等过程,可这一系列操作的背后都是Tcl命令的执行,所以了解Vivado下的Tcl命令是有必要的。(至少给予心理上以自由。)
既然,我们的每一步操作对应的Tcl命令都会被Vivado.jou文件捕获,何不先使用Vivado IDE操作,之后参看jou文件的方式来学习工程模式下的Tcl命令呢?
下面以打开一个已经存在的工程为例,来查看到底使用到了什么样的Tcl命令。(默认你已经明白了或者学会了如何使用Vivado IDE的方式进行操作)
大致操作如下:
![](/qrcode.jpg)
打开Vivado IDE,打开工程,综合,查看综合后的各种报告,执行实现,参看实现后的各种报告,生成bit流文件。
打开Jou文件看看:(我对其添加一些注释!)
#-----------------------------------------------------------
# Vivado v2014.4 (64-bit)
# SW Build 1071353 on Tue Nov 18 18:24:04 MST 2014
# IP Build 1070531 on Tue Nov 18 01:10:18 MST 2014
# Start of session at: Mon Dec 24 15:57:03 2018
# Process ID: 9112
# Log file: C:/Users/Administrator/AppData/Roaming/Xilinx/Vivado/vivado.log
# Journal file: C:/Users/Administrator/AppData/Roaming/Xilinx/Vivado\vivado.jou
#-----------------------------------------------------------#打开GUI界面
start_gui
#打开工程
open_project G:/Vivado_file/gate_verilog/gate_verilog.xpr#
synth_design -rtl -name rtl_1
report_drc -name drc_1report_ssn -name ssn_1
#重置综合并运行综合
reset_run synth_1
launch_runs synth_1
wait_on_run synth_1
close_design
open_run synth_1 -name synth_1
set_property target_constrs_file G:/Vivado_file/gate_verilog/gate_verilog.srcs/constrs_1/new/top.xdc [current_fileset -constrset]#报告设计规则检测(drc)、利用率(utilization)
report_drc -name drc_1
report_utilization -name utilization_1#运行实现
launch_runs impl_1
wait_on_run impl_1
close_design
open_run impl_1
report_timing_summary -delay_type min_max -report_unconstrained -check_timing_verbose -max_paths 10 -input_pins -name timing_1
report_clock_networks -name {network_1}
report_clock_interaction -delay_type min_max -significant_digits 3 -name timing_2
report_drc -name drc_1
report_utilization -name utilization_1
report_power -name {power_1}#生成比特流文件
launch_runs impl_1 -to_step write_bitstream
wait_on_run impl_1#打开硬件管理器
open_hw
我知道还不够详细,但是方法大概就是如此,你可以运行一步操作,之后打开这个文件,看看运行了什么样的Tcl命令,这样便明白了每条Tcl命令的含义。
在工程模式下如果学会了使用Tcl命令,不仅可以装逼(更装逼的是非工程模式下的Tcl命令),还可以更方便的去使用Vivado IDE,当然了,内心更加自由,人也更自信了。
更进一步的学习Tcl命令,可以查看Xilinx的官方文档:
Vivado Design Suite User Guide
Using Tcl Scripting
UG894 (v2017.1) April 5, 2017
UG894 (v2017.2) June 7, 2017
在DocNav中搜索UG894即可。
忘了说了,这个Jou文件在Vivado IDE主界面下的File下查看。
更新:
在Vivado IDE中执行操作:
对应的Tcl命令为:
#打开Elaborated design,并报告drc(设计规则检测)
synth_design -rtl -name rtl_1
report_drc -name drc_1
close_design
#在打开综合设计之前要关闭上一次的Elaborated design
#打开综合设计并报告时序总结
open_run synth_1 -name synth_1
report_timing_summary -delay_type min_max -report_unconstrained -check_timing_verbose -max_paths 10 -input_pins -name timing_1
要想看每一条命令对应的报告,界面上就有。
下面想要设计一个RTL工程,一个全新的RTL工程,工程的作用是2分频。
下篇博文见吧!