Negative Setup and Hold Time
Negative Setup and Hold Time
Our designs are restricted by the data transfer between the flip-flops. Routing delay, logic cell delay and the FF parameters determine the maximum speed of the circuit. There is a timing window around the clocking event during which the synchronous input must remain stable and unchanged in order to be recognized. This window is defined by the setup and hold times. If either is violated correct operation of the FF is not guaranteed. Setup Time: It is the minimum time before the clocking event by which the synchronous input must be stable, so that the data is properly sampled by the clock. Hold Time: It is the minimum time after the clocking event during which the synchronous input must remain stable, so that data is reliably sampled.
The window associated with the clock region does not have to be centered around the clock edge. The region can be right or left to the clock edge when setup or hold times are negative.
When the hold time is negative, the valid region is to the left of the clock edge. Negative hold time allows the clock input to change slightly before the clock edge without disturbing the operation of the clock. This happens when delay for data from the pin of the flop to internal latch point is larger than corresponding clock delay.
When the setup time is negative the valid region is on the right of the clock edge. Negative setup time allows the input to change slightly after the clock edge and still meet the time check.
Fig: Negative setup time Note: 1. Both setup and hold times cannot be negative at the same time. Guess why? (Left to the reader to explore) 2. 3. Setup is checked at next clock edge. Hold is checked at same clock edge.
Steps to tackle setup violations: a. Reducing the combinational logic delay between the flip-flops by optimizing the logic. i.e. reducing the logic depth b. Use of Low Vt cells which in turn reduce the standard cells delay. But this has a tradeoff on the leakage power which increases drastically. So, this step should be done carefully and selectively keeping overall leakage into account. c. Enabling useful skew is also an option. Steps to tackle hold violations:
a. The first step to avoid hold violations is to build a good clock tree with skew as minimum as possible. b. By adding delay cells (delay buffers) in the combinational path.