TMC-20604: Registers with High Timing Path Endpoint Span
Description
This rule identifies registers with high timing path endpoint span scores. This rule analyzes the final placement to identify registers with sinks that are pulling the register in various directions. The Compiler recommends these registers 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."
Timing path endpoints are the nodes (usually registers) that terminate timing paths from a register. The Timing path endpoint is equivalent to the nodes that the get_fanouts command returns, or the overall set of nodes that appear as a "From Node" after running the report_timing commands. Register duplication is necessary, but not always sufficient, in helping to distribute the signal more efficiently. In addition, you may need to duplicate or restructure any intermediate logic before duplicating the register.
Span is the maximum one dimensional delta between the left/bottom-most sink, and the right/top-most sink. The span value is therefore independent of the number of sinks, and it is good at detecting registers that drive a long distance in opposite directions. Register duplication can allow duplicates to travel in each direction to more efficiently disperse the signal.
Parameters
Name | Description | Type | Default Value | Min Value | Max Value |
---|---|---|---|---|---|
tension | Reports a violation for drivers that have a tension score of at least the value specified in this parameter | integer | 100000 | ||
span | Reports a violation for drivers that have a maximum 1-dimensional span of at least the value specified in this parameter | integer | 250 | ||
ignore_high_fanout_tension | Filters out registers with high immediate fan-out tension | bool | 0 | ||
ignore_high_fanout_span | Filters out registers with high immediate fan-out span | bool | 0 | ||
minimum_sinks | Filters out registers with fewer than the specified number of sinks | integer | 2 | 0 |
Recommendation
Restructure the fan-out cone of the high endpoint-span driver registers, or duplicate the driver registers. Better localization of the fan-out paths may require logic duplication or additional pipelining. If the driver registers have 1 immediate fan-out, duplicating those registers either in the RTL, or with the DUPLICATE_REGISTER or DUPLICATE_HIERARCHY_DEPTH assignments, can improve results.
Severity
Low
Tags
Tag | Description |
---|---|
register-duplication | Design rule checks related to duplication of registers in the design, either manually or automatically. |
register-spread | Design rule checks related to measuring the spread of a register's sinks, as found in the "Report Register Spread" command. |
place | Design rule checks which pertain to the Compiler's Place stage. |
Device Family
- Intel®Stratix® 10
- Intel®Agilex™
- Intel®Arria® 10