automatic layout generation with applications in machine
play

Automatic Layout Generation with Applications in Machine Learning - PowerPoint PPT Presentation

Automatic Layout Generation with Applications in Machine Learning Engine Evaluation Haoyu Yang 1 , Wen Chen 1 , Piyush Pathak 2 , Frank Gennari 2 , Ya-Chieh Lai 2 , Bei Yu 1 1 The Chinese University of Hong Kong 2 Cadence Design Systems, Inc. 1 /


  1. Automatic Layout Generation with Applications in Machine Learning Engine Evaluation Haoyu Yang 1 , Wen Chen 1 , Piyush Pathak 2 , Frank Gennari 2 , Ya-Chieh Lai 2 , Bei Yu 1 1 The Chinese University of Hong Kong 2 Cadence Design Systems, Inc. 1 / 16

  2. Exploding Machine Learning for Layout Printability Estimation Convolution + ReLU Layer Max Pooling Layer Full Connected Node Hotspot 2 3 C 11 ,k C 12 ,k C 13 ,k . . . C 1 n,k C 21 ,k C 22 ,k C 23 ,k . . . C 2 n,k 6 7 6 . . . ... . 7 . . . . 6 . . . . 7 4 5 … C n 1 ,k C n 2 ,k C n 3 ,k . . . C nn,k ( 2 C 11 , 1 C 12 , 1 C 13 , 1 . . . C 1 n, 1 3 C 21 , 1 C 22 , 1 C 23 , 1 . . . C 2 n, 1 6 7 6 . . . ... . 7 k . . . . 6 . . . . 7 4 5 C n 1 , 1 C n 2 , 1 C n 3 , 1 . . . C nn, 1 Non-Hotspot (a) BBL [Yang+,DAC’17] (c) LithoROC [Ye+,ASPDAC’19] (b) SMBoost [Zhang+,ICCAD’16] 2 / 16

  3. Klayout Python Interface An example of creating a layout with a single cell and ◮ Layout: a rich set of methods to single layer and puts one rectangle on that layer. manipulate and query the layout import pya hierarchy, the geometrical objects, the layout = pya.Layout() meta information and other features of top = layout.create_cell(“TOP”) the layout database. l1 = layout.layer(1, 0) ◮ Cell: consists of a set of shape top.shapes(l1).insert(pya.Box(0, 0, containers (called layers). 1000, 2000)) ◮ Layer, Shape. layout.write(“t.gds”) 3 / 16

  4. Metal Layer Generation Wire Configurations Global Configurations ◮ Wire CD: Wire width. ◮ Track Pitch: Metal wire pitch. ◮ Cell Name ◮ T2T Distance (min/max): Line-end to line-end distance of wires on single ◮ Total X: Cell bounding box size in x track. direction. ◮ Wire Length (min/max) ◮ Total Y: Cell bounding box size in y ◮ T2T Grid: Controls the unit size of T2T direction. Distance. 4 / 16

  5. Metal Layer Generation: Examples cellname wire_cd track_pitch min_t2t max_t2t min_length max_length t2t_grid total_x total_y test1 0.016 0.032 0.012 0.2 0.1 1 0.005 5 5 test2 0.016 0.032 0.2 1.0 0.1 1 0.012 5 5 (d) Small T2T (test1) (e) Large T2T (test2) 5 / 16

  6. Via Layer Generation Via Specific Configurations ◮ Via X: Via size along x direction. ◮ Via Y: Via size along y direction. ◮ Vias are relying on its upper and lower ◮ Via density: the probability of a via metal layers. appearing at a candidate via position. ◮ Via-Metal-Enclosure: Vias should be ◮ Metal layers are configured as previous. away from line-ends by a certain distance. ◮ Via creation flow. 1. M_lower generation Enclosure-X 2. M_upper generation 3. Check candidate via positions 4. Place vias with according to enclosure and density constraints 6 / 16

  7. Via Layer Generation: Examples & Simulation cellname via_x via_x density via1 0.07 0.07 0.5 via2 0.07 0.07 0.3 via3 0.07 0.07 0.2 (f) High Density (g) Medium Density (h) Low Density 7 / 16

  8. Performance Evaluation on Generation Tools 800 Throughput ( µ m 2 / second) Metal 625 600 403 400 200 0 Metal Via 8 / 16

  9. BBL-CNN Architecture [Yang+,DAC’17] Layer Kernel Size Stride Output Node # 12 × 12 × 16 conv1-1 3 1 12 × 12 × 16 conv1-2 3 1 Feature Tensor 6 × 6 × 16 maxpooling1 2 2 ◮ k -channel hyper-image 6 × 6 × 32 conv2-1 3 1 6 × 6 × 32 conv2-2 3 1 ◮ Compatible with CNN 3 × 3 × 32 maxpooling2 2 2 ◮ Storage and computional efficiency fc1 N/A N/A 250 fc2 N/A N/A 2 Convolution + ReLU Layer Max Pooling Layer Full Connected Node Hotspot 2 3 C 11 ,k C 12 ,k C 13 ,k . . . C 1 n,k C 21 ,k C 22 ,k C 23 ,k . . . C 2 n,k 6 7 . . . . 6 ... 7 . . . . 6 . . . . 7 4 5 … C n 1 ,k C n 2 ,k C n 3 ,k . . . C nn,k ( 2 C 11 , 1 C 12 , 1 C 13 , 1 . . . C 1 n, 1 3 C 21 , 1 C 22 , 1 C 23 , 1 . . . C 2 n, 1 6 7 6 . . . . 7 k ... . . . . 6 . . . . 7 4 5 C n 1 , 1 C n 2 , 1 C n 3 , 1 . . . C nn, 1 Non-Hotspot 9 / 16

  10. BBL-Recall The Training Procedure [Yang+,DAC’17] ◮ Minimize difference with ground truths y ∗ n = [ 1 , 0 ] , y ∗ h = [ 0 , 1 ] . (1) � N , if y ( 0 ) > 0 . 5 F ∈ (2) H , if y ( 1 ) > 0 . 5 10 / 16

  11. BBL-Recall The Training Procedure [Yang+,DAC’17] ◮ Minimize difference with ground truths y ∗ n = [ 1 , 0 ] , y ∗ h = [ 0 , 1 ] . (1) � N , if y ( 0 ) > 0 . 5 F ∈ (2) H , if y ( 1 ) > 0 . 5 ◮ Shifting decision boundary � N , if y ( 0 ) > 0 . 5 + λ F ∈ (3) H , if y ( 1 ) > 0 . 5 − λ 10 / 16

  12. BBL-Recall The Training Procedure [Yang+,DAC’17] ◮ Minimize difference with ground truths y ∗ n = [ 1 , 0 ] , y ∗ h = [ 0 , 1 ] . (1) � N , if y ( 0 ) > 0 . 5 F ∈ (2) H , if y ( 1 ) > 0 . 5 ◮ Shifting decision boundary ( ✗ ) � N , if y ( 0 ) > 0 . 5 + λ F ∈ (3) H , if y ( 1 ) > 0 . 5 − λ ◮ Biased ground truth n = [ 1 − ǫ, ǫ ] y ∗ (4) 10 / 16

  13. Smooth Boosting [Zhang+,ICCAD’16] 11 / 16

  14. Smooth Boosting [Zhang+,ICCAD’16] 12 / 16

  15. Optimizing Receiver Operating Characteristic [Ye+,ASPDAC’16] The AUC objective: � � �� � N + � N − 1 x + � � L Φ ( f ) = j = 1 Φ − f x − . f N + N − i = 1 i j Approximation candidates: PSL Φ PSL ( z ) = ( 1 − z ) 2 PHL Φ PHL ( z ) = max( 1 − z , 0 ) PLL Φ PLL ( z ) = log( 1 + exp( − β z )) � − ( z − γ ) p , if z > γ R Φ R ∗ ( z ) = 0 , otherwise 13 / 16

  16. The Dataset Via: Total 10403 2000 × 2000 via patterns, simulated with Calibre. ◮ Training Set ◮ Testing Set ◮ 2774 hotspots ◮ 841 hotspots ◮ 5226 non-hotspots ◮ 1562 non-hotspots Metal: Merged ICCAD2012 CAD Contest Benchmark. ◮ Training Set ◮ Testing Set ◮ 1204 hotspots ◮ 2524 hotspots ◮ 17096 non-hotspots ◮ 13503 non-hotspots 14 / 16

  17. Machine Learning Engine Evaluation 99 . 9 99 . 5 98 . 9 98 . 4 97 . 7 100 100 93 . 8 92 . 9 91 . 8 False Alarm Rate (%) Metal 79 75 75 71 Accuracy (%) Via 60 . 6 50 50 39 . 1 33 . 3 28 26 . 2 24 . 3 25 21 . 5 25 15 . 9 9 . 6 3 . 6 2 . 3 1 . 7 1 . 5 0 . 9 0 0 BBL SMBoost PHL PLL PSL R BBL SMBoost PHL PLL PSL R (i) Accuracy (j) False Alarm 15 / 16

  18. Thank You 16 / 16

Recommend


More recommend