AR# 40090


Design Assistant for XST - Help with Register Duplication and fanout


Please refer to this answer record for help with Register Duplication and fanout.

Note: This answer record is a part of the Xilinx Solution Center for XST (Xilinx Answer 38927). The Xilinx Solution Center for XST is available to address all questions related to XST. Whether you are starting a new design or troubleshooting a problem, use the Solution Center for XST to guide you to the right information.


Register Duplication is an XST option which helps to improve design timing performance. It reduces fanout on registers by replicating registers, which improves path delays to meet the timing requirements.

Register Duplication can be used along with the Max_fanout constraint. The Max_fanout constraint limits the fanout of nets or signals. It guides XST on how many registers to be duplicated.

Before setting Max_fanout (fanout = 4)

After setting Max_fanout=2

Register Duplication and Max_fanout can be applied globally or to a specific entity, module, component or signal. Refer to (Xilinx Answer 39749) for help on applying XST constraints.

Some considerations when using Register Duplication and Max_fanout:

  • Max_fanout: This is not a technology limit, but only a guide to XST. This limit may not be precisely respected, especially when the limit is small (less than 30). So Max_fanout should be given a reasonable value.
  • Hierarchy impact on max_fanout: When max_fanout is applied to a net which is going through hierarchy boundaries, BUFs will be inserted in the module whose hierarchy boundary is preserved instead of duplicating the source registers. To prevent the BUFs from being inserted, apply "keep_hierarchy = false" to the module.
  • Registers utilization will be increased by using Register Duplication.
  • Xilinx recommends manual register duplication in the RTL code, especially when the registers are not automatically replicated as expected by using Max_fanout and Register Duplication.
  • When Register Duplication is enabled or registers are manually replicated, Equivalent Register Removal should be disabled. Otherwise, the replicated registers will be removed. See (Xilinx Answer 20476) for help with Equivalent Register Removal

For more information of Register Duplication and Max_fanout, please refer to XST User Guide See (Xilinx Answer 38931).



Answer Number 问答标题 问题版本 已解决问题的版本
38927 面向 XST 的 Xilinx 解决方案中心 N/A N/A


Answer Number 问答标题 问题版本 已解决问题的版本
40085 Design Assistant for XST - Performance Considerations N/A N/A
AR# 40090
日期 12/16/2013
状态 Active
Type 解决方案中心
People Also Viewed