Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and...

91
© KLMH Lienig Global Routing Presented By: Sridhar H Rangarajan IBM STG India Enterprise Systems Development

Transcript of Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and...

Page 1: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

© K

LMH

Lien

ig

Global Routing

Presented By:Sridhar H RangarajanIBM STG India Enterprise Systems Development

Page 2: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 2

Global Routing

IntroductionTerminology and DefinitionsOptimization GoalsRepresentations of Routing RegionsThe Global Routing FlowSingle-Net Routing

n Rectilinear Routingn Global Routing in a Connectivity Graphn Finding Shortest Paths with Dijkstra’s Algorithmn Finding Shortest Paths with A* Search

Full-Netlist Routingn Routing by Integer Linear Programmingn Rip-Up and Reroute (RRR)

Modern Global Routingn Pattern Routingn Negotiated-Congestion Routing

Page 3: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 3

Given a placement, a netlist and technology information, n determine the necessary wiring, e.g., net topologies and specific

routing segments, to connect these cells n while respecting constraints, e.g., design rules and routing resource

capacities, and n optimizing routing objectives, e.g., minimizing total wirelength and

maximizing timing slack.

Introduction

Page 4: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 44

Terminology:n Net: Set of two or more pins that have the same electric potentialn Netlist: Set of all nets. n Congestion: Where the shortest routes of several nets are

incompatible because they traverse the same tracks. n Fixed-die routing: Chip outline and routing resources are fixed.n Variable-die routing: New routing tracks can be added as needed.

Introduction

Page 5: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

130 nm 90 nm 65 nm 45 nm 32 nmM1M2M3M4M5B1B2

M1M2M3M4B1B2B3

E1

E2

M1M2M3M4

B1B2

C1C2

B3E1

U1

U2

M1M2M3M4

B1B2B3

E1

E2

M5

W1

W2

M1M2

M4M5M6

M3

Representative layer stacks for 130 nm - 32 nm technology nodes

Each layer has a preferred direction and alternates between layers

Introduction

Page 6: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Introduction - Pitch

Page 7: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

1X

2X

4X

Introduction – Different wire sizes

Page 8: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Introduction - Via

Top Metal Layer m3

Middle Via Layer v2

Bottom Metal Layer m2

Page 9: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 9

Gcells (Tiles) with macro cell layout

Metal1

Metal2

Metal3

Metal4 etc.

Introduction - GCell

Page 10: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Introduction - GCell

Page 11: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Introduction - GCell

n Global tile node & global edgen Overflow: the amount of routing demand

that exceeds the given capacity

11

Global tilenode

Global edge

Tile

Tile boundary

Page 12: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 12

Introduction - GCell

Ø Total Overflow

Page 13: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 13

C

D

A

B

43

214

3

4

1

1

654

Netlist:

N1 = {C4, D6, B3} N2 = {D4, B4, C1, A4}N3 = {C2, D5}N4 = {B1, A1, C3}

Technology Information (Design Rules)

Placement result

Introduction: General Routing Problem

Page 14: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 14

Netlist:

N1 = {C4, D6, B3}N2 = {D4, B4, C1, A4}N3 = {C2, D5}N4 = {B1, A1, C3}

Technology Information (Design Rules)

Introduction: General Routing Problem

C

D

A

B

43

214

3

4

1

1

654

N1

Page 15: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 15

Netlist:

N1 = {C4, D6, B3}N2 = {D4, B4, C1, A4}N3 = {C2, D5}N4 = {B1, A1, C3}

Technology Information (Design Rules)

Introduction: General Routing Problem

C

D

A

B

43

214

3

4

1

1

654

N2 N3N4 N1

Page 16: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 16

Timing-Driven Routing

GlobalRouting

DetailedRouting

Large Single-Net Routing

Coarse-grain assignment of routes to routing regions

Fine-grain assignment of routes to routing tracks

Net topology optimization and resource allocation to critical nets

Power (VDD) and Ground (GND) routing

