Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

Slides:



Advertisements
Similar presentations
A Theoretical Study on Wire Length Estimation Algorithms for Placement with Opaque Blocks Tan Yan*, Shuting Li Yasuhiro Takashima, Hiroshi Murata The University.
Advertisements

ITS THE FINAL LECTURE! (SING IT, YOU KNOW YOU WANT TO) Operations Research.
§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.
DIJKSTRA’s Algorithm. Definition fwd search Find the shortest paths from a given SOURCE node to ALL other nodes, by developing the paths in order of increasing.
Wen-Hao Liu1, Yih-Lang Li, and Cheng-Kok Koh Department of Computer Science, National Chiao-Tung University School of Electrical and Computer Engineering,
Ch.7 Layout Design Standard Cell Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
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.
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.
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.
Provably Good Global Buffering Using an Available Buffer Block Plan F. F. Dragan (Kent) A. B. Kahng (UCLA) I. Mandoiu (Gatech) S. Muddu (Silicon graphics)
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.
ECE Routing 1 ECE 665 Spring 2004 ECE 665 Spring 2004 Computer Algorithms with Applications to VLSI CAD Channel Routing Global Routing.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig © 2011 Springer Verlag 1 Chapter 5 – Global Routing.
VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 18. Global Routing (II)
CSE 144 Project Part 2. Overview Multiple rows Routing channel between rows Components of identical height but various width Goal: Implement a placement.
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
Chapter 5 – Global Routing
1 ENTITY test is port a: in bit; end ENTITY test; DRC LVS ERC Circuit Design Functional Design and Logic Design Physical Design Physical Verification and.
General Routing Overview and Channel Routing
ECE 506 Reconfigurable Computing Lecture 7 FPGA Placement.
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.
MGR: Multi-Level Global Router Yue Xu and Chris Chu Department of Electrical and Computer Engineering Iowa State University ICCAD
9/4/ VLSI Physical Design Automation Prof. David Pan Office: ACES Detailed Routing (I)
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 7 Global Routing Mustafa Ozdal Computer Engineering Department, Bilkent University.
Escape Routing For Dense Pin Clusters In Integrated Circuits Mustafa Ozdal, Design Automation Conference, 2007 Mustafa Ozdal, IEEE Trans. on CAD, 2009.
Using Dijkstra’s Algorithm to Find a Shortest Path from a to z 1.
Dijkstra’s Algorithm. 2 Shortest-path Suppose we want to find the shortest path from node X to node Y It turns out that, in order to do this, we need.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
Global Routing.
1 Coupling Aware Timing Optimization and Antenna Avoidance in Layer Assignment Di Wu, Jiang Hu and Rabi Mahapatra Texas A&M University.
1 Global Routing Method for 2-Layer Ball Grid Array Packages Yukiko Kubo*, Atsushi Takahashi** * The University of Kitakyushu ** Tokyo Institute of Technology.
New Modeling Techniques for the Global Routing Problem Anthony Vannelli Department of Electrical and Computer Engineering University of Waterloo Waterloo,
Shortest Path Problem Weight of the graph –Nonnegative real number assigned to the edges connecting to vertices Weighted graphs –When a graph.
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
Modern VLSI Design 2e: Chapter 7 Copyright  1998 Prentice Hall PTR Topics n Block placement. n Global routing. n Switchbox routing.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
GLOBAL ROUTING Anita Antony PR11EC1011. Approaches for Global Routing Sequential Approach: – Route the nets one at a time. Concurrent Approach: – Consider.
1 A Min-Cost Flow Based Detailed Router for FPGAs Seokjin Lee *, Yongseok Cheon *, D. F. Wong + * The University of Texas at Austin + University of Illinois.
Detailed Routing مرتضي صاحب الزماني.
L3-Network Algorithms L3 – Network Algorithms NGEN06(TEK230) – Algorithms in Geographical Information Systems by: Irene Rangel, updated Nov by Abdulghani.
Graphs. Introduction Graphs are a collection of vertices and edges Graphs are a collection of vertices and edges The solid circles are the vertices A,
Prof. Shiyan Hu Office: EERC 518
E E Module 5 © Wayne D. Grover 2002, (for non-negative edge weights only) Key concepts: “labelling”, “scanning” Label = {distance, predecessor}.
Decision Maths 1 Shortest path algorithm Dijkstra’s Algorithm A V Ali :
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 7 Global Routing Mustafa Ozdal Computer Engineering Department, Bilkent University.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
مرتضي صاحب الزماني 1 Maze Routing. Homework 4 مهلت تحویل : 23 اردیبهشت پروژه 1 : انتخاب طرح : امروز مرتضي صاحب الزماني 2.
Spanning Trees Dijkstra (Unit 10) SOL: DM.2 Classwork worksheet Homework (day 70) Worksheet Quiz next block.
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.
VLSI Physical Design Automation
VLSI Physical Design Automation
Min-Cut Placement.
VLSI Physical Design Automation
Dijkstra’s shortest path Algorithm
Algorithms for Exploration
Chapter 5 – Global Routing
A* Path Finding Ref: A-star tutorial.
CSE 373: Data Structures and Algorithms
Chapter 15 Graphs © 2006 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.
Routing Algorithms.
Detailed Routing مرتضي صاحب الزماني.
Weighted Graphs & Shortest Paths
VLSI Physical Design Automation
ICS 252 Introduction to Computer Design
Presentation transcript:

