Supported by Cadence Design Systems, Inc. NSF, and the Packard Foundation Hierarchical Dummy Fill for Process Uniformity Y. Chen, A. B. Kahng, G. Robins, A. Zelikovsky (UCLA, UCSD, UVA and GSU) http://vlsicad.cs.ucla.edu Outline Chemical Mechanical Planarization & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research CMP and Interlevel Dielectric Thickness Chemical-Mechanical Planarization (CMP) = wafer surface planarization Uneven features cause polishing pad to deform Features ILD thickness Interlevel-dielectric (ILD) thickness feature density Insert dummy features to decrease variation Dummy features ILD thickness Objectives of Density Control Objective for Manufacture = Min-Var minimize “window” density variation subject to upper bound on window layout density Objective for Design = Min-Fill minimize total amount of filling subject to bound on window layout density variation Filling Problem Statement Given rule-correct layout in n n region window size = w w window density upper bound U, buffer distance B Add dummy fill to the layout with Min-Var and/or Min-Fill objective such that no fill is added within into given buffer distance B of any layout feature any overfilled window that already has density U Fixed-Dissection Regime Monitor only fixed set of w w windows “offset” = w/r (example shown: w = 4, r = 4) Partition n x n layout into overlapping fixed dissections Each w w window is partitioned into r2 tiles w w/r tile Overlapping windows n Layout Density Models Spatial Density Model window density sum of tiles feature area Effective Density Model (more accurate) window density weighted sum of tiles' feature area weights decrease from window center to boundaries tile Feature Area Slack Area Requirements for Dummy Filling Estimation of RC parasitics, gate/interconnect delays and device reliability in PD & verification Compatibility of master cell, macro characterizations with later insertion of dummy fill Consistent with design hierarchy to avoid data explosion and maintain verifiability Outline Chemical-Mechanical Polishing & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research Linear Programming Approaches Min-Var Objective Min-Fill Objective (Kahng et al.) (Wong et al.) Maximize: Subject M to: for any tile 0 p[T] slack[T] for any window TW (p[T]+area[T]) U M TW (p[T] + area[T]) p[T] = fill area of tile spatial density model Minimize: Subject fill amount to: for any tile 0 p[T] slack[T] LowerB 0(T) UpperB MAX 0(T) - MIN 0(T) 0(T) = the effective density of tile T effective density model Monte-Carlo Approach Min-Var objective pick the tile for next filling geometry randomly higher priority (based on max covering window density) of tile higher probability to be filled lock tile if any containing window is overfilled update window priorities Min-Fill objective Fill-Deletion problem delete as much fill as possible while maintaining min window density L. Min-Fill Monte-Carlo algorithm if (min covering-window density < L) lock the tile randomly select unlocked tile by its priority delete a filling geometry from tile update priorities of tiles Iterated Monte-Carlo Approach Repeat forever run Min-Var Monte-Carlo with max window density U exit if no change in minimum window density run Min-Fill Monte-Carlo with min window density M No Improvement LP vs. Monte-Carlo for Flat Filling LP impractical runtime for large layouts r-dissection solution may be suboptimal for 2r dissections essential rounding error for small tiles Monte-Carlo very efficient: O((nr/w)log(nr/w)) time scalability: handle large values of r accuracy: reasonably high comparing with LP Outline Chemical-Mechanical Polishing & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research Hierarchical Filling Problem Dummy fill are added only to master cells Each cell of the filled layout is a filled version of the corresponding original master cell Two instances of a master cell features Flat fill solution Original layout Hierarchical fill solution Why Hierarchical Filling? Hierarchical characteristics of design flows Enables and faster verification of the filled layout Decreases data volume for Challenges of Hierarchical Filling Density constraints apply to all instances of the master Interactions / interferences at master cell boundaries Always gives worse results than flat solutions Outline Chemical-Mechanical Polishing & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research Why Not LP? Complexity caused by constraints need a huge number of variables and constraints for each window, cell instance, and feasible fill position Overlaps between cell instances ownership of overlapping regions unavailable regions for fill Monte-Carlo Hierarchical Filling 1 1 1 1 1 1 1 density analysis 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Original layout Computing Slack Hierarchically Overlaps between master 2 instances and features of different the samemasters master Exclude the overlapping regions buffer Master cell slack slack Drawbacks of Hierarchical Filling Sparse or unfilled region in the solution the overlaps bloat regions Cause high layout density variation features ! ! ! ! three instances of a master cell Outline Chemical-Mechanical Polishing & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research k-way Master Cell Splitting Create k copies of master cell Ci Link contained master cells C` with the new copies Randomly replace Ci in master cells with new copies C1 C2 C2 C1 Ci C1` C2` Ci C1` C2` C1 C2 Ci,1 Ci,2 C1` C2` C1` C2` C1 C1` C2` Ci,2 k : hierarchical layout flat layout C2 C1` C2` Ci,1 Hybrid Hierarchical / Flat Filling features Purely hierarchical fill phase Split-hierarchical phase Flat fill `cleanup` phase three instances of a master cell Outline Chemical-Mechanical Polishing & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research Computational Experience Implementation features Testbed GDSII input hierarchical polygon database C++ under Solaris grid slack computation doughnut area computation wraparound density analysis and synthesis different pattern types Test cases: Artificial hierarchical layouts based on single cell, different magnification factors Rectangle sizes >> fill geometry sizes !!! Test Case layout size #rectangles Case 1 260,000 216 Case 2 288,000 432 Case 3 504,000 540 Computational Experience DenModel data OrgLayout Hier H+F H+S H+S+F Flat 645 1562 2321 2834 5219 OrgLayout Hier H+F H+S H+S+F Flat 2081 2451 4368 4374 13974 OrgLayout Hier H+F H+S H+S+F Flat 4995 7472 9690 12212 17695 Effective Density Spatial Density MinDen #fill data MinDen #fill Testcase 1 0.291 0.07 0.369 2608 1054 0.11 5136 0.655 4312 2758 0.335 6053 0.525 4166 1552 0.17 7601 0.676 5522 2908 0.339 8114 0.735 5732 5732 0.403 5219 Testcase 2 0.145 0.167 0.248 16972 2142 0.272 16060 0.32 17460 5630 0.393 16430 0.365 18126 4531 0.41 17494 0.383 20829 7234 0.421 17500 0.443 23415 23415 0.527 13974 Testcase 3 0.091 0 0.157 20320 4449 0.071 22566 0.371 25332 9461 0.532 25043 0.159 22990 8575 0.102 23622 0.394 25700 13285 0.54 26144 0.483 31204 31204 0.547 17695 Comparison among hierarchical, flat and hybrid filling approaches Outline Chemical-Mechanical Polishing & Filling Problem Previous Works Linear programming approaches Monte-Carlo (MC) approaches Our Contributions: Hierarchical filling problem Hierarchical filling algorithm Hybrid hierarchical / flat filling approach Computational Experience Summary and Future Research Summary and Future Research Hierarchical filling problem for CMP uniformity Practical pure hierarchical filling algorithm Practical hybrid hierarchical filling approach trade off runtime, solution quality and data volume Ongoing research Alternate pure hierarchical filling heuristics Reusable solutions Fill compression Layer interactions (filling/cheesing, dual-material, …)