timing optimization

21
Timing Optimization

Upload: matthew-schultz

Post on 31-Dec-2015

42 views

Category:

Documents


3 download

DESCRIPTION

Timing Optimization. Optimization of Timing. Three phases globally restructure to reduce the maximum level or longest path Ex: a ripple carry adder ==> a carry look-ahead adder physical design phase transistor sizing timing driven placement buffering actual design - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Timing Optimization

Timing Optimization

Page 2: Timing Optimization

Optimization of Timing

• Three phases

1 globally restructure to reduce the maximum level or longest path

Ex: a ripple carry adder ==>

a carry look-ahead adder

2 physical design phase

– transistor sizing

– timing driven placement

– buffering

3 actual design

– fine tune the circuit parameter

Page 3: Timing Optimization

Delay Model at Logic Level

1 unit delay model

– assign a delay of 1 to a gate

2 unit fanout delay model

– incorporate an additional delay for each fanout

3 library delay model

– use delay data in the library to provide more accurate delay value

Page 4: Timing Optimization

Arrival Time & Required Time

• arrival time : from input to output

• required time : from output to input

• slack = required time - arrival time

1

1 3

23

c d e f

g h

Page 5: Timing Optimization

Restructure for Timing [SIS]

Two Steps:

• minimize area

• speed up

required time

arrival time

critical node = with negative slack time

output

input

Page 6: Timing Optimization

Basic Idea

collapse critical nodes and re-decompose

a b

c

y

a

b c

y

x

critical path a-x-y

Page 7: Timing Optimization

Speed Up

speed up(d)

1 compute the slack time of each node

2 find all critical nodes and compute cost for each critical node

3 select re-synthesis points ( find minimum cut set of all critical node )

4 collapse and re-decompose the re-synthesis points

5 if timing requirement is satisfied, done. otherwise go to step 1

Page 8: Timing Optimization

Step 2 of Speed-up Algorithm

Step 2 :

– compute cost function

• selecting re-synthesis points has to consider

(1)ease for speed-up (re-synthesis)

(2)area overhead

Page 9: Timing Optimization

Ease for Speed-Up

y

x

• let d = 1 (collapsing depth, given) y => 1 critical input 2 non-critical inputs x => 4 critical inputs• If y is chosen, it will be easier to perform re-decomposition.

Page 10: Timing Optimization

Area Penalty

f g

b c

dx

b-x-g critical collapse x into g

f g

b c

dx

duplicate

Page 11: Timing Optimization

Cost Function

• define weight for critical node X

Wx(d) = Wxt(d) + Wx

a(d)

– Wxt(d) reflect the ease for speed up

– Wxa(d) reflect area increase

N(d) = signals that are input to

re-synthesis region

M(d) = nodes in the re-synthesis region

M(d)

dy is shareM(d)ydW

dN

SydNydW

a

x

t

x

)(

)(

)()(

Page 12: Timing Optimization

Example of Computing Cost Function

d=3Wx

t(d) = 2/6Wx

a(d) = 3/5

Ex: x

y z

u

wv

a

b c d e

f

y

Page 13: Timing Optimization

Step 3 of Speep-up Algorithm

Step 3 :

Background:

A network N=(s,t,V,E,b) is a diagram (V, E) together with a source s V and a sink t V with bound (capacity),

b(u,v) Z+ for all edges.

A flow f in N is a vector in such that

1. 0 f(u,v) b(u,v) for all (u,v) E

2.

Ex:

5 4

3 3

17

2

1

The value of the flow f =6

s t

R E

f u v f v w V-{s,

E

( , ) ( , )

for all v t} (u,w)(u,v) E

Page 14: Timing Optimization

Min-cut

An s-t cut is a partition (W,W’) of the nodes of V into sets W and W’ such that s W and t W’. The capacity of an s-t cut

c W W b i, ji j E

( , ' ) ( )( , )

such thati w, j w'

s t

forward

backward

W W’

Max-flow = min-cut

Page 15: Timing Optimization

Example

Ex:

y x

z

vu

w

=> Network flow

Page 16: Timing Optimization

Transform Node-cut to Edge-cut

Step 3:

Duplicate each node

u’ v’

z

y’ x’

y x

w’z’

w

vu

w(y) w(x)

w(z) w(w)

w(u) w(v)

use maxflow(min-cost) algorithm to find resysthesis points

Page 17: Timing Optimization

Step 4 of Speed-up Algorithm

Step 4 :

Re-decompose

1. kernel based decomposition

• extract divisor

• the weight of a divisor is a linear sum of area component (literal saved) and time component (prefer the smallest arrival time)

2. and-or decomposition

0 0 1.0 2.0

0 0

1.02.0

Page 18: Timing Optimization

An Improved Cut Set (Separator Set)

• Un-balanced path delay• Minimum cost cut set = 4 ({C})• Delay reduction = 0.5

Ad=1

Bd=1.5

Ed=1

Cd=0.5

Fd=1.5

Dd=1

Gd=2

(-0.6/4/0.5)

(-0.6/2/0.25) (-0.6/2/0.5)(-0.6/1/0.25)

(-0.1/4/0.25)(-0.1/2/0.25)

(-0.6/4/0.5)

(x,y, z) means (slack, cost, delay reduction)

Page 19: Timing Optimization

Construct a Path-balanced Graph

• ds(e) = slack (HeadNode (e))– slack (TailNode(e))• If ds(e) > 0, insert a “padding node”• P1 and P2 are two padding nodes• Minimum cost cut-set = 1 ({E, P2}) • Delay reduction = 0.5

(-0.6/1/0.25)

Ad=1

Bd=1.5

Ed=1

Cd=0.5

Fd=1.5

Dd=1

Gd=2

(-0.6/4/0.5)

(-0.6/2/0.25) (-0.6/2/0.5)

(-0.1/4/0.5)(-0.1/2/0.25)

(-0.6/4/0.5)P1

d=0.5P2

d=0.5

(-0.6/0/0.5) (-0.6/0/0.5)

(x,y, z) means (slack, cost, delay reduction)

(-0.6/2/0.25)(-0.6/4/0.5)

Page 20: Timing Optimization

Technique Used in Other Optimization Steps

– Gate sizing

– Low power design (threshold voltage assignment)

• high threshold voltage:

– leakage power↓

– delay↑

• low threshold voltage:

– leakage power ↑

– delay↓

Page 21: Timing Optimization

How to Reduce Leakage Power Without Performance Loss

1 use low threshold voltage gates for timing optimization

2 compute the slack time of each node

3 find all non-critical nodes and compute cost for each non-critical node

4 replace candidate nodes by high threshold voltage gates for saving leakage power

5 re-compute the slack time of each node

6 if timing requirement is not violation, go to step 3. otherwise, rollback and done.