I manually replicate a register and apply the "equivalent_register_removal" attribute in HDL code to prevent trimming.
With an IOB=true constraint in UCF, the duplicated register can be packed into OLOGIC successfully.
However, after setting -global_opt to "area" and enabling "retiming", I cannot find this register in FPGA Editor.
Why is it removed?
How can I keep it in IOB?
There is a property called "Equivalent Register Removal" in MAP which is only available when the Global Optimization property is set to True.
The optimization caused by the option "Equivalent Register Removal" is Equivalence Removal.
When this property is set to True (by default), any registers with redundant functionality are examined to see if their removal will increase clock frequencies.
You can open the Physical Synthesis Report (*.psr) to view optimization details.
If you would like to disable the removal, uncheck this property in MAP.