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

Similar documents
Graph Models for Global Routing: Grid Graph

Unit 7: Maze (Area) and Global Routing

Chapter 5 Global Routing

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

VLSI Physical Design: From Graph Partitioning to Timing Closure

VLSI Physical Design: From Graph Partitioning to Timing Closure

Introduction VLSI PHYSICAL DESIGN AUTOMATION

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

ECE260B CSE241A Winter Routing

CAD Algorithms. Placement and Floorplanning

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

L14 - Placement and Routing

ICS 252 Introduction to Computer Design

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

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

Place and Route for FPGAs

Sequential/Parallel Global Routing Algorithms for VLSI Standard. Cells

CS612 Algorithms for Electronic Design Automation. Global Routing

Multilayer Routing on Multichip Modules

On the Complexity of Graph Cuboidal Dual Problems for 3-D Floorplanning of Integrated Circuit Design

Pseudopin Assignment with Crosstalk Noise Control

Solutions for Operations Research Final Exam

Layout DA (Physical Design)

Constructive floorplanning with a yield objective

Planning for Local Net Congestion in Global Routing

Estimation of Wirelength

CHAPTER 1 INTRODUCTION. equipment. Almost every digital appliance, like computer, camera, music player or

Topics. ! PLAs.! Memories: ! Datapaths.! Floor Planning ! ROM;! SRAM;! DRAM. Modern VLSI Design 2e: Chapter 6. Copyright 1994, 1998 Prentice Hall

CAD Algorithms. Circuit Partitioning

Very Large Scale Integration (VLSI)

Temperature-Aware Routing in 3D ICs

THE continuous increase of the problem size of IC routing

Buffered Routing Tree Construction Under Buffer Placement Blockages

A Path Based Algorithm for Timing Driven. Logic Replication in FPGA

Placement Algorithm for FPGA Circuits

Aim: How do we find the volume of a figure with a given base? Get Ready: The region R is bounded by the curves. y = x 2 + 1

c 2011 Yun Wei Chang

IN VLSI CIRCUITS. MUL'I'-PADs, SINGLE LAYER POWER NETT ROUTING

Problem Set. The 37 th Annual ACM International Collegiate Programming Contest ASIA Regional - Daejeon. A. Accelerator (2 pages)

Lecture 12: Grids Steven Skiena. skiena

Rectangular Partitioning

An Exact Algorithm for the Statistical Shortest Path Problem

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

Efficient Rectilinear Steiner Tree Construction with Rectangular Obstacles

Wire Type Assignment for FPGA Routing

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 1

Chapter 6. CMOS Functional Cells

AN 567: Quartus II Design Separation Flow

The Feasible Solution Space for Steiner Trees

Constraint-Driven Floorplanning based on Genetic Algorithm

Cell Libraries and Design Hierarchy. Instructor S. Demlow ECE 410 February 1, 2012

8. Visual Analytics. Prof. Tulasi Prasad Sariki SCSE, VIT, Chennai

Exemples of LCP. (b,3) (c,3) (d,4) 38 d

Lecture 3: Totally Unimodularity and Network Flows

Cluster-based approach eases clock tree synthesis

EE582 Physical Design Automation of VLSI Circuits and Systems

Parallel Global Routing Algorithms for Standard Cells

6. NEURAL NETWORK BASED PATH PLANNING ALGORITHM 6.1 INTRODUCTION

The Full Survey on The Euclidean Steiner Tree Problem

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

General Models for Optimum Arbitrary-Dimension FPGA Switch Box Designs

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

ASIC Physical Design Top-Level Chip Layout

PYRAMID: A Hierarchical Approach to E-beam Proximity Effect Correction

Optimized Pin Assignment for Lower Routing Congestion After Floorplanning Phase

Methods and Models for Combinatorial Optimization Exact methods for the Traveling Salesman Problem

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

A Multi-Layer Router Utilizing Over-Cell Areas

