Routing under Constraints - Department of Computer …-based decision strategy (emulates...

Preview:

Citation preview

Design and

Technology

Solutions

Routing under Constraints

Alexander Nadel Intel, Israel

FMCAD

Mountain View CA, USA

October 4, 2016

1

Design and

Technology

Solutions2

2"PhysicalDesign" by Linear77 - Own work. Licensed under CC BY 3.0 via

Wikimedia Commons - https://commons.wikimedia.org/wiki/File:PhysicalDesign.png#/media/File:PhysicalDesign.png

Design and

Technology

Solutions3

2"PhysicalDesign" by Linear77 - Own work. Licensed under CC BY 3.0 via

Wikimedia Commons - https://commons.wikimedia.org/wiki/File:PhysicalDesign.png#/media/File:PhysicalDesign.png

Routing

Design and

Technology

Solutions4

Outline

3

Unsolved crafted and industrial RUC instances are routed!

DRouter through SAT Solver Surgery

A*-based decision strategy (emulates constraints!)

Graph conflict analysisNet restarting & net swapping

Bit-Vector / SAT Encoding

Doesn’t scale

Routing under Constraints (RUC): Problem Formalization

Goal: Design a Scalable Design Rule-aware Router

Design and

Technology

Solutions5

4

Abboud et al, OR Spectrum’08

Design and

Technology

Solutions6

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

Design and

Technology

Solutions7

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Design and

Technology

Solutions8

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Design and

Technology

Solutions9

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Design and

Technology

Solutions10

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Terminals

Design and

Technology

Solutions11

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Disjoint Nets Ni V

Design and

Technology

Solutions12

Routing: Output

6

Input Output

Design and

Technology

Solutions13

Routing: Output

6

Input Output

1. Each net is spanned by a tree, called the net routing

2. Net routings can’t intersect3. Optimization: minimize the total

routing length

Design and

Technology

Solutions14

Routing: Output

6

Input Output

1. Each net is spanned by a tree, called the net routing

2. Net routings can’t intersect3. Optimization: minimize the total

routing length

It is NP-hard to find:

1. Shortest solution for one multi-terminal net (Steiner tree problem)

2. Any solution for many multi-terminal nets

Design and

Technology

Solutions15

Design Rules

• Routing is to satisfy design rules

– Originating in the manufacturing requirement

7

Design and

Technology

Solutions16

Design Rules

• Routing is to satisfy design rules

– Originating in the manufacturing requirement

• Example “short” rule:

– The 2 vertices of any edge can’t belong to two distinct net routings

7

Short rule is violated for these edges

Design and

Technology

Solutions17

Design Rules

• Routing is to satisfy design rules

– Originating in the manufacturing requirement

• Example “short” rule:

– The 2 vertices of any edge can’t belong to two distinct net routings

7

Short rule is violated for these edges

When the short rule is on, this example is UNSAT

Design and

Technology

Solutions18

Industrial Approach:Rip-Up and Reroute

• Nets are routed one-by-one

– Using A*

– s-t shortest-path given costs’ under-approximation

– A*Dijkstra if no costs’ under-approximation is provided

– Trying to heuristically obey design rules

• Violations are allowed, hence the initial solution might be problematic

– Net routings might intersect

– Design rules might be violated

• Clean-up is applied

– Rip-up: problematic net routings are removed

– Reroute: un-routed nets are attempted again

18

Design and

Technology

Solutions19

The Problem with the Current Solution

• Design rule violations persist

– Manual clean-up is carried out

9

Some violations still persist Time-to-market is impacted

Design and

Technology

Solutions20

Potential Solution

10

Constraint Solving

Design and

Technology

Solutions21

Potential Solution

10

Constraint Solving

Next: formalizing Routing under Constraints

Design and

Technology

Solutions22

Routing Induces Assignment

11

Edge variables

Bool e: edge activity

Design and

Technology

Solutions23

12

Design and

Technology

Solutions24

13

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

1 1 1 1 0 0 1 1 1

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 1 1 0 0 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Design and

Technology

Solutions25

Routing Induces Assignment

14

Bool v: activity statusBit-vector n: net id

( for inactive vertices)

Vertex variables

Design and

Technology

Solutions26

15

Design and

Technology

Solutions27

16

0, 0, 0, 0, 0, 1,1 0, 0, 0, 0,

0, 0, 0, 0, 0, 1,1 0, 0, 0, 0,

0, 0, 0, 0, 0, 1,1 0, 0, 0, 0,

0, 0, 0, 0, 0, 1,1 0, 0, 0, 0,

0, 0, 0, 0, 0, 1,1 0, 0, 0, 0,

1,0 1,0 1,0 1,0 1,0 1,1 1,0 1,0 1,0 1,0

0, 0, 0, 0, 1,0 1,1 1,0 0, 0, 0,

0, 0, 0, 0, 1,0 1,1 1,0 0, 0, 0,

0, 0, 0, 0, 1,0 1,1 1,0 0, 0, 0,

0, 0, 0, 0, 1,0 1,0 1,0 0, 0, 0,

Design and

Technology

Solutions28

Modeling Routing under Constraints

• Design rules can be easily expressed in BV logic

– Variables:

– Edge & vertex activities

– Vertex nids

– Any auxiliary variables

• “Short” rule example

– For every edge e=(v,u): v u nid(v)=nid(u)

Short rule is violated for these edges

Design and

Technology

Solutions29

Routing under Constraints (RUC): Problem Formulation

18

Design and

Technology

Solutions30

Routing under Constraints (RUC): Problem Formulation

18

Design and

Technology

Solutions31

Routing under Constraints (RUC): Problem Formulation

18

Input

Design and

Technology

Solutions32

Routing under Constraints (RUC): Problem Formulation

18

1. Graph G(V,E)

2. Disjoint Nets Ni V

Input

Design and

Technology

Solutions33

Routing under Constraints (RUC): Problem Formulation

18

1. Graph G(V,E)

2. Disjoint Nets Ni V

Input

A quantifier-free bit-vector formula F(V E N A)

- V : vertex activity - E : edge activity- N : vertex net id- A : any auxiliary variables

(represents the design rules)

Design and

Technology

Solutions34

Routing under Constraints (RUC): Problem Formulation

18

1. Graph G(V,E)

2. Disjoint Nets Ni V

Input

A quantifier-free bit-vector formula F(V E N A)

- V : vertex activity - E : edge activity- N : vertex net id- A : any auxiliary variables

(represents the design rules)

Output: a model to F, which induces a routing:

- e=(v,u) is active

- v and u are active, and

- nid(v) = nid(u)

- For each net i: active vertices with nid i and

active edges span the net’s terminals

- Optional optimization requirement: the overall

weight of active edges is as small as possible

Design and

Technology

Solutions35

Solving Attempt: Encoding into Bitvector Logic / SAT

19

Design and

Technology

Solutions36

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

19

Design and

Technology

Solutions37

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

- e=(v,u) is active

- v and u are active, and

- nid(v) = nid(u)

19

Design and

Technology

Solutions38

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

- e=(v,u) is active

- v and u are active, and

- nid(v) = nid(u)

– A terminal has one active neighbor edge

19

Design and

Technology

Solutions39

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

- e=(v,u) is active

- v and u are active, and

- nid(v) = nid(u)

– A terminal has one active neighbor edge

– An active non-terminal has two active neighbor edges

19

Design and

Technology

Solutions40

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

- e=(v,u) is active

- v and u are active, and

- nid(v) = nid(u)

– A terminal has one active neighbor edge

– An active non-terminal has two active neighbor edges

• For n-terminal nets:

– Encode directed trees

– Using edge directions

19

Design and

Technology

Solutions41

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

- e=(v,u) is active

- v and u are active, and

- nid(v) = nid(u)

– A terminal has one active neighbor edge

– An active non-terminal has two active neighbor edges

• For n-terminal nets:

– Encode directed trees

– Using edge directions

19

Design and

Technology

Solutions42

20

SAT Solver’s Internals

Design and

Technology

Solutions43

20

Decision Strategy(Conflict-driven)

SAT Solver’s Internals

Design and

Technology

Solutions44

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Design and

Technology

Solutions45

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Design and

Technology

Solutions46

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Backtracking

No conflict

Design and

Technology

Solutions47

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Backtracking

No conflict

Design and

Technology

Solutions48

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflict

Design and

Technology

Solutions49

SAT DRouter through

Surgery

21

Design and

Technology

Solutions50

22

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflict

SAT DRouter

Design and

Technology

Solutions51

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflict

SAT DRouter

Design and

Technology

Solutions52

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflictA*-based Router

SAT DRouter

Design and

Technology

Solutions53

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflictA*-based Router

Graph-based Learning

SAT DRouter

Design and

Technology

Solutions54

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

SAT DRouter

Design and

Technology

Solutions55

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

SAT DRouter

Design and

Technology

Solutions56

DRouter

23

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Design and

Technology

Solutions57

DRouter

23

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Encoded constraints:

Design and

Technology

Solutions58

DRouter

23

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Encoded constraints:

1. Edge consistency

• e=(v,u) is active

• v and u are active

• nid(v) = nid(u)

Design and

Technology

Solutions59

DRouter

23

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Encoded constraints:

1. Edge consistency

• e=(v,u) is active

• v and u are active

• nid(v) = nid(u)

2. User-provided constraints modelling

design rules

Design and

Technology

Solutions60

DRouter

23

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Encoded constraints:

1. Edge consistency

• e=(v,u) is active

• v and u are active

• nid(v) = nid(u)

2. User-provided constraints modelling

design rules

That’s it! What about disconnected

terminals???

Routing correctness is guaranteed by

the decision strategy!

Design and

Technology

Solutions61

1-Net Example

24

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Design and

Technology

Solutions62

1-Net Example

24

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Design and

Technology

Solutions63

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Design rules

Design and

Technology

Solutions64

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

σ (sugg.)

Path Suggestion

(not an actual SAT decision)

Design and

Technology

Solutions65

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

σ (sugg.)

Activate edge in sugg.

SAT

Decision

Design and

Technology

Solutions66

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

σ-violation

Activate edge in sugg.

Design and

Technology

Solutions67

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

σ-violation

Activate edge in sugg.

A* search

for new σ

Design and

Technology

Solutions68

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Path found

Activate edge in sugg.

Design and

Technology

Solutions69

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No -violationPath found

Target is part of path?

no

Repeat

Activate edge in sugg.

Design and

Technology

Solutions70

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No -violationPath found

Target is part of path?

no

Repeat

Activate edge in sugg.

BCP

Design and

Technology

Solutions71

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No -violationPath found

Target is part of path?

no

Repeat

Activate edge in sugg.

BCP

Design and

Technology

Solutions72

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Activate edge in sugg.

x

σ-violationNo -violation

Target is part of path?

no

Repeat

Design and

Technology

Solutions73

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Activate edge in sugg.

x

σ-violation

Graph conflict (s and t can’t be connected)

No -violation

Target is part of path?

no

Repeat

Design and

Technology

Solutions74

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Activate edge in sugg.

x

σ-violationAdd conflicting clause: vertex cut (2,0) (3,1)

Graph conflict (s and t can’t be connected)

No -violation

Target is part of path?

no

Repeat

Design and

Technology

Solutions75

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Activate edge in sugg.

x

σ-violationAdd conflicting clause: vertex cut (2,0) (3,1)1UIP conflict clause: (2,0) ¬(3,2)

Graph conflict (s and t can’t be connected)

No -violation

Target is part of path?

no

Repeat

Design and

Technology

Solutions76

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Activate edge in sugg.

x

σ-violationAdd conflicting clause: vertex cut (2,0) (3,1)1UIP conflict clause: (2,0) ¬(3,2)

Graph conflict (s and t can’t be connected)

No -violation

Target is part of path?

no

Repeat

Design and

Technology

Solutions77

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

Activate edge in sugg.

σ-violationAdd conflicting clause: vertex cut (2,0) (3,1)1UIP conflict clause: (2,0) ¬(3,2)

(2,0) ¬(3,2)

x

Graph conflict (s and t can’t be connected)

Learn & Backtrack

No -violation

Target is part of path?

no

Repeat

Design and

Technology

Solutions78

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No σ-violation

Graph conflict

Learn & Backtrack

Target is part of path?

no

Repeat

Activate edge in sugg.

x

(2,0) ¬(3,2)

σ-violation

Design and

Technology

Solutions79

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No σ-violation

Graph conflict

Learn & Backtrack

Target is part of path?

no

Repeat

Activate edge in sugg.

x

(2,0) ¬(3,2)

σ-violation

Design and

Technology

Solutions80

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No σ-violation

Graph conflict

Learn & BacktrackDONE!

Target is part of path?

(yes!)

no

Repeat

Activate edge in sugg.

x

(2,0) ¬(3,2)

σ-violation

Design and

Technology

Solutions81

1-Net Example

0

1

2

1 2 3

s: (0, 0)

t: (3, 0)

¬(1,0) ¬(2,0)

¬(1,0) ¬(1,1)

¬(3,2) ¬(3,1)

Initial path:

A* from s->t

Real path

x

x

σ (sugg.)

A* search

for new σ

No σ-violationPath found

Graph conflict

Learn & BacktrackDONE!

Target is part of path?

(yes!)

no

Repeat

Activate edge in sugg.

x

Result:

Path that

follows

constraints!

(2,0) ¬(3,2)

σ-violation

Design and

Technology

Solutions82

Multiple Nets Handling

30

Design and

Technology

Solutions83

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

30

Design and

Technology

Solutions84

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

30

Design and

Technology

Solutions85

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

30

Design and

Technology

Solutions86

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Design and

Technology

Solutions87

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Design and

Technology

Solutions88

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Design and

Technology

Solutions89

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Design and

Technology

Solutions90

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

30

Design and

Technology

Solutions91

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions92

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions93

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions94

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

- Graph conflict- black is blocked

- Early conflict detection- Check for graph conflicts

after routing each terminal- Learn a conflict clause & re-route

Design and

Technology

Solutions95

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions96

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions97

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions98

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions99

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions100

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions101

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions102

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions103

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

31

Design and

Technology

Solutions104

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

• Example Order 2:

– Red

• Too slow! Solution: dynamic net reordering!

31

Design and

Technology

Solutions105

DRouter

32

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Design and

Technology

Solutions106

DRouter

32

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

Net Swapping

Net Restarting

Time-to-flip? Time-to-

restart?

Design and

Technology

Solutions107

Net Swapping

• Example Order 2:

– Red

33

Design and

Technology

Solutions108

Net Swapping

• Example Order 2:

– Red

33

Design and

Technology

Solutions109

Net Swapping

• Example Order 2:

– Red

33

Design and

Technology

Solutions110

Net Swapping

• Example Order 2:

– Red

33

Design and

Technology

Solutions111

Net Swapping

• Example Order 2:

– Red

33

Design and

Technology

Solutions112

Net Swapping

• Example Order 2:

– Red

33

Net Swapping:

After N conflicts, swap the order between:

the first blocked net i

the blocking net j

{A,j,B,i,C} {A,i,j,B,C}

Design and

Technology

Solutions113

Net Swapping

• Example Order 2:

– Red

• Flip:

– Red

33

Swapped

Net Swapping:

After N conflicts, swap the order between:

the first blocked net i

the blocking net j

{A,j,B,i,C} {A,i,j,B,C}

Design and

Technology

Solutions114

Net Swapping

• Example Order 2:

– Red

• Flip:

– Red

33

Swapped

Net Swapping:

After N conflicts, swap the order between:

the first blocked net i

the blocking net j

{A,j,B,i,C} {A,i,j,B,C}

Design and

Technology

Solutions115

Net Swapping

• Example Order 2:

– Red

• Flip:

– Red

33

Swapped

Net Swapping:

After N conflicts, swap the order between:

the first blocked net i

the blocking net j

{A,j,B,i,C} {A,i,j,B,C}

Design and

Technology

Solutions116

Net Swapping

• Example Order 2:

– Red

• Flip:

– Red

33

Swapped

Net Swapping:

After N conflicts, swap the order between:

the first blocked net i

the blocking net j

{A,j,B,i,C} {A,i,j,B,C}

Design and

Technology

Solutions117

Net Restarting

• Example Order 2:

– Red

34

Design and

Technology

Solutions118

Net Restarting

• Example Order 2:

– Red

34

Design and

Technology

Solutions119

Net Restarting

• Example Order 2:

– Red

34

Design and

Technology

Solutions120

Net Restarting

• Example Order 2:

– Red

34

Design and

Technology

Solutions121

Net Restarting

• Example Order 2:

– Red

34

Design and

Technology

Solutions122

Net Restarting

• Example Order 2:

– Red

34

Net Restarting

Restart and move the blocked net to the top

(after M conflicts for that net)

Design and

Technology

Solutions123

Net Restarting

• Example Order 2:

– Red

• Flip:

– Red

34

Moved to

the top

Net Restarting

Restart and move the blocked net to the top

(after M conflicts for that net)

Design and

Technology

Solutions124

Net Restarting

• Example Order 2:

– Red

• Flip:

– Red

34

Moved to

the top

Net Restarting

Restart and move the blocked net to the top

(after M conflicts for that net)

Design and

Technology

Solutions125

Net Restarting

• Example Order 2:

– Red

• Flip:

– Red

34

Moved to

the top

Net Restarting

Restart and move the blocked net to the top

(after M conflicts for that net)

Design and

Technology

Solutions126

Net Restarting

• Example Order 2:

– Red

• Flip:

– Red

34

Moved to

the top

Net Restarting

Restart and move the blocked net to the top

(after M conflicts for that net)

Design and

Technology

Solutions127

Net Swapping vs. Net Restarting

• Swapping is local

• Restarting is global

• In practice both techniques are crucial

• Strategy:

– Swap for some time

– If it doesn’t work, restart

35

Design and

Technology

Solutions128

Related Work 1: Clock Routing Erez & Nadel, CAV’15

36

Design and

Technology

Solutions129

Related Work 1: Clock Routing Erez & Nadel, CAV’15

36

Design and

Technology

Solutions130

Related Work 1: Clock Routing Erez & Nadel, CAV’15

36

Clock Routing

Design and

Technology

Solutions131

Related Work 1: Clock Routing Erez & Nadel, CAV’15

36

Design and

Technology

Solutions132

Related Work 1: Clock Routing Erez & Nadel, CAV’15

• Reduction to finding bounded-path in graph

36

Design and

Technology

Solutions133

Related Work 1: Clock Routing Erez & Nadel, CAV’15

• Reduction to finding bounded-path in graph

• SAT solver surgery: graph-aware decision strategy & graph conflict analysis

36

Design and

Technology

Solutions134

Related Work 1: Clock Routing Erez & Nadel, CAV’15

• Reduction to finding bounded-path in graph

• SAT solver surgery: graph-aware decision strategy & graph conflict analysis

• The decision strategy:

– Emulates constraints!

– Guides the solver towards the solution

– Considers additional optimization requirements

36

Design and

Technology

Solutions135

Related Work 2: Monosat Solver Bayless & Bayless & Hoos & Hu, AAAI’15

37

Design and

Technology

Solutions136

Related Work 2: Monosat Solver Bayless & Bayless & Hoos & Hu, AAAI’15

• Can reason about graph predicates & SAT/BV

37

Design and

Technology

Solutions137

Related Work 2: Monosat Solver Bayless & Bayless & Hoos & Hu, AAAI’15

• Can reason about graph predicates & SAT/BV

• Graph conflict analysis

37

Design and

Technology

Solutions138

Related Work 2: Monosat Solver Bayless & Bayless & Hoos & Hu, AAAI’15

• Can reason about graph predicates & SAT/BV

• Graph conflict analysis

• Shortest-path decision heuristic can be optionally applied

37

Design and

Technology

Solutions139

Related Work 2: Monosat Solver Bayless & Bayless & Hoos & Hu, AAAI’15

• Can reason about graph predicates & SAT/BV

• Graph conflict analysis

• Shortest-path decision heuristic can be optionally applied

• Path-finding (routing for one 2-terminal net) is conceptually similar in Monosat and DRouter

– Main difference:

– Lazy A* in DRouter vs.

– Eager incremental Ramalingam-Reps in Monosat

• RUC can be easily expressed in Monosatlanguage

37

Design and

Technology

Solutions140

Monosat vs. DRouter for Routing under Constraints

38

Design and

Technology

Solutions141

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Design and

Technology

Solutions142

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions143

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions144

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions145

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Conflict

Design and

Technology

Solutions146

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions147

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions148

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions149

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions150

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions151

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions152

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions153

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Design and

Technology

Solutions154

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions155

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions156

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions157

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Conflict

Design and

Technology

Solutions158

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions159

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions160

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions161

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions162

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions163

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions164

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions165

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions166

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions167

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions168

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions169

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions170

Monosat vs. DRouter for Routing under Constraints

• Monosat’s algorithms are not routing-aware

– No net re-ordering

– Graph conflict analysis for routing is inefficient

38

Routing in DRouter (net

swapping&restarting are off)

Routing in Monosat

Design and

Technology

Solutions171

Experimental Results on Crafted Instances

• Solvers:– Drouter (default)– Drouter – R: no net restarting– Drouter – S: no net swapping– Drouter – SR: no net swapping, no net restarting– Monosat (default)– Monosat + D: shortest-path decision strategy is on– BV: reduction to BV

• Instances:– 120 solid grid graphs of size M 20

– M {3,5,7}

– 20 random 2-terminal nets– Generate C * |V| random binary clauses v u

– v,u V– C {0,0.1,0.2,0.3}

39

Design and

Technology

Solutions172

40

0

5

10

15

20

25

30

010

2030

# S

OLV

ED

DROUTER

DROUTER-R

DROUTER-S

DROUTER-SR

MONOSAT

MONOSAT+D

BV

Design and

Technology

Solutions173

40

0

5

10

15

20

25

30

010

2030

# S

OLV

ED

DROUTER

DROUTER-R

DROUTER-S

DROUTER-SR

MONOSAT

MONOSAT+D

BV

- Full-fledged DRouter only can solves all the instances

- Both net restarting and net swapping are essential!

Design and

Technology

Solutions174

40

0

5

10

15

20

25

30

010

2030

# S

OLV

ED

DROUTER

DROUTER-R

DROUTER-S

DROUTER-SR

MONOSAT

MONOSAT+D

BV

- Full-fledged DRouter only can solves all the instances

- Both net restarting and net swapping are essential!

- Monosat and BV can’t solve a single instance

Design and

Technology

Solutions175

DRouter on Industrial Instances

• Run DRouter on difficult clips from Intel designs

– Couldn’t be routed cleanly by 2 industrial routers

41

Design and

Technology

Solutions176

DRouter on Industrial Instances

• Run DRouter on difficult clips from Intel designs

– Couldn’t be routed cleanly by 2 industrial routers

41

Area in m2 Nets Vertices Constraints Time in sec. Memory in Gb.

24 110 42,456 484,008 25 0.7

24 230 42,456 484,008 391 1.0

32 352 63,740 667,764 705 2.2

129 788 127,480 2,669,056 14,733 6.5

129 891 127,480 2,669,056 92,950 6.5

Design and

Technology

Solutions177

Conclusion

• DRouter: design-rule-aware router

– SAT solver surgery:

– Decision heuristic A*-based router

– Conflict analysis enhanced with graph reasoning

– Restarts net swapping & net restarting

• Solves instances which can’t be solved by existing tools

– Including clips from real Intel designs

42

Recommended