VLSI Physical Design Automation Lecture 9 Introduction to

  • Slides: 51
Download presentation
VLSI Physical Design Automation Lecture 9. Introduction to Routing; Global Routing (I) Prof. David

VLSI Physical Design Automation Lecture 9. Introduction to Routing; Global Routing (I) Prof. David Pan dpan@ece. utexas. edu Office: ACES 5. 434 11/21/2020 1

Introduction to Routing 11/21/2020 2

Introduction to Routing 11/21/2020 2

Routing in design flow B A C Netlist INV Routing AND OR Floorplan/Placement 11/21/2020

Routing in design flow B A C Netlist INV Routing AND OR Floorplan/Placement 11/21/2020 3

The Routing Problem • Apply it after floorplanning/placement • Input: – Netlist – Timing

The Routing Problem • Apply it after floorplanning/placement • Input: – Netlist – Timing budget for, typically, critical nets – Locations of blocks and locations of pins • Output: – Geometric layouts of all nets • Objective: – Minimize the total wire length, the number of vias, or just completing all connections without increasing the chip area. – Each net meets its timing budget. 11/21/2020 4

The Routing Constraints • Examples: – – – Placement constraint Number of routing layers

The Routing Constraints • Examples: – – – Placement constraint Number of routing layers Delay constraint Meet all geometrical constraints (design rules) Physical/Electrical/Manufacturing constraints: • Crosstalk • Process variations, yield, or lithography issues? 11/21/2020 5

Steiner Tree • For a multi-terminal net, we can construct a spanning tree to

Steiner Tree • For a multi-terminal net, we can construct a spanning tree to connect all the terminals together. • But the wire length will be large. • Better use Steiner Tree: A tree connecting all terminals and some additional nodes (Steiner nodes). Steiner Node • Rectilinear Steiner Tree: Steiner tree in which all the edges run horizontally and vertically. 11/21/2020 6

Routing Problem is Very Hard • Minimum Steiner Tree Problem: – Given a net,

Routing Problem is Very Hard • Minimum Steiner Tree Problem: – Given a net, find the Steiner tree with the minimum length. – This problem is NP-Complete! • May need to route tens of thousands of nets simultaneously without overlapping. • Obstacles may exist in the routing region. 11/21/2020 7

Kinds of Routing • Global Routing • Detailed Routing – Channel – Switchbox •

Kinds of Routing • Global Routing • Detailed Routing – Channel – Switchbox • Others: – Maze routing – Over the cell routing – Clock routing 11/21/2020 8

Approaches for Routing • Sequential Approach: – Route nets one at a time. –

Approaches for Routing • Sequential Approach: – Route nets one at a time. – Order depends on factors like criticality, estimated wire length, and number of terminals. – When further routing of nets is not possible because some nets are blocked by nets routed earlier, apply ‘Rip-up and Reroute’ technique (or ‘Shove-aside’ technique). • Concurrent Approach: – Consider all nets simultaneously, i. e. , no ordering. – Can be formulated as integer programming. 11/21/2020 9

Classification of Routing 11/21/2020 10

Classification of Routing 11/21/2020 10

General Routing Paradigm Two phases: 11/21/2020 11

General Routing Paradigm Two phases: 11/21/2020 11

Extraction and Timing Analysis • After global routing and detailed routing, information of the

Extraction and Timing Analysis • After global routing and detailed routing, information of the nets can be extracted and delays can be analyzed. • If some nets fail to meet their timing budget, detailed routing and/or global routing needs to be repeated. 11/21/2020 12

Global Routing Global routing is divided into 3 phases: 1. Region definition 2. Region

Global Routing Global routing is divided into 3 phases: 1. Region definition 2. Region assignment 3. Pin assignment to routing regions 11/21/2020 13

Region Definition Divide the routing area into routing regions of simple shape (rectangular): Switchbox

Region Definition Divide the routing area into routing regions of simple shape (rectangular): Switchbox Channel • Channel: Pins on 2 opposite sides. • 2 -D Switchbox: Pins on 4 sides. • 3 -D Switchbox: Pins on all 6 sides. 11/21/2020 14

Routing Regions 11/21/2020 15

Routing Regions 11/21/2020 15

Routing Regions in Different Design Styles Gate-Array Standard-Cell Full-Custom Feedthrough Cell 11/21/2020 16

Routing Regions in Different Design Styles Gate-Array Standard-Cell Full-Custom Feedthrough Cell 11/21/2020 16

Region Assignment Assign routing regions to each net. Need to consider timing budget of