Laboratory 6. - Using Encounter for Automatic Place and Route. By Mulong Li, 2013

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions

Mathematics Curriculum

PLAYOUT - A Hierarchical Layout System

2 Introduction Chap. 1

FPGAs & Multi-FPGA Systems. FPGA Abstract Model. Logic cells imbedded in a general routing structure. Logic cells usually contain:

Chapter 6 Detailed Routing

Three-Dimensional Cylindrical Model for Single-Row Dynamic Routing

An Interconnect-Centric Design Flow for Nanometer Technologies

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

layers in a raster model

Approximation Algorithms for Geometric Intersection Graphs

UNIVERSITY OF CALIFORNIA College of Engineering Department of Electrical Engineering and Computer Sciences Lab #2: Layout and Simulation

Algorithms for Integer Programming

Graph Theory. ICT Theory Excerpt from various sources by Robert Pergl

Automatic Cell Layout in the 7nm Era

Constraint Driven I/O Planning and Placement for Chip-package Co-design

MIT Programming Contest Team Contest 1 Problems 2008

High-Level Synthesis

SEMICONDUCTOR industry is beginning to question the

AS VLSI technology scales to deep submicron and beyond, interconnect

Tutorial 2 Automatic Placement & Routing

W[1]-hardness. Dániel Marx. Recent Advances in Parameterized Complexity Tel Aviv, Israel, December 3, 2017

Linking Layout to Logic Synthesis: A Unification-Based Approach

Edge Equalized Treemaps

56:272 Integer Programming & Network Flows Final Examination -- December 14, 1998

Silicon Virtual Prototyping: The New Cockpit for Nanometer Chip Design

Effects of FPGA Architecture on FPGA Routing

An Analytical Approach to Floorplan Design and Optimization. Suphachai Sutanthavibul, Eugene Shragowitz, J. Ben Rosen

Optimizing Architectural Layout Design via Mixed Integer Programming

Chapter 3. Sukhwinder Singh

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

Transcription:

Global Routing

Basic Idea The routing problem is typically solved using a twostep approach: Global Routing Define the routing regions. Generate a tentative route for each net. Each net is assigned to a set of routing regions. Does not specify the actual layout of wires. Detailed Routing For each routing region, each net passing through that region is assigned particular routing tracks. Actual layout of wires gets fixed. Associated subproblems: channel routing and switchbox routing. CAD for VLSI 2

Routing Regions Regions through which interconnecting wires are laid out. How to define these regions? Partition the routing area into a set of non-intersecting rectangular regions. Types of routing regions: Horizontal channel: parallel to the x-axis with pins at their top and bottom boundaries. Vertical channel: parallel to the y-axis with pins at their left and right boundaries. Switchbox: rectangular regions with pins on all four sides. CAD for VLSI 3

Points to note: Identification of routing regions is a crucial first step to global routing. Routing regions often do not have pre-fixed capacities. The order in which the routing regions are considered during detailed routing plays a vital part in determining overall routing quality. CAD for VLSI 4

Types of Channel Junctions Three types of channel junctions may occur: L-type: Occurs at the corners of the layout surface. Ordering is not important during detailed routing. Can be routed using channel routers. T-type: The leg of the T must be routed before the shoulder. Can be routed using channel routers. +-type: More complex and requires switchbox routers. Advantageous to convert +-junctions to T-junctions. CAD for VLSI 5

Illustrations L Type + Type T Type CAD for VLSI 6

Design Style Specific Issues Full Custom The problem formulation is similar to the general formulation as discussed. All the types of routing regions and channels junctions can occur. Since channels can be expanded, some violation of capacity constraints are allowed. Major violation in constraints are, however, not allowed. May need significant changes in placement. CAD for VLSI 7

