report_exceptions (::quartus::sta)

The following table displays information for the report_exceptions Tcl command:

Tcl Package and Version

Belongs to ::quartus::sta 1.0

Syntax report_exceptions [-h | -help] [-long_help] [-append] [-detail <summary|path_summary|path_only|path_and_clock|full_path> ] [-fall_from_clock <names> ] [-fall_to_clock <names> ] [-file <name> ] [-from <names> ] [-from_clock <names> ] [-hold] [-less_than_slack <slack limit> ] [-multi_corner] [-npaths <number> ] [-nworst <number> ] [-pairs_only] [-panel_name <name> ] [-recovery] [-removal] [-report_clock_groups] [-rise_from_clock <names> ] [-rise_to_clock <names> ] [-setup] [-stdout] [-through <names> ] [-to <names> ] [-to_clock <names> ]
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-append If output is sent to a file, this option appends the result to that file. Otherwise, the file will be overwritten. This option is not supported for HTML files.
-detail <summary|path_summary|path_only|path_and_clock|full_path> Option to determine how much detail should be shown in the path report
-fall_from_clock <names> Valid source clocks (string patterns are matched using Tcl string matching)
-fall_to_clock <names> Valid destination clocks (string patterns are matched using Tcl string matching)
-file <name> Sends the results to an ASCII or HTML file. Depending on the extension
-from <names> Valid sources (string patterns are matched using Tcl string matching)
-from_clock <names> Valid source clocks (string patterns are matched using Tcl string matching)
-hold Option to report clock hold paths
-less_than_slack <slack limit> Limit the paths reported to those with slack values less than the specified limit.
-multi_corner When set, running this command with the -panel option will create a folder containing versions of this report for multiple operating conditions. This option has no effect when used with the -stdout or -file options.
-npaths <number> Specifies the number of paths to report (default=1, or the same value as nworst, if nworst is specified. Value of 0 causes all paths to be reported but be wary that this may be slow)
-nworst <number> Specifies the maximum number of paths to report for each endpoint. If unspecified, there is no limit. If nworst is specified, but npaths is not, npaths defaults to the same value as nworst
-pairs_only When set, paths with the same start and end points are considered equivalent. Only the worst case path for each unique combination is displayed.
-panel_name <name> Sends the results to the panel and specifies the name of the new panel
-recovery Option to report recovery paths
-removal Option to report removal paths
-report_clock_groups Option to treat clock groups as exceptions and show them in the report
-rise_from_clock <names> Valid source clocks (string patterns are matched using Tcl string matching)
-rise_to_clock <names> Valid destination clocks (string patterns are matched using Tcl string matching)
-setup Option to report clock setup paths
-stdout Send output to stdout, via messages. You only need to use this option if you have selected another output format, such as a file, and would also like to receive messages.
-through <names> Valid through nodes (string patterns are matched using Tcl string matching)
-to <names> Valid destinations (string patterns are matched using Tcl string matching)
-to_clock <names> Valid destination clocks (string patterns are matched using Tcl string matching)
Description
Reports status and timing analysis results for each timing
exception in your design.

The status is relative to the paths covered by the -from, -to,
and other options. A complete timing exception relative to the
values specified for the -from and -to options may not actually
be complete with respect to the full design.

Complete: The exception has not been overridden and is valid
There are paths affected by this exception.

Partially Overridden: The exception includes some paths that
have been overridden by one or more higher-precedence
exceptions.

Fully Overridden: All paths affected by this exception have been
overridden by one or more higher-precedence exceptions.

Invalid: No paths are affected by this exception. This occurs
when a timing exception has valid -from, -to, or -through
collections, but there are no actual paths from the -from nodes
to the -to nodes.

Use the -setup (default), -hold, -recovery, or -removal options
to further filter the exceptions reported.

The report can be directed to the Tcl console using -stdout
(default), a file using -file, the TimeQuest graphical user
interface using -panel_name, or any combination of those three
options.

