Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical...

55
ECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece5745

Transcript of Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical...

Page 1: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

ECE 5745 Complex Digital ASIC DesignTopic 13: Physical Design Automation

Algorithms

Christopher Batten

School of Electrical and Computer EngineeringCornell University

http://www.csl.cornell.edu/courses/ece5745

Page 2: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Part 3: CAD Algorithms

RTL to LogicSynthesis

TechnologyIndependent

Synthesis

TechnologyDependentSynthesis

x = a'bc + a'bc'y = b'c' + ab' + ac

x = a'by = b'c' + ac

Placement

DetailedRouting

GlobalRouting

Placement

ECE 5745 T13: Physical Design Automation Algorithms 2 / 53

Page 3: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Placement

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 4

©K

LM

H

Lien

ig

c

h

f

b

a

gd

e

a c b hg d ef

eh

g f

d a

c b

GND

VDD

Linear Placement

2D Placement Placement and Routing with Standard Cells

h e d a

g f c b

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 3 / 53

Page 4: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Global vs. Detailed Placement

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 5

©K

LMH

Lien

ig

4.1 Introduction

Global Placement

DetailedPlacement

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 4 / 53

Page 5: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Placement Objective Functions

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 6

©K

LMH

Lien

ig

4.2 Optimization Objectives

Total Wirelength

Number of Cut Nets

Wire Congestion

Signal Delay

©20

11 S

prin

ger V

erla

g

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 7

©K

LMH

Lien

ig

4.2 Optimization Objectives – Total Wirelength

a

b

c

e

d g

f

h

i

j

l

k

c ed

g

f h

il

k

j

a

b

©20

11 S

prin

ger V

erla

g

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 5 / 53

Page 6: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Good vs. Bad Placement

4Kurt Keutzer

Results of Placement

Bad placement causes routing congestion resulting in:

• Increases in circuit area (cost) and wiring

• Longer wires Æ more capacitance

z Longer delay

z Higher dynamic power dissipation

Good placement

•Circuit area (cost) and wiring decreases

• Shorter wires Æ less capacitance

z Shorter delay

z Less dynamic power dissipation

Adapted from [Devadas’06]

ECE 5745 T13: Physical Design Automation Algorithms 6 / 53

Page 7: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Partitioning

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 4

©K

LMH

Lien

ig

Circuit:

Cut ca: four external connections

1

2

4

5

3

6

7 8

5

6

48

7 23

1

56

48

7 2

3 1

Cut ca

Cut cb

Block A Block B Block A Block B

Cut cb: two external connections

2.1 Introduction

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 7 / 53

Page 8: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Partitioning Terminology

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 5

©K

LMH

Lien

ig

2.2 Terminology

5 6

4

2

1

3 3

2

4

5 61

Graph G2: Nodes 1, 2, 6.

Graph G1: Nodes 3, 4, 5.

Collection of cut edgesCut set: (1,3), (2,3), (5,6),

Block (Partition)

Cells

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 8 / 53

Page 9: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 9

©K

LM

H

Lien

ig

Given: A graph with 2n nodes where each node has the same weight.

Goal: A partition (division) of the graph into two disjoint subsets A and B with

minimum cut cost and |A| = |B| = n.

2

5

6

3

1

4

7

8

Example: n = 4

Block A Block B

2.4.1 Kernighan-Lin (KL) Algorithm

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 9 / 53

Page 10: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm Concepts

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 10

©K

LM

H

Lie

nig

Cost D(v) of moving a node v

D(v) = |Ec(v)| – |Enc(v)| ,

where

Ec(v) is the set of v’s incident edges that are cut by the cut line, and

Enc(v) is the set of v’s incident edges that are not cut by the cut line.

High costs (D > 0) indicate that the node should move, while low costs (D < 0) indicate that the node should stay within the same partition.

2

5

6

3

1

4

7

8Node 3:

D(3) = 3-1=2

Node 7:

D(7) = 2-1=1

2.4.1 Kernighan-Lin (KL) Algorithm – Terminology

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 10 / 53

Page 11: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm Concepts

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 11

©K

LMH

Lien

ig

Gain of swapping a pair of nodes a und b

∆g = D(a) + D(b) - 2* c(a,b),

where• D(a), D(b) are the respective costs of nodes a, b • c(a,b) is the connection weight between a and b:

If an edge exists between a and b, then c(a,b) = edge weight (here 1), otherwise, c(a,b) = 0.

The gain ∆g indicates how useful the swap between two nodes will be

The larger ∆g, the more the total cut cost will be reduced

2

5

6

3

1

4

7

8

