high performance dummy fill insertion with coupling and ...byu/papers/c36-dac2015-dfi-slides.pdf ·...

Post on 30-Oct-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Yibo Lin, Bei Yu, David Z. Pan Electrical and Computer Engineering

University of Texas at Austin

High Performance Dummy Fill Insertion with Coupling and Uniformity Constraints

Outline

!  Introduction ! Problem Formulation ! Algorithms ! Experimental Results ! Conclusion

2

Chemical Mechanical Polishing (CMP)

3

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

Uniformity

! Layout uniformity for CMP

! Coupling capacitance

4

Metals

Metals Dummy features

Uneven density distribution

Even distribution

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

Holistic Metrics for Uniformity

!  Holistic metrics for layout uniformity from IBM (ICCAD 2014 Contest) "  Variation (standard deviation) "  Line hotspots "  Outlier hotspots

6

N Columns

MRows

µµ µ+ 3�µ+ 3� µ� 3�µ� 3�

Holistic Metrics for Uniformity

!  Holistic metrics for layout uniformity from IBM (ICCAD 2014 Contest) "  Variation (standard deviation) "  Line hotspots "  Outlier hotspots

7

N Columns

MRows

µµ µ+ 3�µ+ 3� µ� 3�µ� 3�

Metrics for Coupling Capacitance

! Coupling capacitance "  Minimize overlay between layers

8

Layer 1Layer 2Layer 3

Overlay

Dummy fill

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

Outline

!  Introduction ! Problem Formulation ! Algorithms ! Experimental Results ! Conclusion

10

Step 1: Density Planning

11

Linear scan with a small step to find best target density

d1d1 d2d2 d3d3

d4d4 d5d5 d6d6

d7d7 d8d8 d9d9

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

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

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

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

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

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

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

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 FillLayer 2 FillLayer 3 Fill

q = �fill overlay

fill area

+ � · fill area

window area

Step 3: Dummy Fill Insertion (1)

19

Layer 1 FillLayer 2 Fill

Layer 1 FillLayer 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

BA

C

x1x1 x2x2 x3x3 x4x4 x5x5 x6x6

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

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

Step 3: Dual to Min-Cost Flow

!  Convert bound constraints to differential constraints

!  Dual to min-cost flow

22

minxi

NX

i=1

c

i

x

i

s.t. xi

� x

j

� b

ij

, (i, j) 2 E,

l

i

x

i

u

i

, i = 1, 2, ..., N,

x

i

2 Z

c0i =

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

�PN

i=1 ci i = 0

b0ij =

8<

:

bij (i, j) 2 Eli i = 1, 2, ..., N, j = 0�ui i = 0, j = 1, 2, ..., N

i j�b0ij ,1

c0i c0j

Prime Dual

Overall Flow

23

Initial Fill Regions Density Planning

Candidate Fill Generation

Output Fills

Density Planning

Dummy Fill Insertion

Experimental Environment

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

24

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

0.2

0.4

0.6

0.8

1

s b m

Comparison of Testcase Quality Score between Our Results and Contest Top 3

1st2nd3rd

ours

0

0.2

0.4

0.6

0.8

1

s b m

Comparison of Testcase Score between Our Results and Contest Top 3

1st2nd3rd

ours

Quality Sores Overall Scores

Experimental Results

! Detailed results

26

Conclusion

! Methodology for fill optimization with holistic and multiple objectives

! Validated on industry benchmarks "  ICCAD 2014 contest benchmark

! Future work "  Lithography related impacts

27

Thank you!

28

top related