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

28
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

Upload: doandat

Post on 30-Oct-2018

215 views

Category:

Documents


0 download

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