We know that setup is always check for worst corner and Hold is always check for Best Corner.
In OCV Analysis mode, for worst corner ,while Setup Analysis data path have max delay and clock path have min dalay and for best corner while Hold Analysis data path have min delay and clock path have max delay if we go for pessimistic approach.
Now we know that ,
Setup slack = Required time - Arrival Time
or we can say,
Setup slack = Min delay path - Max delay path
And,
Hold slack = Arrival Time - Required Time
or we can say,
Hold slack = Min delay path - Max delay path
For Pessimism no need of derating for late(Max delay path) in setup and early (Min delay path) in hold Analysis.
Means At Worst Corner no need of late (data path ) only early (clock path) derating factor require for setup because worst corner itself is late and at Best Corner no need of early (data path) only late
(clock path) derating factor require for hold because best corner it self is early.
Thats why we always give derating for clock path only.
Setup analysis,CPPR :-Removing common clock buffer delay between launch path and capture path is CPPR. (comman path pessimism removal).Lets discuss with real time scenario,Lets 0.2ns is common clock buffer delay for launch path and capture path.
If we dont consider derating factor for setup timing analysis than our calculation
of setup slack will be in this manner:- setup slack = min path(c.p + (capture path + 0.2) + cppr - setup) – max path((
launch path + 0.2) + data path)
where cppr = 0 (means no need of cppr if we are not analyzing with ocv mode)
delay 0.2 ns will be cancel from both side thats how we can ignore same buffer delay
in both path and our equation will change to :-
setup slack = min path(c.p + capture path - setup) – max path((launch path
+ data path)
But Because of OCV (On chip Variation) delay we have to consider derating factor
in our design.
Lets For clock path, 20% derating factor ,
And we know that no need of derating for late in setup analysis so we apply derate
only for early so derating 20% of 1 for early is 0.8,
late -> 1.0 early -> 0.8
setup slack = min path(c.p + capture path + cppr - setup) – max path(launch path
+ data path) So clock buffer delay for Max delay path, 0.2 * 1.0(late derate) = 0.2 and clock buffer delay for Min delay path, 0.2 * 0.8(early derate) = 0.16
so we can see that because of derating factor same clock buffer delay which was 0.2ns now 0.16ns for min path and 0.2ns for max path.
For removing this differences we add cppr in min path or can subtract from max
path. Normally we see that Tool add cppr in required timing path(min path) in
setup analysis.
Cppr = 0.2-0.16 = 0.04
or
cppr = 0.2 * (1.0-0.8) = 0.04
setup slack = (c.p + (capture path + 0.16) + 0.04 - setup) – ((launch path + 0.2) + data path) Result,
setup slack = min path(c.p + capture path - setup) – max path(launch path +
data path)
Hold Analysis,
Lets for clock path, 20% derating factor ,
Again we know that no need of derating for early in hold analysis so we apply
derating of late only. So derating 20% of 1 for late will be 1.2,
early -> 1.0 late -> 1.2
Hold slack = Min delay path(launch path + data path) - max delay path(capture
path - cppr + hold)
Again lets 0.2ns is common clock buffer delay for launch path and capture path.
So clock buffer delay for Min path, 0.2 * 1.0(early derate) = 0.20 and clock buffer delay for Max path, 0.2 * 1.2(late derate) = 0.24
Again we can see that because of derating factor same clock buffer delay which
was 0.2ns now 0.2ns for min path and 0.24ns for max path.
So for removing this differences we add cppr in max path or can subtract from min
path. Normally we see that Tool subtract cppr in required timing path(max path)
in Hold analysis.
Cppr = 0.24 – 0.20 = 0.04
or
cppr = 0.2 * (1.2 – 1.0) = 0.04
hold slack = Min delay path(launch path + 0.20) + data path) - max delay path(
(capture path + 0.24) – 0.04 + hold) Result,
hold slack = Min delay path(launch path + 0.20) + data path) - max delay path(
(capture path + 0.24) – 0.04 + hold)
it was a good read, thanks !!
ReplyDeleteIs this correct even for AOCV??
ReplyDeleteHold will be checked at same edge so CPPR calculation needs to be review in above blog.
ReplyDelete