report_bottleneck (::quartus::sta)
The following table displays information for the report_bottleneck Tcl command:
Tcl Package and Version |
Belongs to ::quartus::sta 1.0 |
|||
Syntax | report_bottleneck [-h | -help] [-long_help] [-cmetric <cmetric_name> ] [-details] [-metric <default|tns|num_paths|num_fpaths|num_fanins|num_fanouts> ] [-nworst <number> ] [-panel_name <panel_name> ] [-stdout] [ <paths> ] | |||
Arguments | -h | -help | Short help | ||
-long_help | Long help with examples and possible return values | |||
-cmetric <cmetric_name> | Custom metric function to evaluate individual nodes | |||
-details | Show the detailed information (number of failing edges, number of fanins, etc) | |||
-metric <default|tns|num_paths|num_fpaths|num_fanins|num_fanouts> | Indicate the metric to use to rate individual nodes | |||
-nworst <number> | Specifies the maximum number of nodes to report. If unspecified, there is no limit | |||
-panel_name <panel_name> | Sends the results to the panel and specifies the name of the new panel | |||
-stdout | Output the result onto stdout | |||
<paths> | Paths to be analyzed | |||
Description |
Reports bottleneck nodes in a design based on user-specified criteria for rating each node. The following considerations are pre-defined num_fpaths: (default) returns the number of paths that fail timing through the node. num_fanins: returns the number of fanin edges from the node. num_fanouts: returns the number of fanout edges from the node. num_paths: returns the number of paths through the node. tns: returns the total negative slack of all the paths through the node. The paths to be analyzed can be specified by passing the result of any get_timing_paths call as the last argument to report_bottleneck. If no paths are specified, report_bottleneck analyzes the worst 1000 setup paths in the design. You can also create your own custom criteria for evaluating nodes based on the combination of the number of fanouts, fanins, failing paths, and total paths. To use custom criteria, do the following: 1. Create a Tcl procedure that takes one argument, "arg", for example. 2. Use "upvar $arg metric" in the procedure. 3. Calculate the rating based on $metric(tns), $metric(num_fanouts), $metric(num_fanins), and $metric(num_fpaths). 4. Return the rating with "return $rating". 5. Pass the name of your custom criteria procedure to report_bottleneck using the -cmetric option. Reports can be directed to the Tcl console (-stdout), the Timing Analyzer graphical interface (-panel), or a combination of the two. |
|||
Example Usage |
project_open my_project create_timing_netlist read_sdc update_timing_netlist # use the worst 500 hold paths set paths [ get_timing_paths -npaths 500 -hold ] report_bottleneck -metric default -panel "Timing Analysis Bottleneck Report - Default Metric" $paths report_bottleneck -metric tns -panel "Timing Analysis Bottleneck Report - TNS" $paths report_bottleneck -metric num_paths -panel "Timing Analysis Bottleneck Report - Number of Paths" $paths report_bottleneck -metric num_fpaths -panel "Timing Analysis Bottleneck Report - Number of Failing Paths" $paths report_bottleneck -metric num_fanouts -panel "Timing Analysis Bottleneck Report - Number of Fanouts" $paths # create custom metric and use the worst 2000 setup paths proc report_bottleneck_custom_metric {arg} { # Description: use the number of fanins as the custom metric. upvar $arg metric set rating $metric(num_fanins) return $rating } set paths [ get_timing_paths -npaths 2000 -setup ] report_bottleneck -cmetric report_bottleneck_custom_metric -panel "Timing Analysis Bottleneck Report - Custom" $paths |
|||
Return Value | Code Name | Code | String Return | |
TCL_OK | 0 | INFO: Operation successful |