High High Per erfor ormance mance Dummy ummy Fill Ins Fill - - PowerPoint PPT Presentation

high high per erfor ormance mance dummy ummy fill ins
SMART_READER_LITE
LIVE PREVIEW

High High Per erfor ormance mance Dummy ummy Fill Ins Fill - - PowerPoint PPT Presentation

High High Per erfor ormance mance Dummy ummy Fill Ins Fill nser ertion ion wit ith h Coupling oupling and and Unif Unifor ormit mity Cons onstraint aints Yibo Lin, Bei Yu, David Z. Pan Electrical and Computer Engineering


slide-1
SLIDE 1

Yibo Lin, Bei Yu, David Z. Pan Electrical and Computer Engineering University of Texas at Austin

High High Per erfor

  • rmance

mance Dummy ummy Fill Fill Ins nser ertion ion wit ith h Coupling

  • upling

and and Unif Unifor

  • rmit

mity Cons

  • nstraint

aints

slide-2
SLIDE 2

Outline

Ø Introduction Ø Problem Formulation Ø Algorithms Ø Experimental Results Ø Conclusion

2

slide-3
SLIDE 3

Chemical Mechanical Polishing (CMP)

3

Example of CMP [source: www.ntu.edu.sg]

slide-4
SLIDE 4

Uniformity

Ø Layout uniformity for CMP Ø Coupling capacitance

4

Metals Metals Dummy features

Uneven density distribution Even distribution

slide-5
SLIDE 5

Related Works

Ø Minimize density variation and number of fills

§ Linear Programming (LP)

§ [Kahng+,TCAD’99] § [Tian+, TCAD’01] § [Xiang+, TCAD’08]

§ Monte Carlo and heuristic approaches

§ [Chen+, ASPDAC’00] § [Chen+, DAC’00] § [Wong+, ISQED’05] Ø Minimize density variation with coupling

capacitance constraints

§ ILP

§ [Chen+, DAC’03], [Xiang+, ISPD’07]

5

slide-6
SLIDE 6

Holistic Metrics for Uniformity

Ø Holistic metrics for layout uniformity from IBM

(ICCAD 2014 Contest)

§ Variation (standard deviation) § Line hotspots § Outlier hotspots

6

N Columns M Rows

µ µ + 3σ µ + 3σ µ − 3σ µ − 3σ

slide-7
SLIDE 7

Holistic Metrics for Uniformity

Ø Holistic metrics for layout uniformity from IBM

(ICCAD 2014 Contest)

§ Variation (standard deviation) § Line hotspots § Outlier hotspots

7

N Columns M Rows

µ µ + 3σ µ + 3σ µ − 3σ µ − 3σ

slide-8
SLIDE 8

Metrics for Coupling Capacitance

Ø Coupling capacitance

§ Minimize overlay between layers

8

Layer 1 Layer 2 Layer 3

Overlay Dummy fill

slide-9
SLIDE 9

Problem Formulation

Based on the ICCAD 2014 contest

Ø Input

§ Layout with fill insertion regions § Signal wire density information across each window

Ø Quality score

§ Overlay area (20%) § Variation/std. dev. (20%) § Line hotspot (20%) § Outlier hotspot (15%) § File size for dummy fill insertion (5%)

Ø Overall score

§ Quality score (80%) § Runtime (15%) § Memory usage (5%)

Ø Output

§ Dummy fill positions and dimensions with maximum quality score

9

f(x) = max (0, 1 − x β )

Normalization function The higher score, the better

slide-10
SLIDE 10

Outline

Ø Introduction Ø Problem Formulation Ø Algorithms Ø Experimental Results Ø Conclusion

10

slide-11
SLIDE 11

Step 1: Density Planning

11

Linear scan with a small step to find best target density

d1 d1 d2 d2 d3 d3 d4 d4 d5 d5 d6 d6 d7 d7 d8 d8 d9 d9

Ø Given density ranges of each window Ø Find target density td for each window Ø Maximize density scores

slide-12
SLIDE 12

Step 1: Density Planning

12

Linear scan with a small step to find best target density

0.3 0.5 0.6 0.5 0.4 0.4 0.4 0.4 0.4

Ø Given density ranges of each window Ø Find target density td for each window Ø Maximize density scores

slide-13
SLIDE 13

Step 1: Density Planning

13

Linear scan with a small step to find best target density