Standard Cell At the end of the placement phase Location of each cell in a row is fixed. Capacity and location of each feed-through is fixed. Feed-throughs have predetermined capacity. Only horizontal channels exist. Channel heights are not fixed. Insufficient feed-throughs may lead to failure. Over-the-cell routing can reduce channel height, and change the global routing problem. CAD for VLSI 8

A A cannot be connected to B B CAD for VLSI 9

Gate Array The size and location of cells are fixed. Routing channels & their capacities are also fixed. Primary objective of global routing is to guarantee routability. Secondary objective may be to minimize critical path delay. Failed CAD for VLSI 10

Graph Models used in Global Routing Global routing is typically studied as a graph problem. Routing regions and their relationships modeled as graphs. Three important graph models: 1. Grid Graph Model Most suitable for area routing 2. Checker Board Model 3. Channel Intersection Graph Model Most suitable for global routing CAD for VLSI 11

Grid Graph Model A layout is considered to be a collection of unit side square cells (grid). Define a graph: Each cell c i is represented as a vertex v i. Two vertices v i and v j are joined by an edge if the corresponding cells c i and c j are adjacent. A terminal in cell c i is assigned to the corresponding vertex v i. The occupied cells are represented as filled circles, whereas the others as clear circles. The capacity and length of each edge is set to one. Given a 2-terminal net, the routing problem is to find a path between the corresponding vertices in the grid graph. CAD for VLSI 12

Grid Graph Model :: Illustration CAD for VLSI 13

Checker Board Model More general than the grid graph model. Approximates the layout as a coarse grid. Checker board graph is generated in a manner similar to the grid graph. The edge capacities are computed based on the actual area available for routing on the cell boundary. The partially blocked edges have unit capacity. The unblocked edges have a capacity of 2. Given the cell numbers of all terminals of a net, the global routing problem is to find a path in the coarse grid graph. CAD for VLSI 14

Checker Board Model :: Illustration 1 1 1 2 2 1 1 1 1 1 CAD for VLSI 15

Channel Intersection Graph Most general and accurate model for global routing. Define a graph: Each vertex v i represents a channel intersection CI i. Channels are represented as edges. Two vertices v i and v j are connected by an edge if there exists a channel between CI i and CI j. Edge weight represents channel capacity. CAD for VLSI 16

Illustration CAD for VLSI 17

Extended Channel Intersection Graph Extension of the channel intersection graph. Includes the pins as vertices so that the connections between the pins can be considered. The global routing problem is simply to find a path in the channel intersection graph. The capacities of the edges must not be violated. For 2-terminal nets, we can consider the nets sequentially. For multi-terminal nets, we can have an approximation to minimum Steiner tree. CAD for VLSI 18

Illustration CAD for VLSI 19

Approaches to Global Routing What does a global router do? It decomposes a large routing problem into small and manageable sub-problems Called detailed routing This is done by finding a rough path for each net Sequences of sub-regions it passes through CAD for VLSI 20

When Floorplan is Given The dual graph of the floorplan (shown in red) is used for global routing. Each edge is assigned with: A weight w ij representing the capacity of the boundary. A value L ij representing the edge length. Global routing of a two-terminal net Terminals in rectangles r 1 and r 2. Path connecting vertices v 1 and v 2 in G. CAD for VLSI 21

5 1 2 6 3 4 CAD for VLSI 22

When Placement is Given The routing region is partitioned into simpler regions. Typically rectangular in shape. A routing graph can be defined. Vertices represent regions, and correspond to channels. Edges represent adjacency between channels. Global routing of a two-terminal net Terminals in regions r 1 and r 2. Path connecting vertices v 1 and v 2 in G. CAD for VLSI 23

Sequential Approaches Nets are routed sequentially, one at a time. First an ordering of the nets is obtained based on: Number of terminals Bounding box length Criticality Each net is then routed as dictated by the ordering. Most of these techniques use variations of maze running or line search methods. Very efficient at finding routes for nets as they employ well-known shortest path algorithms. Rip up and reroute heuristic in case of conflict. CAD for VLSI 24

