280 likes | 509 Views
Coupling-Constrained Dummy Fill for Density Gradient Minimization. Huang-Yu Chen 1 , Szu-Jui Chou 2 , and Yao-Wen Chang 1. 1 National Taiwan University, Taiwan. 2 Synopsys, Inc, Taiwan. Metals. Metals. Dummies. Dummy Fill.
E N D
Coupling-Constrained Dummy Fill for Density Gradient Minimization Huang-Yu Chen1, Szu-Jui Chou2, and Yao-Wen Chang1 1National Taiwan University, Taiwan 2Synopsys, Inc, Taiwan
Metals Metals Dummies Dummy Fill • Dummy fill is a general method to achieve layout uniformity before CMP (chemical-mechanical polishing) • Two objectives for dummy fill: (1) minimize induced coupling capacitance of dummies(2) minimize density gradient of metal density larger density gradient smaller density gradient
slots 1 2 3 4 5 6 Previous Work: CDF Algorithm • CDF Algorithm presented in [Xiang et al. TCAD’08] Slot partition by endpoints of segments Coupling-free fill regions identificationfor each slot A layout Do not consider density gradient! Use too many dummies! Filling max # of dummies into these regions
Layout Coupling constraints Our Algorithm Flow • After identifying fill regions by the CDF algorithm, transform a slot-based layout into a tile-based one • Use density gradient-driven dummy fill CDF [TCAD’08] slot-based Slot-to-tile conversion Density gradient-driven dummy fill tile-based Fill result
Tile Density Bounds Computation • Compute bounds satisfying both coupling and foundry density rules • Tile density lower bound Bl = max{Fl, Ds} • Tile density upper bound Bu = min{Fu, Dc} • Fl,Fu: foundry density lower and upper bound rules • Ds: segment density • Dc: segment density + maximum dummy density in fill regions Fl = 2/16 (12.5%), Fu = 8/16 (50%) Ds = 3/16, Dc = 9/16 (Bl, Bu) = (3/16, 8/16) segment dummy dummy (Bl, Bu) guarantees no coupling and density rule violations in the following stages
Multilevel Dummy Density Analysis G2 G2 G1 G1 High G0 G0 Metal Density Coarsening Low Uncoarsening (1) Gradient minimization by Gaussian smoothing(2) Density bounds update level by level (1) Density extraction(2) Density bounds update level by level • cf. sliding window • avoid the ordering problem • reduce the discretization gap • obtain a better global view
G2 G2 Gradient minimization Average Density extraction G1 G1 0.23 0.23 0.26 0.28 0.1 0.27 0.2 0.30 0.29 0.28 0.2 0.2 0.28 0.31 0.28 0.30 0.28 0.25 0.3 0.3 0.31 0.38 0.28 0.31 0.32 0.29 0.28 0.29 0.2 0.2 0.28 0.26 0.30 0.2 0.2 0.29 0.25 0.32 0.30 0.28 0.32 0.33 0.38 0.3 0.30 0.2 0.32 0.30 0.27 0.28 0.18 0.26 0.29 0.22 0.1 0.2 0.1 0.2 0.30 0.23 0.25 0.27 0.28 0.30 0.28 0.28 0.3 0.23 0.3 0.38 0.31 0.31 G0 G0 Multilevel Dummy Density Analysis Coarsening Uncoarsening
0.1 0.4 0.1 0.2 0.3 0.2 0.4 0.4 0.3 0.2 0.3 0.3 0.2 0.2 0.1 0.1 0.1 0.2 0.1 0.3 0.2 0.2 0.4 0.3 0.4 Coarsening: Gradient Minimization • Gaussian smoothing at tile • Dc(x,y): original density • g(x,y): weighting function = • Gaussian smoothing opens up a new direction for gradient minimization Gaussian smoothing(σ=1.0) Dc(x,y) 0.24 density density x y x y
0.33 =0.23+min{Bu(x,y)-Dc(x,y)} =0.23+(0.4-0.3) Bu 0.23 G1 0.4 0.1 0.2 0.1 0.4 0.2 0.4 0.3 0.1 0.13 =0.23-min{Dc(x,y)-Bl(x,y)} =0.23-(0.2-0.1) 0.1 0.2 0.4 0.2 0.1 0.4 0.1 0.3 0.4 Bl 0.4 0.1 0.2 0.2 0.1 0.4 0.1 0.4 0.3 Coarsening: Tile Density Bounds Update Bu(x,y) G0 Dc(x,y) after Gaussian smoothing prune the value larger (smaller) than Bu (Bl) Bl(x,y)
G1 0.30 0.2 0.1 0.26 0.28 0.23 0.27 0.23 0.2 0.28 0.30 0.29 0.28 0.2 0.28 0.31 0.25 0.31 0.3 0.28 0.28 0.31 0.3 0.38 0.2 0.29 0.26 0.28 0.29 0.32 0.2 0.28 0.30 0.28 0.2 0.29 0.30 0.32 0.25 0.2 0.30 0.3 0.2 0.33 0.38 0.30 0.32 0.32 0.29 0.27 0.2 0.26 0.28 0.18 0.1 0.22 0.1 0.27 0.2 0.30 0.25 0.30 0.28 0.23 0.28 0.23 0.3 0.31 0.28 0.38 0.3 0.31 G0 Uncoarsening: Density Extraction G2 G2 Gradient minimization Average Density extraction G1 +0.03 G0 +0.08
ILP-based Dummy Number Assignment • Optimally insert minimal # of dummies to satisfy the desirable tile density dd in a tile • For the tile with n fill regions R1,…,Rn, R1 R2 ri: # of dummies in Ri dd: dummy density of tile a: tile area ai: area of one dummy in Ri amax: max {ai} ui: max # of dummies in Ri u2=3 a2=4 u1=5 a1=3 amax=4
Experimental Setting • Programming language: C++ • Workstation: 2.0 GHz AMD-64 with 8GB memory • ILP solver: lp_solve • Parameters • Window size=3 × 3 • Gaussian smoothing: σ=1.0 • Foundry density lower and upper bounds: 20% and 80% • Test cases: MCNC and industrial Faraday benchmarks • Comparison with the CDF algorithm [TCAD’08] for all layers and layer 1 • Metal density • Neighboring density difference (density gradient)
Runtime and Inserted Dummy Counts • Inserted dummy count is only 59% compared with CDF algorithm • Timing overhead is only 4%
Statistics of Metal Density (MCNC) • The standard deviations are reduced by 55% and 49% among all layers and of layer 1, respectively
Statistics of Metal Density (Faraday) • The standard deviations are reduced by 26% and 54% among all layers and of layer 1, respectively • Overall comparison (MCNC+Faraday)
Comparison of S5378 Layer 1 Filling Results CDF algorithm [TCAD’08] Ours
Conclusions and Future Work • Presented an effective and efficient dummy fill algorithm considering both gradient minimization and coupling constraints • Reduced 37% std. of metal density among all layers • Saved 41% dummy counts • Gaussian smoothing is effective for gradient-minimization dummy fill • Point out a new research direction on this topic • Future work: integration of gradient minimization and coupling constraints
Conclusions and Future Work • A dummy fill algorithm considering both gradient minimization and coupling constraints • Achieve more balanced metal density distribution with fewer dummy features and an acceptable timing overhead • Future work: integration of gradient minimization and coupling constraints • Simultaneously minimize the gradient and the coupling capacitance Thank You! Huang-Yu Chen yellowfish@eda.ee.ntu.edu.tw