penn ese 535 spring 2011 -- dehon 1 ese535: electronic design automation day 12: february 23, 2011...

70
Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Upload: akira-brumfield

Post on 14-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 1

ESE535:Electronic Design Automation

Day 12: February 23, 2011

Routing 2

(Pathfinder)

Page 2: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 2

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 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 3

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 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 4

GlobalGraph

• Graph Problem on routes through regions

w

Page 5: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 5

Global/Detail

• With limited switching (e.g. FPGA)– can represent routing graph exactly

Page 6: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 6

Global/Detail

Page 7: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 7

Routing in Graph

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

Page 8: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 8

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 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 9

Easy?

• Finding a path is moderately easy

• What’s hard?

• Can I just iterate and pick paths?

Page 10: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 10

Example

s1 s3s2

d2d1 d3

All links capacity 1

si di

Page 11: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 11

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 effect result

s1 s3s2

d2d1 d3

Page 12: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 12

Negotiated Congestion

• Old 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 13: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 13

Negotiated Congestion

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

avoid• reroute signals based on overuse/past

congestion

Page 14: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 14

Basic Algorithm

• Route signals along minimum cost path

• If congestion/overuse– assign higher cost to congested resources

• Repeat until done

Page 15: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 15

Key Idea

• Congested paths/resources become expensive

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

avoid it

• When there is less freedom– must take congested routes

• Routes which must use congested resources will, while others will chose uncongested paths

Page 16: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 16

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 17: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 17

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

Page 18: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 18

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 19: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 19

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 20: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 20

Example (need for history)

Base costs (delays)

Capacity

Need to redirect uncongested paths; how encourage?

s1 s2

d2d12

1 1

s3

d3

1

s4

d4

2 2

1

11

1

21

1

1

21

1

Page 21: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 21

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 22: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 22

Cost Function (2)

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

• History– avoid resources with history of congestion

Page 23: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 23

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

Page 24: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Delay

Penn ESE 535 Spring 2011 -- DeHon 24

Page 25: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 25

What about delay?

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

• Want:– prioritize critical path elements for shorter

delay– allow nodes with slack to take longer paths

Page 26: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 26

Cost Function (Delay)

• 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 27: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 27

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 28: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

VPR

• If doesn’t uncongest, weight congestion more

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

PF=Pressure Factor

• Eventually congest dominates delay

Penn ESE 535 Spring 2011 -- DeHon 28

Page 29: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

VPR Pressure Factor

• Converges quickly

• But may “freeze” with higher delay than necessary

• Netlist Shuffle experiment

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

Page 30: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

VPR Pressure Factor Tuning

Penn ESE 535 Spring 2011 -- DeHon 30[Raphael Rubin 2010]

Page 31: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 31

Page 32: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 32

Target 12Gate 1Manhattan hop 1

Page 33: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 33

Target 12Gate 1Manhattan hop 1

Page 34: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 34

1 2 3 4

5 6 7 8

9

Target 12Gate 1Manhattan hop 1

Total Slack?

Page 35: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Slack Budgeting

• Divide slack among the paths– Slack of 3– Example: give slack 1 to first link

2 to second

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

1 2 3 4

5 6 7 8

9

Page 36: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 36[So / FPGA 2008]

5

6

Page 37: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 37[So / FPGA 2008]

Page 38: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Delay Target Routing

• Similar high-level idea

• Just set target for Pathfinder cost– Rather than allowing to float

Penn ESE 535 Spring 2011 -- DeHon 38

Page 39: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 > 0

Penn ESE 535 Spring 2011 -- DeHon 39

Page 40: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

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 2011 -- DeHon 40

Page 41: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Delay Target Routing

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

Page 42: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Delay Target Routing

• Less sensitive to initial conditions

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

Page 43: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Rerouting

Penn ESE 535 Spring 2011 -- DeHon 43

Page 44: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 44

Rerouting

• Default: reroute everything

• Can get away rerouting only congested nodes– if keep routes in place– history force into new tracks

• causing greedy/uncongested routes to be rerouted

Page 45: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 45

Rerouting• Effect of only reroute congested?

– maybe more iterations• (not reroute a signal until congested)

– less time– Convergence?

• Faster? … prevent convergence?

– ? Hurt quality? • (not see strong case for)

– …but might hurt delay quality• Maybe followup rerouting everything once clear

up congestion?

Page 46: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 46

Run Time?

• Route |E| edges

• Each path search O(|Egraph|) worst case

– …generally less

• Iterations?

Page 47: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 47

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 48: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 48

Quality: fixed runtime

Page 49: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 49

Quality Target

Page 50: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 50

Quality vs. Time

Page 51: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 51

Conclusions?

• Iterations increases with N

• Quality degrade as we scale?

Page 52: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 52

Techniques to Accelerate

(already in use in data just shown)

Page 53: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 53

Search Ordering

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

• 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 54: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 54

BFS A*

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

– Priority queue orders by cost– Cost = (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

Page 55: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 55

BFS vs. A*

Page 56: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 56

Single-side, Directed (A*)

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

Page 57: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 57

Search: one-side vs. two-sides

• One-side vs. Two-sides

Page 58: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 58

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 59: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 59

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)• O(Np) for HSRA

Page 60: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 60

Domain Negotiation

• For Conventional FPGAs (and many networks)– path freedom

• bushy in middle• low on endpoints

Page 61: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 61

Mesh Expand

1

2

4

4

2

Page 62: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 62

Multistage/Benes

Switches in all paths 0000 to 1111

Page 63: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 63

Conventional FPGA Domains

Called: subset disjoint

Page 64: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 64

Conventional FPGA Domains

Called: subset disjoint

Page 65: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 65

Domain Routing

• No point in searching along an entire path from source

• Just to find it’s heavily congested at sink

(SRC)

sink

Page 66: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 66

HSRA Domains

Page 67: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 67

Domain Negotiation

• Path bottlenecks exist at both endpoints• Most critical place for congestion• Most efficient: work search from both ends

– more limiting in A* search– focus on paths with least (no) congestion on

endpoints first– FPGAs -- picking “domain” first– otherwise paths may look equally good up to end

(little pruning)

Page 68: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 68

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 69: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 69

Admin• No class next Monday 2/28

– work on assign 4

• Reading for next Wednesday online

• Assignment 4 due Wed. 3/2

• Andre away Monday and Tuesday

Page 70: Penn ESE 535 Spring 2011 -- DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)

Penn ESE 535 Spring 2011 -- DeHon 70

Big Ideas

• Exploit freedom

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