EECS 219B Spring 2001

41
1 EECS 219B EECS 219B Spring 2001 Spring 2001 Timing Analysis I Andreas Kuehlmann

description

EECS 219B Spring 2001. Timing Analysis I Andreas Kuehlmann. Timing Analysis - Delay Models. Simple model 1:. Ak. D k. A3. A1. A2. A k = arrival time = max( A 1 ,A 2 ,A 3 ) + D k D k is the delay at node k , parameterized according to function f k and fanout node k - PowerPoint PPT Presentation

Transcript of EECS 219B Spring 2001

Page 1: EECS 219B Spring 2001

1

EECS 219BEECS 219BSpring 2001Spring 2001

Timing Analysis I

Andreas Kuehlmann

Page 2: EECS 219B Spring 2001

2

Timing Analysis - Delay ModelsTiming Analysis - Delay Models

• Simple model 1:

Ak = arrival time = max(A1,A2,A3) + Dk

Dk is the delay at node k, parameterized according to function fk and fanout node k

• Simple model 2:

Dk

A1A2

A3

Ak

A1A2

A3

Ak 0

A1 A2 A3

Ak

Dk1 Dk2Dk3

• Can also have different times for rise time and fall time

Ak = max{A1+Dk1, A2+Dk2,A3+Dk3}

Page 3: EECS 219B Spring 2001

3

Static delay analysisStatic delay analysis

// level of PI nodes initialized to 0, // the others are set to -1. // Invoke LEVEL from PO Algorithm LEVEL(k) { // levelize nodes if( k.level != -1) return(k.level) else k.level = 1+max{LEVEL(ki)|ki fanin(k)} return(k.level) }

// Compute arrival times:// Given arrival times on PI’s Algorithm ARRIVAL() { for L = 0 to MAXLEVEL for {k|k.level = L} Ak = MAX{Aki} + Dk

}

Page 4: EECS 219B Spring 2001

4

Required TimesRequired Times

Required times:

given required times on primary outputs

• Traverse in reverse topological order (i.e. from primary outputs to primary inputs)

• if (ki , k ) is an edge between ki and k, Rki ,k = Rk - Dk

(this is the edge required time)• Hence, the required time of output of node k is

Rk = min ( Rk,kj | kj fanout(k) )

k

ki

j

Ski

Sk Sj

ki

Page 5: EECS 219B Spring 2001

5

Propagating SlacksPropagating Slacks

Slacks: slack at the output node k is Sk = Rk-Ak

Since Rki,k=Rk-Dk

Ski,k =Rki,k - Aki

Ski,k + Aki = Rk-Dk = Sk + Ak - Dk

Since Ak = max {Akj } + Dk

Ski,k = Sk + max {Akj } - Aki kj , ki fanin (k )

Ski = min{Ski,j} j fanout (ki )

Notes: • each edge is the graph has a slack and a required time• Negative slack is bad.

k

ki

j

Ski

Sk Sj

ki

Page 6: EECS 219B Spring 2001

6

Sequential networksSequential networks

• Arrival times known at l1 and l2• Required times known at l3, l4, and l5• Delay analysis gives arrival and required times (hence slacks)

for C1, C2, C3, C4

C3

C1C2

C4

l1

l2 l3

l4

l5

Page 7: EECS 219B Spring 2001

7

Sequential NetworksSequential Networks

Note: Latch l5 may be transparent

• t1 is the beginning of latch transparent time

• Arrival time at l5 output =

max { arrival time at l5 input, t1 } + Dlatch(hold)

• Required time at l5 input =

min { required time at l5 output, t2 } - Dlatch(set_up)

t2t1

C3

C1C2

C4

l1

l2 l3

l4

l5

clock

Page 8: EECS 219B Spring 2001

8

Static critical pathsStatic critical paths

Min-Max problem: minimize max{-Si , 0}

A static critical path of a Boolean network is a path P = {i1,i2,…,ip } where Sik

, ik+1 < 0

Note: if a node k is on a static critical path, then at least one of the fanin edges of k is critical. Hence, all critical paths reach from an input to an output.

Note: There may be several critical paths

Page 9: EECS 219B Spring 2001

9

Example: Static critical pathsExample: Static critical paths

2 1

2 2 1

21

R2=5R1=5

A8=0 A9=0

980

01

0-1

-1-1

-110

-1

-1

5

76

3

1 2

4

A1=6 R1=5A2=5 R2=5

S1=-1 R3=3S2=0 R7=1S3,1=-1 R9=-1S4,1 = -1S4,2 = 0S5,2 = 1S6,3 = 0S7,3 = -1S7,4 = -1S7,5 = 1S8,6 = 0S9,7 = -1