0.3 0.5 0.6 0.5 0.4 0.4 0.4 0.4 0.4

Ø Given density ranges of each window Ø Find target density td for each window Ø Maximize density scores

slide-14
SLIDE 14

Step 1: Density Planning

14

Linear scan with a small step to find best target density

0.3 0.5 0.6 0.5 0.4 0.4 0.4 0.4 0.4

Ø Given density ranges of each window Ø Find target density td for each window Ø Maximize density scores

slide-15
SLIDE 15

Step 1: Density Planning

15

Linear scan with a small step to find best target density

0.3 0.5 0.6 0.5 0.4 0.4 0.4 0.4 0.4

Ø Given density ranges of each window Ø Find target density td for each window Ø Maximize density scores

slide-16
SLIDE 16

Step 1: Density Planning

16

Linear scan with a small step to find best target density

0.3 0.5 0.6 0.5 0.4 0.4 0.4 0.4 0.4

Ø Given density ranges of each window Ø Find target density td for each window Ø Maximize density scores

slide-17
SLIDE 17

Step 2: Candidate Fill Generation

Ø Generate candidate fills with minimum overlay Ø With the guidance of target density Ø A final fill is a rectangle within a candidate fill

17

Candidate fill Final fill

slide-18
SLIDE 18

Step 2: Candidate Fill Generation

Ø Generate candidate fills with minimum overlay Ø With the guidance of target density Ø A final fill is a rectangle within a candidate fill

18

Layer 1 Fill Layer 2 Fill Layer 3 Fill

q = −fill overlay fill area + γ · fill area window area

slide-19
SLIDE 19

Step 3: Dummy Fill Insertion (1)

19

Layer 1 Fill Layer 2 Fill Layer 1 Fill Layer 2 Fill

Shrink in horizontal direction Shrink in vertical direction

Ø

Given a set of candidate fills

Ø

Determine dimension of fills

Ø

Under DRC constraints

Ø

Minimize overlay area and density variation

Ø

Solve in an iterative manner

slide-20
SLIDE 20

B A C

x1

x1

x2

x2

x3

x3

x4

x4

x5

x5

x6

x6

min |(x2 − x1) · hA + (x4 − x3) · hB–td1 · Awin| + |(x6 − x5) · hC − td2 · Awin| + (x2 − x5) · hAC + (x6 − x3) · hBC s.t. x2 − x1 ≥ Wmin x4 − x3 ≥ Wmin x6 − x5 ≥ Wmin x3 − x2 ≥ Smin (x2 − x1) · hA ≥ Amin (x4 − x3) · hB ≥ Amin (x6 − x5) · hC ≥ Amin x2 − x5 ≥ 0 x6 − x3 ≥ 0 li ≤ xi ≤ ui, i = 1, 2, ..., 6

Step 3: Dummy Fill Insertion (2)

20

Shrink in horizontal direction Density variation Overlay area DRC rules Overlay constraints

Awin: area of a window Wmin: minimum width Smin: minimum spacing Amin: minimum area

hA hC hB

hAC hBC

An example of the mathematical formulation in one iteration

slide-21
SLIDE 21

Step 3: Dummy Fill Insertion (3)

21

min |(x2 − x1) · hA + (x4 − x3) · hB–td1 · Awin| + |(x6 − x5) · hC − td2 · Awin| + (x2 − x5) · hAC + (x6 − x3) · hBC

Ø Further relax to remove absolute operation Ø Add tighter bound constraints to variables

slide-22
SLIDE 22

Step 3: Dual to Min-Cost Flow

Ø Convert bound constraints

to differential constraints

Ø Dual to min-cost flow

22

min

xi N

X

i=1

cixi s.t. xi − xj ≥ bij, (i, j) ∈ E, li ≤ xi ≤ ui, i = 1, 2, ..., N, xi ∈ Z

c0

i =

⇢ ci i = 1, 2, ..., N − PN

i=1 ci

i = 0 b0

ij =

8 < : bij (i, j) ∈ E li i = 1, 2, ..., N, j = 0 −ui i = 0, j = 1, 2, ..., N

i j −b0

ij, ∞

c0

i

c0

j

Prime Dual

slide-23
SLIDE 23

Overall Flow

23

Initial Fill Regions Density Planning Candidate Fill Generation Output Fills Density Planning Dummy Fill Insertion

