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

Post on 21-Dec-2015

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

Example: Global Routing

A

B CD

E

A

B CD

E

A

B CD

E

A

B CD

E

Example: Detailed Routing

1

1 1

2 2 2

2 2

3

3

3

34

4

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

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

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

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

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

top related