Routing Topology Algorithms Mustafa Ozdal 1 Introduction How to - - PowerPoint PPT Presentation

routing topology algorithms
SMART_READER_LITE
LIVE PREVIEW

Routing Topology Algorithms Mustafa Ozdal 1 Introduction How to - - PowerPoint PPT Presentation

Routing Topology Algorithms Mustafa Ozdal 1 Introduction How to connect nets with multiple terminals? Net topologies needed before point-to-point routing between terminals. Several objectives: Minimum wirelength Best timing


slide-1
SLIDE 1

Routing Topology Algorithms

Mustafa Ozdal

1

slide-2
SLIDE 2

Introduction

  • How to connect nets with multiple terminals?
  • Net topologies needed before point-to-point routing between

terminals.

  • Several objectives:

– Minimum wirelength – Best timing – Routability

2

slide-3
SLIDE 3

Example

: receiver : driver

3

slide-4
SLIDE 4

Example – Star topology (suboptimal)

: receiver : driver

Connect each receiver to the driver independently.

4

slide-5
SLIDE 5

Example – Min Wirelength Topology

: receiver : driver

5

slide-6
SLIDE 6

Outline

  • Definitions and basic algorithms

– Minimum Spanning Trees (MST) – Steiner Trees – Rectilinear Steiner Trees

  • Wirelength vs timing tradeoff

6

slide-7
SLIDE 7

Minimum Spanning Tree (MST)

  • Consider a connected graph G = (V, E)

– V: terminals – E: potential connections between terminals – w(e): wirelength of edge e

  • MST: The set of edges ET such that:

– ET is a subset of E – The graph T = (V, ET) is connected – The total edge weight of ET is minimum

7

slide-8
SLIDE 8

MST Example

  • 5 vertices
  • 10 edges
  • Weight of edge e is

the Manhattan distance of e

  • What is the MST?

8

slide-9
SLIDE 9

MST Example

  • The edge set ET:

– W(ET) is minimum – T = (V, ET) is still connected

  • Note: T = (V, ET) must

contain n vertices and n-1 edges.

9

slide-10
SLIDE 10

Kruskal’s MST Algorithm

1. Initialize T as empty set 2. Define a disjoint set corresponding to each vertex in V. 3. Sort edges in non-decreasing order of weights 4. For each e = (v1, v2) in the sorted edge list

1. If v1 and v2 belong to different sets 1. Add e to T 2. Merge the sets corresponding to v1 and v2

5. Return T

10

slide-11
SLIDE 11

Kruskal’s MST Algorithm - Example

  • Initially, each

vertex is a disjoint set (different color)

  • We will process

edges from shortest to longest

11

slide-12
SLIDE 12

Kruskal’s MST Algorithm – Example Step 1

  • Start from the

shortest edge

  • The vertices

connected are in different sets

  • Add the edge to

MST

  • Merge the

vertices

12

slide-13
SLIDE 13

Kruskal’s MST Algorithm - Example Step 2

  • Process the next

shortest edge.

  • The vertices

connected are in different sets

  • Add the edge to

MST

  • Merge the

vertices

13

slide-14
SLIDE 14

Kruskal’s MST Algorithm – Example Step 3

  • Process the next

shortest edge.

  • The vertices

connected are in different sets

  • Add the edge to

MST

  • Merge the

vertices

14

slide-15
SLIDE 15

Kruskal’s MST Algorithm – Example Step 4

  • Process the next

shortest edge.

  • The vertices

connected are in different sets

  • Add the edge to

MST

  • Merge the

vertices

15

slide-16
SLIDE 16

Kruskal’s MST Algorithm – Example Step 5

  • Process the next

shortest edge.

  • The vertices

connected are in the same set

  • Skip the edge

16

slide-17
SLIDE 17

Kruskal’s MST Algorithm – Example Step 6

  • Process the next

shortest edge.

  • The vertices

connected are in different sets

  • Add the edge to

MST

  • Merge the

vertices

17

slide-18
SLIDE 18

Kruskal’s MST Algorithm – Example Step 7

  • All vertices are

connected

  • MST edges are

highlighted

18

slide-19
SLIDE 19

Prim’s MST Algorithm

1. Initialize VT and MST to be empty set 2. Pick a root vertex v in V (e.g. driver terminal) 3. Add v to VT 4. While VT is not equal to V

1. Find edge e = (v1, v2) such that 1. v1 is in VT 2. v2 is NOT in VT 3. weight of e is minimum 2. Add e to MST 3. Add v2 to VT

5. Return MST

19

slide-20
SLIDE 20

Prim’s MST Algorithm - Example

  • Initially, VT

contains the root vertex (e.g. driver)

20

slide-21
SLIDE 21

Prim’s MST Algorithm - Example

  • Pick the shortest

edge between VT and V - VT

  • Add that edge to

MST

  • Expand VT

21

slide-22
SLIDE 22

Prim’s MST Algorithm - Example

  • Pick the shortest

