Hierarchical Dummy Fill for Process Uniformity
description
Transcript of Hierarchical Dummy Fill for Process Uniformity
Hierarchical Dummy Fill for Process Uniformity
Hierarchical Dummy Fill for Process Uniformity
Supported by Cadence Design Systems, Inc.NSF, and the Packard Foundation
Y. Chen,Y. Chen, A. B. Kahng A. B. Kahng, G. Robins, A. Zelikovsky, G. Robins, A. Zelikovsky
(UCLA, UCSD, UVA and GSU)(UCLA, UCSD, UVA and GSU)
http://vlsicad.cs.ucla.eduhttp://vlsicad.cs.ucla.edu
OutlineOutline Chemical Mechanical Processing & 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 ThicknessCMP and Interlevel Dielectric Thickness
Chemical-Mechanical Polishing (CMP) = wafer surface planarization
Uneven features cause polishing pad to deform
Dummyfeatures ILD thickness
Interlevel-dielectric (ILD) thickness feature density Insert dummy features to decrease variation
ILD thicknessFeatures
CMP in STI ProcessCMP in STI Process
Shallow Trench Isolation (STI) technique for isolation on the active layer in all deep submicron CMOS productions (figure)
deposit nitride layer on silicon
Etch shallow trenches through nitride silicon
deposit oxide to fill trenches and cove nitride
remove excess oxide and partially nitride by CMP
Uniformity requirement on CMP in STI
not enough polish (figure)
over polish (figure)
Objectives of Density ControlObjectives of Density Control
Objective for Manufacture = Min-Var
minimize window density variation
subject to upper bound on window density
Objective for Design = Min-Fill
minimize total amount of filling
subject to fixed density variation
Filling ProblemFilling Problem
Given rule-correct layout in n n region
window size = w w
window density upper bound U
Fill layout with Min-Var or Min-Fill objective
such that no fill is added
within buffer distance B of any layout feature
into any overfilled window that has density U
Fixed-Dissection RegimeFixed-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 nr/w nr/w fixed dissections Each w w window is partitioned into r2 tiles
Overlapping windows
w w/r
n
tile
Layout Density ModelsLayout Density Models
Spatial Density Model
window density sum of tiles feature area
Slack Area Feature Areatile
Effective Density Model (more accurate)
window density weighted sum of tiles' feature area weights decrease from window center to boundaries
Requirements on Dummy FillingRequirements on Dummy Filling
Estimation of RC parasitics, gate/interconnect delays and device reliability in PD & verification
Compatibility of master cells and macros
Consistent with design hierarchy
OutlineOutline 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 ApproachesLinear Programming Approaches Min-Var Objective
(Kahng et al.)
Maximize: M
Subject 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
Min-Fill Objective (Wong et al.)
Minimize: fill amount
Subject 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 ApproachMonte-Carlo Approach
Min-Var objective pick the tile for next filling geometry randomly higher priority of a 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 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 FillingLP 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
OutlineOutline 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 ProblemHierarchical Filling Problem
Dummy fill are added only to master cells
Two instances of a master cell
Original layout
features
Flat fill solution Hierarchical fill solution
Each cell of the filled layout is a filled version of the corresponding original master cell
Why Hierarchical Filling?Why Hierarchical Filling?
Hierarchical characteristics of design flows
Enables and faster verification of the filled layout
Decreases data volume for standard cell designs
Difficulties in Hierarchical FillingDifficulties in Hierarchical Filling
Density constraints for all instances of the master
Interactions / interferences at master cell boundaries
Always worse than flat solutions
OutlineOutline 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?Why Not LP?
Complexity caused by constraints need a huge number of variables and constraints for
each window, cell instance, and feasible fill position
Transformations hard to represent the transformations of master
cell instances
Overlaps between cell instances ownership of overlapping regions unavailable regions for fill
Monte-Carlo Hierarchical FillingMonte-Carlo Hierarchical Filling
Original layout
1 1 1 1 1 1 1 1
1 1
1 1
1
1
1
1
1
1 1 1
111
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 1
11111
1
1
1
1
density analysis
Master cell
Computing Slack HierarchicallyComputing Slack Hierarchically
buffer
slackslack
Overlaps between 2 instances of different masters Overlaps between master and features Overlaps between 2 instances of the same master
Exclude the overlapping regions
Drawbacks of Hierarchical FillingDrawbacks of Hierarchical Filling
Sparse or unfilled region in the solution the overlaps bloat regions
features
three instances of a master cell
Cause high layout density variation
!
!
!
!
OutlineOutline 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 Splittingk-way Master Cell Splitting
C1
Ci
C2
C2`C1`C1` C2`
Ci
C2C1
Ci,1Ci,2
C1` C2`
C2C1
C1` C2`
Ci,1 Ci,2
Create k copies of master cell Ci
k : hierarchical layout flat layout
C2`C1` C2`C1`
Link contained master cells C` with the new copies
C1 C2
Randomly replace Ci in master cells with new copies
Hybrid Hierarchical / Flat FillingHybrid Hierarchical / Flat Filling
Purely hierarchical fill phase
Flat fill `cleanup` phase
Split-hierarchical phase
features
three instances of a master cell
OutlineOutline 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 ExperienceComputational Experience
Testbed GDSII input hierarchical polygon
database C++ under Solaris
Test Case Case 1 Case 2 Case 3layout size 260,000 288,000 504,000#rectangles 216 432 540
Test casesPart of a metal layer from industry custom-block layout
Implementation features grid slack computation doughnut area computation wraparound density
analysis and synthesis different pattern types
Computational ExperienceComputational ExperienceDenModel
data #fill MinDen data #fill MinDen
OrgLayout 0.07 0.291Hier 645 5136 0.11 1054 2608 0.369H+F 1562 6053 0.335 2758 4312 0.655H+S 2321 7601 0.17 1552 4166 0.525
H+S+F 2834 8114 0.339 2908 5522 0.676Flat 5219 5219 0.403 5732 5732 0.735
OrgLayout 0.167 0.145Hier 2081 16060 0.272 2142 16972 0.248H+F 2451 16430 0.393 5630 17460 0.32H+S 4368 17494 0.41 4531 18126 0.365
H+S+F 4374 17500 0.421 7234 20829 0.383Flat 13974 13974 0.527 23415 23415 0.443
OrgLayout 0 0.091Hier 4995 22566 0.071 4449 20320 0.157H+F 7472 25043 0.532 9461 25332 0.371H+S 9690 23622 0.102 8575 22990 0.159
H+S+F 12212 26144 0.54 13285 25700 0.394Flat 17695 17695 0.547 31204 31204 0.483
Testcase 3
Spatial Density Effective Density
Testcase 1
Testcase 2
DenModeldata #fill MinDen data #fill MinDen
OrgLayout 0.07 0.291Hier 645 5136 0.11 1054 2608 0.369H+F 1562 6053 0.335 2758 4312 0.655H+S 2321 7601 0.17 1552 4166 0.525
H+S+F 2834 8114 0.339 2908 5522 0.676Flat 5219 5219 0.403 5732 5732 0.735
OrgLayout 0.167 0.145Hier 2081 16060 0.272 2142 16972 0.248H+F 2451 16430 0.393 5630 17460 0.32H+S 4368 17494 0.41 4531 18126 0.365
H+S+F 4374 17500 0.421 7234 20829 0.383Flat 13974 13974 0.527 23415 23415 0.443
OrgLayout 0 0.091Hier 4995 22566 0.071 4449 20320 0.157H+F 7472 25043 0.532 9461 25332 0.371H+S 9690 23622 0.102 8575 22990 0.159
H+S+F 12212 26144 0.54 13285 25700 0.394Flat 17695 17695 0.547 31204 31204 0.483
Testcase 3
Spatial Density Effective Density
Testcase 1
Testcase 2
DenModeldata #fill MinDen data #fill MinDen
OrgLayout 0.07 0.291Hier 645 5136 0.11 1054 2608 0.369H+F 1562 6053 0.335 2758 4312 0.655H+S 2321 7601 0.17 1552 4166 0.525
H+S+F 2834 8114 0.339 2908 5522 0.676Flat 5219 5219 0.403 5732 5732 0.735
OrgLayout 0.167 0.145Hier 2081 16060 0.272 2142 16972 0.248H+F 2451 16430 0.393 5630 17460 0.32H+S 4368 17494 0.41 4531 18126 0.365
H+S+F 4374 17500 0.421 7234 20829 0.383Flat 13974 13974 0.527 23415 23415 0.443
OrgLayout 0 0.091Hier 4995 22566 0.071 4449 20320 0.157H+F 7472 25043 0.532 9461 25332 0.371H+S 9690 23622 0.102 8575 22990 0.159
H+S+F 12212 26144 0.54 13285 25700 0.394Flat 17695 17695 0.547 31204 31204 0.483
Testcase 3
Spatial Density Effective Density
Testcase 1
Testcase 2
DenModeldata #fill MinDen data #fill MinDen
OrgLayout 0.07 0.291Hier 645 5136 0.11 1054 2608 0.369H+F 1562 6053 0.335 2758 4312 0.655H+S 2321 7601 0.17 1552 4166 0.525
H+S+F 2834 8114 0.339 2908 5522 0.676Flat 5219 5219 0.403 5732 5732 0.735
OrgLayout 0.167 0.145Hier 2081 16060 0.272 2142 16972 0.248H+F 2451 16430 0.393 5630 17460 0.32H+S 4368 17494 0.41 4531 18126 0.365
H+S+F 4374 17500 0.421 7234 20829 0.383Flat 13974 13974 0.527 23415 23415 0.443
OrgLayout 0 0.091Hier 4995 22566 0.071 4449 20320 0.157H+F 7472 25043 0.532 9461 25332 0.371H+S 9690 23622 0.102 8575 22990 0.159
H+S+F 12212 26144 0.54 13285 25700 0.394Flat 17695 17695 0.547 31204 31204 0.483
Testcase 3
Spatial Density Effective Density
Testcase 1
Testcase 2
Comparison among hierarchical, flat and hybrid filling approaches
OutlineOutline 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 ResearchSummary 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 Tradeoffs between solution quality & data volume Reusable solutions Dual-material polish model