TMC-20601: Registers with High Immediate Fan-Out Tension
Description
Violations of this rule identify registers with immediate fan-out tension scores exceeding the value of the minimum_tension parameter. 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."
Immediate fan-outs are the immediately connected nodes (lookup tables, other registers, RAM or DSP blocks, and others) of the register. This fan-out is equivalent to fan-outs that the Chip Planner displays, and in various high fan-out reports. Register duplication directly distributes the immediate fan-outs of a register among the duplicates.
Tension is the sum over each sink of the distance from the sink, to the centroid of all the sinks. The value of tension is therefore dependent on the number of sinks. Register duplication can help to break up these clouds, since they may be the result of the placement solution getting "warped" by the presence of the register.
Registers with high tension among their immediate fan-outs prevent the Compiler from properly localizing connections and can warp the optimization of placement and routing.
Parameters
Name | Description | Type | Default Value | Min Value | Max Value |
---|---|---|---|---|---|
minimum_tension | Reports a violation for drivers that have a tension score of at least the value specified in this parameter | integer | 100000 | ||
minimum_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
Duplicate high fanout-tension driver registers. Specify the DUPLICATE_REGISTER and DUPLICATE_HIERARCHY_DEPTH assignments for automated solutions, or edit the RTL to create duplicate copies. If you edit the RTL, apply the preserve_syn_only attribute to the duplicate registers, and assign the duplicates to individual instances in the fan-out hierarchy.
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 Agilex®
- Intel Agilex®
- Intel®Arria® 10