440 likes | 621 Views
VLSI Physical Design Automation. Lecture 18. Global Routing (II). Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434. Global Routing Approaches. Sequential Approach (Rip-up and Re-route) Maze Routing Line probing Shortest Path Based Algorithms Steiner Tree Based Algorithms
E N D
VLSI Physical Design Automation Lecture 18. Global Routing (II) Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434
Global Routing Approaches • Sequential Approach (Rip-up and Re-route) • Maze Routing • Line probing • Shortest Path Based Algorithms • Steiner Tree Based Algorithms • Concurrent Approach • Integer Programming
Sequential Approach • Algorithm: • 1. Graph modeling of the routing regions • 2. 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) - 1 • 2.2.2 if capacity(e) < 0 then cost(e) = cost(e) We can use different methods to do this.
Intersection Line Probing • 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. S T slist tlist
0 1 1 1 Escape point 1 0 Iteration number 1 1 0 1 1 1 1 1 1 0 1 Line Probing • We can use all the grid vertices on the line segments as escape points: • Always find a path but may not be optimal. S T
0 1 0 Iteration number 0 Escape point 1 1 0 Line Probing • We can pick just one escape point from each line segment. • May fail to find a path even if one exists. S T
BFS based Maze Routing (A*) • Need to search whole space? • Guide the search to the goal explicitly • A* search is faster if you need “good path”, not “perfect path” • Use priority queue • C(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 cost • H(n)=0 never overestimates!
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.
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) do • Pick 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.
Dijkstra’s Algorithm: Example P (Permanently Labeled) Min. Label Vertex B B B T T T 1 1 1 8 8 8 10 8 14 10 10 10 9 9 9 2 3 2 3 2 3 0 0 0 4 6 4 6 4 6 7 7 7 S S S 5 5 5 8 8 8 5 5 7 2 2 2 C C C A A A B B B T T T 1 1 1 8 9 8 9 8 13 10 10 10 9 9 9 2 3 2 3 2 3 0 0 0 4 6 4 6 4 6 7 7 7 S S S 5 5 5 5 7 5 7 5 7 2 2 2 C C C A A A
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)
FLUTE Overview • Solve Rectilinear Steiner minimal tree (RSMT) problem: • Given pin positions, find a rectilinear Steiner tree with minimum WL • Basic idea: • LUT to handle small nets • Net breaking technique to recursively break large nets • Handling of small nets (with a few pins) is extremely well: • Optimal and extremely efficient for nets up to 7 pins • So 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 algorithm • Open source available http://home.eng.iastate.edu/~cnchu/flute.htm [courtesy of Prof. Chris Chu, Iowa State Univ.]
Preliminary • A net is a set of n pins • Degree of a net is the number of pins in it • Consider routing along Hanan grid • Define edge lengthshiand vi:
Wirelength Vector (WV) • Observation: WL can be written as a linear combination of edge lengths with positive integral coefficients • WL can be expressed as a vector of the coefficients • Called Wirelength Vector (1, 2, 1, 1, 1, 2) (1, 1, 1, 1, 2, 3) (1, 2, 1, 1, 1, 1)
Potentially Optimal WV (POWV) • To find optimal wirelength, can enumerate all WVs • However, 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)
# of POWVs is Very Small • For any net, • # of possible routing solutions is huge • # of WVs is much less • # of POWVs is very small • For example, only 2 POWVs for the net below: POWV (1,2,1,1,1,1) POWV (1,1,1,1,2,1)
Sharing of POWVs Among Nets • To find optimal WL, we can pre-compute all POWVs and store them in a lookup table • However, there are infinite number of different nets • We try to group together nets that can share the same set of POWVs • For example, these two nets share the same set of POWVs:
Grouping by Vertical Sequence • Define vertical sequence s1s2…sn to be the list of pin indexes sorted in y-coordinate • Lemma: 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 POWVs Vertical sequence = 3142
1. Input a net Steps in FLUTE WL Estimation 2. Find hi’s and vi’s 3. Find vertical sequence 2 2 4 3142 6 1 2 3 3 2 5 4. Get POWVs from LUT 5. Find WL for each POWV and return the best (1,2,1,1,1,1) HPWL + h2 = 22 return HPWL + v2 = 26 (1,1,1,1,2,1) • Remark: • One RSMT topology can also be pre-computed and stored for each POWV • Impractical for high-degree nets (degree >= 9) • Other technique to break down high-degree nets
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. A B A B B B A B first (Good order) A first (Bad order) A
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): A B Which one should be routed first and why? (Note that this rule of thumb is not always applicable.) B A B is in A’s BR
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 B and route C first. Cannot route C Finally route B. A A A A A A B B B B B B C C C C C C
Nets Set of possible routing trees net 1 T11, T12, ...... , T1k1 : : : : net n Tn1, Tn2, ... , Tnkn Concurrent Approach • Consider all the nets simultaneously. • Formulate as an integer program. • Given: Lij = Total wire length of Tij Ce= Capacity of edge e • Determine variable xij s.t. xij = 1 if Tij is used xij = 0 otherwise.
Solution 1 1 2 3 What are the constraints for edge capacity? 3 1 2 2 Concurrent Approach: Example b Possible trees: 1 1,2 1,3 1 2 net 1: 3 2 3 3 a d 3 1 2 2 net 2: 2 3 3 2,3 1,2 c Ca= Cb= Cc= Cd= 2 net 3: 2 2
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.
Hierarchical Approach to Speed Up Integer Programming FormulationFor Global Routing M. Burstein and R. Pelavin, “Hierarchical Wire Routing”, IEEE TCAD, vol. CAD-2, pages 223-234, Oct. 1983.
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.
Hierachical Approach: Example • Solving a 2xn routing problem hierarchically. Level 1 Level 2 Level 3 Solution:
Types of 2x2 Routing Problems Type 1 Type 7 Type 2 Type 8 Type 3 Type 9 Type 4 Type 10 Type 5 Type 11 Type 6
Objective Function of 2x2 Routing Possible Routing Trees: T11, T12, T21, T22,....., T11,1,..., T11,4 # of nets of each type: n1, ..., n11 Determine xij: # of type-i nets using Tij for routing. yi: # of type-i nets that fails to route.
Constraints of 2x2 Routing Constraints on Edge Capacity: Cb Bab Bbc b a c Ca Cc d Bda Bcd Cd Constraints on # of Bends in a Region:
Pop Quiz • If you two nets, one with 2 pins, the other with 4 pins with a zero capacity edge • What is going to be the result? C=1 C=0 Type 1 Type 11
ILP Formulation of 2x2 Routing • Only 39 variables (28 xij and 11 yi) and 19 constraints (plus 38 non-negative constrains). • Problems of this size are usually not too difficult to solve.