Routing

Geometric Techniques

Non-Manhattanand clock routing

Global Routing

Multi-Stage Routing of Signal Nets

Page 17: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 17

n Wire segments are tentatively assigned (embedded) within the chip layout

n Chip area is represented by a coarse routing gridn Available routing resources are represented by edges with

capacities in a grid graph Þ Nets are assigned to these routing resources

Global Routing

Introduction

Page 18: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 18

N3

N3

N1 N2N1

N3

N1 N2

N3

N3

N1 N2N1

N3

N1 N2

HorizontalSegment ViaVertical

Segment

Detailed Routing

Introduction

Global Routing

Page 19: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 19

5.1.2 Globalverdrahtung

Detailed Routing

Placement

Congestion Map

Wire Tracks

Global Routing

Page 20: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 2020

Terminology and Definitions

• Routing Track: Horizontal wiring path

• Routing Column: Vertical wiring path

• Routing Region: Region that contains routing tracks or columns

• Uniform Routing Region: Evenly spaced horizontal/vertical grid

• Non-uniform Routing Region: Horizontal and vertical boundaries that are aligned to external pin connections or macro-cell boundaries resulting in routing regions that have differing sizes

Page 21: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 21

Channel

Standard cell layout (Two-layer routing)

Terminology and Definitions

Rectangular routing region with pins on two opposite sides

Page 22: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 22

Routing channel

Channel

Routing channel

Terminology and Definitions

Standard cell layout (Two-layer routing)

Rectangular routing region with pins on two opposite sides

Page 23: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 23

Capacity

A A

B B

B

B B

BC

C

DC

CD

dpitchh

Horizontal Routing Channel

Terminology and Definitions

Number of available routing tracks or columns

Page 24: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 24

n For single-layer routing, the capacity is the height h of the channel divided by the pitchdpitch

n For multilayer routing, the capacity σ is the sum of the capacities of all layers.

Capacity

åÎ ú

úû

ú

êêë

ê=