edge between VT and V - VT

  • Add that edge to

MST

  • Expand VT

22

slide-23
SLIDE 23

Prim’s MST Algorithm - Example

  • Pick the shortest

edge between VT and V - VT

  • Add that edge to

MST

  • Expand VT

23

slide-24
SLIDE 24

Prim’s MST Algorithm - Example

  • Pick the shortest

edge between VT and V - VT

  • Add that edge to

MST

  • Expand VT

24

slide-25
SLIDE 25

Prim’s MST Algorithm - Example

  • Pick the shortest

edge between VT and V - VT

  • Add that edge to

MST

  • Expand VT

25

slide-26
SLIDE 26

Prim’s MST Algorithm - Example

  • Pick the shortest

edge between VT and V - VT

  • Add that edge to

MST

  • Expand VT

26

slide-27
SLIDE 27

Prim’s MST Algorithm - Example

  • All vertices are

included in VT

  • MST edges are

highlighted

27

slide-28
SLIDE 28

MST – Summary

  • Find the min-cost edge set that connects a given vertex set.
  • Possible to solve it optimally in O(ElogE) time

– Kruskal’s algorithm – Prim’s algorithm

  • In general Prim’s algorithm is better to control timing

tradeoffs because we expand a wavefront from the driver.

28

slide-29
SLIDE 29

Steiner Trees

  • Similar to MSTs, but:

– Extra intermediate vertices can be added to reduce wirelength.

MST Steiner tree

Steiner point

29

slide-30
SLIDE 30

Rectilinear Steiner Trees

  • Steiner trees of which edges are all Manhattan

– i.e. The routing of the slanted edges are all pre-determined

Steiner tree Rectilinear Steiner tree

30

slide-31
SLIDE 31

Steiner Tree Algorithms

  • Steiner tree problem is NP-complete

– Most likely there’s no polynomial time optimal algorithm – Note: MST problem can be solved optimally in O(ElogE)

  • Many Steiner tree heuristics

– Iteratively add Steiner points to an MST – Route each edge of MST allowing Steiner points be created in the process. – Exponential time algorithms: Based on ILP, SAT, SMT solvers – A popular and practical algorithm: FLUTE

  • C. Chu et al., “FLUTE: Fast Lookup Table Based Rectilinear Steiner Minimal Tree Algorithm

for VLSI Design”, IEEE Trans. On CAD, Jan 2008.

31

slide-32
SLIDE 32

FLUTE for Steiner Tree Generation Example

  • “Press” terminals

from each side

32

slide-33
SLIDE 33

FLUTE for Steiner Tree Generation Example

  • Press from left
  • From the leftmost

terminal to the second leftmost one.

33

slide-34
SLIDE 34

FLUTE for Steiner Tree Generation Example

  • Create a Steiner edge

corresponding to pressing edge

  • Create a Steiner point

at the new location

Steiner point

34

It is proven that pressing maintains optimality

  • f Steiner tree.
slide-35
SLIDE 35

FLUTE for Steiner Tree Generation Example

  • Press from top

35

slide-36
SLIDE 36

FLUTE for Steiner Tree Generation Example

  • Press from top

36

slide-37
SLIDE 37

FLUTE for Steiner Tree Generation Example

  • Press from right

37

slide-38
SLIDE 38

FLUTE for Steiner Tree Generation Example

  • Press from bottom

38

slide-39
SLIDE 39

FLUTE for Steiner Tree Generation Example

  • Problem is reduced to

the rectangle at the center.

  • How to connect these

4 Steiner (orange) points?

39

slide-40
SLIDE 40

FLUTE for Steiner Tree Generation Example

  • FLUTE pre-computes

all Steiner tree solutions for such rectangles up to 10 terminals.

  • After pressing, if

there are less than 10 nodes, returns the solution from database.

40

slide-41
SLIDE 41

FLUTE for Steiner Tree Generation

  • The solutions for simple problems are stored in a database.
  • After pressing operations, if the problem is turned into one of those in the

database, the best solution in the database is returned.

  • If not in the database, use reduction heuristics.

Canonical solutions stored in database

41

slide-42
SLIDE 42

FLUTE for Steiner Tree Generation Example

  • Solution inside the

center rectangle is chosen from the database.

42

slide-43
SLIDE 43

FLUTE for Steiner Tree Generation Example

  • Final rectilinear

Steiner tree

43

slide-44
SLIDE 44

Cost Metrics

  • Many tradeoffs to consider for routing topologies
  • Topology with best wirelength can have poor timing
  • Topology with best wirelength and timing may not be routable

44

slide-45
SLIDE 45

Example Wirelength/Timing Tradeoff

: receiver : driver

45

slide-46
SLIDE 46

Example Min Wirelength

: receiver : driver

46

slide-47
SLIDE 47

Example Min Wirelength

: receiver : driver Large delay to receiver

47

slide-48
SLIDE 48

Example Better Timing – Worse Wirelength

: receiver : driver

48