Causality Cycle Illustration

In this example, two compilation scenarios are shown. The first one leads to a sorted equation system while the second introduces a fake causality cycle that prevents any code generation.

O1, O2 and O3 signals are independent. But, when choosing a total order, we can introduce a causality cycle. If ordering (1) is chosen, in module final, taking into account the renaming, we obtain the system: { L1 = I, L2 = L1, O = L2 } which is well sorted. At the opposite, if we choose ordering (2), in module final we get: { L2 = L1, O = L2,L1 = I } which has a causality cycle.