Hierarchical Approaches Use the hierarchy of the routing graph to decompose a large routing problem into subproblems of manageable size. The sub-problems are solved independently. Sub-solutions are combined to get the total solution. A cut tree is defined on the routing graph. Each interior node represents a primitive global routing problem. Each problem is solved optimally by translating it into an integer programming problem. The solutions are finally combined. CAD for VLSI 25

Hierarchical Approach :: Illustration A B C 1 2 3 4 1 2 3 4 D E F A B C D E F CAD for VLSI 26

Hierarchical Routing :: Top-Down Approach Let the root of the cut tree T be at level 1, and the leaves of T at level h. h is the height of T. The top-down approach traverses T from top to down, level by level. I i denotes the routing problem instance at level i. The solutions to all the problem instances are obtained using an integer programming formulation. CAD for VLSI 27

Algorithm procedure Hier_Top_Down begin Compute solution R i of the routing problem I 1 ; for i=2 to h do begin for all nodes n at level i-1 do Compute solution R n of the routing problem I n ; Combine all solutions R n for all nodes n, and R i-1 into solution R i ; end; end. CAD for VLSI 28

Hierarchical Routing :: Bottom-up Approach In the first phase, the routing problem associated with each branch in T is solved by IP. The partial routings are then combined by processing internal tree nodes in a bottom-up manner. Main disadvantage of this approach: A global picture is obtained only in the later stages of the process. CAD for VLSI 29

Algorithm procedure Hier_Bottom_Down begin Compute solution R h of the level-h abstraction of the problem; for i=h to 1 do begin for all nodes n at level i-1 do Compute solution R n of the routing problem I n by combining the solution to the children of node n; end; end; CAD for VLSI 30

Integer Linear Programming Approach The problem of concurrently routing the nets is computationally hard. The only known technique uses integer programming. Global routing problem can be formulated as a 0/1 integer program. The layout is modeled as a grid graph. N vertices: each vertex represents a grid cell. M edges: an edge connects vertices i and j if the grid cells i and j are adjacent. The edge weight represents the capacity of the boundary. CAD for VLSI 31

Contd. For each net i, we identify the different ways of routing the net. Suppose that there are n i possible Steiner trees t i 1,t i 2,,t i ni to route the net. For each tree t i j, we associate a variable x ij : x ij = 1, if net i is routed using tree t i j = 0, otherwise. Only one tree must be selected for each net: n i Σ x ij = 1 j=1 CAD for VLSI 32

Contd. For a grid graph with M edges and T = Σn i trees, we can represent the routing trees as a 0-1 matrix A MxT =[a ip ]. a ip = 1, if edge i belongs to tree p = 0, otherwise. Capacity of each arc (boundary) must not be exceeded: N n k Σ Σ a ip x lk c i k=1 l=1 If each tree t j i is assigned a cost g ij, then a possible objective function to minimize is: N n k F = Σ Σ g ij x ij i=1 j=1 CAD for VLSI 33

Contd. 0-1 integer programming formulation: Minimize N n k Σ Σ g ij x ij i=1 j=1 Subject to: n i Σ x ij = 1, 1 i N j=1 N n k Σ Σ a ip x lk c i, 1 i M k=1 l=1 x kj = 0,1 1 k N, 1 j n k CAD for VLSI 34

Contd. General formulation. Looks at the problem globally. Not feasible for large input sizes. Time complexity increases exponentially with problem size. CAD for VLSI 35

Performance Driven Routing Advent of deep sub-micron technology Interconnect delay constitutes a significant part of the total net delay. Reduction in feature sizes has resulted in increased wire resistance. Increased proximity between the devices and interconnections results in increased cross-talk noise. Routers should model the cross-talk noise between adjacent nets. For routing high-performance circuits, techniques adopted: Buffer insertion Wire sizing High-performance topology generation CAD for VLSI 36