11.07.2015 Views

Fast and efficient phase conflict detection and correction in standard ...

Fast and efficient phase conflict detection and correction in standard ...

Fast and efficient phase conflict detection and correction in standard ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

esults <strong>in</strong> significant speed-ups of the <strong>phase</strong> <strong>conflict</strong> <strong>detection</strong> algorithm.Experimental results on representative examples show averagespeedups of 5.9x us<strong>in</strong>g the proposed approach, while ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>gthe same quality of results as the method <strong>in</strong> [2].To summarize, the key features that dist<strong>in</strong>guish the proposed<strong>phase</strong> <strong>conflict</strong> <strong>detection</strong> scheme from previous methods are:¯ Representation of the layout as a CCG (to be def<strong>in</strong>ed later) <strong>and</strong> theestablishment of its relationship to <strong>phase</strong>-assignability of its correspond<strong>in</strong>glayout.¯ Reduction of the <strong>phase</strong> <strong>conflict</strong> <strong>detection</strong> problem to a m<strong>in</strong>imumweight<strong>conflict</strong> cycle problem (to be def<strong>in</strong>ed later) on the CCG <strong>and</strong> anoptimal polynomial-time algorithm for the problem, when the CCGis an embedded planar graph.Together, these two factors provide significant runtime advantageswithout sacrific<strong>in</strong>g solution quality. The follow<strong>in</strong>g sections<strong>in</strong>clude a detailed discussion of these items.3.1 CCG ConstructionThe first step of the <strong>conflict</strong> <strong>detection</strong> algorithm is to build aCCG. Given a layout Ä, theCCG ´Æ µ consists ofshifter nodes Æ, <strong>conflict</strong> edges <strong>and</strong> feature edges .1. For each shifter <strong>in</strong> Ä, create an edge shifter node Ò ¾ Æ.2. For two overlapp<strong>in</strong>g shifters 3 × ½ <strong>and</strong> × ¾, create a <strong>conflict</strong> edge ¾ connect<strong>in</strong>g Ò ½ <strong>and</strong> Ò ¾.HereÒ ½ <strong>and</strong> Ò ¾ are the edge shifter nodes for× ½ <strong>and</strong> × ¾, respectively.3. Create a feature edge ¾ between the two shifters that are onopposite sides of a critical feature.0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 000000000000011111111111110000000000000111111111111111111111111000000000000011111111111110000000000000111111111111111111111111000000000000011111111111110000000000000111111111111100000000000111111111110000000000011111111111000000000001111111111100000000000111111111110000000000011111111111000000000000011111111111111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111Edge Shifter NodeConflict Edge(a) Conflict Cycle GraphFeature EdgeOverlap Node0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 00000000000001111111111111000000000001111111111111111111111110000000000000 00000000000001111111111111000000000001111111111111111111111110000000000000 00000000000001111111111111000000000000011111111111110000000000011111111111000000000001111111111100000000000111111111110000000000011111111111000000000001111111111100000000000001111111111111111111111110000000000000000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111100000000000001111111111111 0000000000000111111111111111111111111110000000000000 0000000000000111111111111111111111111110000000000000Edge Shifter Node(b) Phase Conflict GraphFigure 3. (a) CCG. (b) Phase Conflict Graph.Figure 3(a) shows an example of a CCG for the layout shownearlier <strong>in</strong> Figure 1. The CCG has 6 nodes <strong>and</strong> 6 edges. By comparison,the <strong>phase</strong> <strong>conflict</strong> graph (shown <strong>in</strong> Figure 3(b)) of thesame layout has 11 nodes <strong>and</strong> 11 edges. Experimental results <strong>in</strong>a later section show a substantial reduction <strong>in</strong> the edge count us<strong>in</strong>gthe new graphs, which contributes to the runtime improvements.However, unlike the <strong>phase</strong> <strong>conflict</strong> graph, the CCG does not equate<strong>phase</strong>-assignability of its correspond<strong>in</strong>g layout to bipartition. So,a CCG may be bipartite even though its correspond<strong>in</strong>g layout isnot <strong>phase</strong>-assignable. For <strong>in</strong>stance, even though the layout <strong>in</strong> Figure3(a) is not <strong>phase</strong>-assignable, its correspond<strong>in</strong>g CCG is bipartite.Thus, a new criterion is needed for detect<strong>in</strong>g <strong>phase</strong> <strong>conflict</strong>sus<strong>in</strong>g the CCG.It should be further clarified that <strong>in</strong> the CCG, the feature edges<strong>and</strong> <strong>conflict</strong> edges play different roles: nodes connected by featureedges should be assigned different <strong>phase</strong>s <strong>and</strong> nodes connected by<strong>conflict</strong> edges should be assigned the same <strong>phase</strong>. Later <strong>in</strong> thissection, we discuss how the feature edges are used only to appropriatelyclassify the cycles they belong to <strong>and</strong> can be dropped3 Two shifters that are separated by less than the m<strong>in</strong>imum shifter spac<strong>in</strong>g arecalled overlapp<strong>in</strong>g shifters.151dur<strong>in</strong>g some <strong>in</strong>termediate graph constructions, thereby produc<strong>in</strong>gmore speed-ups.In the rest of this section, we present the theory for <strong>phase</strong> <strong>conflict</strong><strong>detection</strong> us<strong>in</strong>g the CCG.Def<strong>in</strong>ition 1 A <strong>conflict</strong> cycle is a cycle which conta<strong>in</strong>s an oddnumber of feature edges.Theorem 1 A layout is <strong>phase</strong>-assignable if <strong>and</strong> only if the correspond<strong>in</strong>gCCG has no <strong>conflict</strong> cycles.Proof: See Appendix for proof.In order to make the layout <strong>phase</strong>-assignable, it is necessary toremove all <strong>conflict</strong> cycles from the CCG by delet<strong>in</strong>g edges. Thedeleted edges directly correspond to <strong>phase</strong> <strong>conflict</strong>s that have tobe corrected. Each edge <strong>in</strong> the CCG can be assigned a weight toreflect the cost of correct<strong>in</strong>g the <strong>phase</strong> <strong>conflict</strong> correspond<strong>in</strong>g to it.A large cost of the <strong>phase</strong> <strong>conflict</strong>s selected for <strong>correction</strong> wouldimply large changes to the layout <strong>and</strong>/or mask, which is highlyundesirable. Hence, it is essential to m<strong>in</strong>imize the sum of weightsof the edges to be deleted dur<strong>in</strong>g <strong>conflict</strong> cycle removal.The m<strong>in</strong>imum-weight <strong>conflict</strong> cycle removal problem is def<strong>in</strong>edas follows: Given a CCG ´Îµ, remove a m<strong>in</strong>imum-weightset of edges ¼ such that the modified graph ¼´Î Ò ¼ µ doesnot have any <strong>conflict</strong> cycles.It can be easily proved that this problem is NP-hard for generalgraphs by do<strong>in</strong>g a simple reduction to the m<strong>in</strong>imum-weight bipartizationproblem. However, an optimal polynomial-time algorithmexists when the graph is an embedded planar graph. This optimalalgorithm is referred to as Pl CC Remove <strong>in</strong> Figure 2 <strong>and</strong> will bediscussed <strong>in</strong> detail <strong>in</strong> the next section.3.2 Optimal M<strong>in</strong>imum-Weight Conflict Cycle RemovalAlgorithmLet denote a CCG that is also an embedded planar graph. Them<strong>in</strong>imum-weight <strong>conflict</strong> cycle removal problem on is reducedto a m<strong>in</strong>imum-weight perfect match<strong>in</strong>g problem on a suitably constructedgraph through an <strong>in</strong>termediate reduction to an T-jo<strong>in</strong>problem [11].Def<strong>in</strong>ition 2 A <strong>conflict</strong> face of is a face correspond<strong>in</strong>g to a <strong>conflict</strong>cycle <strong>in</strong> . Afaceof that is not a <strong>conflict</strong> face is a legal face.Def<strong>in</strong>ition 3 The dual graph of a CCG is constructed byrepresent<strong>in</strong>g every face of with a node <strong>in</strong> .Anedge whichbelongs to faces ½ <strong>and</strong> ¾ <strong>in</strong> (whose correspond<strong>in</strong>g nodes <strong>in</strong> are Ú ½ <strong>and</strong> Ú ¾ , respectively) is represented with an edge ¼Ú ½ Ú ¾ <strong>in</strong> . A node Ú ¾ correspond<strong>in</strong>g to a <strong>conflict</strong> face ¾ is called a <strong>conflict</strong> node. A node that is not a <strong>conflict</strong> nodeis a legal node.Theorem 2 Remov<strong>in</strong>g an odd number of edges from every <strong>conflict</strong>face <strong>and</strong> an even number of edges from every legal face will generatea graph with no <strong>conflict</strong> cycles.Proof: See Appendix for proof.The problem of delet<strong>in</strong>g a m<strong>in</strong>imum-weight set of edges suchthat an odd number of edges are deleted from every <strong>conflict</strong> face<strong>and</strong> an even number of edges are deleted from every legal face of translates to the follow<strong>in</strong>g problem on its dual graph :

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!