Setup And Hold Time

This is the most common concept studied in VLSI, and hence most important. We tend to understand the definition but the concept creates confusion at times. Let us revisit this topic in simple terms.

Setup Time

The time before the active clock edge, when the data signal is not allowed to change its value

Hold Time

The time after the active clock edge, when the data signal is not allowed to change its value.

Figure 2: Waveforms to Represent Setup and Hold Time

Lets take an example of two flops as given in Figure 3. There are two flops FF1 and FF2 where FF1 acts as the launch flop and FF2 acts as capture flop.

Assumption: Clock reaches both the flops at the same time.

Figure 3: Launch and Capture Flip Flop
Setup Time

We make sure that the data launched by FF1 doesnโ€™t change anywhere in the red region for being captured correctly by FF2. Else, it will cause metastability as FF2 will not know which value (0 or 1) to capture.

Equations:

Time taken by the data signal to reach FF2 from FF1 (Arrival Time) = Tc-q + Tcomb

The time where signal is not allowed to change is ‘Tsetup’.

The data launched at clk edge ‘A’ will reach clk edge ‘B’ after one time period i.e. ‘Tperiod’

Hence, maximum time for data to reach FF2 (Required time) => Tperiod – Tsetup

To avoid data being changed during setup time interval of clk edge B, Arrival Time < Required Time

Tc-q + Tcomb < Tperiod – Tsetup

Hold Time

We expect that the data launched by FF1 should reach FF2 at the next clock. If it reaches the FF2 on same clock edge, data gets corrupted. It is a hold time violation as the data changes in the blue region.

Equations:

Time taken by the data signal to reach FF2 from FF1 (Arrival Time) = Tc-q + Tcomb

The time where signal is not allowed to change is ‘Thold’.

Here, we do not consider ‘Tperiod’, because the Hold check is done on the same clock edge.

Hence, minimum time for data to reach FF2 (Required Time) => Thold

To avoid data being changed in the same clk edge A, Arrival Time > Required Time

Tc-q + Tcomb > Thold

Skew Addition

Assumption: Clock reaches FF2 ‘Tskew’ units later than FF1.

Arrival Time:  Tc-q + Tcomb

Required Time: Tperiod – Tsetup + Tskew

Tc-q + Tcomb < Tperiod – Tsetup + Tskew

Increasing skew eases timing restriction for setup, as it increases the difference between required and arrival times (based on above equation), providing enough margin for the design.

Arrival Time:  Tc-q + Tcomb

Required Time: Thold + Tskew

Tc-q + Tcomb > Thold + Tskew

Reducing skew eases the timing here, as it increases the difference between required and arrival time to provide enough margin for the design.


Comments

3 responses to “Setup And Hold Time”

  1. Good content!

    Like

  2. Dinesh Reddy Avatar
    Dinesh Reddy

    Good content with great explanation ๐Ÿ‘

    Like

  3.  Avatar
    Anonymous

    No.1 content about VLSI

    Like

Leave a reply to Dinesh Reddy Cancel reply