ntuee 1 coupling-constrained dummy fill for density gradient minimization huang-yu chen 1, szu-jui...

Post on 01-Jan-2016

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

NTUEE 1

Coupling-Constrained Dummy Fill for Density Gradient Minimization

Huang-Yu Chen1, Szu-Jui Chou2, and Yao-Wen Chang1

1National Taiwan University, Taiwan

2Synopsys, Inc, Taiwan

NTUEE 2

Dummy Fill

․ Dummy fill is a general method to achieve layout uniformity before CMP (chemical-mechanical polishing)

․ Two objectives for dummy fill: (1) minimize induced coupling capacitancecoupling capacitance of dummies(2) minimize density gradientdensity gradient of metal density

Metals DummiesMetals

smaller density gradientlarger density gradient

NTUEE 3

Previous Work: CDF Algorithm

Slot partition by endpoints of segments

A layoutslots 1 2 3 4 5 6

Coupling-free fill regions identification

for each slot

Filling max # of dummies into these regions

․ CDF Algorithm presented in [Xiang et al. TCAD’08]

Do not consider density gradient!

Use too many dummies!

NTUEE 4

Our Algorithm Flow

CDF [TCAD’08]

Density gradient-driven dummy fill

LayoutCoupling

constraints

Fill result

․ After identifying fill regions by the CDF algorithm, transform a slot-based layout into a tile-based one

․ Use density gradient-driven dummy fill

slot-based

tile-based

Slot-to-tile conversion

NTUEE 5

Tile Density Bounds Computation

․ Compute bounds satisfying both coupling and foundry density rules

․ Tile density lower bound Bl = max{Fl, Ds}

․ Tile density upper bound Bu = min{Fu, Dc} Fl,Fu: foundry density lower and upper bound rules

Ds: segment density

Dc: segment density + maximum dummy density in fill regions

Fl = 2/16 (12.5%), Fu = 8/16 (50%)Ds = 3/16, Dc = 9/16(Bl, Bu) = (3/16, 8/16)

segment

dummydummy (Bl, Bu) guarantees no coupling

and density rule violations in the following stages

NTUEE 6

Multilevel Dummy Density Analysis

cf. sliding window• avoid the ordering problem• reduce the discretization gap• obtain a better global view

cf. sliding window• avoid the ordering problem• reduce the discretization gap• obtain a better global view

Coarsening Uncoarsening

G0

G1

G2 G2

G1

G0Metal Density

Low

High

(1) Gradient minimization by Gaussian smoothing(2) Density bounds update level by level

(1) Density extraction(2) Density bounds update level by level

NTUEE 7

Multilevel Dummy Density Analysis

0.23 0.29 0.28

0.26 0.30 0.32

0.22 0.25 0.28

0.23 0.28 0.25

0.29 0.25 0.30

0.18 0.23 0.23

0.1 0.2 0.3

0.2 0.2 0.2

0.1 0.1 0.3

G0

0.26 0.30 0.31

0.28 0.30 0.32

0.27 0.30 0.31

0.2 0.2 0.3

0.2 0.2 0.3

0.2 0.2 0.3

0.27 0.28 0.28

0.29 0.29 0.30

0.26 0.27 0.28

0.30 0.31 0.31

0.32 0.32 0.33

0.29 0.30 0.31

0.28 0.28 0.38

0.28 0.28 0.38

0.28 0.28 0.38

Gradient minimization

Average

Density extraction

G1

G2 G2

G1

G0

Coarsening Uncoarsening

NTUEE 8

Coarsening: Gradient Minimization

․ Gaussian smoothing at tile Dc(x,y): original density g(x,y): weighting function =

․ Gaussian smoothing opens up a new direction for gradient minimization

2 2

2 2

ˆ ˆ1 ( ) ( )exp( )

2 2