Layerslayer pitch layerdhLayersσ

)()(

A A

B B

B

B B

BC

C

DC

CD

dpitchh

Horizontal Routing Channel

Terminology and Definitions

Number of available routing tracks or columns

Page 25: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 25

A

B

BC

C

3B

AB

VerticalChannel

VerticalChannel

HorizontalChannel

HorizontalChannel

Switchbox (Two-layer macro cell layout)

Terminology and Definitions

Intersection of horizontal and vertical channels

Horizontal channel is routed after vertical channel is routed

Page 26: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 26

A BC

CB

AB

B C

VerticalChannel

HorizontalChannel

T-junction (Two-layer macro cell layout)

Terminology and Definitions

Page 27: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 27

2D and 3D Switchboxes

Metal5

Bottom pin connectionon 3D switchbox

3D switchbox

2D switchbox

Pin on channel boundary

Top pin connection on cell

Horizontalchannel

Metal4

Metal3Metal2Metal1

Vertical channel

Terminology and Definitions

Page 28: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 28

Metal1(Standard cells)

Metal2(Cell ports)

Metal3

Metal4 usw.

Terminology and Definitions

Gcells (Tiles) with standard cells

Page 29: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 29

Metal1(Back-to-back-standard cells)

Metal2(Cell ports)

Metal3

Metal4 etc.

Terminology and Definitions

Gcells (Tiles) with standard cells (back-to-back)

Page 30: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 30

n Global routing seeks to¨ determine whether a given placement is routable, and ¨ determine a coarse routing for all nets within available routing

regions

n Considers goals such as¨ minimizing total wirelength, and¨ reducing signal delays on critical nets

Optimization Goals

Page 31: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 31

Optimization Goals

Full-custom design

B

FA

C

D

E

H

V

H

A B

F

D H

V

C E

1

2

3

4

55

B

FA

C

D

E1 23

4

(2) Channel ordering

B

FA

C

D

E

(1) Types of channels

Layout is dominated by macro cells and routing regions are non-uniform

Page 32: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 32

Optimization Goals

Standard-cell design

A

A

A

A

A

Feedthroughcells

If number of metal layers is limited, feedthrough cells must be used to route across multiple cell rows

Variable-die,standard cell design:

Total height = ΣCell row heights + All channel heights

Page 33: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 33

Optimization Goals

Standard-cell design

Steiner tree solution with minimal wirelength

Steiner tree solution withfewest feedthrough cells

Page 34: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 34

n Routing regions are represented using efficient data structures

n Routing context is captured using a graph, where ¨ nodes represent routing regions and ¨ edges represent adjoining regions

n Capacities are associated with both edges and nodes to represent available routing resources

Representations of Routing Regions

Page 35: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 35

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

Grid graph model

ggrid = (V,E), where the nodes v Î V represent the routing grid cells (gcells)and the edges represent connections of grid cell pairs (vi,vj)

Representations of Routing Regions

Page 36: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 36

1 2 3

4

5

6

7

8

9 1 2 3

4

5

6

7

8

9

Channel connectivity graph

G = (V,E), where the nodes v Î V represent channels, and the edges E represent adjacencies of the channels

Representations of Routing Regions

Page 37: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 37

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Switchbox connectivity graph

G = (V, E), where the nodes v Î V represent switchboxesand an edge exists between two nodes if the corresponding switchboxes are on opposite sides of the same channel

Representations of Routing Regions

Page 38: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 38

The Global Routing Flow – General Idea1. Defining the routing regions (Region definition)

¨ Layout area is divided into routing regions

¨ Nets can also be routed over standard cells

¨ Regions, capacities and connections are represented by a graph

2. Mapping nets to the routing regions (Region assignment)

¨ Each net of the design is assigned to one or several routing regions to connect all of its pins

¨ Routing capacity, timing and congestion affect mapping

Page 39: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 39

B (2, 6)

A (2, 1)

C (6, 4)

B (2, 6)

A (2, 1)

C (6, 4)S (2, 4)

Rectilinear Steiner minimum tree (RSMT)

Rectilinear minimum spanning tree (RMST)

Rectilinear Routing

Page 40: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 4040

Rectilinear Routing

• An RMST can be computed in O(p2) time, where p is the number of terminalsin the net using methods such as Prim’s Algorithm

• Prim’s Algorithm builds an MST by starting with a single terminal and greedily adding least-cost edges to the partially-constructed tree

• Advanced computational-geometric techniques reduce the runtime to O(p log p)

Page 41: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 41

Characteristics of an RSMTn An RSMT for a p-pin net has between 0 and p – 2 (inclusive) Steiner

pointsn The degree of any terminal pin is 1, 2, 3, or 4 n The degree of a Steiner point is either 3 or 4n A RSMT is always enclosed in the minimum bounding box (MBB) of

the netn The total edge length LRSMT of the RSMT is at least half the perimeter

of the minimum bounding box of the net: LRSMT ³ LMBB / 2

Rectilinear Routing

Page 42: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 42

Hanan grid

n Adding Steiner points to an RMST can significantly reduce the wirelength

n Maurice Hanan proved that for finding Steiner points, it suffices to consider only points located at the intersections of vertical and horizontal lines that pass through terminal pins

n The Hanan grid consists of the lines x = xp, y = yp that pass through the location (xp,yp) of each terminal pin p

n The Hanan grid contains at most (n2-n) candidate Steiner points (n = number of pins), thereby greatly reducing the solution space for finding an RSMT

Rectilinear Routing

Page 43: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 43

Hanan points ( ) RSMTIntersection linesTerminal pins

Rectilinear Routing

Page 44: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 44

Definining routing regions Pins assigned to grid cellsPin connections

Rectilinear Routing

Page 45: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 45

Pins assigned to grid cells Assigned routing regionsand feedthrough cells

A A

A

A

A A A

A

A

A A

Rectilinear Steiner minimum tree (RSMT)

Sequential Steiner Tree Heuristic

Rectilinear Routing

Page 46: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 46

A Sequential Steiner Tree Heuristic

1. Find the closest (in terms of rectilinear distance) pin pair, construct their minimum bounding box (MBB)

2. Find the closest point pair (pMBB,pC) between any point pMBB on the MBB and pC from the set of pins to consider

3. Construct the MBB of pMBB and pC

4. Add the L-shape that pMBB lies on to T (deleting the other L-shape). If pMBB is a pin, then add any L-shape of the MBB to T.

5. Goto step 2 until the set of pins to consider is empty

Rectilinear Routing

Page 47: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 47

1

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 48: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 48

1

2

1

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 49: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 49

1

2

3

1

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

MBB

pc

Page 50: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 50

1

2

3 1

2

3

1 2 4

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

pMBB

Page 51: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 51

1

2

3 1

2

3

4

5

1

2

3

41 2 3

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 52: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 52

1

2

3 1

2

3

4

5

1

2

3

4

1

2

3

4

56

1 2 3

4

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 53: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 53

1

2

3

4

56

7

1

2

3 1

2

3

4

5

1

2

3

4

1

2

3

4

56

1 2 3

4 5

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 54: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 54

1

2

3

4

56

7

1

2

3 1

2

3

4

5

1

2

3

4

56

7

1

2

3

4

1

2

3

4

56

1 2 3

4 5 6

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 55: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 55

1

2

3

4

56

7

1

2

3 1

2

3

4

5

1

2

3

4

56

7

1

2

3

4

1

2

3

4

56

1 2 3

4 5 6

Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Page 56: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 56

1 2 3

4

5

6

7

8

9 1 2 3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Channel connectivity graph

Switchboxconnectivity graph

Global Routing in a Connectivity Graph

Page 57: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 57

Global Routing in a Connectivity Graph

Channel connectivity graph

Switchboxconnectivity graph

Page 58: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 58

n Combines switchboxes and channels, handles non-rectangular block shapes

n Suitable for full-custom design and multi-chip modules

Overview:

Routing regions

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

A

Global Routing in a Connectivity Graph

Graph-based path search

2,2

4,2

1,2

2,7

4,2

0,1 1,2

3,1

2,2

4,24,2

0,4

Graph representation

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

Page 59: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 59

Horizontal macro-cell edges Vertical macro-cell edges

Defining the routing regions

Global Routing in a Connectivity Graph

+

Page 60: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 60

2

3

4

5

67

89

101112

131415

16

1718

19

20

21

22

23

24

25

2627

1

2

3

4

5

6

7

8

9

10

11 12

13 14 15

16

17

18

19

20

21

22

23

24

25

26

27

1

Defining the connectivity graph

Global Routing in a Connectivity Graph

Page 61: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 61

2

3

4

5

67

89

101112

131415

16

1718

19

20

21

22

23

24

25

2627

1

2

3

4

5

6

7

8

9

10

11 12

13 14 15

16

17

18

19

20

21

22

23

24

25

26

27

1,2

Horizontal capacity of routing region 1

Vertical capacity of routing region 1

2 Tracks

1 Tr

ack

1

Global Routing in a Connectivity Graph

Page 62: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 62

2

3

4

5

67

89

101112

131415

16

1718

19

20

21

22

23

24

25

2627

1

2

3

4

5

6

7

8

9

10

11 12

13 14 15

16

17

18

19

20

21

22

23

24

25

26

27

1,2

2,2

2,2

2,2

3,2

1,2

1,2

2,1

3,1

1,3

2,3

1,1

2,1

3,1 3,1

1,1

2,1

4,1

3,1

1,1

6,1

3,1

1,1

1,1

1,4

3,4

1,8

1

Global Routing in a Connectivity Graph

Page 63: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 63

Algorithm Overview 1. Define routing regions 2. Define connectivity graph 3. Determine net ordering4. Consider each net

a) Free corresponding tracks for net’s pins b) Decompose net into two-pin subnets c) Find shortest path for subnet connectivity graph d) If no shortest path exists, do not route, otherwise, assign subnet to the