critical path edges

Ski,k = Sk + max{Akj } - Aki , kj,ki fanin(k)Sk = min{Sk,kj }, kj fanout(k)

1

4

2

34

56

Page 10: EECS 219B Spring 2001

10

Timing analysis problemsTiming analysis problems

We want to determine the true critical paths of a circuit in order to:– determine the minimum cycle time that the circuit will function

– identify critical paths for performance optimization - don’t want to try to optimize the wrong (non-critical) paths

Implications:– Don’t want false paths (produced by static delay analysis)

– Delay model is worst case model. Need to ensure correctness for case where ith gate delay Di

M

Page 11: EECS 219B Spring 2001

11

Functional Timing AnalysisFunctional Timing Analysis

What is Timing Analysis? Estimate when the output of a given circuit gets stable

clock

CombinationalCombinationalblockblock

00

00

T0

Page 12: EECS 219B Spring 2001

12

Why Timing Analysis?Why Timing Analysis?

Timing verification– Verifies whether a design meets a given timing constraint

• Example: cycle-time constraint

Timing optimization– Needs to identify critical portion of a design for further

optimization• Critical path identification

In both applications, the more accurate, the better

Page 13: EECS 219B Spring 2001

13

Timing Analysis - BasicsTiming Analysis - BasicsNaïve approach - Simulate all input vectors with SPICE

– Accurate, but too expensive

Gate-level timing analysis

Focus of this lecture– Less accurate than SPICE due to the level of abstraction,

but much more efficient– Scenario:

• Gate/wire delays are pre-characterized (accuracy loss)• Perform timing analysis of a gate-level circuit assuming

the gate/wire delays

Page 14: EECS 219B Spring 2001

Gate-level Timing AnalysisGate-level Timing Analysis

A naive approach is topological analysis– Easy longest-path problem

– Linear in the size of a network

Not all paths can propagate signal events– False paths

– If all longest paths are false, topological analysis gives delay overestimate

Functional timing analysis = false-path-aware timing analysis– Compute false-path-aware arrival time

arr(x1)=0 arr(x2)=0

False path aware

arr(z)?z

x1 x2

1

1

Page 15: EECS 219B Spring 2001

Example: 2-bit Carry-skip AdderExample: 2-bit Carry-skip Adder

c_in

a0

b0

a1

b1

s0

s1

c_out

mux

Length 5Length 1

ripple carry adder

10

Page 16: EECS 219B Spring 2001

16

False Path Analysis - BasicsFalse Path Analysis - Basics

Is a path responsible for delay?– If the answer is no, can ignore the path for delay computation

Check the falsity of long paths until we find the longest true path– How can we determine whether a path is false?

Delay underestimation is unacceptable– Can lead to overlooking a timing violation

Delay overestimation is not desirable, but acceptable– Topological analysis can give overestimate, but never give

underestimate

Page 17: EECS 219B Spring 2001

17

Controlling/Non-Controlling ValuesControlling/Non-Controlling Values

0 0 1

Controlling value of AND

Controlled value of AND

1 1

Controlling value of OR

Controlled value of OR

Non-Controlling value of AND

0

Non-Controlling value of OR

Page 18: EECS 219B Spring 2001

18

Static SensitizationStatic Sensitization

A path is statically-sensitizable if there exists an input vector such that all the side inputs to the path are set to non-controlling values– This is independent of gate delays

10

Controlling value!

These paths areThese paths are notnotstatically-sensitizablestatically-sensitizable

The longest The longest truetrue path pathis of length 2?is of length 2?

t=0

t=0

t=0

10

Page 19: EECS 219B Spring 2001

19

Static SensitizationStatic Sensitization

• The (dashed) path is responsible for delay!• Delay underestimation by static sensitization (delay = 2 when

true delay = 3)– incorrect condition

1

0

01

2

1

2 3

00

Page 20: EECS 219B Spring 2001

20

What is Wrong with Static Sensitization?What is Wrong with Static Sensitization?

The idea of forcing non-controlling values to side inputs is okay, but timing was ignored– The same signal can have a controlling value at one time

and a non-controlling value at another time.

How about timing simulation as a correct method?

Page 21: EECS 219B Spring 2001

21

Timing SimulationTiming Simulation

22

11

44

11

11

0

0

2

1

4

2 3

Implies that delay = 0 for these inputsImplies that delay = 0 for these inputsBUT!BUT!

Page 22: EECS 219B Spring 2001

22

22

11

4->4->22

11

11

Timing SimulationTiming Simulation

0

0 2

2

1

2 3

3 4

