AN 584: Timing Closure Methodology for Advanced FPGA Designs

ID 683145
Date 10/08/2021
Public
Document Table of Contents

1.6.3. Handling High Fan-Out Registers

Wide distribution of registers is one of the main causes of excess delay on timing paths.

You can use the Chip Planner to view the location of high fan-out registers and the locations they are driving. In most circumstances, the Fitter placement of registers is superior to manual placement.

For more information about the Chip Planner, refer to Analyzing and Optimizing the Design Floorplan in Intel® Quartus® Prime Pro Edition User Guide: Design Optimization.

High fan-out registers, such as broadcast signals driving multiple blocks, placed in different directions, can have placement-warping effects on the floorplan that impact maximum clock speed. You can identify high fan-out registers by clicking Tasks > Reports > Design Metrics > Report Register Spread.

Figure 8. Report Register Spread

The report shows the list of possible registers being pulled by sink registers in various directions. To learn more about this report, refer to Report Register Spread in Intel® Quartus® Prime Pro Edition User Guide: Design Optimization.

You can correct this problem by duplicating the register using the DUPLICATE_REGISTER or DUPLICATE_HIERARCHY_DEPTH .qsf assignment.

Alternatively, you can manually modify the RTL to implement the duplication, but you must also add the preserve_syn_only synthesis attributes to the duplicates to preserve the nodes through synthesis. The attribute allows the Fitter to do retiming or other optimizations if needed.

logic dup_reg /* synthesis preserve_syn_only */;
(*preserve_syn_only*) logic dup_reg;

For more information on register duplication commands and techniques, refer to Duplicate Registers for Fan-Out Control in Intel® Quartus® Prime Pro Edition User Guide: Design Optimization.