Presentation on theme: "VLSI Physical Design Automation"— Presentation transcript:
1 VLSI Physical Design Automation Lecture 18. Global Routing (II)Prof. David PanOffice: ACES 5.434
2 Global Routing Approaches Sequential Approach (Rip-up and Re-route)Maze RoutingLine probingShortest Path Based AlgorithmsSteiner Tree Based AlgorithmsConcurrent ApproachInteger Programming
3 Sequential Approach Algorithm: 1. Graph modeling of the routing regions2. For each net k:2.1 Find a route r for net k on the graph.2.2 For each edge e in r:2.2.1 capacity(e) = capacity(e) - 12.2.2 if capacity(e) < 0 then cost(e) = cost(e)We can use differentmethods to do this.
8 Line Probing slist tlist Keep two lists of line segments, slist and tlist, for the source and the target respectively.If a line segment from slist intersects with one from tlist, a route is found; else, new line segments are generated from the escape points.SIntersectionTslisttlist
9 Line ProbingWe can use all the grid vertices on the line segments as escape points:Always find a path but may not be optimal.11Escape pointIteration numberST
14 BFS based Maze Routing (A*) Need to search whole space?Guide the search to the goal explicitlyA* search is faster if you need “good path”, not “perfect path”Use priority queueC(n) = F(n)+H(n)F(n) is a computed cost from source to current location.H(n) is a predicted cost from current location to target.If H(n)=0, it becomes maze routing!Optimal (shortest path) when H(n) <= H’(n) (no overestimation)H’(n) is the exact costH(n)=0 never overestimates!
17 Shortest Path Based Algorithms For 2-terminal nets only.Use Dijkstra’s algorithm to find the shortest path between the source s and the sink t of a net.Different from Maze Routing:The graph need not be a rectangular grid.The edges need not be of unit length.
18 Dijkstra’s Shortest Path Algorithm Label of vertices = Shortest distance from S.Let P be the set of permanently labeled vertices.Initially,P = Empty Set.Label of S = 0, Label of all other vertices = infinity.While (T is not in P) doPick the vertex v with the min. label among all vertices not in P.Add v to P.Update the label for all neighbours of v.
19 Dijkstra’s Algorithm: Example P (Permanently Labeled)Min. Label VertexBTBTBT11188108814101010239239239464646S7S7S7555885857222ACACACBTBTBT1118989813101010239239239464646S7S7S7555575757222ACACAC
20 Steiner Tree Based Algorithms For multi-terminal nets.Find Steiner tree instead of shortest path.Construct a Steiner tree from the minimum spanning trees (MST)
21 [courtesy of Prof. Chris Chu, Iowa State Univ.] FLUTE OverviewSolve Rectilinear Steiner minimal tree (RSMT) problem:Given pin positions, find a rectilinear Steiner tree with minimum WLBasic idea:LUT to handle small netsNet breaking technique to recursively break large netsHandling of small nets (with a few pins) is extremely well:Optimal and extremely efficient for nets up to 7 pinsSo FLUTE is especially suitable for VLSI applications:Over all 1.57 million nets in 18 IBM circuits [ISPD 98]Average error is 0.72%Runtime faster than minimum spanning tree algorithmOpen source available[courtesy of Prof. Chris Chu, Iowa State Univ.]
22 Preliminary A net is a set of n pins Degree of a net is the number of pins in itConsider routing along Hanan gridDefine edge lengths hi and vi:
23 Wirelength Vector (WV) Observation: WL can be written as a linear combination of edge lengths with positive integral coefficients(1, 2, 1, 1, 1, 2)(1, 1, 1, 1, 2, 3)(1, 2, 1, 1, 1, 1)WL can be expressed as a vector of the coefficientsCalled Wirelength Vector
24 Potentially Optimal WV (POWV) To find optimal wirelength, can enumerate all WVsHowever, most WVs can never produce optimal WL(1, 2, 1, 1, 1, 2) is redundant as it always produces a larger WL than (1, 2, 1, 1, 1, 1)Potentially Optimal Wirelength Vector (POWV) is a WV that may produce the optimal wirelength(1, 2, 1, 1, 1, 2)(1, 2, 1, 1, 1, 1)
25 # of POWVs is Very Small For any net, # of possible routing solutions is huge# of WVs is much less# of POWVs is very smallFor example, only 2 POWVs for the net below:POWV(1,2,1,1,1,1)POWV(1,1,1,1,2,1)
26 Sharing of POWVs Among Nets To find optimal WL, we can pre-compute all POWVs and store them in a lookup tableHowever, there are infinite number of different netsWe try to group together nets that can share the same set of POWVsFor example, these two nets share the same set of POWVs:
27 Grouping by Vertical Sequence Define vertical sequence s1s2…sn to be the list of pin indexes sorted in y-coordinateLemma: The set of all degree-n nets can be divided into n! groups according to the vertical sequence such that all nets in each group share the same set of POWVsVertical sequence= 3142
28 Steps in FLUTE WL Estimation 1. Input a net2. Find hi’s and vi’s3. Find vertical sequence224314261233254. Get POWVs from LUT5. Find WL for each POWVand return the best(1,2,1,1,1,1)(1,1,1,1,2,1)HPWL + h2 = 22 returnHPWL + v2 = 26Remark:One RSMT topology can also be pre-computed and stored for each POWVImpractical for high-degree nets (degree >= 9)Other technique to break down high-degree nets
29 Net Ordering In sequential approach, we need some net ordering. A bad net ordering will increase the total wire length, and may even prevent com-pletion of routing for some circuits which are indeed routable.ABABBBAB first(Good order)A first(Bad order)A
30 Criteria for Net Ordering Criticality of net - critical nets first.Estimated wire length - short nets first since they are less flexible.Consider bounding rectangles (BR):ABWhich one should be routed firstand why? (Note that this rule ofthumb is not always applicable.)BAB is in A’s BR
32 Rip-Up and Re-route It is impossible to get the optimal net ordering. If some nets are failed to be routed, the rip-up and re-route technique can be applied:So rip-up Band route C first.Cannot route CFinally route B.AAAAAABBBBBBCCCCCC
33 Concurrent Approach Consider all the nets simultaneously. Formulate as an integer program.Given:Lij = Total wire length of TijCe = Capacity of edge eDetermine variable xij s.t. xij = 1 if Tij is usedxij = 0 otherwise.Tn1, Tn2, ... , Tnknnet n:T11, T12, , T1k1net 1Set of possible routing treesNets
35 Concurrent Approach: Example bPossible trees:111,21,323net 1:233ad3122net 2:2,31,2233cCa= Cb= Cc= Cd= 2net 3:22123SolutionWhat are the constraintsfor edge capacity?
36 Integer Programming Approach Standard techniques to solve IP.No net ordering. Give global optimum.Can be extremely slow, especially for large problems.To make it faster, a fewer choices of routing trees for each net can be used. May make the problem infeasible or give a bad solution.Determining a good set of choices of routing trees is a hard problem by itself.
37 Hierarchical Approach to Speed Up Integer Programming Formulation For Global Routing M. Burstein and R. Pelavin,“Hierarchical Wire Routing”,IEEE TCAD, vol. CAD-2,pages , Oct
38 Hierarchical Approach Large Integer Programs are difficult to solve.Hierarchical Approach reduces global routing to routing problems on a 2x2 grid.Decompose recursively in a top-down fashion.Those 2x2 routing problems can be solved optimally by integer programming formulation.
39 Hierachical Approach: Example Solving a 2xn routing problem hierarchically.Level 1Level 2Level 3Solution:
41 Objective Function of 2x2 Routing Possible Routing Trees:T11, T12, T21, T22,....., T11,1,..., T11,4# of nets of each type: n1, ..., n11Determine xij: # of type-i nets using Tij for routing.yi: # of type-i nets that fails to route.
42 Constraints of 2x2 Routing Constraints on Edge Capacity:CbBabBbcbCaacCcdBdaBcdCdConstraints on # of Bends in a Region:
43 Pop QuizIf you two nets, one with 2 pins, the other with 4 pins with a zero capacity edgeWhat is going to be the result?C=1C=0Type 1Type 11
44 ILP Formulation of 2x2 Routing Only 39 variables (28 xij and 11 yi) and19 constraints (plus 38 non-negative constrains).Problems of this size are usually not too difficult to solve.