You would often hear backend engineers remonstrating the frontend design
folks on the presence of combinational loops in the design. But why do
they create such a hue and cry? What possibly could one or maybe few
combinational loops do? Well, potentially, they can render the entire
functionality of the SoC haywire and not taken care off. And some
combinational loops, on the other hand, are indispensable for the
evolution of a particular technology. We'll see how and why.
A combo loop is structure which is formed by a signal starting
from an input of a combinational gate, after passing through one or more
combinational gate, reaches the same combo gate from which it started
without encountering any sequential element in between.
Here's what a generalized combo loop looks like:
- Unstable Loops: Let's start with a basic combo loop that you must have studied in your academics or at least heard about it. The reverend Ring Oscillator. It is an inveterate fallacy that a ring oscillator can be used to make a clock generating circuit. Trust me, clock generating or even divider circuits, for that matter, are not as simple as the ring oscillator shown below.
Of what use could this simple circuit
be? Well, if we can control any one input of any of the three inverters
shown here, we can know the delay of an inverter which is often the
first cell to be characterized in any technology. Moreover, test
structures like these also help the foundry guys in determining the
manufacturing process of a particular chip whether it was WCS or BCS.
- Stable Loops: Here's an example of a stable loop consisting of an OR gate. Note that, as soon as the free input receives a logic 1, the output goes to 1. And same signal is conveyed back to the another input, and the loop is stable or rather stuck-at-1.
Note that stable loops would not pose problems of copious dynamic power
consumption. But such a loops pose headaches to DFT teams. Recall from
the post: Two Pillars of DFT: Controllability & Observability,
we talked about how stuck-at faults are simulated and detected. If such
a loop would be present in the design, any stuck-at faults in the
vicinity of this gate cannot be observed, and hence DFT team would lose
their stuck-at coverage by a considerable amount!!
STA Concerns: We started this post
with a preamble talking about backend engineers repining the frontend
engineers. How would a backend engineer be affected by a combo loop?
Here's how.
Recall from the post: Factors Affecting Delays of Standard Cells that
the delay and output slew of any standard cell depends on the input
slew and output load. The below figure shows one such example, where
slew can keep on degrading indefinitely, and would ultimately impact the
timing and more importantly the power consumption of the SoC.
To sum up, combo loops must be avoided in all SoCs except for special circumstances like ring oscillator circuit can be employed for testing the characteristics of the SoC.
To sum up, combo loops must be avoided in all SoCs except for special circumstances like ring oscillator circuit can be employed for testing the characteristics of the SoC.