Region Assignment Assign routing regions to each net. Need to consider timing budget of nets and routing congestion of the regions. 11/21/2020 17

Graph Modeling of Routing Regions • Grid Graph Modeling • Checker Board Graph Modeling

Graph Modeling of Routing Regions • Grid Graph Modeling • Checker Board Graph Modeling • Channel Intersection Graph Modeling 11/21/2020 18

Grid Graph A terminal A node with terminals 11/21/2020 19

Grid Graph A terminal A node with terminals 11/21/2020 19

Checker Board Graph capacity 1 2 1 1 1 A node with terminals A

Checker Board Graph capacity 1 2 1 1 1 A node with terminals A terminal 11/21/2020 20

Channel Intersection Graph A node with terminals A terminal Routings along the channels 11/21/2020

Channel Intersection Graph A node with terminals A terminal Routings along the channels 11/21/2020 21

Approaches for Global Routing Sequential Approach: – Route the nets one at a time.

Approaches for Global Routing Sequential Approach: – Route the nets one at a time. – Order dependent on factors like criticality, estimated wire length, etc. – If further routing is impossible because some nets are blocked by nets routed earlier, apply Rip-up and Reroute technique. – This approach is much more popular. 11/21/2020 22

Approaches for Global Routing Concurrent Approach: – Consider all nets simultaneously. – Can be

Approaches for Global Routing Concurrent Approach: – Consider all nets simultaneously. – Can be formulated as an integer program. 11/21/2020 23

