Global Routing. Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2.

Slides:



Advertisements
Similar presentations
System Level Interconnect Prediction (SLIP) Sidewinder: A Scalable ILP-Based Router Jin Hu, Jarrod Roy, and Igor Markov Dept. of Computer Science.
Advertisements

ECE 667 Synthesis and Verification of Digital Circuits
Wen-Hao Liu1, Yih-Lang Li, and Cheng-Kok Koh Department of Computer Science, National Chiao-Tung University School of Electrical and Computer Engineering,
Meng-Kai Hsu, Sheng Chou, Tzu-Hen Lin, and Yao-Wen Chang Electronics Engineering, National Taiwan University Routability Driven Analytical Placement for.
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.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI Circuit Design Lecture 11 - Combinational.
ICS 252 Introduction to Computer Design Routing Fall 2007 Eli Bozorgzadeh Computer Science Department-UCI.
38 th Design Automation Conference, Las Vegas, June 19, 2001 Creating and Exploiting Flexibility in Steiner Trees Elaheh Bozorgzadeh, Ryan Kastner, Majid.
1 BoxRouter: A New Global Router Based on Box Expansion and Progressive ILP Minsik Cho and David Z. Pan ECE Dept. Univ. of Texas at Austin DAC 2006, July.
Chapter 2 – Netlist and System Partitioning
Placement 1 Outline Goal What is Placement? Why Placement?
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 21: April 15, 2009 Routing 1.
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.
Reconfigurable Computing (EN2911X, Fall07)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 19: April 9, 2008 Routing 1.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig © 2011 Springer Verlag 1 Chapter 5 – Global Routing.
Metal Layer Planning for Silicon Interposers with Consideration of Routability and Manufacturing Cost W. Liu, T. Chien and T. Wang Department of CS, NTHU,
VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 18. Global Routing (II)
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
Chapter 5 – Global 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.
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.
MGR: Multi-Level Global Router Yue Xu and Chris Chu Department of Electrical and Computer Engineering Iowa State University ICCAD
A Topology-based ECO Routing Methodology for Mask Cost Minimization Po-Hsun Wu, Shang-Ya Bai, and Tsung-Yi Ho Department of Computer Science and Information.
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 7 Global Routing Mustafa Ozdal Computer Engineering Department, Bilkent University.
Area-I/O Flip-Chip Routing for Chip-Package Co-Design Progress Report 方家偉、張耀文、何冠賢 The Electronic Design Automation Laboratory Graduate Institute of Electronics.
Authors: Jia-Wei Fang,Chin-Hsiung Hsu,and Yao-Wen Chang DAC 2007 speaker: sheng yi An Integer Linear Programming Based Routing Algorithm for Flip-Chip.
Escape Routing For Dense Pin Clusters In Integrated Circuits Mustafa Ozdal, Design Automation Conference, 2007 Mustafa Ozdal, IEEE Trans. on CAD, 2009.
Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.
Global Routing.
1 Coupling Aware Timing Optimization and Antenna Avoidance in Layer Assignment Di Wu, Jiang Hu and Rabi Mahapatra Texas A&M University.
TSV-Aware Analytical Placement for 3D IC Designs Meng-Kai Hsu, Yao-Wen Chang, and Valerity Balabanov GIEE and EE department of NTU DAC 2011.
Solving Hard Instances of FPGA Routing with a Congestion-Optimal Restrained-Norm Path Search Space Keith So School of Computer Science and Engineering.
Wen-Hao Liu 1, Yih-Lang Li 1, and Kai-Yuan Chao 2 1 Department of Computer Science, National Chiao-Tung University, Hsin-Chu, Taiwan 2 Intel Architecture.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing © KLMH Lienig 1 EECS 527 Paper Presentation High-Performance.
Archer: A History-Driven Global Routing Algorithm Mustafa Ozdal Intel Corporation Martin D. F. Wong Univ. of Illinois at Urbana-Champaign Mustafa Ozdal.
BSG-Route: A Length-Matching Router for General Topology T. Yan and M. D. F. Wong University of Illinois at Urbana-Champaign ICCAD 2008.
New Modeling Techniques for the Global Routing Problem Anthony Vannelli Department of Electrical and Computer Engineering University of Waterloo Waterloo,
Kwangsoo Han, Andrew B. Kahng, Hyein Lee and Lutong Wang
Kwangsoo Han‡, Andrew B. Kahng‡† and Hyein Lee‡
AUTOMATIC BUS PLANNER FOR DENSE PCBS Hui Kong, Tan Yan and Martin D.F. Wong Department of Electrical and Computer Engineering, University of Illinois at.
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.
Register Placement for High- Performance Circuits M. Chiang, T. Okamoto and T. Yoshimura Waseda University, Japan DATE 2009.
1 Efficient Obstacle-Avoiding Rectilinear Steiner Tree Construction Chung-Wei Lin, Szu-Yu Chen, Chi-Feng Li, Yao-Wen Chang, Chia-Lin Yang National Taiwan.
Fishbone: A Block-Level Placement and Routing Scheme Fan Mo and Robert K. Brayton EECS, UC Berkeley.
Po-Wei Lee, Chung-Wei Lin, Yao-Wen Chang, Chin-Fang Shen, Wei-Chih Tseng NTU &Synopsys An Efficient Pre-assignment Routing Algorithm for Flip-Chip Designs.
ECE 260B – CSE 241A /UCB EECS Kahng/Keutzer/Newton Physical Design Flow Read Netlist Initial Placement Placement Improvement Cost Estimation Routing.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 13: February 20, 2002 Routing 1.
LEMAR: A Novel Length Matching Routing Algorithm for Analog and Mixed Signal Circuits H. Yao, Y. Cai and Q. Gao EDA Lab, Department of CS, Tsinghua University,
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.
FPGA CAD 10-MAR-2003.
High-Performance Global Routing with Fast Overflow Reduction Huang-Yu Chen, Chin-Hsiung Hsu, and Yao-Wen Chang National Taiwan University Taiwan.
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 7 Global Routing Mustafa Ozdal Computer Engineering Department, Bilkent University.
An Exact Algorithm for Difficult Detailed Routing Problems Kolja Sulimma Wolfgang Kunz J. W.-Goethe Universität Frankfurt.
1 Chapter 5 Branch-and-bound Framework and Its Applications.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 21: November 28, 2005 Routing 1.
VLSI Physical Design Automation
Chapter 5 – Global Routing
Routing Algorithms.
ICS 252 Introduction to Computer Design
Under a Concurrent and Hierarchical Scheme
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Global Routing

Global routing:  Sequential −One net at a time  Concurrent −Order-independent −ILP 2

3 Integer Linear Programming A linear program (LP) consists of  a set of constraints and  an optional objective function Objective function is maximized or minimized Both the constraints and the objective function must be linear  Constraints form a system of linear equations and inequalities

4 Routing by Integer Linear Programming Integer linear program (ILP):  Every variable can only assume integer values  Typically takes much longer to solve  In many cases, variables are only allowed to be 0 or 1 ILP solvers:  GLPK  CPLEX  MOSEK

5 Routing by ILP Inputs:  W × H routing grid G  Routing edge capacities  Netlist Two sets of variables  k Boolean variables for each net net: − x net1, x net2, …, x netk −x neti = 1  path i is selected for net  k real variables for each net net: −w net1, w net2, …, w netk −w neti = desirability of path i for net (e.g., less bends = larger w)

6 Routing by ILP Two types of constraints  Uniqueness: −Each net must select a single route (mutual exclusion)  Edge capacities

7 Routing by ILP Inputs  W, H:width W and height H of routing grid G  G(i,j):grid cell at location (i,j) in routing grid G  σ(G(i,j)~G(i + 1,j)): capacity of horizontal edge −G(i,j) ~ G(i + 1,j)  σ(G(i,j)~G(i,j + 1)): capacity of vertical edge −G(i,j) ~ G(i,j + 1)  Netlist:netlist

8 Routing by ILP Variables  x net1,..., x netk :k Boolean path variables for each net net  w net1,..., w netk :k net weights, one for each path of net net Maximize Subject to  Variable ranges  Uniqueness constraints  Capacity constraints

9 Routing by ILP– Example Given  Nets A, B, C  W = 5, H = 4 routing grid G  σ(e) = 1 for all e G  w(L-shapes) = 1.00 w(Z-shapes) = 0.99  The lower-left corner is (0,0). A A B BC C

10 Routing by ILP– Example For net A, possible routes: two L-shapes (A 1,A 2 ) and two Z-shapes (A 3,A 4 ) Net Constraints: x A1 + x A2 + x A3 + x A4 ≤ 1 Variable Constraints: 0 ≤ x A1 ≤ 1, 0 ≤ x A2 ≤ 1, 0 ≤ x A3 ≤ 1, 0 ≤ x A4 ≤ 1 A A A2A2 A1A1 A A A4A4 A3A3 Net Constraints: x B1 + x B2 + x B3 ≤ 1 Variable Constraints: 0 ≤ x B1 ≤ 1, 0 ≤ x B2 ≤ 1, 0 ≤ x B3 ≤ 1 B B B1B1 B2B2 B3B3 B B Net Constraints: x C1 + x C2 + x C3 + x C4 ≤ 1 Variable Constraints: 0 ≤ x C1 ≤ 1, 0 ≤ x C2 ≤ 1, 0 ≤ x C3 ≤ 1, 0 ≤ x C4 ≤ 1 C C C C C2C2 C1C1 C3C3 C4C4 For net B, the possible routes: two L-shapes (B 1,B 2 ) and one Z-shape (B 3 ) For net C, the possible routes: two L-shapes (C 1,C 2 ) and two Z-shapes (C 3,C 4 )

11 Routing by ILP– Example Horizontal Edge Capacity Constraints: G(0,0) ~ G(1,0):x C1 + x C3 ≤σ(G(0,0) ~ G(1,0)) = 1 G(1,0) ~ G(2,0):x C1 ≤σ(G(1,0) ~ G(2,0)) = 1 G(2,0) ~ G(3,0):x B1 + x B3 ≤σ(G(2,0) ~ G(3,0)) = 1 G(3,0) ~ G(4,0):x B1 ≤σ(G(3,0) ~ G(4,0)) = 1 A A A2A2 A1A1 A A A4A4 A3A3 B B B1B1 B2B2 B3B3 B B C C C C C2C2 C1C1 C3C3 C4C4

12 Routing by ILP– Example Horizontal Edge Capacity Constraints: G(0,1) ~ G(1,1):x A2 + x C4 ≤σ(G(0,1) ~ G(1,1)) = 1 G(1,1) ~ G(2,1):x A2 + x A3 + x C4 ≤σ(G(1,1) ~ G(2,1)) = 1 G(2,1) ~ G(3,1):x B2 ≤σ(G(2,1) ~ G(3,1)) = 1 G(3,1) ~ G(4,1):x B2 + x B3 ≤σ(G(3,1) ~ G(4,1)) = 1 G(0,2) ~ G(1,2):x A4 + x C2 ≤σ(G(0,2) ~ G(1,2)) = 1 G(1,2) ~ G(2,2):x A4 + x C2 + x C3 ≤ σ(G(1,2) ~ G(2,2)) = 1 G(0,3) ~ G(1,3):x A1 + x A3 ≤σ(G(0,3) ~ G(1,3)) = 1 G(1,3) ~ G(2,3):x A1 ≤σ(G(1,3) ~ G(2,3)) = 1 A A A2A2 A1A1 A A A4A4 A3A3 B B B1B1 B2B2 B3B3 B B C C C C C2C2 C1C1 C3C3 C4C4

13 Routing by ILP– Example Vertical Edge Capacity Constraints: G(0,0) ~ G(0,1):x C2 + x C4 ≤σ(G(0,0) ~ G(0,1)) = 1 G(1,0) ~ G(1,1):x C3 ≤σ(G(1,0) ~ G(1,1)) = 1 G(2,0) ~ G(2,1):x B2 + x C1 ≤σ(G(2,0) ~ G(2,1)) = 1 G(3,0) ~ G(3,1):x B3 ≤σ(G(3,0) ~ G(3,1)) = 1 G(4,0) ~ G(4,1):x B1 ≤σ(G(4,0) ~ G(4,1)) = 1 G(0,1) ~ G(0,2):x A2 + x C2 ≤σ(G(0,1) ~ G(0,2)) = 1 G(1,1) ~ G(1,2):x A3 + x C3 ≤σ(G(1,1) ~ G(1,2)) = 1 G(2,1) ~ G(2,2):x A1 + x A4 + x C1 + x C4 ≤ σ(G(2,1) ~ G(2,2)) = 1 G(0,2) ~ G(0,3):x A2 + x A4 ≤σ(G(0,2) ~ G(0,3)) = 1 G(1,2) ~ G(1,3):x A3 ≤σ(G(1,2) ~ G(1,3)) = 1 G(2,2) ~ G(2,3):x A1 ≤σ(G(2,2) ~ G(2,3)) = 1 A A A2A2 A1A1 A A A4A4 A3A3 B B B1B1 B2B2 B3B3 B B C C C C C2C2 C1C1 C3C3 C4C4

Routing by ILP– Example 14

Routing by ILP Complementary techniques:  Use two L-shape paths first  Then use maze routing if those paths are not enough −Sidewinder (2008): runs ILP several times −BoxRouter (2007): maze as postprocess 15

16 Rip-Up and Reroute (RRR)  The optimal net ordering is impossible to get.  If failed to route some nets, can apply the Rip-Up and Reroute or Shove-Aside technique:  Can allow capacity violations temporarily and then use RRR A B C A B C Cannot route C. A B C A B C So Rip-up B and route C first. A B C A B C Finally route B.

17 General flow for modern global routers Global Routing Instance Net Decomposition Initial Routing Layer Assignment (Map 2D routes to 3D grid) Final Improvements no yes Rip-up and Reroute Violations? (optional) Modern Global Routing

18 Pattern Routing  Few nets need maze routing  Topologies commonly used in pattern routing: L-shapes, Z-shapes, U-shapes  Searches through a small number of route patterns to improve runtime Detour- Left Horizontal U-Shape Detour- Right Horizontal U-Shape Detour-Up Vertical U-Shape Detour- Down Vertical U-Shape Up-Right- Up Z-Shape Right-Up- Right Z-Shape Up-Right L-Shape Right-Up L-Shape Modern Global Routing

19 Modern Global Routing Negotiation-based router:  Each net negotiates the use of shared resources with other nets until none of the resources are shared At each iteration:  All nets are routed each using the minimum cost even though leading to over-congestion. −Costs: according to edge congestion  Re-adjust each edge cost based on whether the corresponding channel has overflowed in the current iteration (and previous iterations).  Route all nets based on this new cost  Repeat until all congestion is removed (or some pre-defined stopping criteria is met: −e.g., maximum number of iterations

20 Negotiated-Congestion Routing  cost(e): demand for edge e  Total cost of net:  The cost(e) is increased according to the edge congestion φ(e):  A higher cost(e) value discourages nets from using e and implicitly encourages nets to seek out other, less used edges  Iterative routing approaches (Dijkstra’s, A* search, etc.) find routes with minimum cost while respecting edge capacities Modern Global Routing η(e): Total no. of nets passing through e σ(e): capacity of e

21 Negotiated-Congestion Routing  PathFinder for FPGA routing  Some important nets may not be ripped up.  Adds history cost Modern Global Routing

Rip-up and Reroute Trend 22

23 Summary: Types of Routing Global routing:  Inputs: −Netlist, placement, obstacles + (usually) routing grid  Partitions the region (chip or block) into global routing cells (gcells)  Plans routes as sequences of gcells  Minimizes total length of routes and, possibly, routed congestion  May fail if routing resources are insufficient  Variable-die can expand routing area, so can't usually fail  Fixed-die is more common today (cannot resize a block in a larger chip)

24 Summary: Types of Routing Interpreting failures in global routing  Failure with many violations => must restructure the netlist and/or redo global placement  Failure with few violations => detailed routing may be able to fix the problems

25 Summary: Types of Routing Detailed routing:  Inputs: −Netlist, placement, obstacles, global routes (on a routing grid), routing tracks, design rules  Seeks to implement each global route as a sequence of track segments  Includes layer assignment (unless that is performed during global routing)  Minimizes total length of routes, subject to design rules

26 Summary: Types of Routing Timing-driven routing:  Minimizes circuit delay by optimizing timing-critical nets  Usually needs to trade off route length and congestion against timing  Both global and detailed routing can be timing-driven

Summary: Types of Routing Large net routing:  Nets with many pins can be so complex that routing a single net warrants dedicated algorithms  Steiner tree construction: −Minimum wirelength, extensions for obstacle-avoidance  Large signal nets are split into smaller segments processed during detailed routing Clock Tree Routing / Power Routing:  Performed before global routing to avoid competition for resources occupied by signal nets 27

28 Summary: Routing Single Nets Single net routing:  Usually ~50% of the nets are two-pin nets, ~25% have three pins, ~12.5% have four, etc.  Two-pin nets can be routed as L-shapes or using maze search  Three-pin nets usually have 0 or 1 branching point  Larger nets are more difficult to handle

29 Summary: Routing Single Nets Pattern routing  For each net, considers only a small number of shapes (L, Z, U, T, E)  Very fast, but misses many opportunities  Good for initial routing, sometimes is sufficient Routing pin-to-pin connections  Breadth-first-search (when costs are uniform)  Dijkstra's algorithm (non-uniform costs)  A*-search (non-uniform costs and/or using additional distance information)

Summary: Routing Single Nets MST and SMT in the rectilinear topology  RMSTs can be constructed in near-linear time  Constructing RSMTs is NP-hard, but feasible in practice  For nets with <10 pins, RSMTs can be found using look-up tables (FLUTE) very quickly 30

31 Summary: Full Netlist Routing Routing by ILP  Capture the route of each net by 0-1 variables, form equations constraining those variables  The objective function can represent total route length  Solve the equations while minimizing the objective function (ILP software)  Usually a convenient but slow −May not scale to largest netlists −Can be extended by area partitioning

32 Summary: Full Netlist Routing Rip-up and Re-route (RRR)  Processes one net at a time, usually by A*-search and Steiner-tree heuristics  Allows temporary overlaps between nets  When every net is routed (with overlaps), it removes (rips up) those with overlaps and routes them again with penalty for overlaps  This process may not finish, but often does, else use a time-out

33 Summary: Full Netlist Routing ILP and RRR:  Both can be applied in global and detailed routing  ILP-based routing is usually preferable for small, difficult-to-route regions  RRR is much faster when routing is easy

34 Summary: Modern Global Routing Modern global routing:  Initial routes are constructed quickly by pattern routing and the FLUTE package for Steiner tree construction - very fast  Several iterations based on modified pattern routing to avoid congestion - also very fast −Sometimes completes all routes without violations −If violations remain, they are limited to a few congested spots

35 Summary: Modern Global Routing Modern global routing:  The main part of the router is based on a variant of RRR called Negotiated-Congestion Routing (NCR) −Several proposed alternatives are not competitive  NCR maintains "history" in terms of which regions attracted too many nets  NCR increases routing cost according to the historical popularity of the regions −The nets with alternative routes are forced to take those routes −The nets that do not have good alternatives remain unchanged  Speed of increase controls tradeoff between runtime and route quality