nodes of shortest path and update routing capacities 5. If there are unrouted nets, goto Step 5, otherwise END

Global Routing in a Connectivity Graph

Page 64: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 64

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

Example

Global routing of the nets A-A and B-B

Page 65: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 65

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

B

AB

A

0,1

3,1

0,4

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2

5 68

7

2,2

4,2

9

10

4,2

11 12

Example

Global routing of the nets A-A and B-B

Page 66: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 66

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

B

AB

A

B

AB

A

1 2 3

4

2,2

4,2

1,2

2,7

4,2

0,1 1,2

5 68

3,1

7

2,2

4,2

9

10

4,2

0,4

11 12

1

4 1,2 0,1

5 6

4,2

0,4

2 3

1,1

3,1

1,7

4,1

1,1

8

2,1

7

1,1

3,1

9

10

11 12

Example

Global routing of the nets A-A and B-B

Page 67: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 67

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

B

AB

A

Example

Global routing of the nets A-A and B-B

Page 68: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 68

1 2 3

3,1 3,4 3,3

1,4 1,1 1,4 1,3

3,4 3,1 3,3

45 6 7

8 9 10

B

AB

A

4 5 7

8

6

9 10

1 2 3Example

Determine routability of a placement

B

AB

A

4 5 7

8

6

9 10

