Upload
nmaravind
View
213
Download
0
Embed Size (px)
Citation preview
8/14/2019 Lec45 Full
1/18
3/27/2006 1
CS623 CAD for VLSILecture 43 Static Timing Analysis
Shankar Balachandran
Dept. of Computer Science and Engineering
8/14/2019 Lec45 Full
2/18
8/14/2019 Lec45 Full
3/18
33/27/2006
Dynamic Timing Analysis Give test vectors at inputs
Observe the changes in all gates
Follow it through to the outputs Find the worst case time
Not a simple problem :
Order of inputs matter
Simulation is tedious
Mixes logic and timing, which failed and why is
difficult to discern
8/14/2019 Lec45 Full
4/18
43/27/2006
A Simplified Model Assume rise and fall times are similar
Gate delays are characterized ahead of time
Many good models for predicting interconnectdelay
Assume clock skew = 0
8/14/2019 Lec45 Full
5/18
53/27/2006
A Simple Problem? Lets ignore interconnect delays for now
What do we need to do :
Perform timing analysis between all flops to flops Find the worst case delay in each sequential stage
Assign clock accordingly
Design algorithms
Does not solve the inputs and the order of
supply though
8/14/2019 Lec45 Full
6/18
63/27/2006
A Nave Algorithm Enumerate all paths
Calculate delay on each path
Find the worst case delay Problem?
Exponential Number of Paths
Exponential algorithm
Why is this bad?
Timing analysis done many times during synthesis,place and route
8/14/2019 Lec45 Full
7/18
73/27/2006
Static Timing Analysis Done without specifying vectors
A very powerful technique, widely used
A big turn in the EDA industry Hitchcocks Algorithm
Exhaustive without specifying vectors
Linear in number of gates
Not edges, not paths
8/14/2019 Lec45 Full
8/18
83/27/2006
Basic Sketch Find when outputs are required at the different
gates
Find out when they are actually arriving If the signals arrive at every gate before they
are required in every single gate, we are done
Circuit is safe
Else
Pick better gates Restructure the circuit
8/14/2019 Lec45 Full
9/18
93/27/2006
Arrival Time
1 4 6 5
3 6 6 7
1 4 5 4
0 1 713 18
0 39 15 22
0 1 7 1418
8/14/2019 Lec45 Full
10/18
103/27/2006
Required Time
1 4 6 5
3 6 6 7
1 4 5 4
22
4
0
8
5
3
9
9
9
15
13
15
15
18
22
22
8/14/2019 Lec45 Full
11/18
8/14/2019 Lec45 Full
12/18
123/27/2006
Which Are Critical?
1 4 6 5
3 6 6 7
1 4 5 4
0 1 713 18
0 3 9 1522
0 1 7 1418
22
4
0
8
5
3
9
9
9
13
15
15
18
22
22
8/14/2019 Lec45 Full
13/18
133/27/2006
Definitions Arrival Time
AT(i) = max [AT(j)] + delay (i) where j fanin(i)
Required Time RT(i) = min [RT(j)) delay (j)] where j fanout(i)
Remember that delay (j) is subtracted here
Also, notice that min encompasses subtraction
Define Slack
Slack(i) = RT(i) AT(i) Slack == 0 => Node is critical
A path whose nodes all have slack 0 = critical path
8/14/2019 Lec45 Full
14/18
143/27/2006
Slacks
4 4 22 4
0 0 0 0 0
8 8 4 46
1 4 6 5
3 6 6 7
1 4 5 4
8/14/2019 Lec45 Full
15/18
153/27/2006
Lets Change Required Time
1 4 6 5
3 6 6 7
1 4 5 4
2
-2
6
3
1
7
7
7
13
11
13
13
16
20
20
Arrive in
the past?
0 1 713 18
0 3 9 15
0 17
1418
22
20
8/14/2019 Lec45 Full
16/18
163/27/2006
Lets Redo Slacks
2 2 00 2
-2 -2 -2 -2 -2
6 6 2 24
1 4 6 5
3 6 6 7
1 4 5 4
Critical Edges
Failing Path
8/14/2019 Lec45 Full
17/18
173/27/2006
Specifying Required Time
Run as fast as you can
First case
Pick the max(AT) as RT(outputs) Can the circuit run as fast as T
Second case
Fix RT(outputs) = T
Calculate Arrival Times as before
Calculate slacks as before Check if there are paths that are violating timing
8/14/2019 Lec45 Full
18/18
183/27/2006
Observations on Slacks For a circuit to run safely
All slacks
When slacks are less than 0
Relax the constraints
Pick gates with lesser delays
The model ignores interconnect delay
Easily extendable for interconnect delay
More discussion later
0