report_register_spread (::quartus::sta)
The following table displays information for the report_register_spread Tcl command:
| Tcl Package and Version |
Belongs to ::quartus::sta 1.0 |
|||
| Syntax | report_register_spread [-h | -help] [-long_help] [-append] [-file <name> ] [-from_clock <names> ] [-min_sinks <number> ] [-num_registers <number> ] [-panel_name <name> ] [-sink_type <endpoint|immediate> ] [-spread_type <tension|span|area|angle|count> ] [-stdout] [-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 is overwritten. This option is not supported for HTML files. | |||
| -file <name> | Sends the results to an ASCII or HTML file. Depending on the extension | |||
| -from_clock <names> | Valid source clocks (string patterns are matched using Tcl string matching) | |||
| -min_sinks <number> | Specifies the minimum number of sinks per register (must be at least 2) | |||
| -num_registers <number> | Specifies the top N registers with highest spread | |||
| -panel_name <name> | Sends the results to the panel and specifies the name of the new panel | |||
| -sink_type <endpoint|immediate> | Determines which sink type [endpoint|immediate] is analyzed | |||
| -spread_type <tension|span|area|angle|count> | Determines which spread type is analyzed [tension|span|area|angle|count] | |||
| -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. | |||
| -to_clock <names> | Valid sink clocks (string patterns are matched using Tcl string matching) | |||
| Description |
This report analyzes the final placement of a design and strive to
identify registers with sinks that are pulling them in various directions.
These registers are then recommended as candidates for duplication
There are two types of sink: "Immediate Fan-Out" and "Timing Path
Endpoint". There are two types of pull: "Tension" and "Span"
The report can be directed to the Tcl console ("-stdout", default), a
file ("-file"), the Timing Analyzer graphical user interface
("-panel_name"), or any combination of the three.
Use "-sink_type" to specify between endpoints and immediate
fanouts to report on. If not specified, the default reports on
endpoint fanouts.
Timing Path Endpoints: the nodes (usually registers) that terminate
timing paths from a register
Immediate Fanouts: the immediately connected nodes (lookup tables,
other registers, RAM or DSP blocks, etc.) of the register.
Use "-spread_type" to specify the type of spread to report on, a user
can choose between:
Tension: the sum over each sink of the distance from it to the
centroid of all the sinks.
Span: the maximum 1-dimensional delta between the left/bottom-most
sink and the right/top-most sink.
Area: the area covered by a box drawn around the left/bottom-most
sink and the right/top-most sink.
Angle: the angular span of the sinks around to the source, defined
as 360 minus the largest angle between any two angularly-adjacent
sinks that are each a sufficiently large distance from the source.
Count: the number of each sink type associated with the source register.
The analysis can be limited to clocks using the "-from_clock" and "-to_clock"
options.
Use "-min_sinks" to filter out any registers with a number of sinks below
the threshold. Span, Area, and Angle have a low sensititivity to sink
count, which can result in registers with a small sink count having a larger
spread score than other registers with more sinks. The minimum number of
sinks must be at least 2 for the spread calculations to work properly.
Use "-num_registers" to limit the number source registers reported.
Registers are reported in decreasing order of the spread type selected
so the top n registers are reported. If you do not specify this
option, the number of source registers displayed is limited to a
maximum of 10.
|
|||
| Example Usage |
project_open my_project # Always create the netlist first create_timing_netlist read_sdc my_project.sdc update_timing_netlist report_register_spread -num_registers 20 -spread_type "tension" -sink_type "endpoint" project_close |
|||
| Return Value | Code Name | Code | String Return | |
| TCL_OK | 0 | INFO: Operation successful | ||
| TCL_ERROR | 1 | ERROR: Invalid value %u for argument <string>. Specify a value of at least %u. | ||