Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand.

Slides:



Advertisements
Similar presentations
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
Advertisements

© DEEDS 2008Graph Algorithms1 Remarks on Dijkstra  Determining the minimum marginal element (code line: v = the vertex in M 2 with minimum v.L; ) accounts.
1 Theory I Algorithm Design and Analysis (10 - Shortest paths in graphs) T. Lauer.
Wen-Hao Liu1, Yih-Lang Li, and Cheng-Kok Koh Department of Computer Science, National Chiao-Tung University School of Electrical and Computer Engineering,
CS171 Introduction to Computer Science II Graphs Strike Back.
Sequential Timing Optimization. Long path timing constraints Data must not reach destination FF too late s i + d(i,j) + T setup  s j + P s i s j d(i,j)
The Shortest Path Problem. Shortest-Path Algorithms Find the “shortest” path from point A to point B “Shortest” in time, distance, cost, … Numerous.
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.
1 Internet Networking Spring 2006 Tutorial 6 Network Cost of Minimum Spanning Tree.
ER UCLA UCLA ICCAD: November 5, 2000 Predictable Routing Ryan Kastner, Elaheh Borzorgzadeh, and Majid Sarrafzadeh ER Group Dept. of Computer Science UCLA.
Chapter 9: Greedy Algorithms The Design and Analysis of Algorithms.
Placement 1 Outline Goal What is Placement? Why Placement?
Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the path begins is the source vertex.
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.
Physical Design Outline –What is Physical Design –Design Methods –Design Styles –Analysis and Verification Goal –Understand physical design topics.
Graph Algorithms: Shortest Path We are given a weighted, directed graph G = (V, E), with weight function w: E R mapping.
CS541 Advanced Networking 1 Routing and Shortest Path Algorithms Neil Tang 2/18/2009.
1 Internet Networking Spring 2004 Tutorial 6 Network Cost of Minimum Spanning Tree.
Dijkstra’s Shortest Paths CS 312 Lecture 4. Announcements Project 1 comes out Friday –Min spanning trees and scheduling –due 2 weeks from Friday (1 week.
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.
General Routing Overview and Channel Routing
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.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms: Minimum.
Graphs CS 400/600 – Data Structures. Graphs2 Graphs  Used to represent all kinds of problems Networks and routing State diagrams Flow and capacity.
1 GRAPHS - ADVANCED APPLICATIONS Minimim Spanning Trees Shortest Path Transitive Closure.
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.
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
Algorithms: Design and Analysis Summer School 2013 at VIASM: Random Structures and Algorithms Lecture 3: Greedy algorithms Phan Th ị Hà D ươ ng 1.
Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.
Global Routing.
SPANNING TREES Lecture 21 CS2110 – Spring
1 Coupling Aware Timing Optimization and Antenna Avoidance in Layer Assignment Di Wu, Jiang Hu and Rabi Mahapatra Texas A&M University.
COSC 2007 Data Structures II Chapter 14 Graphs III.
Shortest Path Problem Weight of the graph –Nonnegative real number assigned to the edges connecting to vertices Weighted graphs –When a graph.
Algorithm Course Dr. Aref Rashad February Algorithms Course..... Dr. Aref Rashad Part: 6 Shortest Path Algorithms.
Module 5 – Networks and Decision Mathematics Chapter 23 – Undirected Graphs.
Network and Communications Ju Wang Chapter 5 Routing Algorithm Adopted from Choi’s notes Virginia Commonwealth University.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
Modern VLSI Design 2e: Chapter 7 Copyright  1998 Prentice Hall PTR Topics n Block placement. n Global routing. n Switchbox routing.
1 Week 5 Lecture 2 IP Layer. 2 Network layer functions transport packet from sending to receiving hosts transport packet from sending to receiving hosts.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 13: February 20, 2002 Routing 1.
Detailed Routing مرتضي صاحب الزماني.
SPANNING TREES Lecture 20 CS2110 – Fall Spanning Trees  Definitions  Minimum spanning trees  3 greedy algorithms (incl. Kruskal’s & Prim’s)
SPANNING TREES Lecture 21 CS2110 – Fall Nate Foster is out of town. NO 3-4pm office hours today!
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.
Spanning Trees Dijkstra (Unit 10) SOL: DM.2 Classwork worksheet Homework (day 70) Worksheet Quiz next block.
CSE 373: Data Structures and Algorithms Lecture 21: Graphs V 1.
VLSI Physical Design Automation
VLSI Physical Design Automation
Greedy Technique.
Graph Algorithms BFS, DFS, Dijkstra’s.
Short paths and spanning trees
Minimum Spanning Tree Neil Tang 3/25/2010
Connected Components Minimum Spanning Tree
Shortest Paths and Minimum Spanning Trees
Minimum Spanning Tree Neil Tang 4/3/2008
Weighted Graphs & Shortest Paths
VLSI Physical Design Automation
Graph Algorithms: Shortest Path
Spanning Trees Lecture 20 CS2110 – Spring 2015.
ICS 252 Introduction to Computer Design
More Graphs Lecture 19 CS2110 – Fall 2009.
Presentation transcript:

Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand routing problem –Understand overview of routing algorithms –Understand shortest path algorithms

What is Routing? Determination of component wiring –assignment of wires to routing areas »restricted routing problems »e.g. routing channel –detailed wiring within areas »layer assignment »vias Goal –minimize routing area »minimize wiring length »minimize channel height –minimize lengths of critical paths –100% completion in allocated space »fixed wiring areas »e.g. gate arrays, FPGAs –minimize crosstalk A BC D EA BC D E

Why Routing? Hand routing impractical –1k-100k nets in large chip designs –prone to error –example »IBM TCM has 26 routing layers »how to use layers? Multi-goal optimization –routing area –delay –cross-talk –clock and power routing –manufacturing yield

Objective Functions Minimize routing cost according to function –want fast but reasonably accurate metrics –wiring area »channel area = channel density * channel length –wire length »minimum spanning tree »Steiner tree »half-perimeter of bounding box –wiring congestion »track density along channels peak density 4 average 2.2 peak/avg 1.82 area = h*L h L

Types of Routers Global routers –function »determine routing areas »assign net to routing areas »minimize global routing area, path lengths –consider congestion, approximate path length Detail routers –goal »route actual wires »minimize routing area, path lengths –general-purpose - maze, line probe –restricted - channel, switchbox, river routers Specialized –power, clock routers

Example: Global Routing A BC D EA BC D E A BC D EA BC D E

Example: Detailed Routing

Shortest Path Algorithms Find shortest path between two vertices in weighted graph –graph with edge weights –weight is distance, congestion, etc. –search graph from source to destination –backtrace to source once destination is found Used especially in global routing S D

Shortest Path Algorithms Single Pair Shortest Path –given graph (V, E) with edge weights –find lowest weight path between vertex S and D –actually shortest paths from S to all others Application to Global Routing –routing areas are edges –module and area boundaries are vertices –set weight as combination of routing distance and wire congestion –route critical wires first »critical to circuit timing –edge weights steer wires away from congested areas

Dijkstra’s Algorithm Idea –put neighbors of vertex on list along with cost »edge cost to get to vertex –from list mark least-cost next vertex with cost –add neighbors of new vertex to vertex list –stop when destination vertex is marked –time O(E) for E edges, O(V 2 ) for complete graph Definitions –n - number of vertices –u - source –wt(v,w) - edge weight betwee v and w

Code for i = 1 to n do if ((u,i) exists) D[1] = wt(u,i) else D[i] = INF P[i] = u V’ = V - u; D[u] = 0 while (|V’| > 0) select v such that D[v] is min of D[w] for w in V’ V’ = V’ - v for w in V’ if (D[w] > D[v] + wt(v,w)) D[w] = D[v] + wt(v,w) /* D[w] is len of shortest path from u to w */ P[w] = v /* P[w] is parent of w */ for w in V /* list shortest path from w to u */ q = w print q while (q != u) q = P[q] print q

Example S D S D S D S D S D