Min
pulse width check is to ensure that pulse width of clock signal is more than required value.
Basically
it is
based on frequency of operation and Technology. Means if frequency of design is 1Ghz than typical value of each high and
low pulse width will be equal to (1ns/2)
0.5ns if duty cycle is 50%.
Normally
we see that in most of design duty cycle always keep 50% otherwise designer can
face issues like clock distortion and if in our design using half cycle path means data launch at
+ve edge and capturing at -ve edge and again min pulse width as rise level and
fall level will not be same and if lots of buffer and inverter will be in chain
than it is possible that pulse can be completely vanish.
Also
we have to consider the best and worst case when clock get routed and depend on
that decide that what should be the required value of Min Pulse Width.
Now
we know that rise delay and fall delay
of combinational cells are not equal so if a clock entering in a
buffer than the output of clock pulse width will be separate to input.
So
for example, if buffer rise delay is more than fall delay than output of clock
pulse width for high level will be less than input.
so,
High pulse : 0.5-0.056+ 0.049 = 0.493 &
Low pulse : 0.5-0.049+0.056 = 0.507
High pulse : 0.5-0.056+ 0.049 = 0.493 &
Low pulse : 0.5-0.049+0.056 = 0.507
For
better understanding we go with real time scenario for Min Pulse Width.
Normally
for clock path we use clock buffer because of the equal rise delay and fall
delay of these buffer compare to normal buffer but this delay is not exact
equal thatswhy we have to check min pulse width.
We
can understand it with an example :-
Lets
there is a clock signal which is going to clock pin of flop through series of buffers with different
rise and fall delay. we can
calculate that how it effect to high or
low pulse of clock.
we
can understand through calculation:-
High
pulse width = 0.5 + (0.049 - 0.056) +
(0.034 – 0.039) + (0.023 –
0.026) + (0.042 – 0.046) + (0.061
– 0.061) + (0.051 – 0.054) = 0.478ns
Low
Pulse width = 0.5 + (0.056 – 0.049) + (0.038 – 0.034) + (0.026 – 0.023) + (0.046 – 0.042) + (0.061 – 0.061) + (0.054
– 0.051) = 0.522ns
Lets required
value of Min pulse width is 0.420ns.
Uncertainty = 80ps
than high pulse
width = 0.478-0.080 = 0.398ns
Now
we can see that we are getting violation for high pulse as total high pulse
width is less than Require value.
So
for solving this violation we can add an inverter which will change the
transition and improve it.
Hi, I got a question about the uncertainty.
ReplyDeleteDoes this 80ps represent the uncertainty between negedge of posedge of the clock?
This should represent only the duty uncertainty of the clock, right?
Hi, By the above page I understand that min pulse width will calculate for Half cycle paths. But in Real projects why we calculate min pulse width for full cycle paths ?
ReplyDeleteAnd second Question is what is the use of Half cycle paths ?