Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree

976 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
976
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree

  1. 1. Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree Wai-Shing Luk (speaker), Fudan University Email: [email_address] Huiping Huang, Cadence Design Systems, Inc. Email: [email_address]
  2. 2. Outline <ul><li>Motivation: double patterning lithography </li></ul><ul><li>Color assignment problem formulation </li></ul><ul><li>Biconnected and triconnected components </li></ul><ul><li>SPQR-tree </li></ul><ul><li>Divide-and-conquer method </li></ul><ul><li>Experimental results </li></ul><ul><li>Summary </li></ul>
  3. 3. Motivation: Double Patterning <ul><li>Instead of exposing the photoresist layer once under one mask, DPL exposes it twice by splitting the mask into two parts, each with features half as dense. </li></ul>
  4. 4. Conflict Graph Construction <ul><li>Blue edge: positive weight (different mask preferred) </li></ul><ul><li>Green edge: negative weight, (same mask preferred) </li></ul><ul><li>To solve this layout splitting problem, we first construct a conflict graph from the layout. </li></ul>
  5. 5. Color Assignment Problem <ul><li>INSTANCE: Graph G = ( V , E ) and a weight function w : E  Z </li></ul><ul><li>SOLUTION: Disjoint vertex subsets V 0 and V 1 where V = V 0 ∪ V 1 </li></ul><ul><li>MINIMIZE: the total sum of weights of edges whose end vertices are in same color. </li></ul><ul><li>Note: this problem is NP-hard in general. </li></ul><ul><li>To reduce the problem size, some graph division methods have been proposed. For example, one easy way is to divide the graph into its biconnected components . </li></ul>
  6. 6. Biconnected Graph <ul><li>A vertex is called a cut-vertex of a graph if removing it will disconnect the graph. </li></ul><ul><li>For example figure below, a and b are cut-vertices. </li></ul><ul><li>If no cut-vertex can be found in a graph G , then G is called a biconnected graph. </li></ul>
  7. 7. Graph Division <ul><li>It is wise to divide the conflict graph into its biconnected components first, because: </li></ul><ul><ul><li>The division can be done quickly in linear time. </li></ul></ul><ul><ul><li>It significantly reduces the run time as observed. </li></ul></ul><ul><ul><li>Each component can be solved independently without degrading any QoR (“lossless”). </li></ul></ul><ul><li>Question: Is it even better to divide the biconnected components further? </li></ul>
  8. 8. Triconnected Graph <ul><li>A pair of vertices is called a separation pair of a bi-connected graph G if removing it will disconnect G. </li></ul><ul><li>Eg below, {a,b}, {c,d}, {c,e}, {c,f} are separation pairs. </li></ul><ul><li>If no separation pair can be found in a graph G, then G is called a triconnected graph. </li></ul>
  9. 9. Triconnected Component virtual edge skeleton
  10. 10. SPQR-Tree <ul><li>Remarkable result: A biconnected graph can be divided into its triconnected components (skeletons) in linear time with SPQR-tree </li></ul>skeleton
  11. 11. Four Types of Skeletons <ul><li>A skeleton is classified into four types: </li></ul><ul><ul><li>Series (S): the skeleton is a cycle graph </li></ul></ul><ul><ul><li>Parallel (P): the skeleton contains only 2 vertices and k parallel edges between them where k ≥ 3. </li></ul></ul><ul><ul><li>Trivial (Q): the skeleton contains only 2 vertices, and only two parallel edges between them </li></ul></ul><ul><ul><li>Rigid (R): the skeleton is a triconnected graph other than the above types. </li></ul></ul>
  12. 12. Divide-and-Conquer Method <ul><li>Three essential steps: </li></ul><ul><ul><li>Divide a conflict graph into its triconnected components. </li></ul></ul><ul><ul><li>Solve each tri-connected components in a bottom-up fashion. </li></ul></ul><ul><ul><li>Merge the solutions into a complete one in a top-down fashion. </li></ul></ul>
  13. 13. Bottom-up Conquering <ul><li>We calculate two possible solutions for each components, namely {s, t} in same color and {s, t} in opposite colors. </li></ul><ul><li>Defer the decision of selecting which solution until the top-down stage, and simply assign the difference of the cost of two solutions as a weight to the corresponding virtual edge in its parent skeleton. </li></ul>
  14. 14. 45nm SDFFRS_X2 Layer 9, 11
  15. 15. fft_all.gds, 320K polygons
  16. 16. Experimental Results #polys #nodes/#edges CPU (s) w /spqr CPU (s) w/o spqr Time reduced Cost reduced 3631 31371/52061 13.29 38.25 65.3% 4.58% 9628 83733/138738 199.94 2706.12 92.6% 2.19% 18360 159691/265370 400.43 4635.14 91.4% 1.18% 31261 284957/477273 1914.54 9964.18 80.7% 1.61% 49833 438868/738759 3397.26 15300.9 77.8% 1.76% 75620 627423/1057794 3686.07 17643.9 79.1% 2.50%
  17. 17. Summary <ul><li>A biconnected graph can be divided into its triconnected components in linear time with SPQR-tree. </li></ul><ul><li>We have derived a method that combines the solutions of triconnected components in linear time without any quality lost. </li></ul><ul><li>Our method does not contain any tuning parameters so that it is flexible enough to be integrated into any layout decomposition framework. </li></ul><ul><li>Experimental results show that our method can achieve on average 5X speedup </li></ul>
  18. 18. Q & A

×