Visible to Intel only — GUID: kzg1591800862595
Ixiasoft
Reducing High Fan-out Nets
High fan-out nets are difficult to place optimally and can reduce the fMAX of your design. They often lead to congestion and can result in long-path and short-path imbalances that limits retiming in critical chains. While these signals may not be critical, they can span large distances and warp the optimization of other paths around them.
- Ensure you duplicate high fan-out driver registers:
- Use 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.
The compiler automatically promotes recognized high fan-out nets to the global clock network. It also makes a higher optimization effort during place and route stages to duplicate registers. - Set Quartus® Prime to automatically create duplicate register trees based on estimated physical proximity or based on hierarchy.
- Apply the following QSF assignment to duplicate registers based on estimated physical proximity:
set_instance_assignment -name DUPLICATE_REGISTER -to <register name> <num duplicates>
Where register_name is the name of the register being duplicated and num_duplicates is the number of duplicates to create, including the original.
Quartus® Prime creates duplicates during the fitter stage and assigns fan-outs based on early estimates of physical distance from their destinations. - Apply the following QSF assignment to perform duplications using hierarchy information:
set_instance_assignment -name DUPLICATE_HIERARCHY_DEPTH -to <register_name> <level_number>Where:
- Register name is the last register in the chain that fans out to multiple hierarchies
- Level number is the number of registers in the chain to duplicate.
- Apply the following QSF assignment to duplicate registers based on estimated physical proximity:
- Typically, set up a synchronous reset tree. Resets are often a significant source of high fan-out nets. The registers in the chain must satisfy the following conditions to be included in duplication:
- Only another register must feed registers.
- Combinatorial logic must not feed registers.
- Registers must not be part of a synchronizer chain.
- Registers must not have any secondary signals.
- Registers must not have a preserve attribute or a PRESERVE_REGISTER assignment.
- All registers in the chain except the last one must have only one fan-out.