routing under constraints - department of computer …-based decision strategy (emulates...

177
Design and Technology Solutions Routing under Constraints Alexander Nadel Intel, Israel FMCAD Mountain View CA, USA October 4 , 2016 1

Upload: phungkiet

Post on 18-May-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions

Routing under Constraints

Alexander Nadel Intel, Israel

FMCAD

Mountain View CA, USA

October 4, 2016

1

Page 2: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 3: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 4: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 5: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions5

4

Abboud et al, OR Spectrum’08

Page 6: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions6

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

Page 7: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions7

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Page 8: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions8

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Page 9: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions9

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Page 10: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions10

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Terminals

Page 11: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions11

Routing: Input(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Disjoint Nets Ni V

Page 12: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions12

Routing: Output

6

Input Output

Page 13: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 14: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 15: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions15

Design Rules

• Routing is to satisfy design rules

– Originating in the manufacturing requirement

7

Page 16: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 17: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 18: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 19: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 20: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions20

Potential Solution

10

Constraint Solving

Page 21: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions21

Potential Solution

10

Constraint Solving

Next: formalizing Routing under Constraints

Page 22: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions22

Routing Induces Assignment

11

Edge variables

Bool e: edge activity

Page 23: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions23

12

Page 24: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 25: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions25

Routing Induces Assignment

14

Bool v: activity statusBit-vector n: net id

( for inactive vertices)

Vertex variables

Page 26: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions26

15

Page 27: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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,

Page 28: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 29: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions29

Routing under Constraints (RUC): Problem Formulation

18

Page 30: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions30

Routing under Constraints (RUC): Problem Formulation

18

Page 31: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions31

Routing under Constraints (RUC): Problem Formulation

18

Input

Page 32: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions32

Routing under Constraints (RUC): Problem Formulation

18

1. Graph G(V,E)

2. Disjoint Nets Ni V

Input

Page 33: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 34: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 35: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions35

Solving Attempt: Encoding into Bitvector Logic / SAT

19

Page 36: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions36

Solving Attempt: Encoding into Bitvector Logic / SAT

• For 2-terminal nets:

19

Page 37: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 38: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 39: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 40: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 41: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 42: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions42

20

SAT Solver’s Internals

Page 43: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions43

20

Decision Strategy(Conflict-driven)

SAT Solver’s Internals

Page 44: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions44

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Page 45: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions45

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Page 46: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions46

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Backtracking

No conflict

Page 47: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions47

20

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

Backtracking

No conflict

Page 48: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 49: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions49

SAT DRouter through

Surgery

21

Page 50: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions50

22

Decision Strategy(Conflict-driven)

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflict

SAT DRouter

Page 51: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions51

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflict

SAT DRouter

Page 52: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions52

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

Restarts

Time-to-

restart?

No conflictA*-based Router

SAT DRouter

Page 53: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 54: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions54

22

Boolean Constraint Propagation

Conflict Analysis & Learning

Backtracking

No conflictA*-based Router

Graph-based Learning

SAT DRouter

Page 55: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 56: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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?

Page 57: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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:

Page 58: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 59: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 60: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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!

Page 61: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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?

Page 62: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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?

Page 63: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 64: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 65: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 66: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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.

Page 67: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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 σ

Page 68: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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.

Page 69: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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.

Page 70: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 71: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 72: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 73: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 74: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 75: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 76: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 77: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 78: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 79: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 80: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 81: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 82: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions82

Multiple Nets Handling

30

Page 83: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions83

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

30

Page 84: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions84

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

30

Page 85: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions85

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

30

Page 86: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions86

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Page 87: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions87

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Page 88: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions88

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Page 89: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions89

Multiple Nets Handling

• Route the nets one-by-one

– Order is critical!

• Example Order 1:

– Red

30

Page 90: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 91: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 92: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 93: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 94: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 95: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 96: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 97: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 98: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 99: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 100: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 101: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 102: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 103: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 104: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 105: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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?

Page 106: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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?

Page 107: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions107

Net Swapping

• Example Order 2:

– Red

33

Page 108: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions108

Net Swapping

• Example Order 2:

– Red

33

Page 109: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions109

Net Swapping

• Example Order 2:

– Red

33

Page 110: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions110

Net Swapping

• Example Order 2:

– Red

33

Page 111: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions111

Net Swapping

• Example Order 2:

– Red

33

Page 112: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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}

Page 113: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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}

Page 114: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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}

Page 115: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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}

Page 116: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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}

Page 117: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions117

Net Restarting

• Example Order 2:

– Red

34

Page 118: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions118

Net Restarting

• Example Order 2:

– Red

34

Page 119: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions119

Net Restarting

• Example Order 2:

– Red

34

Page 120: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions120

Net Restarting

• Example Order 2:

– Red

34

Page 121: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions121

Net Restarting

• Example Order 2:

– Red

34

Page 122: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 123: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 124: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 125: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 126: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 127: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 128: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions128

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

36

Page 129: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions129

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

36

Page 130: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions130

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

36

Clock Routing

Page 131: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions131

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

36

Page 132: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions132

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

• Reduction to finding bounded-path in graph

36

Page 133: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 134: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 135: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions135

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

37

Page 136: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions136

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

• Can reason about graph predicates & SAT/BV

37

Page 137: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 138: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 139: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 140: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

Design and

Technology

Solutions140

Monosat vs. DRouter for Routing under Constraints

38

Page 141: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 142: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 143: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 144: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 145: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 146: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 147: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 148: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 149: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 150: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 151: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 152: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 153: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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)

Page 154: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 155: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 156: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 157: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 158: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 159: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 160: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 161: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 162: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 163: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 164: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 165: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 166: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 167: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 168: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 169: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 170: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 171: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 172: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 173: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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!

Page 174: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 175: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 176: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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

Page 177: Routing under Constraints - Department of Computer …-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping Bit-Vector / SAT Encoding

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