Hierarchical Dummy Fill for Process Uniformity
Download
Report
Transcript Hierarchical Dummy Fill for Process Uniformity
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 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 Thickness
Chemical-Mechanical Polishing (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
CMP in STI Process
Shallow Trench Isolation (STI)
technique for isolation on the active layer in all deep
submicron CMOS productions
deposit
etch
nitride layer on silicon
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
over
polish
Objectives 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 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
into
buffer distance B of any layout feature
any overfilled window that 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 nr/w nr/w 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 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
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 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
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 standard cell designs
Difficulties in Hierarchical Filling
Density constraints for all instances of the master
Interactions / interferences at master cell boundaries
Always worse 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
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 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
Part of a metal layer from industry custom-block layout
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
Tradeoffs
between solution quality & data volume
Reusable
solutions
Dual-material
polish model