Many of the Vivado Design Suite Tcl commands allow you to redirect the
information returned by the command to a file with the -file
option,
for printing or processing outside of the tool; or as a string that can be saved in a
variable with the -return_string
option for further processing within
the Vivado tools.
All of the report commands support the -file
option. File output is useful for report commands that output a great deal of information, that may require further review, or support the documentation of a design project, or to pass to downstream processes such as other design disciplines, or other departments. Some of the commands supporting file output include:
report_datasheet
report_drc
report_power
report_timing
report_timing_summary
report_utilization
For example, to save the results of the report_timing
command to a file:
report_timing -delay_type max -file setup_violations.rpt
report_timing -delay_type min -file hold_violations.rpt
A relative or absolute path can be specified as part of the file name. A relative path is
relative to the directory from which the Vivado tools have been
started, or to the current working directory which can be retrieved with the
pwd
command.
To append the content from a command to an existing file, use the -append
option in addition to -file
. For example, the code below creates one file, all_violations.rpt
, that combines the output of two separate commands:
report_timing -delay_type max -file all_violations.rpt
report_timing -delay_type min -file -append all_violations.rpt
After the file has been created, you may have need to access the file from the file system, opening the file to read from it, or to write to it. The Vivado Design Suite Tcl console offers a number of commands for accessing files. See Accessing Files for more information.
All report_*
commands also support the -return_string
option. This option directs the command to return its output as a string that can be assigned to a Tcl variable. Assigning the command output to a variable is useful for further processing within the Tcl script, to allow extraction of key information to enable flow control, branching, and to set other variables for use in the script.
Some of the commands that support -return_string
are:
report_clocks
report_clock_interaction
report_disable_timing
report_environment
report_high_fanout_nets
report_operating_conditions
report_power
report_property
report_pulse_width
report_route_status
report_utilization
You can split the returned string from the report on the newline character, \n
, to process the string line by line as a list:
set timeLines [split [report_timing -return_string -max_paths 10] \n ]
The Vivado Design Suite Tcl console also offers many tool for working with strings. See Working with Strings for more information.