Like this presentation? Why not share!

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

## by Danny Luk, Assoicate Professor at Fudan University on Aug 08, 2011

• 665 views

### Views

Total Views
665
Views on SlideShare
663
Embed Views
2

Likes
0
3
0

### Categories

Uploaded via SlideShare as Microsoft PowerPoint

## Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-TreePresentation Transcript

• 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]
• Outline
• Motivation: double patterning lithography
• Color assignment problem formulation
• Biconnected and triconnected components
• SPQR-tree
• Divide-and-conquer method
• Experimental results
• Summary
• Motivation: Double Patterning
• 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.
• Conflict Graph Construction
• Blue edge: positive weight (different mask preferred)
• Green edge: negative weight, (same mask preferred)
• To solve this layout splitting problem, we first construct a conflict graph from the layout.
• Color Assignment Problem
• INSTANCE: Graph G = ( V , E ) and a weight function w : E  Z
• SOLUTION: Disjoint vertex subsets V 0 and V 1 where V = V 0 ∪ V 1
• MINIMIZE: the total sum of weights of edges whose end vertices are in same color.
• Note: this problem is NP-hard in general.
• 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 .
• Biconnected Graph
• A vertex is called a cut-vertex of a graph if removing it will disconnect the graph.
• For example figure below, a and b are cut-vertices.
• If no cut-vertex can be found in a graph G , then G is called a biconnected graph.
• Graph Division
• It is wise to divide the conflict graph into its biconnected components first, because:
• The division can be done quickly in linear time.
• It significantly reduces the run time as observed.
• Each component can be solved independently without degrading any QoR (“lossless”).
• Question: Is it even better to divide the biconnected components further?
• Triconnected Graph
• A pair of vertices is called a separation pair of a bi-connected graph G if removing it will disconnect G.
• Eg below, {a,b}, {c,d}, {c,e}, {c,f} are separation pairs.
• If no separation pair can be found in a graph G, then G is called a triconnected graph.
• Triconnected Component virtual edge skeleton
• SPQR-Tree
• Remarkable result: A biconnected graph can be divided into its triconnected components (skeletons) in linear time with SPQR-tree
skeleton
• Four Types of Skeletons
• A skeleton is classified into four types:
• Series (S): the skeleton is a cycle graph
• Parallel (P): the skeleton contains only 2 vertices and k parallel edges between them where k ≥ 3.
• Trivial (Q): the skeleton contains only 2 vertices, and only two parallel edges between them
• Rigid (R): the skeleton is a triconnected graph other than the above types.
• Divide-and-Conquer Method
• Three essential steps:
• Divide a conflict graph into its triconnected components.
• Solve each tri-connected components in a bottom-up fashion.
• Merge the solutions into a complete one in a top-down fashion.
• Bottom-up Conquering
• We calculate two possible solutions for each components, namely {s, t} in same color and {s, t} in opposite colors.
• 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.
• 45nm SDFFRS_X2 Layer 9, 11
• fft_all.gds, 320K polygons
• 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%
• Summary
• A biconnected graph can be divided into its triconnected components in linear time with SPQR-tree.
• We have derived a method that combines the solutions of triconnected components in linear time without any quality lost.
• Our method does not contain any tuning parameters so that it is flexible enough to be integrated into any layout decomposition framework.
• Experimental results show that our method can achieve on average 5X speedup
• Q & A