A Metal-Only-ECO S olver for Input-S lew and Output-Loading - - PowerPoint PPT Presentation

a metal only eco s olver for input s lew and output
SMART_READER_LITE
LIVE PREVIEW

A Metal-Only-ECO S olver for Input-S lew and Output-Loading - - PowerPoint PPT Presentation

1 A Metal-Only-ECO S olver for Input-S lew and Output-Loading Violations Chien-Pang Lu, Mango C.-T. Chao, Chen-Hsing Lo, and Chih-Wei Chang Mstar Semiconductor, ChuPei, Taiwan Dept. of EE, Natl Chiao Tung Univ., Hsinchu, Taiwan 2


slide-1
SLIDE 1

1

Mstar Semiconductor, ChuPei, Taiwan

  • Dept. of EE, Nat’l Chiao Tung Univ., Hsinchu, Taiwan

A Metal-Only-ECO S

  • lver for

Input-S lew and Output-Loading Violations

Chien-Pang Lu, Mango C.-T. Chao, Chen-Hsing Lo, and Chih-Wei Chang

slide-2
SLIDE 2

Outline

Metal-only ECO & its challenges Problem Formulation Proposed Slew/Loading-Violation Solver

(MOESS)

▫ Overall Flow ▫ Increase spare-buffer pool ▫ Wire-loading estimation ▫ ESB mode (minimize # of inserted buffers) ▫ ECT mode (reduce critical path’s delay)

Experimental result Conclusions

2

slide-3
SLIDE 3

Metal-Only ECO

  • The increasing pressure of time-to-market has

forced IC design houses to improve capability of handling incremental design changes

  • Those design changes are often requested after

silicon chips are manufactured

▫ its photomasks need to be changed

  • Solution: metal-only ECO

▫ change only the metal layers (for interconnect) while the base layers (for cells) remain the same ▫ reduce cost by reusing base-layer photomasks ▫ shorten tape-out turn-around time

3

slide-4
SLIDE 4

EDA Tools Needed in Metal-Only ECO

  • Allocate spare cells all over a chip

▫ EDA vendors already provide effective solutions

  • Obtain netlist difference and implement the

difference

▫ EDA vendors already provide effective solutions

  • A router dealing with a lot obstacles

▫ EDA vendors already provide effective solutions

  • Solve violations of timing-related factors, such

as setup time, input slew, and output loading

▫ However, vendor’s solutions are not effective so far

4

slide-5
SLIDE 5

Outline

Metal-only ECO & its challenges Problem Formulation Proposed Slew/Loading-Violation Solver

(MOESS)

▫ Overall Flow ▫ Increase spare-buffer pool ▫ Wire-loading estimation ▫ ESB mode (minimize # of inserted buffers) ▫ ECT mode (reduce critical path’s delay)

Experimental result Conclusions

5

slide-6
SLIDE 6

Problem Formulation of Proposed Work

  • Given:

▫ Input-slew and output-loading constraints ▫ Nets violating the constraints after the design changes are implemented ▫ Available spare cells

  • Objective

▫ Insert fewest spare cells as buffers to eliminate the violations

  • Use a commercial APR tool to realize the buffer

insertions

  • Focus on how to select proper spare cells and

estimate the added wire loading when inserting the buffers by the adopted APR tool

6

slide-7
SLIDE 7

Transfer Input-slew Constraint into Equivalent Output-loading Constraint

  • OALg : Output Available Loading

▫ The maximum output loading of gate g which can generate an

  • utput slew smaller than the slew constraint assuming that g’s

input slew is equal to slew constraint

  • Obtaining OALg for each type of gate

▫ Binary search, table look-up

Ex: target input slew constraint, 500ps

constant (large cap pin)

Assume

  • utput loading

Fixed slew constraint

  • utput slew

confirm

1 2 3

Iteration input slew output load output slew 1 500p 4000ff 2000p 2 500p 1500ff 400p 3 500p 1600ff 520p 4 500p 1540ff 500p OAL(1540ff): under 500p input slew

7

slide-8
SLIDE 8

Outline

Metal-only ECO & its challenges Problem Formulation Proposed Slew/Loading-Violation Solver

(MOESS)

▫ Overall Flow ▫ Increase spare-buffer pool ▫ Wire-loading estimation ▫ ESB mode (minimize # of inserted buffers) ▫ ECT mode (reduce critical path’s delay)

Experimental result Conclusions

8

slide-9
SLIDE 9

Overall Flow of MOES S

  • 1. Collect usable spare gates
  • 2. For each slew/cap violation pin, apply ESB buffer-insertion

scheme to solve the violation with least # of spare cells

  • 3. For each timing violation net, apply ECT buffer-insertion

scheme to reduce set-up time while satisfying slew/cap constraints

  • 4. For each unsolved timing violation net, enforce priority routing

using top metal or double spacing Check STA timing report Check STA timing report Done OK No No OK 9

slide-10
SLIDE 10

Increase S pare-Buffer Pool

  • Recycle of redundant cells

▫ APR tools use special tags to identify spare buffers ▫ Tags may be lost by engineer’s incorrect operation ▫ MOESS applies a breadth-first search starting from each floating output to recycle the lost-tag gates

  • Function cells as buffers by connecting the other

inputs to a constant

3ff 8ff

B A Y

4ff 7ff

S B A Y

10

slide-11
SLIDE 11

Wire-Loading Estimation for a Two-Terminal Net

  • Use a net’s Manhattan distance (MD) to estimate its

wire loading (WL)

  • WL(p1,p2)

=MDh(p1,p2)*RRMDh(VD(p1,p2)*Kh + MDv(p1,p2)*RRMDv(VD(p1,p2)*Kv

11 Manhattan distance Wire loading constant per routing unit routing ratio to Manhattan distance # of vias over rectangle area formed by p1 and p2 This function is actually the average statistics collected from the past usage of the adopted ARP tool

slide-12
SLIDE 12

S

  • lving Violation for a High-Fanout Net
  • How to use fewest buffers to solve a violation?

▫ How many terminals driven by a buffer?

in

  • ut

in case3

?

case2 case1

12

in in in in in in in

  • ut

in in in in in in in in

  • ut

in in in in in in in in

  • ut

in in in in in in in

slide-13
SLIDE 13

Flow of ES B Buffer-Insertion S cheme (Use fewest buffers to solve the violation)

  • A. Obtain MC (minimum-chain)
  • rder of net’s terminal pins
  • B. Group terminal pins

based on the MC order

  • C. Calculate the ideal buffer

location for driving grouped terminals

  • D. Search real spare buffer

and insert it to the net

  • E. Update net and recalculate

Its MC order Meet loading constraint? Done OK NO 13

slide-14
SLIDE 14

Minimum-Chain Order of a Net’ s Terminals

  • Algorithm:

▫ Start from violation gate ▫ Select the closest terminal as the next ordered terminal until all terminal are ordered

  • ut

in in in in 1 2 3 4

14

Violating gate MC Order net terminal

slide-15
SLIDE 15

Group Terminals

  • Group the terminals based on the reversed MC order
  • Each time add one terminal into the group
  • Stop when adding the new terminal would exceed gate’s

OAL (slew/loading constraint)

  • Use a buffer to drive as many terminals as possible
  • ut

in in in in 1 2 3 4

group1

g n i i i p

OAL )) ,p WL(p (InC

i

< +

= − 1 1

15

slide-16
SLIDE 16

Calculate Ideal Location of Inserted Buffer

  • Two rules when deciding ideal buffer’s location
  • R1 : Use all buffer’s driving capability under the given

constraint

  • |Xb-Xp|*Uh(b,pn)+|Yb-Yp|*Uv(b,pn)≤ORLb
  • ORL - Output Remain Loading
  • Uh and Uv are vertical and horizontal distance per loading unit
  • R2 : Locate the inserted buffer as close to the violation

gate as possible

  • (Yb-Yp)/(Xb-Xp)=(Yp-Yg)/(Xp-Xg)
  • Limit the ideal location between g and pn

1 1

i

n b b p i i i

ORL OAL (InC WL(p , p ))

− =

= − +

g: output b: ideal buffer pn: overloading group terminal closest to g

16

slide-17
SLIDE 17

Find S pare Buffer near Ideal Location

  • Use ORLb as the radius to draw the boundary of

searching feasible spare buffers

ideal buffer location radius of searching area slope line, from to maximum loading boundary (Manhattan distance) : candidate spare : overloading spare

1

p

2

p

1 − n

p

n

p

) ,Y (X

n n

p p

) ,Y (X

b b

) ,Y (X

g g

g g

n

p

b

ORL

b

ORL

  • • •

17

slide-18
SLIDE 18

Backward Tolerance: Enlarge S

earching S pace

  • Ungroup the last grouped terminal to increase the

ORL and in turn the radius of the search space

▫ Keep on ungrouping until a spare gate is found

FG FG FG FG (empty)

(a) (b)

FG FG FG : candidate spare gate

(#spare:2)

: FG, farthest group : spare not candidate

18

slide-19
SLIDE 19

Example

19

Output loading exceed constraints Update net and recalculate its MC order Output loading meet constraints. Done!

1 2 3 4 5 6 1 2 3 4 6 7 8 5

slide-20
SLIDE 20

ECT Mode (reduce critical path’ s delay)

  • Separate the grouping of original terminals from

the grouping of new-added terminals far away from the violation output

▫ Group the distant, new-added terminals first

30um 70um 100um 1500um 2500um 3500um

ESB Mode ECT Mode

30um 70um 100um 1500um 2500um 3500um timing critical terminal

extra delay from buffer!

MD constraint ⇒ 1000u

After ECO multi-cycle path

After ECO multi-cycle path

20

slide-21
SLIDE 21

Outline

Metal-only ECO & its challenges Problem Formulation Proposed Slew/Loading-Violation Solver

(MOESS)

▫ Overall Flow ▫ Increase spare-buffer pool ▫ Wire-loading estimation ▫ ESB mode (minimize # of inserted buffers) ▫ ECT mode (reduce critical path’ s delay)

Experimental result Conclusions

21

slide-22
SLIDE 22

Design Information

Proj. (ver.) inst. count process spare count ECO size violation slew load Da(3) 190K .18 7.6K 142 40 Db(3) 210K .18 9.1K 1030 6 Dc(4) 242K .18 5.5K 507 71 Dd(3) 309K .18 10.4K 1904 47 De(2) 871K .13 62.4K 127 35 Df(2) 1.3M .13 48.8K 1276 15 243 Dg(4) 1.6M .13 80.5K 1702 166 258 22

slide-23
SLIDE 23

Experiment Result

Proj. (ver.) worst slew worst loading worst slack [3] MOESS [3] MOESS [3] MOESS Da(3) 5.0n 1.9n <1 <1

  • 2.2n

>0 Db(3) 1.8n 1.8n <1 <1 >0 >0 Dc(4) 3.8n 2.0n <1 <1

  • 0.3n

>0 Dd(3) 2.1n 2.0n <1 <1 >0 >0 De(2) 0.9n 0.9n 1.2 1.1 >0 >0 Df(2) 1.3n 0.9n 3.5 1.2

  • 0.1n

>0 Dg(4) 1.2n 1.0n 4.6 1.2

  • 0.4n

>0 23 means the result violates the constraint

slide-24
SLIDE 24

Experiment Result

20 22 31 27 172 222 252 1 1 3 2 5 37 45 50 100 150 200 250 300

Run Tim e (average 14 .9 X faster)

[3] MOESS 78 12 91 83 63 377 314 40 5 68 48 35 277 259 50 100 150 200 250 300 350 400 da(3)db(3) dc(4) dd(3)de(2) df(2) dg(4)

# of inserted spare buffer (average im p. 38 %)

[3] MOESS 24

slide-25
SLIDE 25

Experiment Result

Proj. (ver.) spare count ECO size # violation worst slew worst loading worst slack slew load [3]

MOESS

[3]

MOESS

[3]

MOESS

Dh(2) 4.2K 52 7 1.8n 1.8n <1 <1 >0 >0 Dh(3) 4.1K 267 29 2 2.1n 1.8n <1 <1 >0 >0 Dh(5) 3.7K 1672 118 5 4.6n 2.0n 1.3 <1

  • 1.4n

>0 Dh(7) 1.9K 43 9 2 2.8n 2.0n <1 <1

  • 1.7n
  • 0.1n

Dh(8) 1.8K 135 17 3 3.5n 2.1n <1 <1

  • 0.5n
  • 0.1n

# of instance count: 352.1K 25 means the result violates the constraint

slide-26
SLIDE 26

Experiment Result

35 39 42 35 36 1 1 4.5 1 1 5 10 15 20 25 30 35 40 45 dh(2) dh(3) dh(5) dh(7) dh(8)

Run Tim e (average speed up 29.9X)

[3] MOESS 12 64 188 18 29 7 35 124 13 19 20 40 60 80 100 120 140 160 180 200 dh(2) dh(3) dh(5) dh(7) dh(8)

# of inserted spare buffer

[3] MOESS 26

slide-27
SLIDE 27

Conclusions

  • An effective solver to solve the slew/loading violations

generated in metal-only ECO

  • Less # of spare gates in use
  • Shorter runtime
  • The proposed solver can be ported to other APR tools as long

as the tools can provide open access to its design database

27

slide-28
SLIDE 28

28

Thank you!

slide-29
SLIDE 29
  • Current commercial tools are not aware of the

physical locations of spare gates

▫ Available spare gates may deviate from its ideal location

S

  • lving S

lew/ Loading Violation in Metal- Only ECO

desired location of inserted buffer real spare location Lack of physical knowledge! slew 500p eco map slew 1500p

29