# Understanding max and min propagation delay in flip-flops

I've been working my way through Digital Design and Computer Architecture, but am very confused by the equations for time delay - what each of the variables are, and how to conceptualize these equations.

Assuming no clock skew, the book gives the following two formulae:

$$t_{pd} \le T_c - (t_{pcq} + t_{setup})$$

$$t_{cd} \ge t_{hold} - t_{ccq}$$

What I understand so far is that contamination delay is the minimum amount of time that will pass before an inputted value will start to change, and the propagation delay is the maximum amount of time that will pass before the output is sure to be resolved. I also understand that the setup time is the amount of time before the rising edge of the clock that an input must have stabilized, and the hold time is the amount of time after the edge that we wait before we can be certain that the output is stable.

Assuming this understanding and no further, can you please explain and help me conceptualize the two above equations?

The first equation tells you the maximum propagation delay allowable through a block of combinational logic between two clocked registers. For ideal flip-flops the delay would just be the clock period, $T_C$, but for real flip-flops you have to subtract the time from the clock edge until the inputs of the combinational block (the outputs of the first set of flip-flops) become stable, $t_{PCQ}$, and the required setup time (when the outputs of the combinational block must be stable before the clock edge on the second set of flip-flops), $t_{setup}$.
The other side of the timing analysis is that the flip-flop inputs must remain stable for a short period of time after the clock edge to make sure that the inputs are properly latched. This characteristic of a flip-flop is called the hold time, $t_{hold}$. In order to satisfy the second flip-flop's hold time requirement, it is necessary that the clock-to-q contamination delay, $t_{ccq}$, plus the contamination delay of the combinational logic, $t_{cd}$, must be greater than the flip-flops hold time requirement. Rearranging the equation, you can specify the relationship between a characteristic of the combinational logic, $t_{cd}$, to the two characteristics of the flip-flops, $t_{hold}$ and $t_{ccd}$.
• The sum of $t_{ccq}$ plus $t_{cd}$ is the minimum time from a clock edge until the outputs of the combinational logic will start to change. The combinational logic outputs are connected to the inputs of other flip-flops, and the logic outputs must satisfy the hold time of those flip-flops, which is $t_{hold}$. – Joe Hass Mar 5 '14 at 2:54
• I don't know how to explain it differently. The $t_{hold}$ is a specified requirement of the flip-flop regarding how long data must remain stable after a clock edge. The sum of $t_{ccq}$ and $t_{cd}$ tells us how long data actually will remain stable after a clock edge. – Joe Hass Mar 5 '14 at 11:56
• Wait - is $t_{hold}$ a measurement of how long after the clock edge it will take for the data to reach a stable state or is $t_{hold}$ a measurement of how long after the clock edge we can be sure that the output is stable? – Kvass Mar 5 '14 at 23:58