Implies that delay = 4 with the same set of Implies that delay = 4 with the same set of inputs.inputs.

Page 23: EECS 219B Spring 2001

23

What is Wrong with Timing Simulation?What is Wrong with Timing Simulation?

If gate delays are reduced, delay estimates can increase

Not acceptable since– Gate delays are just upper-bounds, actual delay is in [0, d]

• Delay uncertainty due to manufacturing– We are implicitly analyzing a family of circuits where gate

delays are within the upper-bounds

Page 24: EECS 219B Spring 2001

24

Monotone Speedup PropertyMonotone Speedup Property

Definition: For any circuit C, if

– C’ is obtained from C by reducing some gate delays, and

– delay_estimate(C’) delay_estimate(C),

then delay_estimate has Monotone Speedup property

Timing simulation does not have this property

Page 25: EECS 219B Spring 2001

25

Timing Simulation RevisitedTiming Simulation Revisited

2

1

4

1

1

0

0

2

1

4

3

4

4

means that the rising signalmeans that the rising signaloccurs anywhere between occurs anywhere between t = -infinity and t = 4.t = -infinity and t = 4.

X-valued simulationX-valued simulation

Page 26: EECS 219B Spring 2001

Timing Simulation RevisitedTiming Simulation Revisited

Timed 3-valued (0,1,X) simulation– called X-valued simulation

Monotone speedup property is satisfied.

Underlying model of • floating mode condition [Chen, Du]

– Applies to “simple gate” networks only

• viability [McGeer, Brayton]– Applies to general Boolean networks

Page 27: EECS 219B Spring 2001

27

Floating Mode AnalysisFloating Mode Analysis

Assume that all nodes have X before applying an input vector– conservative assumption

Path sensitization (floating-mode - for simple gate networks only)

0 0For final controlled output value

1

Earliest-arriving controlling valuedetermines the output stable time

late

early

1

11For final non-controlled output value

Latest-arriving non-controlling valuedetermines the output stable time

early

late

Page 28: EECS 219B Spring 2001

False Path Analysis AlgorithmsFalse Path Analysis Algorithms

Checking the falsity of every path explicitly is too expensive - exponential # of paths

State-of-the-art approach:1. Start: set L = Ltop /2= topological longest path delay /2

Lold = 0

2. Binary search:

If (Delay(L)) (*)

L = |L-Lold|/2, Lold = L, L = L + L

Else, L = |L-Lold|/2, Lold = L, L = L - L

If (L > Ltop or L < threshold), L = Lold , done

(*) Delay(L) = 1 if there an input vector under which an output gets stable only at time t where L t ? Can be reduced to– a SAT problem [McGeer, Saldanha, Brayton, ASV] or

– a timed-ATPG [Devadas, Keutzer, Malik]

Page 29: EECS 219B Spring 2001

29

SAT-based False Path AnalysisSAT-based False Path Analysis

Decision problem:Is there an input vector under which the output gets stable only after t = T ?

Idea:

1. characterize the set of all input vectors S(T) that make the output stable no later than t = T

2. check if S(T) contains S = all possible input vectors This check is solved as a SAT problem:

Is S \ S(T) empty? - set difference + emptiness check

• Let F and F(T) be the characteristic functions of S and S(T)

• Is F !F(T) satisfiable?

Page 30: EECS 219B Spring 2001

30

ExampleExample

Assume all the PIs arrive at t = 0, all gate delays = 1Is the output stable time t > 2?

aa

bb

cc

dd

ee ff

gg

Page 31: EECS 219B Spring 2001

31

ExampleExample

g(1,t=2) : the set of input vectors under which g gets stable to value = 1 no later than t =2

aa

bb

cc

dd

ee ff

gg

g(1,t=2) = d(1,t=1) f(1,t=1)

g(1,t=) = onset = !a!bc = g(1,t=2) = S1

Onset:Onset:stabilized by t=2?stabilized by t=2?

= (a(0,t=0) b(0,t=0)) (c(1,t=0) e(1,t=0))= !a!b(c ) = !a!bc = S1(t=2)

Page 32: EECS 219B Spring 2001

32

ExampleExample

g(g(00,t=2) : the set of input vectors under which,t=2) : the set of input vectors under which g gets stable to value = g gets stable to value = 00 no later than t=2 no later than t=2

aa

bb

cc

dd

ee ff

gg