slide-24
SLIDE 24

Experimental Environment

Ø Implemented in C++ Ø 8-Core 3.4GHz Linux server Ø 32GB RAM Ø ICCAD 2014 contest benchmarks

24

slide-25
SLIDE 25

Experimental Results

Ø Compared with contest winners

§ Quality Scores (13% better than the 1st place winner) § Overall Scores (10% better than the 1st place winner)

25

0.2 0.4 0.6 0.8 1 s b m Comparison of T estcase Quality Score between Our Results and Contest T

  • p 3

1st 2nd 3rd

  • urs

0.2 0.4 0.6 0.8 1 s b m Comparison of T estcase Score between Our Results and Contest T

  • p 3

1st 2nd 3rd

  • urs

Quality Sores Overall Scores

slide-26
SLIDE 26

Experimental Results

Ø Detailed results

26

slide-27
SLIDE 27

Conclusion

Ø Methodology for fill optimization with holistic and

multiple objectives

Ø Validated on industry benchmarks

§ ICCAD 2014 contest benchmark

Ø Future work

§ Lithography related impacts

27

slide-28
SLIDE 28

Thank you!

28

slide-29
SLIDE 29

Backup

29

1 2 3

Layer 1 Layer 2 Layer 1 Fill Layer 2 Fill

1 2

Layer 1 Layer 2 Layer 1 Fill Layer 2 Fill

3

slide-30
SLIDE 30

Backup

30

min

yi N

X

i=0

c0

iyi,

s.t. yi − yj ≥ b0

ij, (i, j) ∈ E0,

yi ∈ Z, where xi = yi − y0, i = 1, 2, ..., N c0

i =

⇢ ci i = 1, 2, ..., N − PN

i=1 ci

i = 0 b0

ij =

8 < : bij (i, j) ∈ E li i = 1, 2, ..., N, j = 0 −ui i = 0, j = 1, 2, ..., N

min

xi N

X

i=1

cixi s.t. xi − xj ≥ bij, (i, j) ∈ E, li ≤ xi ≤ ui, i = 1, 2, ..., N, xi ∈ Z

max

fij

X

i,j

b0

ijfij,

s.t. X

i

fij − X

k

fjk = −c0

j,

fij ≥ 0

Prime Dual

slide-31
SLIDE 31

Dual Min-cost Flow Example (1)

31

min x1 + 2x2 + 3x3 + 4x4 s.t. x1 − x2 ≥ 5, x4 − x3 ≥ 6, 0 ≤ xi ≤ 10, i = 1, 2, 3, 4, xi ∈ Z, i = 1, 2, 3, 4

Min-cost flow problem

min

fij

10f01 + 10f02 + 10f03 + 10f04 − 5f12 − 6f43, s.t. f10 + f20 + f30 + f40 − f01 − f02 − f03 − f04 = 10, f01 − f10 − f12 = −1, f12 + f02 − f20 = −2, f43 + f03 − f30 = −3, f04 − f40 − f43 = −4, fij ≥ 0, i, j = 0, 1, 2, 3, 4

Original problem

slide-32
SLIDE 32

Dual Min-cost Flow Example (2)

32

0, ∞ 0, ∞ 0, ∞ 0, ∞ 10, ∞ 10, ∞ 10, ∞ 10, ∞

y1, 1 y3, 3 y2, 2 y4, 4 y0, −10

−6, ∞ −5, ∞ 3 7 4

y0, −8 y1, −3 y2, −8 y3, −8 y4, −2

1

Node supply Capacity Cost Flow Potential

xi = yi − y0, i = 1, 2, ..., N

slide-33
SLIDE 33

Step 3: Dummy Fill Insertion (3)

33

min |(x2 − x1) · hA + (x4 − x3) · hB–td1 · Awin| + |(x6 − x5) · hC − td2 · Awin| + (x2 − x5) · hAC + (x6 − x3) · hBC Further relax to remove absolute operation ✏ = current total fill area − td1 · Amin current total fill width + current total fill height E =(x2 − x1) · hA + (x4 − x3) · hB if E ≤ td1 · Awin then |E − td1 · Awin| → td1 · Awin − E else |E − td1 · Awin| → E − td1 · Awin li ≤ xi ≤ li + ✏ i = 1, 3 ui − ✏ ≤ xi ≤ ui i = 2, 4