Beruflich Dokumente
Kultur Dokumente
Content
VLSI BASIC
STA & SI
Extraction & DFM
Vlsi Interview Questions
VLSI Glossary
VLSI Forum
Recommended Book
About Us
Latest
Part1
Part5b
Chapter1
Introduction
Part2
Part6a
Chapter2
Static Timing Analysis
Chapter3
Signal Integrity
Part3a
Part3b
Part3c
Part4a
Part4b
Part4c
Part6b
Part6c
Part7a
Part7b
Part7c
Part 8
Part5a
Part 6a -> How to solve Setup and Hold Violation (basic example)
Part 6b -> Continue of How to solve Setup and Hold Violation (Advance examples)
Part 6c -> Continue of How to solve Setup and Hold Violation (more advance examples)
Part 7a -> Methods for Increase/Decrease the Delay of Circuit (Effect of Wire Length On the Slew)
Part 7b -> Methods for Increase/Decrease the Delay of Circuit (Effect of Size of the Transistor On the
Slew)
Part 7c -> Methods for Increase/Decrease the Delay of Circuit (Effect of Threshold voltage On the Slew)
Part 8 -> 10 ways to fix Setup and Hold Violation.
Here we will discuss how to calculate the Setup and Hold Violation for a design.
Till now we have discussed setup and hold violation with respect to the single flipflop, now lets extend this
to 2 flip flop. In the following fig there are 2 flipflops (FF1 and FF2).
Data is launching from FF1/D to FF1/Q at the positive clock edge at FF1/C.
At FF2/D , input data is coming from FF1/Q through a combinational logic.
Data is capturing at FF2/D, at the positive clock edge at FF2/C.
So I can say that Launching Flip-Flop is FF1 and Capturing Flip-Flop is FF2.
So Data path is FF1/C --> FF1/Q --> FF2/D
For a single cycle circuit- Signal has to be propagate through Data path in one clock cycle. Means
if data is launched at time=0ns from FF1 then it should be captured at time=10ns by FF2.
So for Setup analysis at FF2, Data should be stable "Ts" time before the positive edge at FF2/C. Where
"Ts" is the Setup time of FF2.
If Ts=0ns, then , data launched from FF1 at time=0ns should arrive at D of FF2 before or at
time=10ns. If data takes too long ( greater then 10ns) to arrive (means it is not stable before clock
edge at FF2) , it is reported as Setup Violation.
If Ts=1ns, then, data launched from FF1 at time=0ns should arrive at D of FF2 before or
at time=(10ns-1ns)=9ns. If data takes too long (greater then 9ns) to arrive (means it is not stable
before 1ns of clock edge at FF2), it is reported as Setup Violation.
For Hold Analysis at FF2, Data should be stable "Th" time after the positive edge at FF2/C. Where "Th"
is the Hold time of FF2. Means there should not be any change in the Input data at FF2/D between
positive edge of clock at FF2 at Time=10ns and Time=10ns+Th.
To satisfy the Hold Condition at FF2 for the Data launched by FF1 at 0ns, the data launched by
FF1 at 10ns should not reach at FF2/D before 10ns+Th time.
If Th=0.5ns, then we can say that the data launched from FF1 at time 10ns does not get
propagated so soon that it reaches at FF2 before time (10+0.5)=10.5ns ( Or say it should reach
from FF1 to FF2 with in 0.5ns). If data arrive so soon (means with in 0.5ns from FF1 to FF2, data
can't be stable at FF2 for time=0.5ns after the clock edge at FF2), its reported Hold violation.
In the above fig you can see that the data launched by FF1/D ( at launch edge) reaches at FF2/D after a
specific delay ( CLK-to-Q delay + Conminational Logic Delay) well before the setup time requirement of
Flip-Flop FF2, so there is no setup violation.
From the Fig its clear that if Slack= Required Time - Arrival time < 0 (-ive) , then there is a Setup violation
at FF2.
Hold Check timing can be more clear with the help of following circuit and explanation.
In the above fig you can see that there is a delay in the CLK and CLKB because of the delay introduced
by the series of buffer in the clock path. Now Flip-flop FF2 has a hold requirement and as per that data
should
be
constant
after
the
capture
edge
of
CLKB
at
Flip-flop
FF2.
You can see that desired data which suppose to capture by CLKB at FF2.D should be at Zero (0) logic
state and be constant long enough after the CLKB capture edge to meet hold requirement but because of
very short logic delay between FF1/Q and FF1/D, the change in the FF1/Q propagates very soon. As a
result of that there occurs a Hold violation.
This type of violation (Hold Violation) can be fixed by shortening the delay in the clock line or by
increasing the delay in the data path.
Setup and Hold violation calculation for the single clock cycle path is very easy to understand. But the
complexity increases in case of multi-cycle
multi
path ,Gated clock, Flip-flop
flop using different clocks, Latches in
place of Flip-Flop. We will discuss
iscuss all these later sometime.
<<< Previous
Next >>>
Reactions:
28 comments:
1.
AnonymousFebruary
February 2, 2012 at 2:57 AM
should not the launch edge be the second rising edge of CLK, since hold checks are done for the
same clock cycle?
Reply
Replies
1.
your VLSIFebruary
VLSI
7, 2012 at 10:18 AM
Hi,
I didn't get you question very clearly. Please elaborate it.
2.
Anonymous
AnonymousMay
19, 2012 at 9:20 AM
dear clock checks ideally should be done at the rising or capturing edge of clock b
only.. but sir has written and shown in the diagram that the data is arriving at the ff2
d before the clock b and it is in the transition region..which is a hold violation and
we l loose data.. at the end sir has written that to avoid it.. either decrease the
buffers in the clock path or increase the delay in the data so that the data arrives at
or before the capturing edge of the clock b.. just to show the hold violation si
sir has
made the same in the diagram
Reply
2.
AnonymousFebruary
February 15, 2012 at 4:42 PM
I think there is misprint in hold time analysis
Reply
Replies
1.
your VLSIFebruary
VLSI
16, 2012 at 12:10 AM
can you please let me know what's that misprint?
2.
Anonymous
AnonymousApril
29, 2012 at 12:46 PM
3rd Paragraph from last. It has" because of very short logic delay between FF1/Q
and FF1/D" Its FF2/D
3.
your VLSIMay
VLSI
2, 2012 at 11:44 AM
thanks man ... You are right.. It should be FF2/D.
4.
power PufF!June
PufF!
13, 2012 at 10:38 PM
Thank you so much for the excellent tutorial, sir! Can you please correct the
misprint in the original post just in case readers do not see the comment? Thanks
again!
Reply
3.
hairolMarch
March 3, 2012 at 11:53 AM
Thank you very much.
Reply
4.
Sravan TekuruJuly
July 13, 2012 at 12:38 AM
hi , do u have nay idea about datapulse violations
Reply
5.
jigsOctober
October 26, 2012 at 10:20 AM
is setup and hold time for given input slew is constant?
Reply
6.
jigsOctober
October 26, 2012 at 10:21 AM
i:e
Ts+Th=constant
Reply
Replies
1.
your VLSIOctober
VLSI
26, 2012 at 12:00 PM
Hi
Jigs,
2.
jigsJanuary
January 15, 2013 at 7:10 AM
plz can u explain me ?
Reply
7.
AnonymousMarch
March 7, 2013 at 3:20 PM
thank you
Reply
8.
AnonymousMarch
March 14, 2013 at 5:00 PM
sir i don't understand.. setup check at next clock edge and hold check at same clo
clock edge.. while
launching and capturing edge are different.. plz explain
Reply
Replies
1.
your VLSIMarch
VLSI
14, 2013 at 11:26 PM
Clock edge at Launching FF - considered as launching edge but when this edge
reaches
capturing
FF,
it
become
Capturing
Edge.
Now in setup and hold we are talking every thing on the Capturing FF, means every
thing
is
related
to
Capturing
edge.
I hope you got my point. Still If some confusion, please write in detail about your
confusion.
Reply
9.
AnonymousMarch
March 26, 2013 at 7:56 PM
Thank you sir, I got your point..
Reply
10.
AnonymousMay
May 14, 2013 at 8:30 PM
Hi
VLSI
Expert,
You have mentioned that we need to reduce the delay of the clock to avoid the hold time violation
right. Could you please clarify me if you are talking about reducing the CLKB clock width?
Reply
11.
AnonymousAugust
August 30, 2013 at 3:51 PM
yyyy
Reply
12.
AnonymousOctober
October 4, 2013 at 9:18 AM
In the Hold Check Timing diagram, it looks like the first transition of FF2/D (1 > 0) happens at about
the
same
time
as
the
first
rising
edge
of
CLKB.
So this will result in setup violation (and maybe hold violation too), even before we get to the
second rising edge of CLKB.
Reply
13.
mrmittalJanuary
January 21, 2014 at 5:21 PM
Can you please elaborate why setup check at next clock edge and hold check at same clock edge
?
from CLK1 .. We check both at next clock edge and calculate also like that but why we say
diffrently?
Please elaborate
Reply
Replies
1.
Anonymous
AnonymousFebruary
23, 2014 at 11:46 PM
Data can arrive at the following flip flop only at the next clock edge. At T1, FF1
generated its output to data D1, whereas FF2 was processing FF1's output to data
D0. FF2 will be able to process FF1's
FF1's output to D1 only at the next clock edge, T2 =
T1
+
T(clk).
Hold analysis is done only after the data has already arrived, and so naturally for
the
same
clock
cycle.
As for the figures posted above, I think the one for Hold Time is perhaps erroneous,
since
ince T(launch) and T(capture) must be at the same clock cycle. I've already
posted a comment below, highlighting the same. Awaiting yourVLSI's reply!
Reply
14.
AnonymousFebruary
February 23, 2014 at 11:40 PM
In the Hold Time diagram, the Capture edge has been shown one clock cycle after Launch edge,
whereas
it
should
be
at
the
same
clock
edge
(delayed
by
buffers).
The Set-up
up Time diagram, too uses the same clock edges,
edges, which though, is correct.
Reply
Replies
1.
your VLSIFebruary
VLSI
24, 2014 at 1:51 PM
For the same data Capture and launch edges are always one clock cycle. But for
analysis purpose of Hold - you analysis the whole concept at the same edge. I
would say - check the pic more closely and you will crack this figu
figure also.
Reply
15.
Mainul HasanJune 7, 2014 at 11:13 AM
Hi,
I am a silent follower of your blog. You are doing a phenomenal service to millions of people
through your high caliber VLSI knowledge. If I may request you to write on the following topics, I
would
be
grateful
to
you,
1.
Setup/hold
calculation
of
Multicycle
path
a.
slow
to
fast
clock
path
b.
fast
to
slow
clock
path
Thanks
-Mainul
lot!
Reply
Replies
1.
AnonymousJune 8, 2014 at 1:07 AM
Indeed, this set of brilliant engineers managing this blog are the pride of India, and
the
whole
family
of
electronics
engineers!!!
Your request for Multi-cycle Timing explanation is something that many, including
me, have been waiting to make!
Reply
16.
AnonymousAugust 7, 2014 at 11:22 AM
why system goes in metastable state after setup time voilation?
Reply
Add comment
Load more...
Translate page
Follow by Email
Followers
Amazon Search
Total Pageviews
Blog Archive
2014 (15)
o
o
o
o
o
o
o
Atom
Posts
Atom
Comments
November (4)
September
(3)
December (1)
July (1)
June (1)
April (1)
February (1)
January (3)
2013 (12)
o December (6)
o October (2)
o May (1)
o April (1)
o March (1)
o January (1)
2012 (15)
o November (3)
o September (2)
o July (2)
o April (2)
o March (1)
o February (5)
2011 (17)
o September (1)
o August (1)
o May (1)
o April (2)
"Setup and Hold Time Violation" : Static
Timing An...
"Setup and Hold Time" : Static Timing
Analysis (ST...
o March (5)
o February (7)
2010 (5)
o December (1)
o September (1)
o August (3)
2008 (1)
o July (1)
Popular Posts
Recent Visitors