A High-Performance Triple Patterning Layout Decomposer with Balanced Density Bei Yu 1 Yen-Hung Lin 2 Gerard Luk-Pat 3 Duo Ding 4 Kevin Lucas 3 David Z. Pan 1 1 ECE Dept., University of Texas at Austin 3 Synopsys Inc. 2 CS Dept., National Chiao Tung University 4 Oracle Corp. Austin 1 / 25
Triple Patterning Lithography (TPL) ITRS roadmap 28nm single-patterning 20nm double-patterning 14nm triple-patterning / EUV 10nm quadruple-patterning / EUV d min stitch 2 / 25
TPL Decomposition Works – ILP or SAT [Cork+,SPIE’08][Yu+,ICCAD’11][Cork+,SPIE’13] – Graph Search for Row based Layout [Tian+, ICCAD’12][Tian+,SPIE’13] – Heuristic [Ghaida+,SPIE’11][Fang+,DAC’12][Chen,ISQED’13] [Kuang+,DAC’13][Tang+,Patent’13] – Semidefinite Programming (SDP) (trade-off) [Yu+, ICCAD’11][Yu+,ICCAD’13] 3 / 25
◮ Global Balanced Density? b 1 b 1 4 / 25
◮ Global Balanced Density? b 1 b 1 ◮ Local Balanced Density! b 3 b 4 b 3 b 4 b 1 b 2 b 1 b 2 4 / 25
Overall Flow Input Layout Local Bins Info Graphs Construction and Simplification Density Balanced Color Assignment Density Balanced Recovery Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info b 3 b 4 Graphs Construction and Simplification Density Balanced Color Assignment b 1 b 2 Density Balanced Recovery Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info Graphs Construction and Simplification a d c Density Balanced Color Assignment Density Balanced Recovery Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info Graphs Construction and b Simplification a d c Density Balanced Color Assignment Density Balanced Recovery Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info d 1 a 1 b Graphs Construction and Simplification c a 2 d 2 Density Balanced Color Assignment Density Balanced Recovery a a Stitch candidate generation [Kuang+,DAC’13] Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info d 1 a 1 Graphs Construction and b Simplification c Density Balanced Color Assignment a 2 d 2 Density Balanced Recovery Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info d 1 a 1 Graphs Construction and b Simplification c Density Balanced Color Assignment a 2 d 2 Density Balanced Recovery Output Masks 5 / 25
Overall Flow Input Layout Local Bins Info stitch Graphs Construction and Simplification Density Balanced Color Assignment Density Balanced Recovery Output Masks 5 / 25
Input Layout Local Bins Info Graphs Construction and Simplification Density Balanced Color Assignment Density Balanced Recovery Output Masks 6 / 25
Problem Formulation Local density uniformity in bin b k DU k = d k 1 · d k 2 + d k 1 · d k 3 + d k 2 · d k 3 Lemma: Maximizing DU k can achieve better density balance. Density Balanced Color Assignment Input Graph model Output Color Assignment to the graph Objective min conflict#, stitch#, and max DU k 7 / 25
Color representation 1 √ 3 (- , ) ◮ Three unit vectors [Yu+,ICCAD’11] 2 2 ◮ same color: � v i · � v j = 1 (1, 0) ◮ different color: � v i · � v j = − 1 / 2 √ 3 1 (- ,- ) 2 2 Our Vector Programming � � � ( � v i · � v j ) − α ( � v i · � v j ) − β · DU k min e ij ∈ CE e ij ∈ SE b k ∈ B √ √ v i ∈ { ( 1 , 0 ) , ( − 1 2 ) , ( − 1 3 3 s.t . � 2 , 2 , − 2 ) } � DU k = − den ki · den kj · ( � v i · � v j ) ∀ b k ∈ B i , j ∈ V den ki : density of feature r i in bin b k 8 / 25
Relax to Semidefinite Programming (SDP) SDP: min A • X X ii = 1 , ∀ i ∈ V X ij ≥ − 1 2 , ∀ e ij ∈ CE X � 0 � 1 + β · � k den ki · den kj , ∀ b k ∈ B , e ij ∈ CE A ij = − α + β · � k den ki · den kj , ∀ b k ∈ B , e ij ∈ SE β · � k den ki · den kj , otherwise Output matrix X : ◮ If X ij close to 1, i , j same color ◮ If X ij close to -0.5, i , j different colors 9 / 25
Mapping: From SDP to Color Assignment 1 . 0 0 . 43 − 0 . 5 0 . 21 − 0 . 5 0 . 15 1 5 1 . 0 − 0 . 5 − 0 . 5 0 . 15 0 . 95 1 . 0 − 0 . 5 − 0 . 5 − 0 . 5 3 X = 1 . 0 0 . 21 − 0 . 5 1 . 0 0 . 43 . . . 2 6 1 . 0 4 10 / 25
Mapping: From SDP to Color Assignment 1 . 0 0 . 43 − 0 . 5 0 . 21 − 0 . 5 0 . 15 1 5 1 . 0 − 0 . 5 − 0 . 5 0 . 15 0 . 95 1 . 0 − 0 . 5 − 0 . 5 − 0 . 5 3 X = 1 . 0 0 . 21 − 0 . 5 1 . 0 0 . 43 . . . 2 6 1 . 0 4 1 5 ◮ Greedy may lose optimality 3 ◮ 0.95? 0.43? 2 6 4 10 / 25
Mapping: 3-Way Max-Cut 1 . 0 0 . 43 − 0 . 5 0 . 21 − 0 . 5 0 . 15 1 5 1 . 0 − 0 . 5 − 0 . 5 0 . 15 0 . 95 1 . 0 − 0 . 5 − 0 . 5 − 0 . 5 3 X = 1 . 0 0 . 21 − 0 . 5 . . . 1 . 0 0 . 43 2 6 1 . 0 4 1 1 ◮ Smaller merged graph 1 3 1 5 ◮ 3-Way Max-Cut -0.1 1 2 -0.1 ◮ FM Heuristic v.s. Search 4 2 2+6 11 / 25
Mapping: Extend to Density Balance d 1 a 1 a 1 (20) 1 b 1 b(5) 1 d 1 (15) c -0.1 1 a 2 d 2 2 -0.1 2 c (5) a2+d2 (100) 12 / 25
Mapping: Extend to Density Balance d 1 a 1 a 1 (20) 1 b 1 b(5) 1 d 1 (15) c -0.1 1 a 2 d 2 2 -0.1 2 c (5) a 2 +d 2 (100) 12 / 25
Input Layout Local Bins Info ◮ Implement techniques Graphs Construction and [Yu+,ICCAD’11] Simplification [Fang+,DAC’12] [Kuang+,DAC’13] Density Balanced Color Assignment ◮ 3 new techniques ◮ Integrate density balance Density Balanced Recovery Output Masks 13 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 ◮ Linear runtime 2 6 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 ◮ Linear runtime 2 6 1 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 ◮ Linear runtime 2 2 6 1 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 4 ◮ Linear runtime 2 2 6 1 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 4 ◮ Linear runtime 2 2 6 1 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 ◮ Linear runtime 2 2 6 1 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 ◮ Linear runtime 2 6 1 ◮ Keep conflict # optimality 4 Stack 14 / 25
Fast Color Assignment Trial ◮ Iteratively remove vertex with: 1 5 ◮ Conflict degree < 3 ◮ Stitch degree < 2 3 ◮ Linear runtime 2 6 ◮ Keep conflict # optimality 4 Stack 14 / 25
Cut Vertex Stitch Forbiddance a 1 a a a 2 Figure : Cut Computation [Fang+,DAC’12] 15 / 25
Cut Vertex Stitch Forbiddance a 1 a a a 2 Figure : Cut Computation [Fang+,DAC’12] d d1 d2 b b c c b c b c a a a1 a2 e e f f e e f f g2 g g1 15 / 25
Cut Vertex Stitch Forbiddance a 1 a a a 2 Figure : Cut Computation [Fang+,DAC’12] d d1 d2 b b c c b c b c a a a e e f f e e f f g2 g g1 15 / 25
Cut Vertex Stitch Forbiddance a 1 a a a 2 Figure : Cut Computation [Fang+,DAC’12] d1 d d1 d2 d2 b c b b c c b c b c DG1 a a a a a' DG2 e e f f e e f f e f g2 g2 g g1 g1 15 / 25
Vertex Clustering e d2 e b b a+d1 a d1 c d2 c (a) (b) 16 / 25
Experimental Results– Setup ◮ Using C++ on 3.0GHz Linux machine ◮ CSDP as SDP solver ◮ Benchmarks ◮ ISCAS benchmarks from [Yu+,ICCAD’11] ◮ Two OpenSPARC T1 benchmarks mul top and exu ecc ◮ Six dense benchmarks c9 total – s5 total 17 / 25
With or Without Density Balance? 250 [w/o. balance] 200 [w. balance] 150 EPE value 100 50 0 C1,355 C1,908 C2,670 C3,540 C5,315 C6,288 S1,488 C432 C499 C880 1,400 1,200 1,000 [w/o. balance] EPE value [w. balance] 800 600 400 200 7 2 4 0 2 1 3 8 5 0 5 4 9 5 8 5 , , , , 8 5 8 5 , 7 3 3 3 1 C S S S S ◮ Considering balance, -14% EPE# ◮ EPE: Edge placement error 18 / 25
With or Without Density Balance? (cont.) 2 [w/o. balance] [w. balance] 2 2 1 0 0 C1,355 C1,908 C2,670 C3,540 C5,315 C7,552 S1,488 C432 C499 C880 50 [w/o. balance] 40 [w. balance] 30 20 10 0 S38,417 S35,932 S38,584 S15,850 C6,288 ◮ Considering balance, +4% cost penalty ◮ Cost = conflict# + 0.1 stitch# 19 / 25
Recommend
More recommend