Pin Assignment Assign pins on routing region boundaries for each net. (Prepare for the

Pin Assignment Assign pins on routing region boundaries for each net. (Prepare for the detailed routing stage for each region. ) 11/21/2020 24

11/21/2020 25

11/21/2020 25

Maze Routing 11/21/2020 26

Maze Routing 11/21/2020 26

Maze Routing Problem • Given: – A planar rectangular grid graph. – Two points

Maze Routing Problem • Given: – A planar rectangular grid graph. – Two points S and T on the graph. – Obstacles modeled as blocked vertices. • Objective: – Find the shortest path connecting S and T. • This technique can be used in global or detailed routing (switchbox) problems. 11/21/2020 27

Grid Graph S S S ü T Area Routing X X T Grid Graph

Grid Graph S S S ü T Area Routing X X T Grid Graph (Maze) 11/21/2020 X X ü ü T Simplified Representation 28

Maze Routing S T 11/21/2020 29

Maze Routing S T 11/21/2020 29

Lee’s Algorithm “An Algorithm for Path Connection and its Application”, C. Y. Lee, IRE

Lee’s Algorithm “An Algorithm for Path Connection and its Application”, C. Y. Lee, IRE Transactions on Electronic Computers, 1961. 11/21/2020 30

Basic Idea • A Breadth-First Search (BFS) of the grid graph. • Always find

Basic Idea • A Breadth-First Search (BFS) of the grid graph. • Always find the shortest path possible. • Consists of two phases: – Wave Propagation – Retrace 11/21/2020 31

An Illustration S 0 1 2 3 3 4 5 4 11/21/2020 5 3

An Illustration S 0 1 2 3 3 4 5 4 11/21/2020 5 3 5 T 6 32

Wave Propagation • At step k, all vertices at Manhattan-distance k from S are

Wave Propagation • At step k, all vertices at Manhattan-distance k from S are labeled with k. • A Propagation List (FIFO) is used to keep track of the vertices to be considered next. S S 0 0 1 2 3 3 S 0 1 2 3 3 4 3 T After Step 0 T After Step 3 11/21/2020 5 4 5 3 5 T After Step 6 33 6

Retrace • Trace back the actual route. • Starting from T. • At vertex

Retrace • Trace back the actual route. • Starting from T. • At vertex with k, go to any vertex with label k-1. S 0 1 2 3 3 4 5 3 5 T 6 Final labeling 11/21/2020 34

How many grids visited using Lee’s algorithm? 13 121110 7 6 7 7 12

How many grids visited using Lee’s algorithm? 13 121110 7 6 7 7 12 1110 9 6 5 6 7 1110 9 8 7 6 5 4 3 7 6 54 3 2 1 2 3 4 6 5 4 3 2 1 S 1 23 3 2 1 2 3 4 9 8 7 6 10 9 8 7 3 5 1110 9 8 9 10 76 12 11 10 11121110 9 8 11121312 1110 9 13 12 12 13 1312 1110 13 13 1211 1312 T 13 11/21/2020 9 10 8 9 101112 7 8 9 1011 6 7 8 9 10 5 67 8 9 4 5 6 7 8 5 6 78 9 6 7 8 9 10111213 111213 13 35

Time and Space Complexity • For a grid structure of size w h: •

Time and Space Complexity • For a grid structure of size w h: • Time per net = O(wh) • Space = O(wh log wh) (O(log wh) bits are needed to store each label. ) • For a 4000 grid structure: • 24 bits per label • Total 48 Mbytes of memory! 11/21/2020 36

Improvement to Lee’s Algorithm • Improvement on memory: – Aker’s Coding Scheme • Improvement

Improvement to Lee’s Algorithm • Improvement on memory: – Aker’s Coding Scheme • Improvement on run time: – – – Starting point selection Double fan-out Framing Hadlock’s Algorithm Soukup’s Algorithm 11/21/2020 37

Aker’s Coding Scheme to Reduce Memory Usage 11/21/2020 38

Aker’s Coding Scheme to Reduce Memory Usage 11/21/2020 38

Aker’s Coding Scheme • For the Lee’s algorithm, labels are needed during the retrace

Aker’s Coding Scheme • For the Lee’s algorithm, labels are needed during the retrace phase. • But there are only two possible labels for neighbors of each vertex labeled i, which are, i-1 and i+1. • So, is there any method to reduce the memory usage? 11/21/2020 39

Aker’s Coding Scheme One bit (independent of grid size) is enough to distinguish between

Aker’s Coding Scheme One bit (independent of grid size) is enough to distinguish between the two labels. Sequence: . . . … (what sequence? ) S T (Note: In the sequence, the labels before and after each label must be different in order to tell the forward or the backward directions. ) 11/21/2020 40

Schemes to Reduce Run Time 1. Starting Point Selection: T S S 2. Double

Schemes to Reduce Run Time 1. Starting Point Selection: T S S 2. Double Fan-Out: T 3. Framing: S S T T 11/21/2020 41

Hadlock’s Algorithm to Reduce Run Time 11/21/2020 42

Hadlock’s Algorithm to Reduce Run Time 11/21/2020 42

Detour Number For a path P from S to T, let detour number d(P)

Detour Number For a path P from S to T, let detour number d(P) = # of grids directed away from T, then L(P) = MD(S, T) + 2 d(P) length D D D S T shortest Manhattan distance D: Detour d(P) = 3 MD(S, T) = 6 L(P) = 6+2 x 3 = 12 So minimizing L(P)11/21/2020 and d(P) are the same. 43

Hadlock’s Algorithm • Label vertices with detour numbers. • Vertices with smaller detour number

Hadlock’s Algorithm • Label vertices with detour numbers. • Vertices with smaller detour number are expanded first. • Therefore, favor paths without detour. 3 2 1 1 1 2 3 2 1 S 0 0 1 2 2 2 0 0 0 2 T 1 2 2 2 11/21/2020 44

Soukup’s Algorithm to Reduce Run Time 11/21/2020 45

Soukup’s Algorithm to Reduce Run Time 11/21/2020 45

Basic Idea • Soukup’s Algorithm: BFS+DFS – Explore in the direction towards the target

Basic Idea • Soukup’s Algorithm: BFS+DFS – Explore in the direction towards the target without changing direction. (DFS) – If obstacle is hit, search around the obstacle. (BFS) • May get Sub-Optimal solution. 2 2 1 1 S 1 1 2 2 11/21/2020 T 46

How many grids visited using Hadlock’s? S T 11/21/2020 47

How many grids visited using Hadlock’s? S T 11/21/2020 47

How many grids visited using Soukup’s? S T 11/21/2020 48

How many grids visited using Soukup’s? S T 11/21/2020 48

Multi-Terminal Nets • For a k-terminal net, connect the k terminals using a rectilinear

Multi-Terminal Nets • For a k-terminal net, connect the k terminals using a rectilinear Steiner tree with the shortest wire length on the maze. • This problem is NP-Complete. • Just want to find some good heuristics. 11/21/2020 49

Multi-Terminal Nets This problem can be solved by extending the Lee’s algorithm: – Connect

Multi-Terminal Nets This problem can be solved by extending the Lee’s algorithm: – Connect one terminal at a time, or – Search for several targets simultaneously, or – Propagate wave fronts from several different sources simultaneously. 11/21/2020 50

Extension to Multi-Terminal Nets 1 st Iteration S 0 2 nd Iteration 1 2

Extension to Multi-Terminal Nets 1 st Iteration S 0 2 nd Iteration 1 2 T 3 2 3 3 S 0 S 0 1 T 2 11/21/2020 T 1 1 2 2 51