Duplication Rules
The following rules detect an issue with hierarchical tree duplication:
- TMC-20500 – Hierarchical Tree Duplication was Shallower Than Possible
- TMC-20501 – Hierarchical Tree Duplication was Shallower than Requested
Refer to the Intel Quartus Prime Help for more information about these rules.
If you are familiar with the design, you can make duplication decisions. Duplicate the register directly in the RTL, using dont_merge or preserve_syn_only to prevent synthesis from optimizing them away. For example, duplicating high fan-out broadcast signals by module.
The following are high fan-out rules:
- HRR-10115 – Nets with fan out exceeding threshold
- HRR-10003 – Registers with high fan-out non-globals
- TMC-20051 – High fan-out net drives RAM control signals.
To reduce fan-out on a RAM control signal, divide the memory into smaller chunks and send each duplicated control signal to its own memory. This technique works on wide memories.
Rule | Description |
---|---|
TMC-20550 – Duplicate Candidate Rejected for Placement Constraint | Registers with a tight placement constraint such as logic lock region, clock region, or location assignments cannot be automatically duplicated. Relax the constraint to include the register’s fan-outs or use the duplication techniques. |
TMC-20551 – Automatically Discovered Duplication Candidates Likely Requires More Duplication | Quartus® Prime duplicates candidate registers automatically. If fan out is still large, apply further duplication techniques to reduce fan-out further. |
Rule TMC-20552 detects rejected duplication candidates. Rejection reasons include:
- Registers drive global signals or clock signals.
- Registers have timing assignments or exceptions applied to them.
- Registers have a preserve attribute or a PRESERVE_REGISTER assignment.
- Registers are marked as don't touch.
- Registers drive or are driven by other partitions.