2015-07-03 1 VLSI Physical Design Automation Prof. David Pan Office: ACES 5.434 Lecture 18. Global Routing (II)

Slides:



Advertisements
Similar presentations
The Primal-Dual Method: Steiner Forest TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A AA A A A AA A A.
Advertisements

Problem solving with graph search
Incremental Linear Programming Linear programming involves finding a solution to the constraints, one that maximizes the given linear function of variables.
ECE 667 Synthesis and Verification of Digital Circuits
§3 Shortest Path Algorithms Given a digraph G = ( V, E ), and a cost function c( e ) for e  E( G ). The length of a path P from source to destination.
Greed is good. (Some of the time)
F.F. Dragan (Kent State) A.B. Kahng (UCSD) I. Mandoiu (UCLA) S. Muddu (Sanera Systems) A. Zelikovsky (Georgia State) Provably Good Global Buffering by.
5-1 Chapter 5 Tree Searching Strategies. 5-2 Satisfiability problem Tree representation of 8 assignments. If there are n variables x 1, x 2, …,x n, then.
5/14/ Routing Prof. Shiyan Hu Office: EERC 731.
Coupling-Aware Length-Ratio- Matching Routing for Capacitor Arrays in Analog Integrated Circuits Kuan-Hsien Ho, Hung-Chih Ou, Yao-Wen Chang and Hui-Fang.
Chapter 3 The Greedy Method 3.
Applied Discrete Mathematics Week 12: Trees
Review: Search problem formulation
ICS 252 Introduction to Computer Design Routing Fall 2007 Eli Bozorgzadeh Computer Science Department-UCI.
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
CSE 421 Algorithms Richard Anderson Dijkstra’s algorithm.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
CS 206 Introduction to Computer Science II 11 / 12 / 2008 Instructor: Michael Eckmann.
VLSI Routing. Routing Problem  Given a placement, and a fixed number of metal layers, find a valid pattern of horizontal and vertical wires that connect.
Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand.
Global Routing Prof. Shiyan Hu Office: EERC 731.
Routing algorithms, all distinct routes, ksp, max-flow, and network flow LPs W. D. Grover TRLabs & University of Alberta © Wayne D. Grover 2002, 2003 E.
More Graph Algorithms Weiss ch Exercise: MST idea from yesterday Alternative minimum spanning tree algorithm idea Idea: Look at smallest edge not.
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
CDCTree: Novel Obstacle-Avoiding Routing Tree Construction based on Current Driven Circuit Model Speaker: Lei He.
Chip Planning 1. Introduction Chip Planning:  Deals with large modules with −known areas −fixed/changeable shapes −(possibly fixed locations for some.
CSE 242A Integrated Circuit Layout Automation Lecture: Global Routing Winter 2009 Chung-Kuan Cheng.
WISCAD – VLSI Design Automation GRIP: Scalable 3-D Global Routing using Integer Programming Tai-Hsuan Wu, Azadeh Davoodi Department of Electrical and Computer.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig 1 FLUTE: Fast Lookup Table Based RSMT Algorithm.
Chih-Hung Lin, Kai-Cheng Wei VLSI CAD 2008
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
Graphs – Shortest Path (Weighted Graph) ORD DFW SFO LAX
9/4/ VLSI Physical Design Automation Prof. David Pan Office: ACES Detailed Routing (I)
Global Routing. 2 B (2, 6) A (2, 1) C (6, 4) B (2, 6) A (2, 1) C (6, 4) S (2, 4) Rectilinear Steiner minimum tree (RSMT) Rectilinear minimum spanning.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms: Minimum.
Escape Routing For Dense Pin Clusters In Integrated Circuits Mustafa Ozdal, Design Automation Conference, 2007 Mustafa Ozdal, IEEE Trans. on CAD, 2009.
1.3 Modeling with exponentially many constr.  Some strong formulations (or even formulation itself) may involve exponentially many constraints (cutting.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.
Global Routing. Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2.
Archer: A History-Driven Global Routing Algorithm Mustafa Ozdal Intel Corporation Martin D. F. Wong Univ. of Illinois at Urbana-Champaign Mustafa Ozdal.
New Modeling Techniques for the Global Routing Problem Anthony Vannelli Department of Electrical and Computer Engineering University of Waterloo Waterloo,
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
Maze Routing مرتضي صاحب الزماني.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing © KLMH Lienig 1 What Makes a Design Difficult to Route Charles.
ARCHER:A HISTORY-DRIVEN GLOBAL ROUTING ALGORITHM Muhammet Mustafa Ozdal, Martin D. F. Wong ICCAD ’ 07.
GLOBAL ROUTING Anita Antony PR11EC1011. Approaches for Global Routing Sequential Approach: – Route the nets one at a time. Concurrent Approach: – Consider.
Introduction to Algorithms Jiafen Liu Sept
Chris Chu Iowa State University Yiu-Chung Wong Rio Design Automation
Routing Tree Construction with Buffer Insertion under Obstacle Constraints Ying Rao, Tianxiang Yang Fall 2002.
SPANNING TREES Lecture 20 CS2110 – Fall Spanning Trees  Definitions  Minimum spanning trees  3 greedy algorithms (incl. Kruskal’s & Prim’s)
Prof. Shiyan Hu Office: EERC 518
Routing Topology Algorithms Mustafa Ozdal 1. Introduction How to connect nets with multiple terminals? Net topologies needed before point-to-point routing.
TU/e Algorithms (2IL15) – Lecture 12 1 Linear Programming.
Spanning Trees Dijkstra (Unit 10) SOL: DM.2 Classwork worksheet Homework (day 70) Worksheet Quiz next block.
6/19/ VLSI Physical Design Automation Prof. David Pan Office: ACES Placement (3)
Midwestern State University Minimum Spanning Trees Definition of MST Generic MST algorithm Kruskal's algorithm Prim's algorithm 1.
CSE 326: Data Structures Lecture #17 Heuristic Graph Search Henry Kautz Winter Quarter 2002.
CSE 373: Data Structures and Algorithms Lecture 21: Graphs V 1.
VLSI Physical Design Automation
VLSI Physical Design Automation
Chapter 7: Greedy Algorithms
1.3 Modeling with exponentially many constr.
2 University of California, Los Angeles
Chapter 6. Large Scale Optimization
1.3 Modeling with exponentially many constr.
ICS 252 Introduction to Computer Design
Chapter 6. Large Scale Optimization
FLUTE: Fast Lookup Table Based RSMT Algorithm for VLSI Design
Presentation transcript:

VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 18. Global Routing (II)

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: capacity(e) = capacity(e) if capacity(e) < 0 then cost(e) =   cost(e) We can use different methods to do this.

Maze Routing for Multi-Terminal Nets

Maze Routing on Weighted Graph

Example of Weighted Graph

Mikami & Tabuchi’s Algorithm

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 Intersection

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 Escape point Iteration number

Hightower’s Algorithm

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 Escape point Iteration number

Comparison of Algorithms

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!

Maze vs A* routing (I)

Maze vs A* routing (II)

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 S B T A C S B T A C S B T A C S B T A C S B T A C S B T A C P (Permanently Labeled) Min. Label Vertex

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 [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 lengths h i and v i :

Wirelength Vector (WV) 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) Observation: WL can be written as a linear combination of edge lengths with positive integral coefficients

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 s 1 s 2 …s n 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

Steps in FLUTE WL Estimation 1. Input a net 2. Find h i ’s and v i ’s Find vertical sequence Get POWVs from LUT (1,2,1,1,1,1) (1,1,1,1,2,1) 5. Find WL for each POWV and return the best HPWL + h 2 = 22  return HPWL + v 2 = 26 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 A B B B first (Good order) A A B B A first (Bad order)

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 A B B B is in A’s BR Which one should be routed first and why? (Note that this rule of thumb is not always applicable.)

Net Ordering (cont’d)

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: A B C A B C A B C A B C A B C A B C Cannot route C So rip-up B and route C first. Finally route B.

Concurrent Approach Consider all the nets simultaneously. Formulate as an integer program. Given: L ij = Total wire length of T ij C e = Capacity of edge e Determine variable x ij s.t. x ij = 1 if T ij is used x ij = 0 otherwise. T n1, T n2,..., T nk n net n :::: :::: T 11, T 12,......, T 1k 1 net 1 Set of possible routing treesNets

Integer Program Formulation

Concurrent Approach: Example1,2 2,3 1,3 1,2 C a = C b = C c = C d = 2 b a c d Possible trees: net 1: 233 net 2: 233 net 3: Solution What are the constraints for edge capacity?

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 Formulation For Global Routing M. Burstein and R. Pelavin, “Hierarchical Wire Routing”, IEEE TCAD, vol. CAD-2, pages , Oct

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 3 Type 4 Type 5 Type 6 Type 8 Type 9 Type 10 Type 11

Objective Function of 2x2 Routing Possible Routing Trees: T 11, T 12, T 21, T 22,....., T 11,1,..., T 11,4 # of nets of each type: n 1,..., n 11 Determine x ij : # of type-i nets using T ij for routing. y i : # of type-i nets that fails to route. y i : # of type-i nets that fails to route.

Constraints of 2x2 Routing CaCaCaCa CbCbCbCb CcCcCcCc CdCdCdCd B ab B bc B cd B da a b c d Constraints on Edge Capacity: 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? Type 1 Type 11 C=0C=1

ILP Formulation of 2x2 Routing Only 39 variables (28 x ij and 11 y i ) and 19 constraints (plus 38 non-negative constrains). Problems of this size are usually not too difficult to solve.