The picture can't be displayed. Triple/Quadruple Patterning Layout Decomposition via Novel Linear Programming and Iterative Rounding Yibo Lin 1 , Xiaoqing Xu 1 , Bei Yu 2 , Ross Baldick 1 , David Z. Pan 1 1 ECE Department, University of Texas at Austin 2 CSE Department, Chinese University of Hong Kong This work is supported in part by NSF and SRC 1
Outline The picture can't be displayed. Introduction • A New Framework for Layout Decomposition • ILP à LP relaxation with iterative rounding • Experimental Results • Conclusion • 2
Triple Patterning Lithography (TPL) The picture can't be displayed. • An example of TPL conflict graph and decomposition • Layout decomposition is a fundamental problem for multiple patterning 1 st mask d b 2 nd mask 3 rd mask c a e 3
displayed. Quadruple Patterning Lithography (QPL) The picture can't be • An example of QPL layout decomposition (coloring) and conflict graph 1 st mask d b 2 nd mask 3 rd mask c a 4 th mask e 4
Stitch Insertion The picture can't be displayed. • Stitch may be inserted to resolve conflict d a 2 b c a 1 e • However, strongly discouraged due to misalignment and yield loss • In this work, we do not allow stitch insertion 5
Current State of MPL Decomposition The picture can't be displayed. • ILP or SAT: [Cork+, SPIE’08], [Yu+, ICCAD’11], [Cork+, SPIE’13] • Greedy or heuristic: [Ghaida+, SPIE’11], [Fang+, DAC’12], [Kuang+, DAC’13], [Fang+, SPIE’14] • SDP or graph search: [Yu+, ICCAD’11], [Chen+, ISQED’13], [Yu+, ICCAD’13], [Yu+, DAC’14] Conflict # Greedy or heuristic: Fast but bad quality [Yu+, SPIE’14] SDP or graph search: Tradeoff ILP: Good performance but expensive 6 CPU runtime
Major Contributions of This Work The picture can't be displayed. • A new layout decomposition framework for TPL/QPL • ILP à novel linear programming (LP) based algorithm with i terative rounding scheme • An odd-cycle based technique to enhance LP solution quality (which can be better mapped to ILP solution) • Our experiments obtain comparable quality cf. previous state-of-the-art, but are 26x to 600x faster than ILP, and 1.8x to 2.6x faster than SDP 7
displayed. Problem Formulation The picture can't be l Input Uncolored layout patterns • Minimum coloring distance ! " • Number of colors available (TPL or QPL) • l Output Decomposed layout with color assignment for each pattern • TPL/QPL friendliness • Stitch insertion is not allowed • 8
Initial ILP Formulation The picture can't be displayed. • Represent color with two binary variables ( x j 1 , x j 2 ) ( x i 1 , x i 2 ) ( x i 1 , x i 2 ) → color i j (0 , 0) → 0 (0 , 1) → 1 x i 1 , x i 2 , x j 1 , x j 2 ∈ { 0 , 1 } (1 , 0) → 2 (1 , 1) → 3 (0, 0) (0, 0) x i 1 + x i 2 + x j 1 + x j 2 ≥ 1 Additional constraint for TPL (0, 1) (0, 1) x i 1 + x i 2 ≤ 1 x i 1 + (1 − x i 2 ) + x j 1 + (1 − x j 2 ) ≥ 1 … 9
ILP Formulation The picture can't be displayed. • The goal is to meet all the constraints min (1a) Objective Only for TPL s.t. x i 1 + x i 2 ≤ 1 , (1b) x i 1 + x i 2 + x j 1 + x j 2 ≥ 1 , (1c) ∀ e ij ∈ E c , x i 1 + ¯ x i 2 + x j 1 + ¯ x j 2 ≥ 1 , (1d) ∀ e ij ∈ E c , x i 1 + x i 2 + ¯ ¯ x j 1 + x j 2 ≥ 1 , (1e) ∀ e ij ∈ E c , x i 1 + ¯ ¯ x i 2 + ¯ x j 1 + ¯ x j 2 ≥ 1 , (1f) ∀ e ij ∈ E c , x i 1 = 1 − x i 1 , ¯ (1g) ∀ i ∈ V, x i 2 = 1 − x i 2 , ¯ (1h) ∀ i ∈ V, x i 1 , x i 2 ∈ { 0 , 1 } , (1i) ∀ i ∈ V. 10
LP Relaxation The picture can't be displayed. • Relax integer to continuous variables min (1a) Objective s.t. x i 1 + x i 2 ≤ 1 , (1b) x i 1 + x i 2 + x j 1 + x j 2 ≥ 1 , (1c) ∀ e ij ∈ E c , x i 1 + ¯ x i 2 + x j 1 + ¯ x j 2 ≥ 1 , (1d) ∀ e ij ∈ E c , x i 1 + x i 2 + ¯ ¯ x j 1 + x j 2 ≥ 1 , (1e) ∀ e ij ∈ E c , x i 1 + ¯ ¯ x i 2 + ¯ x j 1 + ¯ x j 2 ≥ 1 , (1f) ∀ e ij ∈ E c , x i 1 = 1 − x i 1 , ¯ (1g) ∀ i ∈ V, x i 2 = 1 − x i 2 , ¯ (1h) ∀ i ∈ V, x i 1 , x i 2 ∈ { 0 , 1 } , (1i) ∀ i ∈ V. 0 ≤ x i 1 , x i 2 ≤ 1 , ∀ i ∈ V 11
LPIR The picture can't be displayed. • Linear programming and iterative rounding (LPIR) • Non-integer solutions • Fewer non-integers mean closer to optimal solutions of ILP • Prune non-integer solutions in the feasible set Reduce non-integers (0.5,0.5) 12
Simple Observation The picture can't be displayed. Suppose ! "# = ! %# = 0 • ( x j 1 , x j 2 ) ( x i 1 , x i 2 ) i j x i 1 + x i 2 + x j 1 + x j 2 ≥ 1 , (1c) ∀ e ij ∈ E c , x i 1 + ¯ x i 2 + x j 1 + ¯ x j 2 ≥ 1 , (1d) ∀ e ij ∈ E c , x i 1 + x i 2 + ¯ ¯ x j 1 + x j 2 ≥ 1 , (1e) ∀ e ij ∈ E c , x i 1 + ¯ ¯ x i 2 + ¯ x j 1 + ¯ x j 2 ≥ 1 , (1f) ∀ e ij ∈ E c , x i 1 = 1 − x i 1 , ¯ (1g) ∀ i ∈ V, x i 2 = 1 − x i 2 , ¯ (1h) ∀ i ∈ V x i 2 + x j 2 = 1 The second bits must be different 13
Non-integers along Odd Cycles The picture can't be displayed. • Consider the constraints along an odd cycle Suppose ! "# = ! %# = ! &# = ! '# = ! (# = 0 • (0,0) (0,1) m m m (0,0) (0,1) (0,0) (0,0) l l l i i i (0,1) (0,0) (1,1) (0,1) j j j k k k x i 2 + x j 2 = 1 , x j 2 + x k 2 = 1 , x i 2 = x j 2 = x k 2 = x l 2 = x m 2 = 0 . 5 x k 2 + x l 2 = 1 , x m 2 + x i 2 = 1 14
LPIR – Add Odd Cycle Constraints The picture can't be displayed. • Additional constraints • Prune non-integer solutions from feasible set ( x m 1 , x m 2 ) m ( x i 1 , x i 2 ) ( x l 1 , x l 2 ) l i ( x j 1 , x j 2 ) j ( x k 1 , x k 2 ) k s.t. x i 1 + x j 1 + x k 1 + x l 1 + x m 1 ≥ 1 , (1 − x i 1 ) + (1 − x j 1 ) + (1 − x k 1 ) + (1 − x l 1 ) + (1 − x m 1 ) ≥ 1 Help resolve potential non-integers in the second bits 15
LPIR – Objective Function Biasing The picture can't be displayed. • Push non-integer solutions to integers by dynamically adapting the objective function If ! " = 0.6 , it means ! " tends to be 1 • If ! " = 0.4 , it means ! " tends to be 0 • If x i > 0 . 5, obj ← obj + (1 − x i ). If x i < 0 . 5, obj ← obj + x i . Cannot handle (0.5, 0.5) 16
LPIR – Binding Constraints Analysis The picture can't be displayed. Try to handle ! "# , ! "% = (0.5, 0.5) • x i 1 = 0 . 5 x i 1 = 0 . 5 Constraint set for x i 1 x i 1 x i 2 = 0 . 5 x i 2 = 0 . 5 i S i 1 S i 1 S ic S ic S i 2 S i 2 Constraint set for x i 2 x i 2 S i 1 S i 1 S i 2 S i 2 S ic S ic . . . + x i 1 + . . . ≤ c 1 . . . + x i 1 + . . . ≤ c 1 . . . + x i 2 + . . . ≥ c 5 . . . + x i 2 + . . . ≥ c 5 . . . + x i 1 + x i 2 + . . . ≤ c 9 . . . + x i 1 + x i 2 + . . . ≤ c 9 . . . + x i 1 − x i 2 + . . . ≥ c 10 . . . + x i 1 − x i 2 + . . . ≥ c 10 . . . + x i 1 + . . . ≤ c 2 . . . + x i 1 + . . . ≤ c 2 . . . + x i 2 + . . . ≥ c 6 . . . + x i 2 + . . . ≥ c 6 . . . + x i 1 + . . . ≤ c 3 . . . + x i 1 + . . . ≤ c 3 . . . + x i 2 + . . . ≥ c 7 . . . + x i 2 + . . . ≥ c 7 . . . + x i 1 + x i 2 + . . . ≥ c 11 . . . + x i 1 + x i 2 + . . . ≥ c 11 . . . + x i 1 + . . . ≤ c 4 . . . + x i 1 + . . . ≤ c 4 . . . + x i 2 + . . . ≥ c 8 . . . + x i 2 + . . . ≥ c 8 Try pushing ! "# to 0 Try pushing ! "% to 1 Check ! "# , ! "% = (0, 1) 17
Graph Simplification – Iterative Vertex Removal The picture can't be displayed. • Iterative vertex removal • Density aware recovery 5 5 4 4 3 3 2 2 1 1 1 5 5 4 4 5 3 3 4 2 2 3 2 2 1 1 1 1 18
Graph Simplification: Bi-connected Component Extraction The picture can't be displayed. • Color recovery • Color rotation on each component 5 8 5 8 4 4’ b 4 7 7 3’ c 3 6 6 3 2 2 1 a 5 8 1 4 7 3 6 Color rotation is needed 2 1 19
Overall Flow The picture can't be displayed. Simplified Component Input Layout ILP with objective = 0 LP Relaxation Construct Conflict Graph Add additional constraints and objective biasing Graph Simplification Generate Simplified Components Solving LP Binding Constraint Analysis Kernel Coloring - LPIR Detect non-integer bits Vertex Color Recovery Y Non-integer reduced? N Final Coloring Results Colored Component 20
Experimental Environment Setup The picture can't be displayed. • Implemented in C++ • 8-Core 3.4GHz Linux server • 32GB RAM • ISCAS benchmark from [Yu+, TCAD’15] • LP solver Gurobi was used 21
Experimental Results on TPL The picture can't be displayed. TPL conflict# TPL runtime Baseline 1: ILP [Yu+, TCAD’15] Baseline 2: SDP [Yu+, TCAD’15] LPIR achieves almost the same conflict numbers as ILP and SDP, but 26x faster than ILP and 1.8x faster than SDP 22
Experimental Results on QPL The picture can't be displayed. QPL conflict# QPL runtime ILP failed to finish Baseline 1: ILP [Yu+, DAC’14] Baseline 2: SDP [Yu+, DAC’14] LPIR achieves less than 2% degradation in conflict numbers than SDP, but 600x faster than ILP and 2.6x faster than SDP 23
Recommend
More recommend