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> ] [-npaths <number> ] [-nworst <number> ] [-pairs_only] [-panel_name <name> ] [-recovery] [-removal] [-report_clock_groups] [-rise_from_clock <names> ] [-rise_to_clock <names> ] [-setup] [-split_by_corner] [-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. | |||
-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 | |||
-split_by_corner | When set, running this command with the -panel option will create a folder containing versions of this report for selected multiple operating conditions. This option has no effect when used with the -stdout or -file options. | |||
-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. Paths will not be analyzed: This exception has no paths for the given analysis type (setup/hold/recovery/removal). This occurs when a timing exception has paths, but only for analysis types other than the type used for the current report. 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 Timing Analyzer 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 Timing Analyzer-extension substitution rules. See the help for use_timing_analyzer_style_escaping for details. *************************** Clock-Domains-Crossing Verification: 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. 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 |