1 2 3

?1 2 3

3,1 3,4 3,3

0,3 0,1 0,4 0,2

3,4 3,1 2,2

45 6 7

8 9 10

B

AB

A

4 5 7

8

6

9 10

1 2 3

1 2 3

3,1 3,4 3,3

0,3 0,1 0,4 0,2

3,4 3,1 2,2

45 6 7

8 9 10

Page 69: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 69

1 2 3

3,1 3,4 3,3

1,4 1,1 1,4 1,3

3,4 3,1 3,3

45 6 7

8 9 10

B

AB

A

4 5 7

8

6

9 10

1 2 3

B

AB

A

4 5 7

8

6

9 10

1 2 3

B

AB

A

4 5 7

8

6

9 10

1 2 3

1 2 3

3,1 3,4 3,3

0,3 0,1 0,4 0,2

3,4 3,1 2,2

45 6 7

8 9 10

1 2 3

2,0 2,3 3,3

0,2 0,0 0,3 0,2

2,3 2,0 2,2

45 6 7

8 9 10

Example

Determine routability of a placement

Page 70: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 70

B

AB

A

4 5 7

8

6

9 10

1 2 3

B

AB

A

4 5 7

8

6

9 10

1 2 3

Example

Determine routability of a placement

Page 71: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Single-Source Shortest Path Problem

Single-Source Shortest Path Problem - The problem of finding shortest paths from a source vertex v to all other vertices in the graph.

Page 72: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra's algorithm Dijkstra's algorithm - is a solution to the single-source shortest path problem in graph theory.

Works on both directed and undirected graphs. However, all edges must have nonnegative weights.

Approach: Greedy

Input: Weighted graph G={E,V} and source vertex v∈V, such that all edge weights are nonnegative

Output: Lengths of shortest paths (or the shortest paths themselves) from a given source vertex v∈V to all other vertices

Page 73: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra's algorithm - Pseudocode

dist[s] ←0 (distance to source vertex is zero)for all v ∈ V–{s}

do dist[v] ←∞ (set all other distances to infinity) S←∅ (S, the set of visited vertices is initially empty) Q←V (Q, the queue initially contains all vertices) while Q ≠∅ (while the queue is not empty) do u ← mindistance(Q,dist) (select the element of Q with the min. distance)

S←S∪{u} (add u to list of visited vertices) for all v ∈ neighbors[u]

do if dist[v] > dist[u] + w(u, v) (if new shortest path found)then d[v] ←d[u] + w(u, v) (set new value of shortest path)

