The most frequently asked question in the interview is regarding the timing of flops. Generally the questions asked are based on calculation of minimum time cycle (max. frequency), setup slack and hold slack.
Consider a D –type edge-triggered, Flip Flop (FF). The time just before and just after the clock edge, is the critical time, where the D input must not change.
Region just before the clock is setup time (tsetup).
Region after the clock edge is hold time (thold).
Every flip flop has minimum required values for tsetup and thold. The values of tsetup and thold vary strongly with temperature, voltage and process.
What happens to Q if D input changes within the tsetup and tholdwindow?
- Q may follow D correctly.
- Q may follow D incorrectly.
- Q may assume a metastable state for an indeterminate time followed by a transition to logic 1 or logic 0.
For correct operation, D inputs must be stable for tsetup prior to clock and stay stable for a thold afterwards.
Minimum Cycle Time:
Time taken by data to travel from one flop to another flop. Path between two flops is composed of :
- Clock to Q delay (tclk-q).
- Propogation delay through the combo logic. (tcombo).
- The required setup time (tsetup) of FF1.
tmin = tclk-q + tcombo + tsetup
fmax = 1/tmin
Setup Slack:
The setup time is a function of the clock period, combo delay and the clk-to-output delay.
Actual tsetup = tclk – tclk-q - tcombo
As said earlier, each flop has a minimum specified tsetup.
The difference between the actual setup time and the minimum required setup time is known as setup slack.
Setup Slack = Actual tsetup – Reqd. tsetup
A positive slack is always desirable.
For maximum frequency, the setup slack is zero.
Hold Time:
Hold time is the amount of time that FF0’s old data must persist at the D input of FF1, i.e. D1 after the clock edge.
Actual hold time = tclk-q + tcombo.
Each flop has a minimum specified thold. The difference between the actual hold time and the minimum required hold time is known as hold slack.
Hold slack = Actual hold time – Reqd. thold
Setup and Hold time for flip flops - Part 2
This post is in continuation to our previous post on Setup and Hold time for flip flops.
Hence, tclk = tclk-q + tcombo + tsetup + setup-slack becomes,
tclk (min.) = tclk-q + tcombo + tsetup
tclk (min.) = 300 + 400 + 200
tclk (min.) = 900ps
So the equation becomes,
Q.1) Calculate the setup slack for the below example :
tclk-q = 300ps ; tsetup = 100ps ; tcombo = 400ps ; tclk = 1000ps
Answer)
From the above waveform, we can derive the following equation :
tclk = tclk-q + tcombo + tsetup + setup-slack
So, setup-slack = tclk – tclk-q – tcombo - tsetup
Hence, setup-slack = 1000 – 300 – 400 -200
= 100ps
Q.2) Calculate the minimum clock cycle time, for the above example.
Answer) For the minimum clock cycle time, the setup slack is zero.Hence, tclk = tclk-q + tcombo + tsetup + setup-slack becomes,
tclk (min.) = tclk-q + tcombo + tsetup
tclk (min.) = 300 + 400 + 200
tclk (min.) = 900ps
Q.3) Calculate the hold slack for the above example. (thold = 100ps)
Answer)
From the above waveform, the equation for the hold slack comes as :
hold-slack = tclk-q + tcombo – thold
hold-slack = tclk-q + tcombo – thold
hold-slack = 300 + 400 – 100
= 600ps
Q.4) Explain the worst case hold time scenario.
Answer) The following equation is an analysis of worst case hold time scenarios. In this case, two FFs are directly connected to each other, i.e. there is no combo delay.
As depicted in the diagram, output Q0 of FF0 is directly connected to D1 of FF1.
Since, for worst case : tcombo = 0So the equation becomes,
hold-slack = tclk-q – thold
Since, hold-slack > 0 , as to avoid hold violation.
tclk-q – thold > 0
tclk-q > thold
hold-slack = tclk-q + tcombo – thold










No comments:
Post a Comment