x x y y

)y,x( ˆˆ

Gaussian smoothing

(σ=1.0)

0.24

0.1 0.40.1

0.2 0.40.4

0.3 0.30.2

0.2

0.3

0.2

0.3

0.2

0.1

0.1 0.10.2 0.1 0.3

0.2 0.20.4 0.3 0.4

Dc(x,y)

ˆ ˆ ( , ) ( , )cD x y g x y(x,y)de

nsi

ty

den

sity

x y x y

NTUEE 9

Coarsening: Tile Density Bounds Update

Dc(x,y) after Gaussian smoothing

0.2 0.2 0.3

0.2 0.2 0.3

0.2 0.2 0.3

0.4 0.4 0.4

0.4 0.4 0.4

0.4 0.4 0.4

0.1 0.1 0.1

0.1 0.1 0.1

0.1 0.1 0.1

Bu(x,y)

Bl(x,y) prune the value larger (smaller) than Bu (Bl)

G0 0.23

0.33

0.13

Bu

Bl

=0.23+min{Bu(x,y) -Dc(x,y)}=0.23+(0.4-0.3)

=0.23-min{Dc(x,y) -Bl(x,y)}=0.23-(0.2-0.1)

G1

NTUEE 10

Uncoarsening: Density Extraction

0.23 0.29 0.28

0.26 0.30 0.32

0.22 0.25 0.28

0.23 0.28 0.25

0.29 0.25 0.30

0.18 0.23 0.23

0.1 0.2 0.3

0.2 0.2 0.2

0.1 0.1 0.3

0.2 0.2 0.3

0.2 0.2 0.3

0.2 0.2 0.3

0.27 0.28 0.28

0.29 0.29 0.30

0.26 0.27 0.28

Gradient minimization

Average

Density extraction

+0.03

+0.08

G0

G1

G2

0.28 0.28 0.38

0.28 0.28 0.38

0.28 0.28 0.38

G0

G1

0.30 0.31 0.31

0.32 0.32 0.33

0.29 0.30 0.31

0.26 0.30 0.31

0.28 0.30 0.32

0.27 0.30 0.31

G2

NTUEE 11

ILP-based Dummy Number Assignment

․ Optimally insert minimal # of dummies to satisfy the desirable tile density dd in a tile

․ For the tile with n fill regions R1,…,Rn,

niur

aadraaad

r

ii

n

i diid

n

i i

,,1,2

1

2

1subject to

minimize

1 maxmax

1

ri: # of dummies in Ri

dd: dummy density of tilea: tile areaai: area of one dummy in Ri

amax: max {ai}ui: max # of dummies in Ri

R1 R2

u1=5a1=3

u2=3a2=4

amax=4

NTUEE 12

Experimental Setting

․ Programming language: C++

․ Workstation: 2.0 GHz AMD-64 with 8GB memory

․ ILP solver: lp_solve

․ Parameters Window size=3 × 3 Gaussian smoothing: σ=1.0 Foundry density lower and upper bounds: 20% and 80%

․ Test cases: MCNC and industrial Faraday benchmarks

․ Comparison with the CDF algorithm [TCAD’08] for all layers and layer 1

Metal density Neighboring density difference (density gradient)

NTUEE 13

․ Inserted dummy count is only 59% compared with CDF algorithm

․ Timing overhead is only 4%

Runtime and Inserted Dummy Counts

CircuitCDF Ours

#Dummy Time (s) #Dummy Time (s)

Mcc1 1262100 160 413735 171

Mcc2 20117831 7249 6414418 7292

Struct 8996228 45 6849275 72

Primary1 7081135 32 4210902 52

Primary2 2.5E+07 428 19140968 489

S5378 269876 21 120440 22

S9234 230173 14 106434 16

S13207 657840 78 341652 76

S15850 721298 99 344549 102

S38417 2100467 329 1033157 336

S38584 2460061 517 1207341 526

Dma 284700 67 166574 100

Dsp1 1371351 290 741346 329

Dsp2 941447 189 562385 230

Risc1 4251368 252 2463637 312

Risc2 5291254 396 3400666 446

Comp. 1.00 1.00 0.59 1.04

NTUEE 14

․ The standard deviations are reduced by 55% and 49% among all layers and of layer 1, respectively

Statistics of Metal Density (MCNC)

Circuit

CDF Analysis Algorithm Ours

Density among Layers Density of Layer 1 Density among Layers Density of Layer 1

Avg. Max Std. Avg. Max Std. Avg. Max Std. Avg. Max Std.

Mcc134.49

%58.94

%9.31%

30.86%

47.61%

7.05%20.52

%47.84

%4.52%

21.10%

41.54%

4.46%

Mcc236.14

%55.51

%5.61%

33.59%

52.81%

4.26%22.40

%54.48

%4.17%

23.20%

49.80%

4.12%

Struct22.63

%33.70

%5.08%

16.55%

27.79%

2.26%18.68

%5.19% 1.98%

16.32%

19.99%

1.58%

Primary122.62

%34.10

%10.41

%19.39

%34.10

%9.95%

16.87%

9.10% 7.18%16.33

%20.46

%7.55%

Primary222.35

%33.43

%3.65%

18.50%

23.74%

1.21%19.39

%10.09

%1.12%

18.42%

19.99%

1.06%

S537827.37

%40.15

%3.84%

27.10%

36.95%

3.28%19.93

%30.29

%0.67%

19.81%

25.92%

0.45%

S923428.30

%48.00

%4.97%

27.90%

40.80%

3.62%20.06

%30.80

%1.02%

19.79%

21.60%

0.31%

S1320726.90

%38.60

%3.43%

25.90%

33.60%

2.19%20.36

%28.90

%1.32%

19.93%

25.54%

0.28%

S1585026.80

%38.60

%3.05%

26.30%

33.30%

2.19%20.23

%30.00

%1.06%

19.91%

21.57%

0.09%

S3841726.80

%36.40

%2.37%

25.80%

30.80%

1.38%20.10

%32.10

%0.76%

19.96%

20.00%

0.01%

S3858426.36

%32.91

%1.94%

25.90%

32.82%

1.53%20.04

%28.42

%0.49%

19.96%

19.99%

0.01%

Comp. 1.00 1.00 1.00 1.00 1.00 1.00 0.73 0.76 0.45 0.77 0.73 0.51

NTUEE 15

․ The standard deviations are reduced by 26% and 54% among all layers and of layer 1, respectively

․ Overall comparison (MCNC+Faraday)

Statistics of Metal Density (Faraday)

Circuit

CDF Analysis Algorithm Ours

Density among Layers Density of Layer 1 Density among Layers Density of Layer 1

Avg. Max Std. Avg. Max Std. Avg. Max Std. Avg. Max Std.

Dma 22.72% 88.73% 18.0% 23.19% 61.92% 24.0%18.72

%71.40

%14.8% 9.34%

23.51%

9.6%

Dsp1 18.64% 73.20% 17.4% 22.32% 55.81% 22.6%14.52

%55.07

%12.8%

10.25%

22.12%

10.2%

Dsp2 19.73% 74.17% 17.5% 24.04% 51.61% 24.2%14.95

%60.49

%12.3% 9.38%

42.34%

9.4%

Risc1 18.53% 66.18% 17.3% 21.67% 54.15% 21.5%13.98

%58.11

%12.2%

10.35%

42.61%

10.2%

Risc2 17.05% 72.91% 16.0% 16.21% 43.34% 15.7%13.52

%50.65

%11.5%

10.47%

40.52%

10.0%

Comp. 1.00 1.00 1.00 1.00 1.00 1.00 0.78 0.79 0.74 0.46 0.64 0.46

Circuit

CDF Analysis Algorithm Ours

Density among Layers Density of Layer 1 Density among Layers Density of Layer 1

Avg. Max Std. Avg. Max Std. Avg. Max Std. Avg. Max Std.

Comp. 1.00 1.00 1.00 1.00 1.00 1.00 0.74 0.77 0.63 0.69 0.69 0.47

NTUEE 16

Comparison of S5378 Layer 1 Filling Results

CDF algorithm [TCAD’08]

Ours

NTUEE 17

Conclusions and Future Work

․ Presented an effective and efficient dummy fill algorithm considering both gradient minimization and coupling constraints

Reduced 37% std. of metal density among all layers Saved 41% dummy counts

․ Gaussian smoothing is effective for gradient-minimization dummy fill

Point out a new research direction on this topic

․ Future work: integration of gradient minimization and coupling constraints

NTUEE 18

Conclusions and Future Work

․ A dummy fill algorithm considering both gradient minimization and coupling constraints

․ Achieve more balanced metal density distribution with fewer dummy features and an acceptable timing overhead

․ Future work: integration of gradient minimization and coupling constraints

Simultaneously minimize the gradient and the coupling capacitance

Thank You!

Huang-Yu Chen

yellowfish@eda.ee.ntu.edu.tw

top related