Top Banner
Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)
78

Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

Jan 02, 2016

Download

Documents

Willis Chandler
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

1Penn ESE 535 Spring 2015 -- DeHon

ESE535:Electronic Design Automation

Day 14: March 16, 2015

Routing 2

(Pathfinder)

Page 2: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

2Penn ESE 535 Spring 2015 -- DeHon

Today

• Routing– Pathfinder

• graph based• global routing• simultaneous global/detail

Behavioral (C, MATLAB, …)

RTL

Gate Netlist

Layout

Masks

Arch. SelectSchedule

FSM assign

Two-level, Multilevel opt.CoveringRetiming

PlacementRouting

Page 3: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

3Penn ESE 535 Spring 2015 -- DeHon

Global Routing

• Problem: Find sequence of channels for all routes– minimizing channel sizes– minimize max channel size– meeting channel capacity limits

Page 4: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

4Penn ESE 535 Spring 2015 -- DeHon

GlobalGraph

• Graph Problem on routes through regions

w

Page 5: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

5Penn ESE 535 Spring 2015 -- DeHon

Global/Detail• With limited switching (e.g. FPGA)

– can represent routing graph exactly

Page 6: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

6Penn ESE 535 Spring 2015 -- DeHon

Global/Detail

Page 7: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

7Penn ESE 535 Spring 2015 -- DeHon

Routing in Graph

• Find {shortest,available} path between source and sink– search problem (e.g. BFS, A*)

Page 8: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

8Penn ESE 535 Spring 2015 -- DeHon

Breadth First Search (BFS)

• Start at source src• Put src node in priority queue with cost 0

– Priority queue orders by cost• While (not found sink)

– Pop least cost node from queue• Get: current_node, current_cost

– Is this sink? found– For each outgoing edge from current_node

• Push destination onto queue • with cost current_cost+edge_cost

Page 9: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

9

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 10: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

10

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Not possible touse minimumManhattandistance route.Why?

Page 11: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

11

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 12: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

12

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 13: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

13

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 14: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

14

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 15: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

15

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 16: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

16

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 17: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

17

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 18: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

18

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 19: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

19

Search Animation

Penn ESE 535 Spring 2015 -- DeHon

Page 20: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

20Penn ESE 535 Spring 2015 -- DeHon

Easy?

• Finding a path is moderately easy• What’s hard?• Can I just iterate and pick paths?

– Does greedy selection work?

Page 21: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

21Penn ESE 535 Spring 2015 -- DeHon

Example

s1 s3s2

d2d1 d3

All links capacity 1

si di

Page 22: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

22Penn ESE 535 Spring 2015 -- DeHon

Challenge

• Satisfy all routes simultaneously• Routes share potential resources• Greedy/iterative

– not know who will need which resources• E.g. consider routing s3->d3 then s2->d2 then s1->d1

– i.e. resource/path choice looks arbitrary– …but earlier decisions limit flexibility for later

• like scheduling– order effects result

s1 s3s2

d2d1 d3

Page 23: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

23Penn ESE 535 Spring 2015 -- DeHon

Negotiated Congestion

• Idea:– try once– see where we run into problems– undo problematic/blocking allocation

• rip-up– use that information to redirect/update

costs on subsequent trials• retry

Page 24: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

24Penn ESE 535 Spring 2015 -- DeHon

Negotiated Congestion

• Here– route signals– allow overuse– identify overuse and encourage signals to

avoid• reroute signals based on overuse/past

congestion

Page 25: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

25Penn ESE 535 Spring 2015 -- DeHon

Basic Algorithm

• Route signals along minimum cost path• If congestion/overuse

– assign higher cost to congested resources• Makes problem a shortest path search• Allows us to adapt costs/search to problem

• Repeat until done

Page 26: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

26Penn ESE 535 Spring 2015 -- DeHon

Key Idea

• Congested paths/resources become expensive

• When there is freedom– future routes with freedom to avoid congestion

will avoid the congestion• When there is less freedom

– must take congested routes• Routes that must use congested will,

others will chose uncongested paths

Page 27: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

27Penn ESE 535 Spring 2015 -- DeHon

Cost Function (1)

