Sie sind auf Seite 1von 19

Single-Net Routing

KLMH

5.6

5.1

Introduction

5.2

Terminology and Definitions

5.3

Optimization Goals

5.4

Representations of Routing Regions

5.5

The Global Routing Flow

5.6

Single-Net Routing
5.6.1 Rectilinear Routing
5.6.2 Global Routing in a Connectivity Graph
5.6.3 Finding Shortest Paths with Dijkstras Algorithm
5.6.4 Finding Shortest Paths with A* Search

Full-Netlist Routing

5.8

2011 Springer Verlag

5.7.1 Routing by Integer Linear Programming


5.7.2 Rip-Up and Reroute (RRR)

Modern Global Routing


5.8.1 Pattern Routing
5.8.2 Negotiated-Congestion Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

Lienig

5.7

Rectilinear Routing
KLMH

5.6.1

B (2, 6)

A (2, 1)

Rectilinear minimum
spanning tree (RMST)

VLSI Physical Design: From Graph Partitioning to Timing Closure

C (6, 4)

A (2, 1)

Rectilinear Steiner
minimum tree (RSMT)

Chapter 5: Global Routing

2011 Springer Verlag

C (6, 4)

S (2, 4)

Lienig

B (2, 6)

RMST- Rectilinear Minimum spanning tree


KLMH

5.6.1

An RMST can be computed in O(p2) time, where p is the number of terminals


in the net using methods such as Prims Algorithm

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

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

Lienig

2011 Springer Verlag

RSMT -Rectilinear Steiner Minimum Tree


KLMH

5.6.1

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

The degree of any terminal pin is 1, 2, 3, or 4


The degree of a Steiner point is either 3 or 4

A RSMT is always enclosed in the minimum bounding box (MBB) of the net

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

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

Lienig

2011 Springer Verlag

Rectilinear Routing
KLMH

5.6.1

Transforming an initial RMST into a low-cost RSMT

p3

p2

p3

p1

Construct L-shapes between points


with (most) overlap of net segments

VLSI Physical Design: From Graph Partitioning to Timing Closure

S1
p1

p2

p3

p3

p1
Final tree (RSMT)
2011 Springer Verlag

p1

p2

Chapter 5: Global Routing

Lienig

p2

Rectilinear Routing
KLMH

5.6.1

Adding Steiner points to an spanning tree can significantly reduce the


wirelength

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

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

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

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

Lienig

2011 Springer Verlag

Hanan grid

Hanans theorem
KLMH

5.6.1

Hanan points ( )

RSMT

For a set of P pins, there exists an RSMT of P with Steiner points chosen
from the Hanan grid*
* Hanan, On Steiner's problem with rectilinear distance, SIAM J. Applied
Math., 1966.
VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

2011 Springer Verlag

Intersection lines

Lienig

Terminal pins

KLMH

Hwangs theorem
In 1976, Hwang proved an interesting relationship between minimum spanning tree and minimum steiner tree for a set of pins.

MST- Minimum spanning tree, RSMT- rectilinear steiner minimum tree


This equation gives a strong motivation for constructing an RSMT by an

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

Lienig

2011 Springer Verlag

MST-based approximation algorithm

KLMH

Many heuristics for RSMT

Ho et al. constructed an RSMT from an MST by maximizing non-detour edge


(e.g., L-shaped, Z-shaped) overlaps by dynamic programming [Ho 1990].

Kahng and Robins developed the iterated 1-Steiner heuristic. Starting with the
minimum spanning tree, they iteratively select one Steiner point that can
reduce the wire length most and then add the Steiner point to the tree [Kahng
1990]

[Chu 2004] developed the FLUTE package by use of precomputed lookup


tables to efficiently and accurately estimate the wirelength for multi-pin nets

[Chu 2004] C. Chu, FLUTE: fast lookup table based wirelength estimation technique, in Proc. IEEE/ ACM Int. Conf. on ComputerAided Design, pp. 696701, November 2004.

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

Lienig

[Kahng 1990] A. B. Kahng and G. Robins, A new class of Steiner tree heuristics with good performance: the iterated 1-Steiner
approach, in Proc. IEEE/ACM Int. Conf. on Computer-Aided Design, pp. 428431, November 1990.

2011 Springer Verlag

[Ho 1990] J.-M. Ho, C. K. Vijayan, and C. K. Wong, New algorithms for the rectilinear Steiner tree problem, IEEE Trans. on
Computer-Aided Design, 9(2), pp. 185193, February 1990.

Rectilinear Routing
KLMH

5.6.1

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.

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

10

Lienig

2011 Springer Verlag

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

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

11

Lienig

2011 Springer Verlag

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

12

Lienig

2011 Springer Verlag

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

pc
3

1
2

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

13

Lienig

2011 Springer Verlag

MBB

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

1
2

1
2

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

14

Lienig

2011 Springer Verlag

pMBB

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

1
2

1
2

1
2
4

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

15

Lienig

2011 Springer Verlag

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

1
2

1
2

1
2
4

4
5

4
6

2011 Springer Verlag

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

16

Lienig

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

1
2

1
2

1
2

4
5

4
6

2
4

5
6

2011 Springer Verlag

7
VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5: Global Routing

17

Lienig

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

1
2

1
2

1
2

4
5

4
6

2
4

5
6

5
7

VLSI Physical Design: From Graph Partitioning to Timing Closure

1
2
4
5

6
6

4
5

7
Chapter 5: Global Routing

2011 Springer Verlag

18

Lienig

Rectilinear Routing: Example Sequential Steiner Tree Heuristic


KLMH

5.6.1

1
2

1
2

1
2

4
5

4
6

2
4

5
6

5
7

VLSI Physical Design: From Graph Partitioning to Timing Closure

1
2
4
5

6
6

4
5

7
Chapter 5: Global Routing

2011 Springer Verlag

19

Lienig