2.4.1 Kernighan-Lin (KL) Algorithm – Terminology

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 11 / 53

Page 12: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm Concepts

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 12

©K

LMH

Lien

ig

Gain of swapping a pair of nodes a und b

∆g = D(a) + D(b) - 2* c(a,b),

where• D(a), D(b) are the respective costs of nodes a, b • c(a,b) is the connection weight between a and b:If an edge exists between a and b, then c(a,b) = edge weight (here 1), otherwise, c(a,b) = 0.

2

5

6

3

1

4

7

8Node 3:D(3) = 3-1=2

Node 7:D(7) = 2-1=1

∆g (3,7) = D(3) + D(7) - 2* c(a,b) = 2 + 1 – 2 = 1

=> Swapping nodes 3 and 7 would reduce the cut size by 1

2

5

6

3

1

4

7

8

2.4.1 Kernighan-Lin (KL) Algorithm – Terminology

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 12 / 53

Page 13: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm Concepts

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 13

©K

LMH

Lien

ig

Gain of swapping a pair of nodes a und b

∆g = D(a) + D(b) - 2* c(a,b),

where• D(a), D(b) are the respective costs of nodes a, b • c(a,b) is the connection weight between a and b:If an edge exists between a and b, then c(a,b) = edge weight (here 1), otherwise, c(a,b) = 0.

2

5

6

3

1

4

7

8Node 3:D(3) = 3-1=2

Node 5:D(5) = 2-1=1

∆g (3,5) = D(3) + D(5) - 2* c(a,b) = 2 + 1 – 0 = 3

=> Swapping nodes 3 and 5 would reduce the cut size by 3

2

5

6

3

1

4

7

8

2.4.1 Kernighan-Lin (KL) Algorithm – Terminology

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 13 / 53

Page 14: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 25

©K

LM

H

Lie

nig

Cut cost: 9

Not fixed:

1,2,3,4,5,6,7,8

2

5

6

3

1

4

7

8

Cut cost: 9

Not fixed:

Cut cost: 6

Not fixed:

1,2,4,6,7,8

Cut cost: 1

Not fixed:

1,2,7,8

Cut cost: 7

Not fixed:

2,8

D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2

D(3) = 2 D(7) = 1

D(4) = 1 D(8) = 1

∆g1 = 2+1-0 = 3

Swap (3,5)G1 = ∆g1 =3

D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1

D(4) = 3 D(8)=-1

∆g2 = 3+2-0 = 5

Swap (4,6)G2 = G1+∆g2 =8

D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3

∆g3 = -3-3-0 = -6

Swap (1,7)G3= G2 +∆g3 = 2

D(2) = -1 D(8)=-1

∆g4 = -1-1-0 = -2

Swap (2,8)G4 = G3 +∆g4 = 0

2.4.1 Kernighan-Lin (KL) Algorithm – Example

2

5

6

3

1

4

7

8

2

5

6

3

1

4

7

8

2

5

6

3

1

4

7

8

2

5

6

3

1

4

7

8

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 14 / 53

Page 15: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Kernighan-Lin (KL) Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 27

©K

LM

H

Lie

nig

D(1) = 1 D(5) = 1D(2) = 1 D(6) = 2D(3) = 2 D(7) = 1D(4) = 1 D(8) = 1

∆g1 = 2+1-0 = 3Swap (3,5)G1 = ∆g1 =3

D(1) = -1 D(6) = 2D(2) = -1 D(7)=-1D(4) = 3 D(8)=-1

∆g2 = 3+2-0 = 5Swap (4,6)G2 = G1+∆g2 =8

D(1) = -3 D(7)=-3D(2) = -3 D(8)=-3

∆g3 = -3-3-0 = -6Swap (1,7)G3= G2 +∆g3 = 2

D(2) = -1 D(8)=-1

∆g4 = -1-1-0 = -2Swap (2,8)G4 = G3 +∆g4 = 0

Since Gm > 0, the first m = 2 swaps (3,5) and (4,6) are executed.

2

5

6

3

1

4

7

8

2.4.1 Kernighan-Lin (KL) Algorithm – Example

Since Gm > 0, more passes are needed until Gm ≤ 0.

Maximum positive gain Gm = 8 with m = 2.

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 14 / 53

Page 16: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Min-Cut Placement

I Use partitioning algorithm (such as KL) to divide netlist into tworegions

I Use partitioning algorithm to recursively divide the two partitions intotwo smaller regions (four regions total)

I Each cut heuristically minimizes the number of cut nets

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 15 / 53

Page 17: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Min-Cut Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 24

©K

LM

H

Lien

ig

Given:

Task: 4 x 2 placement with minimum wirelength using alternative cutline directions and the KL algorithm

1

2

3

4

5 6

4.3.1 Min-Cut Placement – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 16 / 53

Page 18: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Min-Cut Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 25

©K

LMH

Lien

ig

4.3.1 Min-Cut-Platzierung: Beispiel

Vertical cut cut1: L={1,2,3}, R={4,5,6}

1

2

3

0

4

5

6

0

1

2 3

0

4 5

6

0

cut1 cut1

1

2

3

4

5 6

cut1

KL Algorithms

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 17 / 53

Page 19: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Min-Cut Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 26

©K

LMH

Lien

ig

Horizontal cut cut2L: T={1,4}, B={2,0}

1

2 0

4

Horizontal cut cut2R: T={3,5}, B={6,0}

3 5

60cut2L cut2R

1 4 5 3

2 6

1

2 3

0

4 5

6

0

cut1

1

20

4 5 3

06cut3BL cut3BR

cut3TL cut3TR

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 18 / 53

Page 20: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Analytical Placement withQuadratic Placement Algorithm

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 4: Global and Detailed Placement 29

©K

LMH

Lien

ig

4.3.2 Analytic Placement – Quadratic Placement

• Objective function is quadratic; sum of (weighted) squared Euclidean distancerepresents placement objective function

where n is the total number of cells, and c(i,j) is the connection cost between cells i and j.

• Only two-point-connections

• Minimize objective function by equating its derivative to zero which reduces to solving a system of linear equations

( ) ( )( )∑=

−+−=n

jijijiij yyxxcPL

1,

22

