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 University of Texas at Austin
Outline Ø Introduction Ø Problem Formulation Ø Algorithms Ø Experimental Results Ø Conclusion 2
Chemical Mechanical Polishing (CMP) Example of CMP [source: www.ntu.edu.sg] 3
Uniformity Ø Layout uniformity for CMP Uneven density distribution Metals Metals Dummy features Even distribution Ø Coupling capacitance 4
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 N Columns M Rows µ − 3 σ µ − 3 σ µ µ + 3 σ µ + 3 σ 6
Holistic Metrics for Uniformity Ø Holistic metrics for layout uniformity from IBM (ICCAD 2014 Contest) § Variation (standard deviation) § Line hotspots § Outlier hotspots N Columns M Rows µ − 3 σ µ − 3 σ µ µ + 3 σ µ + 3 σ 7
Metrics for Coupling Capacitance Ø Coupling capacitance § Minimize overlay between layers Overlay Layer 1 Layer 2 Layer 3 Dummy fill 8
Problem Formulation Based on the ICCAD 2014 contest Ø Input § Layout with fill insertion regions § Signal wire density information across each window Ø Quality score Normalization function § Overlay area (20%) f ( x ) = max (0 , 1 − x § Variation/std. dev. (20%) β ) § Line hotspot (20%) § Outlier hotspot (15%) § File size for dummy fill insertion (5%) The highe r score, the better Ø Overall score § Quality score (80%) § Runtime (15%) § Memory usage (5%) Ø Output § Dummy fill positions and dimensions with maximum quality score 9
Outline Ø Introduction Ø Problem Formulation Ø Algorithms Ø Experimental Results Ø Conclusion 10
Step 1: Density Planning Ø Given density ranges of each window Ø Find target density t d for each window d 1 d 1 d 2 d 2 d 3 d 3 Ø Maximize density scores d 4 d 4 d 5 d 5 d 6 d 6 d 7 d 7 d 8 d 8 d 9 d 9 Linear scan with a small step to find best target density 11
Step 1: Density Planning Ø Given density ranges of each window 0.3 0.5 0.6 Ø Find target density t d for each window Ø Maximize density scores 0.5 0.4 0.4 0.4 0.4 0.4 Linear scan with a small step to find best target density 12
Step 1: Density Planning Ø Given density ranges of each window 0.3 0.5 0.6 Ø Find target density t d for each window Ø Maximize density scores 0.5 0.4 0.4 0.4 0.4 0.4 Linear scan with a small step to find best target density 13
Step 1: Density Planning Ø Given density ranges of each window 0.3 0.5 0.6 Ø Find target density t d for each window Ø Maximize density scores 0.5 0.4 0.4 0.4 0.4 0.4 Linear scan with a small step to find best target density 14
Step 1: Density Planning Ø Given density ranges of each window 0.3 0.5 0.6 Ø Find target density t d for each window Ø Maximize density scores 0.5 0.4 0.4 0.4 0.4 0.4 Linear scan with a small step to find best target density 15
Step 1: Density Planning Ø Given density ranges of each window 0.3 0.5 0.6 Ø Find target density t d for each window Ø Maximize density scores 0.5 0.4 0.4 0.4 0.4 0.4 Linear scan with a small step to find best target density 16
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 Candidate fill Final fill 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 Layer 1 Fill Layer 2 Fill Layer 3 Fill q = − fill overlay fill area + γ · fill area window area 18
Step 3: Dummy Fill Insertion (1) Given a set of candidate fills Ø Determine dimension of fills Ø Shrink in horizontal direction Under DRC constraints Ø Minimize overlay area and Ø density variation Layer 1 Fill Layer 2 Fill Solve in an iterative manner Ø Shrink in vertical direction Layer 1 Fill Layer 2 Fill 19
Step 3: Dummy Fill Insertion (2) An example of the mathematical formulation in one iteration min | ( x 2 − x 1 ) · h A + ( x 4 − x 3 ) · h B – t d 1 · A win | + | ( x 6 − x 5 ) · h C − t d 2 · A win | + ( x 2 − x 5 ) · h AC + ( x 6 − x 3 ) · h BC Density variation s.t. x 2 − x 1 ≥ W min Overlay area x 4 − x 3 ≥ W min x 6 − x 5 ≥ W min DRC rules x 3 − x 2 ≥ S min ( x 2 − x 1 ) · h A ≥ A min Shrink in horizontal direction ( x 4 − x 3 ) · h B ≥ A min ( x 6 − x 5 ) · h C ≥ A min h A h B A B x 2 − x 5 ≥ 0 Overlay h AC constraints h BC x 6 − x 3 ≥ 0 C h C i = 1 , 2 , ..., 6 l i ≤ x i ≤ u i , A win : area of a window W min : minimum width S min : minimum spacing x 1 x 1 x 5 x 5 x 2 x 2 x 3 x 3 x 6 x 6 x 4 x 4 A min : minimum area 20
Step 3: Dummy Fill Insertion (3) min | ( x 2 − x 1 ) · h A + ( x 4 − x 3 ) · h B – t d 1 · A win | + | ( x 6 − x 5 ) · h C − t d 2 · A win | + ( x 2 − x 5 ) · h AC + ( x 6 − x 3 ) · h BC Ø Further relax to remove absolute operation Ø Add tighter bound constraints to variables 21
Step 3: Dual to Min-Cost Flow Prime Dual N X min c i x i − b 0 ij , ∞ x i i =1 j i s.t. x i − x j ≥ b ij , ( i, j ) ∈ E, l i ≤ x i ≤ u i , i = 1 , 2 , ..., N, c 0 c 0 i j x i ∈ Z ⇢ c i i = 1 , 2 , ..., N c 0 i = Ø Convert bound constraints − P N i = 0 i =1 c i to differential constraints 8 ( i, j ) ∈ E b ij Ø Dual to min-cost flow < b 0 ij = i = 1 , 2 , ..., N, j = 0 l i i = 0 , j = 1 , 2 , ..., N − u i : 22
Overall Flow Initial Fill Regions Density Planning Candidate Fill Generation Density Planning Dummy Fill Insertion Output Fills 23
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 1 st place winner) § Overall Scores (10% better than the 1 st place winner) Comparison of T estcase Quality Score between Our Results and Contest T op 3 Comparison of T estcase Score between Our Results and Contest T op 3 1 1 1st 1st 2nd 2nd 3rd 3rd 0.8 0.8 ours ours 0.6 0.6 0.4 0.4 0.2 0.2 0 0 s b m s b m Quality Sores Overall Scores 25
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
Backup 1 2 Layer 1 3 Layer 2 Layer 1 Fill Layer 2 Fill 3 1 2 Layer 1 Layer 2 Layer 1 Fill Layer 2 Fill 29
Backup Prime N N X X min c 0 c i x i min i y i , x i y i i =1 i =0 s.t. x i − x j ≥ b ij , ( i, j ) ∈ E, s.t. y i − y j ≥ b 0 ij , ( i, j ) ∈ E 0 , l i ≤ x i ≤ u i , i = 1 , 2 , ..., N, y i ∈ Z, x i ∈ Z where Dual x i = y i − y 0 , i = 1 , 2 , ..., N ⇢ c i i = 1 , 2 , ..., N X b 0 ij f ij , max c 0 i = − P N i = 0 i =1 c i f ij i,j 8 ( i, j ) ∈ E b ij X X f jk = − c 0 s.t. f ij − j , < b 0 i = 1 , 2 , ..., N, j = 0 ij = l i i k i = 0 , j = 1 , 2 , ..., N − u i : f ij ≥ 0 30
Dual Min-cost Flow Example (1) min x 1 + 2 x 2 + 3 x 3 + 4 x 4 s.t. x 1 − x 2 ≥ 5 , Original problem x 4 − x 3 ≥ 6 , 0 ≤ x i ≤ 10 , i = 1 , 2 , 3 , 4 , x i ∈ Z, i = 1 , 2 , 3 , 4 10 f 01 + 10 f 02 + 10 f 03 + 10 f 04 − 5 f 12 − 6 f 43 , min f ij s.t. f 10 + f 20 + f 30 + f 40 − f 01 − f 02 − f 03 − f 04 = 10 , f 01 − f 10 − f 12 = − 1 , f 12 + f 02 − f 20 = − 2 , Min-cost flow problem f 43 + f 03 − f 30 = − 3 , f 04 − f 40 − f 43 = − 4 , f ij ≥ 0 , i, j = 0 , 1 , 2 , 3 , 4 31
Dual Min-cost Flow Example (2) Node supply Potential y 2 , 2 y 2 , − 8 − 5 , ∞ 1 10 , ∞ 0 , ∞ 0 3 0 , ∞ 7 0 0 , ∞ y 1 , 1 y 0 , − 10 y 3 , 3 y 1 , − 3 y 0 , − 8 y 3 , − 8 0 0 10 , ∞ 10 , ∞ 10 , ∞ 0 , ∞ 0 0 4 Cost − 6 , ∞ y 4 , − 2 y 4 , 4 Capacity Flow x i = y i − y 0 , i = 1 , 2 , ..., N 32
Recommend
More recommend