LNT-30011: Design Contains Combinational Loops
Description
Violations of this rule identify combinational loops detected in the synthesized netlist. A combinational loop is combinational logic that drives itself without synchronization by a register.
Combinational loops can result in instability and unreliability in the circuit. For example, due to the following reasons, the combinational loop after fitting may not function as originally intended in the design:
- The behavior of a combinational loop often depends on the relative propagation delays of the combinational loop's logic.
- Design tools experience difficulties when handling combinational loops.
The full structure detected in each violation contains one or more intersecting combinational loops. The entire structure can be visualized by right-clicking the violation and selecting "Locate Node->Locate in RTL Viewer".
Recommendation
Restructure the netlist to break all combinational loops within each violating structure by cutting feedback edges and/or by inserting register stages.
Severity
High
Tags
Tag | Description |
---|---|
nonstandard-timing | Design rule checks related to topologies which have unique timing analysis methodologies and may prove problematic. |
Device Family
- Intel®Agilex™
- Intel®Stratix® 10
- Intel®Arria® 10
- Intel®Cyclone® 10 GX