Report timing paths
Syntax
report_timing [‑from <args>] [‑rise_from <args>] [‑fall_from <args>]
[‑to <args>] [‑rise_to <args>] [‑fall_to <args>] [‑through <args>]
[‑rise_through <args>] [‑fall_through <args>] [‑delay_type <arg>]
[‑setup] [‑hold] [‑max_paths <arg>] [‑nworst <arg>] [‑unique_pins]
[‑path_type <arg>] [‑input_pins] [‑no_header] [‑no_reused_label]
[‑slack_lesser_than <arg>] [‑slack_greater_than <arg>] [‑group <args>]
[‑sort_by <arg>] [‑no_report_unconstrained] [‑user_ignored]
[‑of_objects <args>] [‑significant_digits <arg>] [‑column_style <arg>]
[‑file <arg>] [‑append] [‑name <arg>] [‑no_pr_attribute] [‑no_pblock]
[‑routable_nets] [‑return_string] [‑warn_on_violation] [‑cells <args>]
[‑rpx <arg>] [‑quiet] [‑verbose]
Usage
Name | Description |
---|---|
[-from]
|
From pins, ports, cells or clocks |
[-rise_from]
|
Rising from pins, ports, cells or clocks |
[-fall_from]
|
Falling from pins, ports, cells or clocks |
[-to]
|
To pins, ports, cells or clocks |
[-rise_to]
|
Rising to pins, ports, cells or clocks |
[-fall_to]
|
Falling to pins, ports, cells or clocks |
[-through]
|
Through pins, ports, cells or nets |
[-rise_through]
|
Rising through pins, ports, cells or nets |
[-fall_through]
|
Falling through pins, ports, cells or nets |
[-delay_type]
|
Type of path delay: Values: max, min, min_max, max_rise, max_fall, min_rise, min_fall Default: max |
[-setup]
|
Report max delay timing paths (equivalent to -delay_type max) |
[-hold]
|
Report min delay timing paths (equivalent to -delay_type min) |
[-max_paths]
|
Maximum number of paths to output when sorted by slack, or per path group when sorted by group: Value >=1 Default: 1 |
[-nworst]
|
List up to N worst paths to endpoint: Value >=1 Default: 1 |
[-unique_pins]
|
For each unique set of pins, show at most 1 path per path group |
[-path_type]
|
Format for path report: Values: end, summary, short, full, full_clock, full_clock_expanded Default: full_clock_expanded |
[-input_pins]
|
Show input pins in path |
[-no_header]
|
Do not generate a report header |
[-no_reused_label]
|
Do not label reuse status on pins in the report |
[-slack_lesser_than]
|
Display paths with slack less than this Default: 1e+30 |
[-slack_greater_than]
|
Display paths with slack greater than this Default: -1e+30 |
[-group]
|
Limit report to paths in this group(s) |
[-sort_by]
|
Sorting order of paths: Values: group, slack Default: slack |
[-no_report_unconstrained]
|
Do not report infinite slack paths |
[-user_ignored]
|
Only report paths which have infinite slack because of set_false_path or set_clock_groups timing constraints |
[-of_objects]
|
Report timing for these paths |
[-significant_digits]
|
Number of digits to display: Range: 0 to 3 Default: 3 |
[-column_style]
|
Style for path report columns: Values: variable_width, anchor_left, fixed_width Default: anchor_left |
[-file]
|
Filename to output results to. (send output to console if -file is not used) |
[-append]
|
Append the results to file, don't overwrite the results file |
[-name]
|
Output the results to GUI panel with this name |
[-no_pr_attribute]
|
For Dynamic Function eXchange designs, do not report whether netlist resources are in the static or reconfigurable regions |
[-no_pblock]
|
Report timing without pblock column |
[-routable_nets]
|
Store the number of routable nets traversed as a property on timing paths. |
[-return_string]
|
Return report as string |
[-warn_on_violation]
|
Issue a critical warning when the report contains a timing violation |
[-cells]
|
Run report_timing on the specified cell(s) |
[-rpx]
|
Filename to output interactive results to. |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
Description
report_timing
reports on unconstrained paths in the design. However, if even one path has timing constraints then report_timing
only reports on the constrained paths in the design, unless unconstrained timing paths are specified by the -from/-to
options.This command performs timing analysis on the specified timing paths of the current Synthesized or Implemented Design. By default the tool reports the timing path with the worst calculated slack within each path group. However, you can optionally increase the number of paths and delays reported with the use of the -nworst
or -max_paths
arguments.
report_timing
can be multi-threaded to speed the process. Refer to the set_param
command for more information on setting the general.maxThreads parameter.The timing engine runs in "quad" timing mode, analyzing min and max delays for both slow and fast corners. You can configure the type of analysis performed by the config_timing_corners
command. However, it is not recommended to change the default because this reduces the timing analysis coverage.
Arguments
-from
<args> - (Optional) The starting points of the timing paths to be analyzed. Ports, pins, or cells can be specified as timing path startpoints. You can also specify a clock object, and all startpoints clocked by the named clock will be analyzed.
-rise_from
<args> - (Optional) Similar to the -from
option, but only the rising edge of signals coming from the startpoints are considered for timing analysis. If a clock object is specified, only the paths launched by the rising edge of the clock are considered as startpoints.
-fall_from
<args> - (Optional) Similar to the -from
option, but only the falling edge of signals coming from the startpoints are considered for timing analysis. If a clock object is specified, only the paths launched by the falling edge of the clock are considered as startpoints.
-to
<args> - (Optional) The endpoints, or destination objects of timing paths to be analyzed. Ports, pins, and cell objects can be specified as endpoints. A clock object can also be specified, in which case endpoints clocked by the named clock are analyzed.
-rise_to
<args> - (Optional) Similar to the -to
option, but only the rising edge of signals going to the endpoints is considered for timing analysis. If a clock object is specified, only the paths captured by the rising edge of the named clock are considered as endpoints.
-fall_to
<args> - (Optional) Similar to the -to
option, but only the falling edge of signals going to the endpoints is considered for timing analysis. If a clock object is specified, only the paths captured by the falling edge of the named clock are considered as endpoints.
-through
<args> - (Optional) Consider only paths through the specified pins, cell instance, or nets during timing analysis. You can specify individual -through
(or -rise_through
and -fall_through
) points in sequence to define a specific path through the design for analysis. The order of the specified through points is important to define a specific path. You can also specify through points with multiple objects, in which case the timing path can pass through any of the specified through objects.
-rise_through
<args> - (Optional) Similar to the -through
option, but timing analysis is only performed on paths with a rising transition at the specified objects.
-fall_through
<args> - (Optional) Similar to the -through
option, but timing analysis is only performed on paths with a falling transition at the specified objects.
-delay_type <arg>
- (Optional) Specifies the type of delay to analyze when running the timing report. The valid values are min, max, min_max, max_rise, max_fall, min_rise, min_fall. The default setting for -delay_type
is max.
-setup
- (Optional) Check for setup violations. This is the same as specifying -delay_type max
.
-hold
- (Optional) Check for hold violations. This is the same as specifying -delay_type min
.
-setup
and -hold
can be specified together, which is the same as specifying -delay_type min_max
.
-max_paths <arg>
- (Optional) The maximum number of paths to output when sorted by slack; or maximum number of paths per path group when sorted by group, as specified by -sort_by
. This is specified as a value greater than or equal to 1. By default the report_timing
command will report the single worst timing path, or the worst path per path group.
-nworst <arg>
- (Optional) The number of timing paths per endpoint to output in the timing report. The timing report will return the <N> worst paths based on the specified value, greater than or equal to 1. The default setting is 1.
-unique_pins
- (Optional) Show only one timing path for each unique set of pins.
-path_type <arg>
- (Optional) Specify the path data to output in the timing report. The default format is full_clock_expanded. The valid path types are:
- end - Shows the endpoint of the path only, with calculated timing values.
- summary - Displays the startpoints and endpoints with slack calculation.
- short - Displays the startpoints and endpoints with calculated timing values.
- full - Displays the full timing path, including startpoints, through points, and endpoints.
- full_clock - Displays full clock paths in addition to the full timing path.
- full_clock_expanded - Displays full clock paths between a master clock and generated clocks in addition to the full_clock timing path. This is the default setting.
-input_pins
- (Optional) Show input pins in the timing path report. For use with -path_type
full, full_clock, and full_clock_expanded.
-no_header
- (Optional) Do not write a header to the report.
-no_reused_label
- (Optional) Disable the reporting of reuse information in designs that use incremental place and route based on an existing design checkpoint (DCP) file. Both placement and routing can be completed incrementally, based on prior results stored in a Design Checkpoint file (DCP), using the incremental implementation flow. Refer to the read_checkpoint
command, or to Vivado Design Suite User Guide: Implementation (UG904) for more information on incremental place and route. By default, designs using incremental place and route have pins labeled with information related to the physical data reused from the specified incremental checkpoint. This option removes the reuse labels including the following:
- Routing: Placement and routing to this pin are reused.
- Placement: Cell placement is reused but routing to this pin is not reused.
- Moved: Neither cell placement nor routing to this pin is reused.
- New: The cell, net, or pin is new. It does not exist in the incremental checkpoint.
-slack_lesser_than <arg>
- (Optional) Report timing on paths with a calculated slack value less than the specified value. Used with -slack_greater_than
to provide a range of slack values of specific interest.
-slack_greater_than <arg>
- (Optional) Report timing on paths with a calculated slack value greater than the specified value. Used with -slack_lesser_than
to provide a range of slack values of specific interest.
-group
<args> - (Optional) Report timing for paths in the specified path groups. Currently defined path groups can be determined with the get_path_groups
command.
group_path
command. The -group
option cannot be specified with -of_objects
, which also specifies timing path objects.
-sort_by [ slack | group ]
- (Optional) Sort timing paths in the report by slack values, or by path group. Valid values are slack or group. By default, the report_timing
command reports the worst, or -nworst
, timing paths in the design. However, with -sort_by group
, the report_timing
command returns the worst, or -nworst
, paths of each path group.
-no_report_unconstrained
- (Optional) Do not report timing on unconstrained paths. Without this option specified, the report_timing
command will include unconstrained paths which will have infinite slack.
-user_ignored
- (Optional) Report only the paths that are usually ignored by timing due to presence of set_false_path
or set_clock_groups
constraints.
-user_ignored
and -no_report_unconstrained
options are mutually exclusive and cannot be specified together. The -user_ignored
option is also mutually exclusive with the -slack_lesser_than
and -slack_greater_than
options.
-of_objects
<args> - (Optional) Report timing on the specified timing path objects. Used with the get_timing_paths
command.
-of_objects
option cannot be used with the various forms of -from
, -to
, or -through
options which are also used to identify timing paths to report. The -of_objects
option, which defines a timing path object containing a DELAY_TYPE property, cannot be used with -setup
, -hold
or -delay_type
, which all also define a delay type. The -of_objects
option also cannot be specified with -group
, which defines groups of timing path objects.
-significant_digits <arg>
- (Optional) The number of significant digits in the output results. The valid range is 0 to 3. The default setting is 3 significant digits.
-column_style [ variable_width | anchor_left | fixed_width ]
- (Optional) Specify the format of the timing path portion of the timing report output. The default format is anchor_left.
-file <arg>
- (Optional) Write the report into the specified file. The specified file will be overwritten if one already exists, unless -append
is also specified.
-append
- (Optional) Append the output of the command to the specified file rather than overwriting it.
-append
option can only be used with the -file
option.
-name <arg>
- (Optional) Specifies the name of the results set for the GUI.
-no_pr_attribute <arg>
- (Optional) This option disables the standard reporting of the Partial Reconfiguration (PR) attribute data. For PR designs, the logical path is appended to identify cells as belonging to a reconfigurable partition (:RP#), or to the static region of the design (:S).
-no_pblock
- (Optional) Do not report the Pblock information when there are some Pblocks on the path.
-routable_nets
- (Optional) Report the number of routable nets traversed as a property of the timing paths returned.
-return_string
- (Optional) Directs the output to a Tcl string rather than to the standard output. The Tcl string can be captured by a variable definition and parsed or otherwise processed.
-file
option.
-warn_on_violation
- (Optional) Specify that a Critical Warning will be generated by the Vivado™ Design Suite when the timing report contains a timing violation.
-cells <arg>
- (Option) Generate the timing report on the specified hierarchical cells. The details of the report will be based on the specified cells rather than the whole design.
-rpx <arg>
- (Optional) Specify the file name and path of the report file (RPX) to write. This is different from writing the report results to a file using the -file
argument. The RPX file is an interactive report that contains all the report information and can be reloaded into memory in the Vivado Design Suite using the open_report
command. You should add a .rpx file extension to the specified file name, as the Vivado tool will not automatically assign a file extension.
-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.Examples
The following example reports the timing for the 5 worst paths in the design, reporting the full timing path, including input pins, with timing values:
report_timing -nworst 5 -path_type full -input_pins
The following example shows the use of the multiple through points to define both a specific path (through state_reg1) and alternate paths (through count_3 or count_4), and writes the timing results to the specified file:
report_timing -from go -through {state_reg1} \
-through { count_3 count_4 } \
-to done -path_type summary -file C:/Data/timing1.txt