report_timing - 2025.2 English - UG835

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2025-11-20
Version
2025.2 English

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] [‑inter_slr <arg>] [‑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.
[-inter_slr] Report timing paths crossing between SLRs: Values: any_crossing, data_crossing, clock_crossing, no_crossing
[-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

Categories

Report, Timing

Description

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.

Important: If the design has no timing constraints, 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 -from/-to options specifies unconstrained timing paths.
Tip: The report_timing allows multi-threading 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 minimum and maximum delays for both slow and fast corners. You can configure the type of analysis performed by the config_timing_corners command. Changing the default value is not recommended as it reduces timing analysis coverage.

Note: By default, the report is generated in the Tcl console or STD output. You can also generate the report to the GUI, to a file, or as a string.

Arguments

-from <args> - (Optional) Specifies starting points of the timing paths to run the analysis. You can specify ports, pins, or cells as timing path startpoints. For clock object, it analyzes all startpoints clocked by the named clock.

-rise_from <args> - (Optional) Similar to the -from option, but it considers the rising edge of signals from the startpoints. For a clock object, it considers only the paths launched by the rising edge of the clock as startpoints.

-fall_from <args> - (Optional) Similar to the -from option, but it considers only the falling edge of signals coming from the startpoints for timing analysis. For a clock object, it considers only the paths launched by the falling edge of the clock as startpoints.

-to <args> - (Optional) Specifes endpoints or destination objects of timing paths to run the analysis. You can specify ports, pins, and cell objects as endpoints. For a clock object, it analyzes all endpoints clocked by the named clock.

-rise_to <args> - (Optional) Similar to the -to option, but it considers only the rising edge of signals going to the endpoints. For a clock object, it considers only the paths captured by the rising edge of the named clock 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. For a clock object, it considers only the paths captured by the falling edge of the named clock as endpoints.

-through <args> - (Optional) Considers 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 passes through any of the specified objects.

-rise_through <args> - (Optional) Similar to the -through option, but performs timing analysis only on the paths with a rising transition at the specified objects.

-fall_through <args> - (Optional) Similar to the -through option, but performs timing analysis only on the 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 value 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.

Tip: -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. The value must be greater than or equal to 1. By default, the report_timing command reports 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 returns 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 completes incrementally, based on prior results stored in a 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: Reuses placement and routing to this pin.
  • Placement: Reuses cell placement but does not reuse routing to this pin.
  • Moved: Reuses neither cell placement nor routing to this pin.
  • 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, get_path_groups command determines the defined path groups.

Tip: Each clock creates a path group. Path groups can also be defined with the 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 includes unconstrained paths with infinite slack.

-user_ignored - (Optional) Report only the paths that are ignored by timing due to presence of set_false_path or set_clock_groups constraints.

Note: The -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.

Tip: The -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 command overwrites the existing file unless -append is specified.

Note: If you do not specify the path, the tool searches for the specified file in the current working directory and then in the launch directory.

-append - (Optional) Appends the output of the command to the specified file rather than overwriting it.

Note: The -append option is used only 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, it appends the logical path to identify cells belonging either to a reconfigurable partition (:RP#) or to the static region (:S).

-no_pblock - (Optional) Does not report the Pblock information when there are some Pblocks on the path.

-routable_nets - (Optional) Reports the number of routable nets traversed as a property of the timing paths returned.

-inter_slr <args> (Optional) Reports the timing paths based on the SLR crossing characteristics. Ensure to specify one of the following values: any_crossing, data_crossing, clock_crossing, or no_crossing.

-return_string - (Optional) Directs the output to a Tcl string rather than to the standard output. A variable definition captures the Tcl string, parses, or processes as required.

Note: This argument cannot be used with the -file option.

-warn_on_violation - (Optional) Specifies that Vivado™ Design Suite generates Critical Warnings when the timing report contains a timing violation.

-cells <arg> - (Option) Generates the timing report on the specified hierarchical cells. Report details are based on the specified cells rather than the whole design.

-rpx <arg> - (Optional) Specifies 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. An RPX file stores all the report information as an interactive report and lets you reload into the Vivado Design Suite using the open_report command. You must add a .rpx file extension to the specified file name, as the Vivado tool does not automatically assign a file extension.

Note: If you do not specify the path, the tool searches for the specified file in the current working directory and then in the launch directory.
-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.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.

Examples

The following example reports the timing for 5 worst paths in the design and reports 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. It defines both 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

The following example only reports the worst timing path with datapath crossing SLRs:

report_timing -inter_slr data_crossing