report_timing - 2023.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2023-05-16
Version
2023.1 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] [‑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

Categories

Report, Timing

Description

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 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.

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

Note: By default the report is written to the Tcl console or STD output. However, the results can also be written to the GUI, to a file, or returned as a string if desired.

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.

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. 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.

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 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.

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 specified file will be overwritten if one already exists, unless -append is also specified.

Note: If the path is not specified as part of the file name, the file will be written into the current working directory, or the directory from which the tool was launched.

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

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

Note: This argument cannot be used with the -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 an Xilinx® 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.

Note: If the path is not specified as part of the file name, the file will be written into the current working directory, or the directory from which the tool was launched.
-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 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