(if desired, add traceback code)return dist

Page 74: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 75: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 76: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 77: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 78: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 79: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 80: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 81: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 82: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 83: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig

Dijkstra Example

Page 84: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 84

Finding Shortest Paths with A* Search

n A* search operates similarly to Dijkstra’s algorithm, but extends the cost function to include an estimated distance from the current node to the target

n Expands only the most promising nodes; its best-first search strategy eliminates a large portion of the solution space

A* search(exploring 6 nodes)

Dijkstra‘s algorithm(exploring 31 nodes)

12

34

1356

78

910

2911

12

1415

1617

18

19212022

2325

2627

2830

24

OOO31

12

43

5 O

O6O

s s

t ts Source

t

O

Target

Obstacle

Page 85: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 85

Finding Shortest Paths with A* Search

n Bidirectional A* search: nodes are expanded from both the source and target until the two expansion regions intersect

n Number of nodes considered can be reduced

Bidirectional A* search

12

43

5 O

OO 1

2

65

3 O

OO4

s s

t t

Unidirectional A* search

s Source

t

O

Target

Obstacle

Page 86: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 86

Full-Netlist Routing

n Global routers must properly match nets with routing resources, without oversubscribing resources in any part of the chip

n Signal nets are either routed ¨ simultaneously, e.g., by integer linear programming, or ¨ sequentially, e.g., one net at a time

n When certain nets cause resource contention or overflow for routing edges, sequential routing requires multiple iterations: rip-up and reroute

Page 87: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 87

Rip-Up and Reroute (RRR)

n Rip-up and reroute (RRR) framework: focuses on hard-to-route nets

n Idea: allow temporary violations, so that all nets are routed, but then iteratively remove some nets (rip-up), and route them differently (reroute)

D

BD’

A’

B’

C’C

A

D

B

C

AD’

A’

B’

C’

Routing without allowing violations

WL = 21

D

B

C

AD’

A’

B’

C’

Routing with allowing violations and RRR

WL = 19

Page 88: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 88

n General flow for modern global routers, where each router uses a unique set of optimizations:

Global Routing Instance

Net Decomposition Initial Routing

3D Layer Assignment

Final Improvements

no

yes

Rip-up and Reroute

Violations?

(optional)

Modern Global Routing

3D to 2D capacity mapping

Net Decomposition

Page 89: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 89

n Negotiated-Congestion Routing¨ Each edge e is assigned a cost value cost(e) that reflects the demand for

edge e¨ A segment from net net that is routed through e pays a cost of cost(e) ¨ Total cost of net is the sum of cost(e) values taken over all edges used

by net:

¨ The edge cost cost(e) is increased according to the edge congestion φ(e), defined as the total number of nets passing through e divided by the capacity of 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 algorithm, A* search, etc.) find routes with minimum cost while respecting edge capacities

åÎ

=nete

ecostnetcost )()(

)()()(eσeηeφ =

Modern Global Routing

Page 90: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 90

Summary

n Input: netlist, placement, obstacles + (usually) routing gridn Partitions the routing region (chip or block) into global routing cells

(gcells)n Considers the locations of cells within a region as identicaln Plans routes as sequences of gcellsn Minimizes total length of routes and, possibly, routed congestionn May fail if routing resources are insufficient

¨ Variable-die can expand the routing area, so can't usually fail¨ Fixed-die is more common today (cannot resize a block in a larger chip)

n 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

Page 91: Global Routing - Indian Institute of Technology Madras€¦ · ¨ Routing capacity, timing and congestion affect mapping. g 39 B(2, 6) A(2, 1) C(6, 4) B(2, 6) A(2, 1) C(6, 4) S(2,

Lien

ig 91

Summaryn 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

(in a connectivity graph of the routing regions)¨ Three-pin nets usually have 0 or 1 branching point¨ Larger nets are more difficult to handle

n 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

n 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)