Saturday, November 10, 2012
Propogation Delay and Glitch
Propagation delay is a time associated with any digital circuit and is the time between when an input to the circuit changes until that change propagates through the circuit and changes the output. Every digital gate (And, Or, Inverter,...) has its own propagation delay. For single gates this delay can be very short, maybe somewhere around nano seconds or shorter. But as the circuit grows larger and more components are put one after another, the delay increases too. Figure below shows the propagation delay effect of a simple inverter on its output where Tp is the propagation time:
In a more complex circuit every input can go through many different paths until it reaches the output. Every path in the circuit also has a different delay and for a single input, the propagation delay is the delay of the path with the longest delay because it takes that much time for that input to give a valid output. For a multiple input circuit, the propagation delay is equal to the maximum delay in the circuit. This is because if the output of the circuit is read shorter than the maximum delay, in some cases the output might not be valid and can result in false interpretations and actions.
The difference in propagation delay of different circuit paths can result in glitches on the output.
A glitch is called to an invalid and unpredicted output of a digital circuit that can be read by the next stage and result in a wrong action. Glitches happen mostly due to propagtion delays in a digital circuit. For example assume a circuit as below:
When input I=1, the output is 1 as one of the inputs to the OR gate is one. When I=0 also the output is 1 as the output of the inverter will be 1 going to the OR gate. So for both these cases the output should remain as 1. But let's see what happens when we assume some propagation delay for the inverter. Below you can see the signals to the circuit and the output:
You can see that when the input change from 1 to 0, it takes a short time for the inverter to provide a 1 at its output due to its propagation delay. Therefore for that short period of time both inputs to the OR gate are zero, resulting in a zero at the output of the OR gate. Then finally after the inverter output changes to 1, the OR gates output changes to one too.
This example shows happening of an unexpected zero ar the circuit. This is a glitch and can cause problem for the rest of the circuit as it will propagate into the next circuits and result in more and more glitches.
There are ways to avoid such glitches. One of the most practical ways is to put a timed gate such as a latch or a flip-flop to isolate the output of this circuit from the next circuit and allow the output to the next circuit only when it is valid and there are no glitches. The digital signal that allows the output of this circuit to pass through must wait for enough time since the inputs change until all the glitches pass, which would be more than the maximum propagation delay of the circuit. Then it can let the output of the circuit to be presented to the next stage.
The propagation delay of a circuit is an important factor on how fast the circuit can work. When one block of the circuit has a high delay, all the rest of the circuit will have to wait for this one block to provide a valid output.
Hardwork Can Never Ever Fails...