Global Routing

Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2

Channel connectivity graph Switchbox connectivity graph Global Routing in a Connectivity Graph

4 Channel connectivity graph Switchbox connectivity graph

5  Combines switchboxes and channels, handles non- rectangular block shapes  Suitable for full-custom design and multi-chip modules Overview: Routing regions B A B A Global Routing in a Connectivity Graph Graph-based path search 2,2 4,2 1,2 2,7 4,2 0,11,2 3,1 2,2 4,2 0,4 Graph representation ,2 4,2 1,2 2,7 4,2 1, ,2 7 2,2 4, ,2 1,5 1112

6 Algorithm Overview 1.Define routing regions 2.Define connectivity graph 3.Determine net ordering 4.Assign tracks for all pin connections in Netlist 5.Consider each net a)Free corresponding tracks for net’s pins b)Decompose net into two-pin subnets c)Find shortest path for subnet connectivity graph d)Assign subnet to the nodes of shortest path and update routing capacities 6.If there are unrouted nets, goto Step 5, otherwise END Global Routing in a Connectivity Graph

7 Horizontal macro-cell edgesVertical macro-cell edges Defining the routing regions Global Routing in a Connectivity Graph +

Defining the connectivity graph Global Routing in a Connectivity Graph

,21,2 Horizontal capacity of routing region 1 Vertical capacity of routing region 1 2 Tracks 1 Track 1 Defining Capacities

,2 2,2 3,2 1,2 2,1 3,1 1,3 2,3 1,1 2,1 3,1 1,1 2,1 4,1 3,1 1,1 6,1 3,1 1,1 1,4 3,4 1,8 1 Defining Capacities

11 Net Ordering Determine net ordering  A bad net ordering −  may increase total wire length, −  may even prevent completion of the routing (for some circuits which are indeed routable.). A A B B B First (Good Order) A A B B A First (Bad Order)

12 Criteria for Net Ordering  Criticality of net: −Critical nets first  Number of terminals: −Simple nets first, since they are less flexible  Estimated wire length: −Short nets first, since they are less flexible −Long nets first, since they may generate critical paths  Consider bounding rectangles: A A B B B terminal is inside A’s BR. A A B B So B First. A A B B If A First: But not always applicable!

Track Assignment for Pins Assign tracks for all pin connections in Netlist Connections.  For each pin, a horizontal track and a vertical track are reserved within pin’s routing region.  Ensures that pin can be connected  Major advantages: −If the pins are not accessible, then the placement of cells must be adjusted −Prevents nets that are routed first from blocking pin connections that are used later. 13

14 l B A B A w ,2 4,2 1,2 2,7 4,2 1, ,2 7 2,2 4, ,2 1, Example Global routing of the nets A-A and B-B

15 l B A B A w ,2 4,2 1,2 2,7 4,2 1, ,2 7 2,2 4, ,2 1, B A B A 0,1 3,1 0, ,2 4,2 1,2 2,7 4,2 1, ,2 4, , Example Global routing of the nets A-A and B-B

16 l B A B A w ,2 4,2 1,2 2,7 4,2 1, ,2 7 2,2 4, ,2 1, B A B A B A B A ,2 4,2 1,2 2,7 4,2 0,11, ,1 7 2,2 4, ,2 0, ,20,1 56 4,2 0,4 23 1,1 3,1 1,7 4,1 1,1 8 2,1 7 1,1 3, Example Global routing of the nets A-A and B-B