21)(

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 19 / 53

Page 21: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Minimizing Objective Function Clumps Cells TogetherLayout after Min-cut

Now global placement problem will be solved again with two additional center_of_gravity constraints

Adapted from [Devadas’06]

ECE 5745 T13: Physical Design Automation Algorithms 20 / 53

Page 22: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

• Placement • Global Routing Detailed Routing

Using Partitioning to Pull Cells Apart

20Kurt Keutzer

First Iteration

A. Kahng

22Kurt Keutzer

Third Iteration

A. Kahng

21Kurt Keutzer

Second Iteration

A. Kahng

23Kurt Keutzer

Fourth Iteration

A. KahngAdapted from [Devadas’06,Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 21 / 53

Page 23: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Part 3: CAD Algorithms

RTL to LogicSynthesis

TechnologyIndependent

Synthesis

TechnologyDependentSynthesis

x = a'bc + a'bc'y = b'c' + ab' + ac

x = a'by = b'c' + ac

Placement

DetailedRouting

GlobalRoutingGlobalRouting

ECE 5745 T13: Physical Design Automation Algorithms 22 / 53

Page 24: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

General Routing Problem

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 8

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

Netlist:

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

Technology Information (Design Rules)

5.1 Introduction: General Routing Problem

C

D

A

B

43

214

3

4

1

1

654

N2 N3N4 N1

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 23 / 53

Page 25: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Routing Algorithm Taxonomy

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 9

©K

LM

H

Lie

nig

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

5.1 Introduction

Multi-Stage Routing of Signal Nets

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 24 / 53

Page 26: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Global vs. Detailed Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 11

©K

LM

H

Lien

ig

©20

11 S

prin

ger

Ver

lag

N3

N3

N1 N2N1

N3

N1 N2

N3

N3

N1 N2N1

N3

N1 N2

HorizontalSegment Via

VerticalSegment

Detailed Routing

5.1 Introduction

Global Routing

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 25 / 53

Page 27: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Terminology: Channel

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 14

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

Channel

Standard cell layout (Two-layer routing)

5.2 Terminology and Definitions

Rectangular routing region with pins on two opposite sides

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 26 / 53

Page 28: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Terminology: Channel

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 15

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

Routing channel

Channel

Routing channel

5.2 Terminology and Definitions

Standard cell layout (Two-layer routing)

Rectangular routing region with pins on two opposite sides

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 27 / 53

Page 29: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Terminology: Capacity

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 16

©K

LM

H

Lien

ig

©20

11 S

prin

ger

Ver

lag

Capacity

A A

B B

B

B B

BC

C

DC

CD

dpitchh

Horizontal Routing Channel

5.2 Terminology and Definitions

Number of available routing tracks or columns

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 28 / 53

Page 30: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Terminology: Switchbox

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 18

©K

LMH

Lien

ig

A

B

BC

C

3B

AB

VerticalChannel

VerticalChannel

HorizontalChannel

HorizontalChannel

Switchbox (Two-layer macro cell layout)

5.2 Terminology and Definitions

Intersection of horizontal and vertical channels

Horizontal channel is routed after vertical channel is routed

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 29 / 53

Page 31: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Terminology: Feed-Through Cells

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 26

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

5.3 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

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 30 / 53

Page 32: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Optimizing Wirelength vs. Number of Feedthroughs

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 27

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

5.3 Optimization Goals

Standard-cell design

Steiner tree solution withminimal wirelength

Steiner tree solution withfewest feedthrough cells

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 31 / 53

Page 33: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Rectilinear Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 42

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

Definining routing regions Pins assigned to grid cellsPin connections

5.6.1 Rectilinear Routing

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 32 / 53

Page 34: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Rectilinear Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 43

©K

LMH

Lien

ig

©20

11 S

prin

ger V

erla

g

Pins assigned to gridcells

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

5.6.1 Rectilinear Routing

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 33 / 53

Page 35: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Heuristic Sequential Steiner Tree Algorithm

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 44

©K

LM

H

Lie

nig

©201

1 S

pring

er

Verlag

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

5.6.1 Rectilinear Routing

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 34 / 53

Page 36: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Heuristic Sequential Steiner Tree Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 52

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

5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 35 / 53

Page 37: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement • Global Routing • Detailed Routing

Heuristic Sequential Steiner Tree Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5: Global Routing 53

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

5.6.1 Rectilinear Routing: Example Sequential Steiner Tree Heuristic

Adapted from [Kahng’11]

ECE 5745 T13: Physical Design Automation Algorithms 35 / 53

Page 38: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Part 3: CAD Algorithms

RTL to LogicSynthesis

TechnologyIndependent

Synthesis

TechnologyDependentSynthesis

x = a'bc + a'bc'y = b'c' + ab' + ac

x = a'by = b'c' + ac

Placement

DetailedRouting

GlobalRouting

DetailedRouting

ECE 5745 T13: Physical Design Automation Algorithms 36 / 53

Page 39: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Detailed Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 8

©K

LMH

Lien

ig

6.1 Terminology

Channel and Switchbox Routing

A A

B B

B

B

BC

C

C

CD

D

B

BE

E

E

B

D

B

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 37 / 53

Page 40: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Horizontal Constraint Graphs

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 16

©K

LMH

Lien

ig

• Let S(col) denote the set of nets that pass through column col

• S(col) contains all nets that either (1) are connected to a pin in column color (2) have pin connections to both the left and right of col

• Since horizontal segments cannot overlap, each net in S(col) must be assigned to a different track in column col

• S(col) represents the lower bound on the number of tracks in colum col; lower bound of the channel height is given by maximum cardinality of any S(col)

A C E C E A F H H G0

0 B D E B GF 0 D 0 0Column a b c d e f g h i j k

S(b) = {A, B, C}

6.3.1 Horizontal Constraint Graphs

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 38 / 53

Page 41: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Horizontal Constraint Graph Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 19

©K

LMH

Lien

ig

S(c) S(f)S(g) S(i)0 B D E B GF 0 D 0 0

S(a)S(b) S(d)S(e) S(h) S(j)S(k)

0 B D E B GF 0 D 0 0Column a b c d e f g h i j k

A C E C E A F H H G0

A C E C E A F H H G0

BA

C D

E FG

H

6.3.1 Horizontal Constraint Graphs

S(a) = {A}S(b) = {A,B,C}S(c) = {A,B,C,D,E}S(d) = {A,B,C,D,E}S(e) = {A,B,D,E}S(f) = {A,D,F}S(g) = {D,F}S(h) = {D,G,H}S(i) = {D,G,H}S(j) = {G,H}S(k) = {G}

,G}

Focus on columnswhich are not subsetsof any other column

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 39 / 53

Page 42: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Horizontal Constraint Graph Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 20

©K

LMH

Lien

ig

S(c) S(f)S(g) S(i)

S(c) S(f) S(g) S(i)ABCD

FG

H

E

0 B D E B GF 0 D 0 0Column a b c d e f g h i j k

A C E C E A F H H G0

0 B D E B GF 0 D 0 0

A C E C E A F H H G0

BA

C D

E FG

H

6.3.1 Horizontal Constraint Graphs

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 40 / 53

Page 43: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Vertical Constraint Graphs

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 32

©K

LMH

Lien

ig

B

E

C

D

A

F

G

H

6.3.2 Vertical Constraint Graphs

0 B D E B GF 0 D 0 0

A C E C E A F H H G0

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 41 / 53

Page 44: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 38

©K

LM

H

Lien

ig

1. Generate VCG and zone representation

A

E

C

JD

B

F

G

H

I

A G

B H

C I

D J

E F

0 A D E A GF 0 D I J J

B C E C E B F H I H G I

6.3.1 Left-Edge Algorithm – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 42 / 53

Page 45: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 39

©K

LMH

Lien

ig

A G

B H

C I

D J

E F

2. Consider next track3. Find left-to-right ordering of all unassigned nets

If curr_net has no parents and does not cause conflicts on curr_trackassign curr_net

curr_track = 1: Net JNet A

E

C

D

B

F

G

H

I

JA

4. Delete placed nets (A, J ) in VCG and zone represenation

6.3.1 Left-Edge Algorithm – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 43 / 53

Page 46: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 40

©K

LMH

Lien

ig40

B C E C E B F H I H G I

curr_track = 12

3

4

5

0 A D E A GF 0 D I J J

6.3.1 Left-Edge Algorithm – Example

©20

11 S

prin

ger V

erla

g

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 44 / 53

Page 47: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 41

©K

LMH

Lien

ig

curr_track = 2:

E

C

B

F

G

H

I

G

H

C I

D

E F

Net D

4. Delete placed nets (D ) in VCG and zone representation

B

2. Consider next track3. Find left-to-right ordering of all unassigned nets

If curr_net has no parents and does not cause conflicts on curr_trackassign curr_net

D

6.3.1 Left-Edge Algorithm – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 45 / 53

Page 48: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 42

©K

LMH

Lien

ig42

B C E C E B F H I H G I

1curr_track = 2

3

4

5

0 A D E A GF 0 D I J J

6.3.1 Left-Edge Algorithm – Example

©20

11 S

prin

ger V

erla

g

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 46 / 53

Page 49: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 43

©K

LM

H

Lie

nig

curr_track = 3:

E

C

B

F

G

H

I

G

H

C I

E F

Net E Net G

4. Delete placed nets (E, G ) in VCG and zone representation

B

2. Consider next track

3. Find left-to-right ordering of all unassigned nets

If curr_net has no parents and does not cause conflicts on curr_trackassign curr_net

6.3.1 Left-Edge Algorithm – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 47 / 53

Page 50: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 44

©K

LMH

Lien

ig44

B C E C E B F H I H G I

12

curr_track = 3

4

5

0 A D E A GF 0 D I J J

6.3.1 Left-Edge Algorithm – Example

©20

11 S

prin

ger V

erla

g

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 48 / 53

Page 51: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 45

©K

LM

H

Lie

nig

curr_track = 4:

C

B

FH

IH

C I

F

Net C Net F Net I

4. Delete placed nets (C, F, I ) in VCG and zone representation

B

2. Consider next track

3. Find left-to-right ordering of all unassigned nets

If curr_net has no parents and does not cause conflicts on curr_trackassign curr_net

6.3.1 Left-Edge Algorithm – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 49 / 53

Page 52: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 46

©K

LM

H

Lie

nig46

B C E C E B F H I H G I

1

2

3

curr_track = 4

5

0 A D E A GF 0 D I J J

6.3.1 Left-Edge Algorithm – Example

©201

1 S

pring

er

Verlag

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 50 / 53

Page 53: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 47

©K

LMH

Lien

ig

curr_track = 5:

B

H

B H

Net B Net H

4. Delete placed nets (B, H ) in VCG and zone representation

2. Consider next track3. Find left-to-right ordering of all unassigned nets

If curr_net has no parents and does not cause conflicts on curr_trackassign curr_net

6.3.1 Left-Edge Algorithm – Example

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 51 / 53

Page 54: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Left-Edge Algorithm Example

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 6: Detailed Routing 48

©K

LMH

Lien

ig48

B C E C E B F H I H G I

12

3

4

curr_track = 5

Routing result

0 A D E A GF 0 D I J J

6.3.1 Left-Edge Algorithm – Example

©20

11 S

prin

ger V

erla

g

Adapted from [Khang’11]

ECE 5745 T13: Physical Design Automation Algorithms 52 / 53

Page 55: Christopher Batten - Cornell UniversityECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms Christopher Batten School of Electrical and Computer Engineering

Placement Global Routing • Detailed Routing •

Acknowledgments

I [Devadas’06] S. Devadas, “VLSI CAD Flow: Logic Synthesis, Placement, andRouting,” MIT 6.375 Complex Digital Systems Guest Lecture Slides, 2006.

I [Kahng’11] A.B. Kahng, J. Liening, I.L. Markov, and J. Hu. Companion Slides for “VLSIPhysical Design: From Graph Partitioning to Timing Closure,” Springer 2011.

ECE 5745 T13: Physical Design Automation Algorithms 53 / 53