1 / 44

VLSI Physical Design Automation

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

albany
Télécharger la présentation

VLSI Physical Design Automation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VLSI Physical Design Automation Lecture 18. Global Routing (II) Prof. David Pan dpan@ece.utexas.edu Office: ACES 5.434

  2. 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

  3. 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.

  4. Maze Routing for Multi-Terminal Nets

  5. Maze Routing on Weighted Graph

  6. Example of Weighted Graph

  7. Mikami & Tabuchi’s Algorithm

  8. 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

  9. 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

  10. Hightower’s Algorithm

  11. 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

  12. Comparison of Algorithms

  13. 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!

  14. Maze vs A* routing (I)

  15. Maze vs A* routing (II)

  16. 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.

  17. 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.

  18. 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

  19. 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)

  20. 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.]

  21. 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:

  22. 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)

  23. 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)

  24. # 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)

  25. 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:

  26. 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

  27. 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

  28. 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

  29. 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

  30. Net Ordering (cont’d)

  31. 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

  32. 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.

  33. Integer Program Formulation

  34. 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

  35. 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.

  36. 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.

  37. 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.

  38. Hierachical Approach: Example • Solving a 2xn routing problem hierarchically. Level 1 Level 2 Level 3 Solution:

  39. 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

  40. 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.

  41. 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:

  42. 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

  43. 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.

More Related