TMC-20603: Registers with High Immediate Fan-Out Span
Description
Violations of this rule identify registers with immediate fan-out span scores exceeding the value of the minimum_span 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 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.
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 |
---|---|---|---|---|---|
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-span 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