Intel® Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 6/20/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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

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 will be 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 will report 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 will be 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.