g(0,t=2) = d(0,t=1) g(0,t=2) = d(0,t=1) f(0,t=1) f(0,t=1) = (a(1,t=0) = (a(1,t=0) b(1,t=0)) b(1,t=0)) (c(0,t=0) (c(0,t=0) e(0,t=0)) e(0,t=0)) = (a+b) + (!c = (a+b) + (!c ) = ) = a+ba+b = S = S00(t=2)(t=2) g(0,t=g(0,t=) = offset = ) = offset = a+b+!ca+b+!c = S = S00

Page 33: EECS 219B Spring 2001

33

ExampleExample

g(g(00,t=2) : the set of input vectors under which,t=2) : the set of input vectors under which g gets stable to g gets stable to 00 no later than t=2 no later than t=2

aa

bb

cc

dd

ee ff

gg

g(0,t=2) = g(0,t=2) = a+ba+b

g(0,t=g(0,t=) = offset = ) = offset = a+b+!ca+b+!c

Offset:NOTstabilized by t=2under abc=000

g(0,t=g(0,t=) \ g(0,t=2) = (a+b+!c) !(a+b) = ) \ g(0,t=2) = (a+b+!c) !(a+b) = !a !b !c!a !b !c = = satisfiablesatisfiable

Page 34: EECS 219B Spring 2001

34

For general networksFor general networks

Can build a companion network to represent each output: output(0,t=T’) or output(1,t=T’)

Take each gate g from outputs in reverse topological order. For g(1,t=T):1. Compute all primes of gate onset

2. Make AND gate for each prime

3. OR these together to form g(1,t=T)

For g(0,t=T), do same but for offset

For inputs to these primes, form companion networks for {fi(1,t = T-Dg), fi(0,t = T-Dg), i in FI(g)}

pp11

pp22 ++pp33

g(1,T)g(1,T)ffii(1,T-D(1,T-Dgg))

ffjj(0,T-D(0,T-Dgg))

Now form SATclauses for thisnetwork andsolve

Page 35: EECS 219B Spring 2001

35

SummarySummary

False-path-aware arrival time analysis is well-understood– Practical algorithms exist

• Can handle industrial circuits easily

Remaining problems– Incremental analysis (make it so that a small change in the

circuit does not make the analysis start all over)– Integration with logic optimization– DSM issues such as cross-talk-aware false path analysis

Page 36: EECS 219B Spring 2001

36

Timed ATPGTimed ATPG

Yet another way to solve the same decision problem

A generalization of regular ATPG:– regular ATPG

• find an input vector that differentiates a fault-free circuit and a faulty circuit in terms of functionality

– Timed ATPG

• find an input vector that exhibits a given timed behavior

• Timed extension of PODEM

Page 37: EECS 219B Spring 2001

37

Timed ATPGTimed ATPG

(0,[3,3])(0,[3,3])(X,[0,0])(X,[0,0])

(X,[0,0])(X,[0,0])

(X,[0,0])(X,[0,0])

Page 38: EECS 219B Spring 2001

38

Timed ATPGTimed ATPG

(0,[3,3])(0,[3,3])((00,[0,0]),[0,0])

(X,[0,0])(X,[0,0])

(X,[0,0])(X,[0,0])

(X,[1,2])(X,[1,2])

((00,[1,1]),[1,1])

(X,[1,1])(X,[1,1])

(X,[2,3])(X,[2,3])

Page 39: EECS 219B Spring 2001

39

Timed ATPGTimed ATPG

(0,[3,3])(0,[3,3])(0,[0,0])(0,[0,0])

(X,[0,0])(X,[0,0])

(0,[0,0])(0,[0,0])(0,[1,1])(0,[1,1])

(1,[1,1])(1,[1,1])

(X,[1,2])(X,[1,2])

(X,[2,3])(X,[2,3])

Page 40: EECS 219B Spring 2001

40

Timed ATPGTimed ATPG

(0,[3,3])(0,[3,3])(0,[0,0])(0,[0,0])

(1,[0,0])(1,[0,0])

(0,[0,0])(0,[0,0])(0,[1,1])(0,[1,1])

(1,[1,1])(1,[1,1])

(1,[1,1])(1,[1,1])

(1,[2,2])(1,[2,2])

Value and timeValue and timeconflict!conflict!

Backtrack!Backtrack!

Page 41: EECS 219B Spring 2001

41

Timed ATPGTimed ATPG

(0,[3,3])(0,[3,3])(0,[0,0])(0,[0,0])

(0,[0,0])(0,[0,0])

(0,[0,0])(0,[0,0])(0,[1,1])(0,[1,1])

(1,[1,1])(1,[1,1])

(0,[2,2])(0,[2,2])

(0,[3,3])(0,[3,3])

Justified!Justified!

Found an input vector that makesFound an input vector that makesthe output stable to 0 no earlier than t=3the output stable to 0 no earlier than t=3