You can limit the reporting by this command to specific start
and end points, using the -from and -to options. You can further
limit reporting to clocks using the -from_clock and -to_clock
options, or to specific edges of the clock using the
-rise_from_clock, -fall_from_clock, -rise_to_clock, and
-fall_to_clock options. Additionally, the -through option can be
used to restrict reporting to paths which go through specified
pins or nets.

To determine which timing exceptions override other timing
exceptions, use the same -from and -to options that were used
with the overridden timing exception.

Use the -npaths option to limit the number of paths to report
per timing exception. If you do not specify this option, only
the single worst-case path per timing exception is provided. Use
the -less_than_slack option to limit output to all paths with
slack less than the specified value, up to the number specified
by -npaths.

Use the -nworst option to limit the number of paths reported for
each unique endpoint. If you do not specify this option, the
number of paths reported for each destination node is bounded
only by the -npaths option. If this option is used, but -npaths
is not specified, -npaths defaults to the same value specified
for -nworst.

Use the "-pairs_only" option to filter the output further, restricting
the results to only unique combinations of start and end points.

Use the -detail option to specify the desired level of report
detail. Specifiying "summary" generates a single table listing
only the highlights of each timing exception (status and
worst-case slack). Specifying "path_summary" generates a table,
per timing exception, listing only the highlights of each
path. Specifying "path_only" reports the path from the source to
the destination without any detail about the clock
path. Instead, the clock network delay is shown as a single
number. This is the default behavior. Specifying
"path_and_clock" extends the arrival and required paths back to
the launch and latch clocks. Specifying "full_path" causes
continued tracing back through generated clocks to the
underlying base clock.

False path exceptions (set_false_path) are reported as if the
false path was not applied, similar to the -false_path option
for report_timing.

The values of the "-from", "-to", and "-through" options are
either collections or a Tcl list of wildcards used to create
collections of appropriate types. The values used must follow
standard Tcl or TimeQuest-extension substitution rules. See the
help for use_timequest_style_escaping for details.

***************************
Clock-Domains-Crossing Verification:

Beginning with the Quartus II software version 15.1, you can
validate the list of paths that are cut by the set_clock_groups
SDC command.

To treat clock groups as timing exceptions (meaning that they
will be shown in the Timing Exceptions Report with all other
exceptions), run "report_exceptions -report_clock_groups". If
any pair of clocks in your design are cut by a set_clock_groups
command and NOT cut by a set_false_path command, the Report shows
paths between that pair of clocks as a clock-to-clock exception.

NOTE: This feature is exclusive to TimeQuest Pro, which is
the default Timing Analyzer for Arria 10 and Stratix 10.

Example:
set_clock_groups -logically_exclusive -group {clkA clkB} -group {clkC clkD}
report_exceptions -report_clock_groups -npaths 0 -detail path_only

You might want to run "report_exceptions -report_clock_groups" if:

1. You want to check which paths are cut by a set_clock_groups
SDC command.

2. You want to cut clock paths, but don't want to add
set_clock_groups because you're concerned that you might cut
a path incorrectly. With the "report_exceptions
-report_clock_groups" command, you can add set_clock_groups
to split clocks that are truly asynchronous, then add
set_false_path commands to manually cut what you want, and
then verify (in the Report) that no paths were found (since
false paths have priority). If a path is found by the report,
you can correct that without wasting a compilation concentrating
on some unrelated false paths.

3. If you use the set_clock_groups command and have some logic
that is behaving badly and think it's timing related, run the
"report_exceptions -report_clock_groups" command on that
hierarchy to verify whether the correct paths have been cut.
********************************
Example Usage
# Reports all timing exceptions for a setup analysis.
report_exceptions

# Reports all timing exceptions for a hold analysis.
report_exceptions -hold

# Reports all timing exceptions affecting input paths for
# recovery analysis, reporting the 10 worst paths per exception.
report_exceptions -from [all_inputs] -to [all_registers] \
  -recovery -npaths 10 -detail full_path

# Reports all paths affected by timing exceptions, including
# all clock-to-clock-paths cut by clock groups.
report_exceptions -report_clock_groups -npaths 0 -detail path_only
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful