Unit 7: Maze (Area) and Global Routing

Similar documents
Graph Models for Global Routing: Grid Graph

ECE260B CSE241A Winter Routing

Basic Idea. The routing problem is typically solved using a twostep

CS612 Algorithms for Electronic Design Automation. Global Routing

Unit 6: Routing. Course contents: Readings. Maze/A*-search routing Global routing Routing trees Channel routing Full-chip routing

Single Step Current Driven Routing of Multiterminal Signal Nets for Analog Applications *

Chapter 5 Global Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure

VLSI Physical Design: From Graph Partitioning to Timing Closure

ICS 252 Introduction to Computer Design

L14 - Placement and Routing

K. Keutzer. A. Kahng

Introduction. A very important step in physical design cycle. It is the process of arranging a set of modules on the layout surface.

Estimation of Wirelength

Routing. Robust Channel Router. Figures taken from S. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998

Efficient Multilayer Routing Based on Obstacle-Avoiding Preferred Direction Steiner Tree

CAD Algorithms. Placement and Floorplanning

Unit 2: Algorithmic Graph Theory

Efficient Rectilinear Steiner Tree Construction with Rectangular Obstacles

ECE260B CSE241A Winter Routing. Website:

A Multi-Layer Router Utilizing Over-Cell Areas

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

Layout DA (Physical Design)

A Study on Approximation Algorithms for Constructing Rectilinear Steiner Trees

Buffered Routing Tree Construction Under Buffer Placement Blockages

Problem Formulation. Specialized algorithms are required for clock (and power nets) due to strict specifications for routing such nets.

Double Patterning-Aware Detailed Routing with Mask Usage Balancing

EE680 Project Report Final 05/05/2010 Zhou Zhao USC ID:

ECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms

Introduction VLSI PHYSICAL DESIGN AUTOMATION

Very Large Scale Integration (VLSI)

Efficient Rectilinear Steiner Tree Construction with Rectilinear Blockages

An O(nlogn) Algorithm for Obstacle-Avoiding Routing Tree Construction in the λ-geometry Plane *

Routability-Driven Bump Assignment for Chip-Package Co-Design

c 2006 Society for Industrial and Applied Mathematics

Sequential/Parallel Global Routing Algorithms for VLSI Standard. Cells

Routing Algorithms for Flow-based Microfluidic Very Large Scale Integration Biochips

Digital VLSI Design. Lecture 9: Routing

Place and Route for FPGAs

Accepting that the simple base case of a sp graph is that of Figure 3.1.a we can recursively define our term:

EE582 Physical Design Automation of VLSI Circuits and Systems

DpRouter: A Fast and Accurate Dynamic- Pattern-Based Global Routing Algorithm

Multilayer Routing on Multichip Modules

An Exact Algorithm for the Construction of Rectilinear Steiner Minimum Trees among Complex Obstacles

c 2011 Yun Wei Chang

Placement and Routing A Lecture in CE Freshman Seminar Series: Puzzling Problems in Computer Engineering. Apr Placement and Routing Slide 1

THE continuous increase of the problem size of IC routing

Bottleneck Steiner Tree with Bounded Number of Steiner Vertices

Generating More Compactable Channel Routing Solutions 1

Automatic Layout of Analog and Digital Mixed Macro/Standard Cell Integrated Circuits. William Swartz Yale University

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 20, NO. 3, MARCH

The Feasible Solution Space for Steiner Trees

An Exact Algorithm for the Statistical Shortest Path Problem

Approximation Algorithms for Geometric Intersection Graphs

A Novel Framework for Multilevel Full-Chip Gridless Routing

Non-Rectangular Shaping and Sizing of Soft Modules for Floorplan Design Improvement

I. Introduction and Overview

1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1

Routing. Routing. Routing in design flow. Problem. Objectives

Probability-Based Approach to Rectilinear Steiner Tree Problems

A Novel Performance-Driven Topology Design Algorithm

Layer Assignment for Reliable System-on-Package

The Full Survey on The Euclidean Steiner Tree Problem

ICS 252 Introduction to Computer Design

Sung-Eui Yoon ( 윤성의 )

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

Path Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano tel:

Computational Geometry

A Global Routing Algorithm for General Cells

Parallel Global Routing Algorithms for Standard Cells

Partitioning. Course contents: Readings. Kernighang-Lin partitioning heuristic Fiduccia-Mattheyses heuristic. Chapter 7.5.

Temperature-Aware Routing in 3D ICs

An Enhanced Perturbing Algorithm for Floorplan Design Using the O-tree Representation*

λ-oat: λ-geometry Obstacle-Avoiding Tree Construction With O(n log n) Complexity

Manhattan or Non-Manhattan? - A Study of Alternative VLSI Routing Architectures

VLSI Physical Design: From Graph Partitioning to Timing Closure

Pseudopin Assignment with Crosstalk Noise Control

Short Papers. Creating and Exploiting Flexibility in Rectilinear Steiner Trees

Construction of All Rectilinear Steiner Minimum Trees on the Hanan Grid

Constructive floorplanning with a yield objective

Unit 8: Coping with NP-Completeness. Complexity classes Reducibility and NP-completeness proofs Coping with NP-complete problems. Y.-W.

Toward Accurate Models of Achievable Routing

Computational Geometry

Unit 5F: Layout Compaction

Unit 3: Layout Compaction

AN 567: Quartus II Design Separation Flow

Niyati Shah Department of ECE University of Toronto

EN2911X: Reconfigurable Computing Lecture 13: Design Flow: Physical Synthesis (5)

Timing-Driven Interconnect Synthesis

Voronoi Diagrams in the Plane. Chapter 5 of O Rourke text Chapter 7 and 9 of course text

On Coloring and Colorability Analysis of Integrated Circuits with Triple and Quadruple Patterning Techniques. Alexey Lvov Gus Tellez Gi-Joon Nam

Planning for Local Net Congestion in Global Routing

Effects of FPGA Architecture on FPGA Routing

Coverage and Search Algorithms. Chapter 10

Design and Analysis of Algorithms

Seeing Around Corners: Fast Orthogonal Connector Routing

Experiments and Optimal Results for Outerplanar Drawings of Graphs

A Framework for Systematic Evaluation and Exploration of Design Rules

Mincut Placement with FM Partitioning featuring Terminal Propagation. Brett Wilson Lowe Dantzler

CS 4407 Algorithms Lecture 5: Graphs an Introduction

Transcription:

Unit 7: Maze (Area) and Global Routing Course contents Routing basics Maze (area) routing Global routing Readings Chapters 9.1, 9.2, 9.5 Filling Unit 7 1 Routing Unit 7 2

Routing Constraints 100% routing completion + area minimization, under a set of constraints: Placement constraint: usually based on fixed placement Number of routing layers Geometrical constraints: must satisfy design rules Timing constraints (performance-driven routing): must satisfy delay constraints Crosstalk? Process variations? Unit 7 3 Classification of Routing Unit 7 4

Maze Router: Lee Algorithm Lee, An algorithm for path connection and its application, IRE Trans. Electronic Computer, EC-10, 1961. Discussion mainly on single-layer routing Strengths Guarantee to find connection between 2 terminals if it exists. Guarantee minimum path. Weaknesses Requires large memory for dense layout. Slow. Applications: global routing, detailed routing Unit 7 5 Lee Algorithm Find a path from S to T by wave propagation. Filling Time & space complexity for an M r N grid: O(MN) (huge!) Unit 7 6

Reducing Memory Requirement Akers's Observations (1967) Adjacent labels for k are either k-1 or k+1. Want a labeling scheme such that each label has its preceding label different from its succeeding label. Way 1: coding sequence 1, 2, 3, 1, 2, 3, ; states: 1, 2, 3, empty, blocked (3 bits required) Way 2: coding sequence 1, 1, 2, 2, 1, 1, 2, 2, ; states: 1, 2, empty, blocked (need only 2 bits) Unit 7 7 Reducing Running Time Starting point selection: Choose the point farthest from the center of the grid as the starting point. Double fan-out: Propagate waves from both the source and the target cells. Framing: Search inside a rectangle area 10--20% larger than the bounding box containing the source and target. Need to enlarge the rectangle and redo if the search fails. Unit 7 8

Connecting Multi-Terminal Nets Step 1: Propagate wave from the source s to the closet target. Step 2: Mark ALL cells on the path as s. Step 3: Propagate wave from ALL s cells to the other cells. Step 4: Continue until all cells are reached. Step 5: Apply heuristics to further reduce the tree cost. Unit 7 9 Routing on a Weighted Grid Motivation: finding more desirable paths weight(grid cell) = # of unblocked grid cell segments -1 Unit 7 10

A Routing Example on a Weighted Grid 2 Unit 7 11 Hadlock's Algorithm Hadlock, A shortest path algorithm for grid graphs, Networks, 1977. Uses detour number (instead of labeling wavefront in Lee's router) Detour number, d(p): # of grid cells directed away from its target on path P. MD(S, T): the Manhattan distance between S and T. Path length of P, l(p): l(p) = MD(S, T) + 2 d(p). MD(S, T) fixed! Minimize d(p) to find the shortest path. For any cell labeled i, label its adjacent unblocked cells away from Ti+1; label i otherwise. Time and space complexities: O(MN), but substantially reduces the # of searched cells. Finds the shortest path between S and T. Unit 7 12

Hadlock's Algorithm (cont'd) d(p): # of grid cells directed away from its target on path P. MD(S, T): the Manhattan distance between S and T. Path length of P, l(p): l(p) = MD(S, T) + 2d(P). MD(S, T) fixed! Minimize d(p) to find the shortest path. For any cell labeled i, label its adjacent unblocked cells away from T i+1; label i otherwise. Unit 7 13 Soukup's Algorithm Soukup, Fast maze router, DAC-78. Combined breadth-first and depth-first search. Depth-first (line) search is first directed toward target T until an obstacle or T is reached. Breadth-first (Lee-type) search is used to bubble around an obstacle if an obstacle is reached. Time and space complexities: O(MN), but 10--50 times faster than Lee's algorithm. Find a path between S and T, but may not be the shortest! Unit 7 14

Features of Line-Search Algorithms Time and space complexities: O(L), where L is the # of line segments generated. Unit 7 15 Mikami-Tabuchi's Algorithm Mikami & Tabuchi, A computer program for optimal routing of printed circuit connectors, IFIP, H47, 1968. Every grid point is an escape point. Unit 7 16

Hightower's Algorithm Hightower, A solution to line-routing problem on the continuous plane, DAC-69. A single escape point on each line segment. If a line parallels to the blocked cells, the escape point is placed just past the endpoint of the segment. Unit 7 17 Comparison of Algorithms Soukup, Mikami, and Hightower all adopt some sort of line-search operations cannot guarantee shortest paths. Unit 7 18

Multi-layer Routing 3-D grid: Two planar arrays: Neglect the weight for inter-layer connection through via. Pins are accessible from both layers. Unit 7 19 Net Ordering Net ordering greatly affects routing solutions. In the example, we should route net b before net a. Unit 7 20

Net Ordering (cont'd) Order the nets in the ascending order of the # of pins within their bounding boxes. Order the nets in the ascending (or descending??) order of their lengths. Order the nets based on their timing criticality. A mutually intervening case: Unit 7 21 Rip-Up and Re-routing Rip-up and re-routing is required if a global or detailed router fails in routing all nets. Approaches: the manual approach? the automatic procedure? Two steps in rip-up and re-routing 1. Identify bottleneck regions, rip off some already routed nets. 2. Route the blocked connections, and re-route the ripped-up connections. Repeat the above steps until all connections are routed or a time limit is exceeded. Unit 7 22

Graph Models for Global Routing: Grid Graph Each cell is represented by a vertex. Two vertices are joined by an edge if the corresponding cells are adjacent to each other. The occupied cells are represented as filled circles, whereas the others are as clear circles. Unit 7 23 Graph Model: Channel Intersection Graph Channels are represented as edges. Channel intersections are represented as vertices. Edge weight represents channel capacity. Extended channel intersection graph: terminals are also represented as vertices. Unit 7 24

Global-Routing Problem Given a netlist N={N 1, N 2,, N n }, a routing graph G = (V, E), find a Steiner tree T i for each net N i, 1 i n, such that U(e j ) c(e j ), e j E and is minimized, where c(e j ): capacity of edge e j ; x ij =1 if e j is in T i ; x ij = 0 otherwise; : # of wires that pass through the channel corresponding to edge e j ; L(T i ): total wirelength of Steiner tree T i. For high-performance, the maximum wirelength ( ) is minimized (or the longest path between two points in T i is minimized). Unit 7 25 Global Routing in different Design Styles Unit 7 26

Global Routing in Standard Cell Objective Minimize total channel height. Assignment of feedthrough: Placement? Global routing? For high performance, Minimize the maximum wire length. Minimize the maximum path length. Unit 7 27 Global Routing in Gate Array Objective Guarantee 100% routability. For high performance, Minimize the maximum wire length. Minimize the maximum path length. Unit 7 28

Objective Global Routing in FPGA Guarantee 100% routability. Consider switch-module architectural constraints. For performance-driven routing, Minimize # of switches used. Minimize the maximum wire length. Minimize the maximum path length. Unit 7 29 Global-Routing: Maze Routing Routing channels may be modelled by a weighted undirected graph called channel connectivity graph. Node channel; edge two adjacent channels; capacity: (width, length) Unit 7 30

The Routing-Tree Problem Problem: Given a set of pins of a net, interconnect the pins by a routing tree. Minimum Rectilinear Steiner Tree (MRST) Problem: Given n points in the plane, find a minimum-length tree of rectilinear edges which connects the points. MRST(P) = MST(P S), where P and S are the sets of original points and Steiner points, respectively. Unit 7 31 Theoretic Results for the MRST Problem Hanan's Thm: There exists an MRST with all Steiner points (set S) chosen from the intersection points of horizontal and vertical lines drawn points of P. Hanan, On Steiner's problem with rectilinear distance, SIAM J. Applied Math., 1966. Hwang s Theorem: For any point set P, Hwang, On Steiner minimal tree with rectilinear distance, SIAM J. Applied Math., 1976. Best existing approximation algorithm: Performance bound 61/48 by Foessmeier et al. Unit 7 32

A Simple Performance Bound Easy to show that 2 Given any MRST T on point set P with Steiner point set S, construct a spanning tree T' on P as follows: 1. Select any point in T as a root. 2. Perform a depth-first traversal on the rooted tree T. 3. Construct T' based on the traversal. Unit 7 33 Coping with the MRST Problem Ho, Vijayan, Wong, New algorithms for the rectilinear Steiner problem, 1. Construct an MRST from an MST. 2. Each edge is straight or L-shaped. 3. Maximize overlaps by dynamic programming. About 8% smaller than Cost(MST). Unit 7 34

Iterated 1-Steiner Heuristic for MRST Kahng & Robins, A new class of Steiner tree heuristics with good performance: the iterated 1-Steiner approach, ICCAD-90.. Algorithm: Iterated_1-Steiner(P) P: set P of n points. 1 begin 2 S ; /* H(P S): set of Hanan points */ /* MST(A, B) = Cost(MST(A)) - Cost(MST(A B)) */ 3 while (Cand {x H(P S) MST(P S, {x}) > 0 } ) do 4 Find x C and which maximizes MST(P S), {x}); 5 S S {x}; 6 Remove points in S which have degree 2 in MST(P S); 7 Output MST(P S); 8 end Remove degree-2 node Unit 7 35