Allow Shift Register Merging Across Hierarchies logic option

Allows the Compiler to take shift registers from different hierarchies of your design and place the shift registers in the same RAM. Merging shift registers across hierarchies is good for logic utilization, as it allows more shift registers to be put in RAM, and it allows the different shift registers to share the same external counter logic.

Merging shift registers across hierarchies can decrease performance as it pulls together registers from different unrelated hierarchies. When this option is set to Auto, the Compiler decides whether to merge shift registers across hierarchies based on resource availability, timing and the Optimization Technique setting.

When the option is set to Always, shift registers are merged across hierarchies as much as possible. When the option is set to Off, shift registers are not merged across hierarchies. This option is ignored when the Auto Shift Register Replacement setting is set to Off. This option can be used as a project-wide option, or assigned to a design entity. This option is turned on by default.

Scripting Information

Keyword: allow_shift_register_merging_across_hierarchies

Settings: always | off |auto*

*default