VLSI Physical Design Automation Detailed Routing (II) Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434 3/14/2016 1 Yoshimura and Kuh’s Method Source: “Efficient Algorithms for Channel Routing” by T. Yoshimura and E. Kuh IEEE Trans. On Computer-Aided Design of Integrated Circuits and Systems. Vol. CAD-1, pp25-35, Jan 1982 3/14/2016 2 Characterizing Channel Routing Problem 0 1 4 5 1 6 7 0 4 9 10 10 4 10 1 7 6 5 9 2 3 2 1 3 8 5 4 5 3 3 5 2 6 8 9 8 9 1 10 9 8 7 2 3 7 5 6 8 2 4 6 7 10 Vertical constraint graph Gv 3/14/2016 9 Horizontal constraint graph 3 Zone Representation 0 1 4 5 1 6 7 0 4 9 10 10 2 3 5 3 5 2 6 8 9 8 7 9 2 Zone: 1 2 3 1 2 3 4 5 1 1 2 3 4 5 1 2 4 5 2 4 6 4 6 7 2 3 4 7 8 4 7 8 9 4 7 7 9 8 9 10 9 10 5 Remarks: A new zone appears when some 3/14/2016 intervals begin after some intervals end. 4 Zone Representation 2 1 2 3 4 5 1 2 3 1 2 3 4 5 1 2 3 4 5 Zone: 2 4 6 1 2 4 5 7 4 6 7 4 7 8 4 7 8 9 7 7 9 8 9 10 9 10 8 9 10 6 1 2 3 3/14/2016 4 5 5 Merging of Nets 1 4 10 5 9 7 3 8 6 1 2 3 4 5 7 1 2 3 4 5,6 7 8 9 6 10 2 1 4 7 9 5,6 2 10 3 8 8 9 10 3/14/2016 6 Scanning the Zones 1 2 3 4 5 7 1 2 3 4 7 1,7 2 3 4 8 9 6 10 Left = {1, 3, 5} Right = {6} 10 Left = {1, 2, 3} Right = {7} 10 Left = {2, 3, 5.6} Right = {8, 9} 8 9 5,6 8 9 5,6 3/14/2016 7 Scanning of Zones 1,7 2 3,8 4 10 5,6,9 1,7 2 3,8 4,10 Left = {2, 3.8, 4} Right = {10} 5,6,9 3/14/2016 8 Merging VCG 1 4 5 10 9 3 8 1 7 9 5,6 6 10 4,10 1,7 5,6,9 2 10 7 2 1,7 4 2 4 3 8 1,7 4 2 9 5,6 5,6,9 3,8 10 3,8 3/14/2016 2 3 8 9 Assigning Tracks Track 1 4,10 Track 2 1,7 5,6,9 Track 5 (or 4) 2 Track 3 3,8 3/14/2016 Track 4 (or 5) 10 Merging of Nets • Make sure that the VCG remains acyclic • There are two approaches: – First approach: Merge the pairs sequentially. Select pairs to minimize the increase in the length of the longest path in the VCG. – Second approach: Merge all pairs simultaneously. Select pairs to maximize the total no. of matches. • We will focus on the second approach: “simultaneous merging”. 3/14/2016 11 Shortcomings of the First Approach Observation: Merging subsequent merging 1 a b c 2 d e 3 g two a d h k g k 3 4 h c k block a.d f h b.e f may f e f 2 nodes b g 1 a.d b.e c 4 h of c g k Net f cannot be merged with either c or g. But, if we merged a with d, c with e then f can be merged with net b 3/14/2016 12 Processing Zone Processing Zone 1 a b c d e h d b f g k Bipartite graph a LEFT={a,b,c} b RIGHT={d,e} a e h g k c d f Delay merging!!(Both d and e do not terminate at zone 2 e c Cyclic conflict!! Processing Zone 2 a b c g d Modify a matching e b f c d Merge a&d, b&f, delay merging c&e LEFT={a.d, b.f,c,g} e f g 3/14/2016 RIGHT={h,k,e} Merge two nets when both of them terminate! 13 Simultaneous Merging Use the maximum cardinality matching in bipartite graph: 1 2 3 4 5 1 3 5 7 8 9 10 6 Left = {1, 3, 5} Right = {6} Find the maximum matching 6 in this bipartite graph such that the resultant VCG is still acyclic. 3/14/2016 14 Cyclic Conflicts Simultaneous merging can produce cyclic conflicts: Bipartite graph, G 2 3 1 4 VCG 2 3 1 3 1 4 2 4 2 3 1,3 Cyclic! 1 4 3/14/2016 2,4 15 Cyclic Conflicts Bipartite graph G(V,E) Algorithm AA A set of edges E’ Theorem: Any matching in G(V,E-E’) is feasible. 3/14/2016 16 An Example of Algorithm AA a b c d N = set of nodes that have in-degree 0 g h g a d b c i i Remove edges between vertices in N a b c d g h h g a i b c h i isolated 3/14/2016 17 An Example of Algorithm AA a b c N g h g a i i b c h a b c isolated g h a b c g h i i No isolated node. Then select among N the node with the smallest degree in the bipartite graph. Remove and put its edges to E’. g 3/14/2016 b c i h 18 An Example of Algorithm AA b c b c b c N g h g i b g h c h N isolated b c i h i i i h b c h isolated 3/14/2016 19 An Example of Algorithm AA b c h b c h N b c h At the end, all edges are removed, and E’ = {(a,h)} Since E’ , according to the corollary, any matching in the bipartite graph G(V, E-E’) is feasible. We will find a matching in G(V, E-E’) Why does it work? 3/14/2016 20 Comments Avoid unnecessary introduction of dogleg, use a process “merging of subnets” subnet i and subnet j can be merged merging subnet i and subnet j will not increase the longest path length passing through H Reduce CPU time by: # of edges/nodes in the bipartite graph is limited by a parameter(e.g. =3 in the program) Need not start at zone 1 In general, can obtain better results by starting at the max density zone Max density zone 3/14/2016 21 Routing Examples by Y-K’s Algorithm number of tracks=18 maximum density =18 Example 3c number of tracks=17 maximum density =17 Example 4b 3/14/2016 22 Routing Examples by Y-K’s Algorithm (Cont’d) number of tracks=20 maximum density =20 Example 5 Deutsch’s Difficult example without dogleg number of tracks=28 maximum density =19 3/14/2016 23 Deutsch’s Difficult Example # columns =174, # nets=72 density=19 Deutsch’s difficult example with doglegs number of tracks=20 maximum density=19 3/14/2016 24 Summary of Yoshimura and Kuh’s Algorithm Split multi-terminal nets into 2-terminal subnets Merging subnets to share tracks Consider both HCG and VCG Global matching and delayed merging help Shortcomings Cannot produce unrestricted doglegs VCG cannot have cycle 3/14/2016 25 Greedy Channel Router R.L. Rivest and C.M. Fiduccia “ A Greedy Channel Router”, 19th DAC, 1982 P418-424 A simple linear time algorithm Guarantee the completion of all the nets (may extend to right-hand side of the channel) Produce both restricted doglegs and unrestricted doglegs 3/14/2016 26 Overview of Greedy Router Left-to-right, Column-by-column scan c:=0; while (not done) do begin c:=c+1; complete wiring at column c; end; 1 3 1 2 1 5 In general, a net may be 1 3 (1) empty (net 5) (2) unsplit (nets 1,4) 4 3 (3) split (net 3) (4) completed (net2) 2 3/14/2016 1 2 3 4 5 4 4 27 Operations at Each Column At each column, the greedy router tries to maximize the utility of the wiring produced: A: Make minimal feasible top/bottom connections; B: Collapse split nets; C: Move split nets closer to one another; D: Raise rising nets/lower falling nets; E: Widen channel when necessary; F: Extend to next column; 1 3 1 2 1 2 2 3 1 4 3/14/2016 5 5 4 4 28 (A) Make Minimal Feasible Top/Bottom Connections 1 2 3 4 1 1 2 3 1 2 3 4 4 1 2 1 B B* 1 0 0 1 2 3 4 2 C 2 3 2 1 4 E 1 2 3 4 5 5 C* D D* 2 5 5 3 2 1 4 3 0 A* 2 3 2 2 3 1 0 4 A 1 1 2 3 4 1 2 3 4 3 5 5 E* F F* 3/14/2016 29 ( B ) Collapse Split Nets 2 2 1 3 1 3 2 2 0 0 1 3 4 1 4 0 G 0 H 1 H* 0 2 1 2 3 4 3 2 1 2 3 4 3 1 3 4 1 4 0 G* 1 0 1 1 2 1 2 2 1 2 0 0 0 I I* J 3/14/2016 0 0 J* 30 ( C ) Move Split Nets Closer 0 0 1 2 1 1 2 1 2 2 0 0 k k* 3/14/2016 31 ( D ) Rising/Falling 1 1 falling rising falling 3 4 falling rising falling 3 4 0 0 L L* 3/14/2016 32 ( E ) Insert New Track 0 0 1 5 1 1 5 1 6 6 7 7 M M* 3/14/2016 33 ( F ) Extend to Next Column 0 1 5 1 6 7 7 N 3/14/2016 34 Comments on Greedy Router (Rivest&Fiduccia 1982) Always succeed (even if cyclic conflict is present); Allows unrestricted dogleg; Allows a net to occupy more than 1 track at a given column; May use a few columns off the edge; 1 3 1 2 1 5 Unrestricted dogleg 2 1 3 3 4 5 4 Net 1 occupies two tracks at this column; it also “ wraps-around 3/14/2016 4 A column off the edge 35 Parameters to Greedy Router Initial-channel-width icw Minimum-jog-length mjl Steady-net-constant snc Usually start icw as d. the density Mjl controls the number of vias, use a large mjl for fewer vias Snc also controls # of vias, typical value=10 3/14/2016 36 Experimental Results Runs very fast 20-track solution to the Deutsch’s Difficult Example 3/14/2016 37