17 l B A B A w B A B A Example Global routing of the nets A-A and B-B

,13,43,3 1,41,11,41,3 3,43,13, B A B A Example Determine routability of a placement B A B A ? 123 3,13,43,3 0,30,10,40,2 3,43,12, B A B A ,13,43,3 0,30,10,40,2 3,43,12,

,13,43,3 1,41,11,41,3 3,43,13, B A B A B A B A B A B A ,13,43,3 0,30,10,40,2 3,43,12, ,02,33,3 0,20,00,30,2 2,32,02, Example Determine routability of a placement

20 Dijkstra Algorithm Initialize D Find min distance from u to each node (so far) Find shortest path by backtracing

21 Dijkstra’s Algorithm for horizontal/vertical weights Three groups of nodes:  Group 1 – nodes that have not yet been visited  Group 2 – nodes that have been visited but for which the shortest-path cost from s has not yet been found  Group 3 – nodes that have been visited and for which the shortest path cost from s has been found Once t is in Group 3, the algorithm finds the shortest path by backtracing Dijkstra’s Shortest Path Algorithm

s t 1,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Find the shortest path from source s to target t where the path cost ∑w 1 + ∑w 2 is minimal Dijkstra’s Algorithm Example Note: weights on edges: cost -e.g., w1 = length, w2 = congestion/crosstalk/ …

s t 1,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 (1)(1) Current node: 1

24 [1][1] N [2] 8,6 W [4] 1,4 parent of node [node name] ∑w 1 (s,node),∑w 2 (s,node) Group 2Group ,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Current node: 1 Neighboring nodes: 2, 4 Minimum cost in group 2: node 4 s t

,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 [1][1] N [2] 8,6 W [4] 1,4 N [5] 10,11 W [7] 9,12 N [2] 8,6 Current node: 4 Neighboring nodes: 1, 5, 7 Minimum cost in group 2: node 2 s t parent of node [node name] ∑w 1 (s,node),∑w 2 (s,node)

,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 [1][1] N [2] 8,6 W [4] 1,4 N [5] 10,11 W [7] 9,12 N [2] 8,6 N [3] 9,10 W [5] 10,12 N [3] 9,10 Current node: 2 Neighboring nodes: 1, 3, 5 Minimum cost in group 2: node 3 s t parent of node [node name] ∑w 1 (s,node),∑w 2 (s,node)

,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 [1][1] N [2] 8,6 W [4] 1,4 N [5] 10,11 W [7] 9,12 N [2] 8,6 N [3] 9,10 W [5] 10,12 N [3] 9,10 W [6] 18,18 N [5] 10,11 Current node: 3 Neighboring nodes: 2, 6 Minimum cost in group 2: node 5 s t parent of node [node name] ∑w 1 (s,node),∑w 2 (s,node)

,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 [1][1] N [2] 8,6 W [4] 1,4 N [5] 10,11 W [7] 9,12 N [2] 8,6 N [3] 9,10 W [5] 10,12 N [3] 9,10 W [6] 18,18 N [5] 10,11 N [6] 12,19 W [8] 12,19 W [7] 9,12 Current node: 5 Neighboring nodes: 2, 4, 6, 8 Minimum cost in group 2: node 7 s t parent of node [node name] ∑w 1 (s,node),∑w 2 (s,node)

,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 (1)(1) N (2) 8,6 W (4) 1,4 N (5) 10,11 W (7) 9,12 N (2) 8,6 N (3) 9,10 W (5) 10,12 N (3) 9,10 W (6) 18,18 N (5) 10,11 N (6) 12,19 W (8) 12,19 W (7) 9,12 N (8) 12,14 Current node: 7 Neighboring nodes: 4, 8 Minimum cost in group 2: node 8 s t parent of node [node name] ∑w 1 (s,node),∑w 2 (s,node)

,48,8 2,62,8 9,83,3 8,69,73,2 1,42,84,5 Group 2Group 3 (1)(1) N (2) 8,6 W (4) 1,4 N (5) 10,11 W (7) 9,12 N (2) 8,6 N (3) 9,10 W (5) 10,12 N (3) 9,10 W (6) 18,18 N (5) 10,11 N (6) 12,19 () W (8) 12,19 W (7) 9,12 () N (8) 12,14 N (8) 12,14 Retrace from t to s s t 4

,49,12 12,14 Optimal path from s to t with accumulated cost (12,14) s t