• PathCost= (link costs)• LinkCost = base f(#routes using, time)• Base cost of resource

– E.g. delay of resource– Encourage minimum resource usage

• (minimum length path, if possible)– minimizing delay = minimizing resources

• Congestion– penalizes (over) sharing– increase sharing penalty over time

s1 s3s2

d2d1 d3

2 3 4 31 1

1

11

44

32

1 1 1

3+1+4=8

Page 28: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

28Penn ESE 535 Spring 2015 -- DeHon

Example (first order congestion)

Base costs (delays)

s1 s3s2

d2d1 d3

2 3 4 31 1

1

11

44

3

2

1 1 1 Capacity

1 1

11 11 111

What is preferred path for s1d1, s2d2, s3d3?

FUTURE: maybe label circlesSo they can callout.

Page 29: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

29Penn ESE 535 Spring 2015 -- DeHon

Example (first order congestion)

s1 s3s2

d2d1 d3

2 3 4 31 1

1

11

44

3

2 Base costs (delays)

1 1 1 Capacity

All, individual routes prefer middle; create congestion.

1 1

11

1 111

1

11

11

11

Page 30: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

30Penn ESE 535 Spring 2015 -- DeHon

Example (first order congestion)

s1 s3s2

d2d1 d3

2 3 4 31 1

1

11

44

3

2 Base costs (delays)

1 1 1 Capacity

If make congestion expensive: e.g. cost(congest)=2users What happens when reroute s1d1?

1 1

11

1 111

1

11

11

11

Page 31: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

31Penn ESE 535 Spring 2015 -- DeHon

Example (first order congestion)

s1 s3s2

d2d1 d3

2 3 4 31 1

1

11

44

3

2 Base costs (delays)

1 1 1 Capacity

Reroute, avoid congestion.

11

11

Page 32: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

32Penn ESE 535 Spring 2015 -- DeHon

Example (need for history)

Base costs (delays)

Capacity

Need to redirect uncongested paths.

s1 s2

d2d12

1 1

s3

d3

1

s4

d4

2 2

1

11

1

21

1

1

21

1

Page 33: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

33Penn ESE 535 Spring 2015 -- DeHon

Example (need for history)

s1 s2

d2d1

2 2

2

1 1

1

1s3

d3

11

21

1

1

Imagine partially routed.s4

d4

11

21

1

1

Where do we route s3d3?

What happens when we reroute?

Page 34: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

34Penn ESE 535 Spring 2015 -- DeHon

Example (need for history)

Cannot route s3d3

s1 s2

d2d1

2 2

2

1 1

1

1s3

d3

11

21

1

1

Local congestion alone won’t drive in right directions.

Both paths equal cost…neither resolves problem.

May ping-pong back and forth.

(can imagine longer chain like this)

s4

d4

11

21

1

1

Page 35: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

35Penn ESE 535 Spring 2015 -- DeHon

Cost Function (2)

• Cost = (base + history)*f(#resources,time)

• History– avoid resources with history of congestion– E.g. add 1 to history every time resource is

congested

Page 36: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

36Penn ESE 535 Spring 2015 -- DeHon

Example (need for history)S3d3 and s4d4 initially ping-pong

Builds up congestion history on path 3 and 4

Eventually makes path 3 and 4 more expensive than path 1; …resolves conflict…

Adaptive cost scheme.

s1 s2

d2d1

2 2

2

1 1

1

1s3

d3

11

21

1

1

s4

d4

1

21

1

How does history help?

Page 37: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

37

Delay

Penn ESE 535 Spring 2015 -- DeHon

Page 38: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

38Penn ESE 535 Spring 2015 -- DeHon

What about delay?

• Existing formulation uses delay to reduces resources, but doesn’t directly treat

• How do we want to optimize delay?• Want:

– prioritize critical path elements for shorter delay

– allow nodes with slack to take longer paths

Page 39: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

39Penn ESE 535 Spring 2015 -- DeHon

Integrate Delay into Cost Function

• Cost=– (1-W(edge))*delay + W(edge) *congest– congest as before

• (base+history)*f(#signals,time)

• W(edge) = Slack(edge)/Dmax

0 for edge on critical path

>0 for paths with slack• Use W(edge) to order routes• Update critical path and W each round

Page 40: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

40Penn ESE 535 Spring 2015 -- DeHon

Cost Function (Delay)• Cost=

– (1-W(edge))*delay + W(edge) *congest– congest as before

• (base+history)*f(#signals,time)

• W(edge) = Slack(edge)/Dmax

• What happens if multiple slack 0 nets contend for edge?

• W(edge)=Max(minW,Slack(edge)/Dmax)– minW > 0

Page 41: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

41

Problem

• Are nanoseconds and congestion comparable?

• How normalize/weight so can add together?

Penn ESE 535 Spring 2015 -- DeHon

Page 42: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

42

VPR

• If doesn’t uncongest, weight congestion more

• Cost=(1-W(e))×delay + W(e)×PF(iter)×congest

PF=Pressure Factor Multiplier• Eventually congest dominates delay• What might go wrong?

Penn ESE 535 Spring 2015 -- DeHon

Page 43: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

43

VPR Pressure Factor

• Converges quickly• But may “freeze” with higher delay than

necessary• Netlist Shuffle experiment

Penn ESE 535 Spring 2015 -- DeHon [Rubin / FPGA 2011]

Page 44: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

44

VPR Pressure Factor Tuning

Penn ESE 535 Spring 2015 -- DeHon [Raphael Rubin 2010]

(1-W(e))×delay + W(e)×PF(iter)×congest

Page 45: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

45

Alternate Delay Approach

• Believe Pathfinder can resolve congestion• Pathfinder has trouble mixing delay and

congestion• Idea: Turn delay problem into congestion

problem– Reject paths that are too long– All signals compete only for resources that

will allow them to meet their timing goals

Penn ESE 535 Spring 2015 -- DeHon

Page 46: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

46

Outlaw Long Paths

• Issue: Critical path may go through multiple gates– Contain more than one gategate path– How allocate slack among paths?

Penn ESE 535 Spring 2015 -- DeHon

Target 12Gate 1Manhattan hop 1

Page 47: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

47

Outlaw Long Paths

• Issue: Critical path may go through multiple gates– Contain more than one gategate path– How allocate slack among paths?

Penn ESE 535 Spring 2015 -- DeHon

Target 12Gate 1Manhattan hop 1

Page 48: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

48

Outlaw Long Paths

• Issue: Critical path may go through multiple gates– Contain more than one gategate path– How allocate slack among paths?

Penn ESE 535 Spring 2015 -- DeHon

1 2 3 4

5 6 7 8

9

Target 12Gate 1Manhattan hop 1

Total Slack?

Page 49: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

49

Slack Budgeting• Divide slack among the paths

– Slack of 3– Example: give slack 1 to first link

2 to second

Penn ESE 535 Spring 2015 -- DeHon [So / FPGA 2008]

1 2 3 4

5 6 7 8

9

Page 50: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

50

Slack Budgeting• Divide slack among the paths• Each net now has delay target• Reject any path exceeding delay target• Reduce to congestion negotiation

Penn ESE 535 Spring 2015 -- DeHon [So / FPGA 2008]

5

6

Page 51: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

51

Slack Budgeting• Can often find lower delay routes that

VPR• Takes 10x as long

– Mostly in slack budgeting• Solution depends on slack budget

– Not exploiting full freedom to re-allocate slack among links

Penn ESE 535 Spring 2015 -- DeHon [So / FPGA 2008]

Page 52: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

52

Delay Target Routing

• Similar high-level idea• Just set target for Pathfinder cost

– Rather than allowing to float

Penn ESE 535 Spring 2015 -- DeHon

Page 53: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

53

Delay Target

• Cost= (1-W(edge))*delay + W(edge) *congest

• W(edge) = Slack(edge)/Dtarget

– Previously: denominate was Dmax

• Compute Slack based on Dtarget

– can be negative• W(edge)=Max(minW,Slack(edge)/Dtarget)

– minW > 0Penn ESE 535 Spring 2015 -- DeHon

Page 54: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

54

Delay Target Routing

• Does allow slack to be used on any of the gategate connections on path– …but not being that deliberate/efficient

about the allocation• Doesn’t require time for slack allocation

Penn ESE 535 Spring 2015 -- DeHon

Page 55: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

55

Delay Target Routing

Penn ESE 535 Spring 2015 -- DeHon [Rubin / FPGA 2011]

Page 56: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

56

Delay Target Routing

• Less sensitive to initial conditions

Penn ESE 535 Spring 2015 -- DeHon [Rubin / FPGA 2011]

Page 57: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

57Penn ESE 535 Spring 2015 -- DeHon

Run Time?

• Route |E| edges• Each path search O(|Egraph|) worst case

– …generally less• Iterations?

Page 58: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

58Penn ESE 535 Spring 2015 -- DeHon

Quality and Runtime Experiment• For Synthetic

netlists on HSRA– Expect to be worst-

case problems• Congestion only

– Quality = # channels• Number of

individual route trials limited (measured) as multiple of nets in design– (not measuring work

per route trial)

Page 59: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

59Penn ESE 535 Spring 2015 -- DeHon

Quality: fixed runtime

Page 60: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

60Penn ESE 535 Spring 2015 -- DeHon

Quality Target

Page 61: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

61Penn ESE 535 Spring 2015 -- DeHon

Conclusions?

• Iterations increases with N• Quality degrade as we scale?

Page 62: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

62Penn ESE 535 Spring 2015 -- DeHon

Techniques to Accelerate

(already in use in data just shown)

Page 63: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

63Penn ESE 535 Spring 2015 -- DeHon

Inefficient?

What is inefficient about this search?

How might we do better?

Page 64: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

64Penn ESE 535 Spring 2015 -- DeHon

Inefficient?

What if we only searched for minimum length paths?

How would we do that?

Downside?

Page 65: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

65

Recall Search Example

Penn ESE 535 Spring 2015 -- DeHon

Not possible touse minimumManhattandistance route.

Page 66: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

66

Only Search Minimum Length

Penn ESE 535 Spring 2015 -- DeHon

Page 67: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

67

Minimum Search

Penn ESE 535 Spring 2015 -- DeHon

What is the minimum we need to search (if uncongested)?

What would that search look like?

Page 68: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

68

BFS vs. DFS

Penn ESE 535 Spring 2015 -- DeHon

Page 69: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

69Penn ESE 535 Spring 2015 -- DeHon

Search Ordering

• Default: breadth first search for shortest– O(total-paths)

• Alternately: use A*:– estimated costs/path length, prune

candidates earlier– can be more depth first

• (search promising paths as long as know can’t be worse)

Page 70: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

70Penn ESE 535 Spring 2015 -- DeHon

BFS A*

• Start at source• Put src node in priority queue with cost 0

– Priority queue orders by cost– Cost = S (path so far) + min path to dest

• While (not found sink)– Pop least cost node from queue

• Get: current_node, current_cost– Is this sink? found– For each outgoing edge

• Push destination onto queue • with cost current_cost+edge_cost

Maybe show a parameter here for tuning how greedy?

Page 71: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

71Penn ESE 535 Spring 2015 -- DeHon

BFS vs. A*

Page 72: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

72Penn ESE 535 Spring 2015 -- DeHon

Single-side, Directed (A*)

Only expand search windows as prove necessary to have longer route.

Page 73: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

73Penn ESE 535 Spring 2015 -- DeHon

Search: one-side vs. two-sides

• One-side vs. Two-sides

Page 74: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

74Penn ESE 535 Spring 2015 -- DeHon

Searching• In general:

– greedy/depth first searching• find a path faster• may be more expensive

– (not least delay, congest cost)– tradeoff by weighting

• estimated delay on remaining path vs. cost to this point

• control greediness of router– More greedy is faster at cost of less optimal

paths (wider channels) • 40% W 10x time reduction [Tessier/thesis’98]

Page 75: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

75Penn ESE 535 Spring 2015 -- DeHon

Searching

• Use A* like search– Always expanded (deepen) along shortest

…as long as can prove no other path will dominate

– Uncongested: takes O(path-length) time– Worst-case reduces to breadth-first

• O(total-paths)

Page 76: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

76Penn ESE 535 Spring 2015 -- DeHon

Summary• Finding short path easy/well known• Complication: need to route set of

signals– who gets which path?– Arbitrary decisions earlier limit options later

• Idea: iterate/relax using congestion history– update path costs based on congestion

• Cost adaptive to route – reroute with new costs

• Accommodate delay and congestion

Page 77: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

77Penn ESE 535 Spring 2015 -- DeHon

Big Ideas

• Exploit freedom• Technique:

– Graph algorithms (BFS, DFS)– Search techniques: A*– Iterative improvement/relaxation– Adaptive cost refinement

Page 78: Penn ESE 535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 14: March 16, 2015 Routing 2 (Pathfinder)

78Penn ESE 535 Spring 2015 -- DeHon

Admin• Assignment 4 due Wednesday• Reading for Wednesday on web• Spring Break next week• Reading for Monday after break

– On Blackboard