NSS-30011: Design Contains Combinational Loops

Combinational loop is a combinational logic that drives itself without being synchronized by a register. The following image shows an example of a combinational loop:

Figure 1. Combinational Loop

A particular occurrence of combinational loops involves feeding the output of a flip-flop back to an asynchronous pin (clear, preset, and load) of the same flip-flop through some combinational logic. As shown in the following figure, a combinational path exists between an asynchronous pin and the output of the flip-flop, and a loop is then created.

Figure 2. Flip-Flop

Recommendation

Restructure the netlist to break the combinational loop as these loops can cause significant stability and reliability problems in a design. For example, due to the following reasons, the combinational loop after fitting may not function as it was originally intended to function 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.

Severity

Medium

Stage

Analysis and Elaboration

Device Family

  • Intel® Arria® 10
  • Intel® Cyclone® 10