UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 40090

Design Assistant for XST - Help with Register Duplication and fanout

Description

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.

Solution

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).

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
38927 Xilinx Solution Center for XST N/A N/A

Associated Answer Records

Answer Number Answer Title Version Found Version Resolved
40085 Design Assistant for XST - Performance Considerations N/A N/A
AR# 40090
Date Created 03/14/2011
Last Updated 12/16/2013
Status Active
Type Solution Center