routing 1 outline –what is routing? –why routing? –routing algorithms overview –global...

12
Routing 1 Outline What is Routing? Why Routing? Routing Algorithms Overview Global Routing Detail Routing Shortest Path Algorithms Goal Understand routing problem Understand overview of routing algorithms Understand shortest path algorithms

Post on 21-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Routing 1

Outline– What is Routing?

– Why Routing?

– Routing Algorithms Overview

– Global Routing

– Detail Routing

– Shortest Path Algorithms

Goal– Understand routing problem

– Understand overview of routing algorithms

– Understand shortest path algorithms

Page 2: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

What is Routing?

• Determination of component wiring– assignment of wires to routing areas

» restricted routing problems

» e.g. routing channel

– detailed wiring within areas

» layer assignment

» vias

• Goal– minimize routing area

» minimize wiring length

» minimize channel height

– minimize lengths of critical paths

– 100% completion in allocated space

» fixed wiring areas

» e.g. gate arrays, FPGAs

– minimize crosstalk

A

B CD

E

A

B CD

E

Page 3: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Why Routing?

• Hand routing impractical– 1k-100k nets in large chip designs

– prone to error

– example

» IBM TCM has 26 routing layers

» how to use layers?

• Multi-goal optimization– routing area

– delay

– cross-talk

– clock and power routing

– manufacturing yield

Page 4: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Objective Functions

• Minimize routing cost according to function– want fast but reasonably accurate metrics

– wiring area

» channel area = channel density * channel length

– wire length

» minimum spanning tree

» Steiner tree

» half-perimeter of bounding box

– wiring congestion

» track density along channels

1 2 4 3 1

peak density 4average 2.2peak/avg 1.82area = h*L

h

L

Page 5: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Types of Routers

• Global routers– function

» determine routing areas

» assign net to routing areas

» minimize global routing area, path lengths

– consider congestion, approximate path length

• Detail routers– goal

» route actual wires

» minimize routing area, path lengths

– general-purpose - maze, line probe

– restricted - channel, switchbox, river routers

• Specialized– power, clock routers

Page 6: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Example: Global Routing

A

B CD

E

A

B CD

E

A

B CD

E

A

B CD

E

Page 7: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Example: Detailed Routing

1

1 1

2 2 2

2 2

3

3

3

34

4

Page 8: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Shortest Path Algorithms

• Find shortest path between two vertices in weighted graph– graph with edge weights

– weight is distance, congestion, etc.

– search graph from source to destination

– backtrace to source once destination is found

• Used especially in global routing

13

3

1

10

2

5

1

2

31

4

S

D

Page 9: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Shortest Path Algorithms

• Single Pair Shortest Path– given graph (V, E) with edge weights

– find lowest weight path between vertex S and D

– actually shortest paths from S to all others

• Application to Global Routing– routing areas are edges

– module and area boundaries are vertices

– set weight as combination of routing distance and wire congestion

– route critical wires first

» critical to circuit timing

– edge weights steer wires away from congested areas

Page 10: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Dijkstra’s Algorithm

• Idea– put neighbors of vertex on list along with cost

» edge cost to get to vertex

– from list mark least-cost next vertex with cost

– add neighbors of new vertex to vertex list

– stop when destination vertex is marked

– time O(E) for E edges, O(V2) for complete graph

• Definitions– n - number of vertices

– u - source

– wt(v,w) - edge weight betwee v and w

Page 11: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Code

for i = 1 to n doif ((u,i) exists) D[1] = wt(u,i)else D[i] = INFP[i] = u

V’ = V - u; D[u] = 0while (|V’| > 0)

select v such that D[v] is min of D[w] for w in V’V’ = V’ - vfor w in V’

if (D[w] > D[v] + wt(v,w))D[w] = D[v] + wt(v,w) /* D[w] is len of shortest path from u to w */

P[w] = v /* P[w] is parent of w */for w in V

/* list shortest path from w to u */q = wprint qwhile (q != u)

q = P[q]print q

print q

Page 12: Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand

Example

13

3

1

10

2

5

1

2

31

4

S

D

0

1

3 3

13

3

1

10

2

5

1

2

31

4

S

D

0

1

3 3

2

13

3

1

10

2

5

1

2

31

4

S

D

0

1

3 3

2

4

12

13

3

1

10

2

5

1

2

31

4

S

D

0

1

3 3

2

4

5

5

13

3

1

10

2

5

1

2

31

4

S

D

0

1

3 3

2

4

5

12