Routing under Constraints Alexander Nadel Intel, Israel FMCAD - - PowerPoint PPT Presentation

routing under constraints
SMART_READER_LITE
LIVE PREVIEW

Routing under Constraints Alexander Nadel Intel, Israel FMCAD - - PowerPoint PPT Presentation

Routing under Constraints Alexander Nadel Intel, Israel FMCAD Mountain View CA, USA October 4, 2016 Design and Technology Solutions 1 Design and Technology 2 "PhysicalDesign" by Linear77 - Own work. Licensed under CC BY 3.0


slide-1
SLIDE 1

Design and Technology Solutions

Routing under Constraints

Alexander Nadel Intel, Israel

FMCAD Mountain View CA, USA October 4, 2016

1

slide-2
SLIDE 2

Design and Technology Solutions

2 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

slide-3
SLIDE 3

Design and Technology Solutions

3 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

slide-4
SLIDE 4

Design and Technology Solutions

4

Outline

3

Unsolved crafted and industrial RUC instances are routed! DRouter through SAT Solver Surgery

A*-based decision strategy (emulates constraints!) Graph conflict analysis Net restarting & net swapping

Bit-Vector / SAT Encoding

Doesn’t scale

Routing under Constraints (RUC): Problem Formalization Goal: Design a Scalable Design Rule-aware Router

slide-5
SLIDE 5

Design and Technology Solutions

5 4

Abboud et al, OR Spectrum’08

slide-6
SLIDE 6

Design and Technology Solutions

6

Routing: Input

(AKA Steiner Tree Packing Problem)

5

Input

slide-7
SLIDE 7

Design and Technology Solutions

7

Routing: Input

(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

slide-8
SLIDE 8

Design and Technology Solutions

8

Routing: Input

(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

slide-9
SLIDE 9

Design and Technology Solutions

9

Routing: Input

(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

slide-10
SLIDE 10

Design and Technology Solutions

10

Routing: Input

(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Terminals

slide-11
SLIDE 11

Design and Technology Solutions

11

Routing: Input

(AKA Steiner Tree Packing Problem)

5

Input

A graph G(V,E)

Disjoint Nets Ni  V

slide-12
SLIDE 12

Design and Technology Solutions

12

Routing: Output

6

Input Output

slide-13
SLIDE 13

Design and Technology Solutions

13

Routing: Output

6

Input Output

  • 1. Each net is spanned by a tree,

called the net routing

  • 2. Net routings can’t intersect
  • 3. Optimization: minimize the total

routing length

slide-14
SLIDE 14

Design and Technology Solutions

14

Routing: Output

6

Input Output

  • 1. Each net is spanned by a tree,

called the net routing

  • 2. Net routings can’t intersect
  • 3. 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
slide-15
SLIDE 15

Design and Technology Solutions

15

Design Rules

  • Routing is to satisfy design rules

– Originating in the manufacturing requirement

7

slide-16
SLIDE 16

Design and Technology Solutions

16

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

slide-17
SLIDE 17

Design and Technology Solutions

17

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

slide-18
SLIDE 18

Design and Technology Solutions

18

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

slide-19
SLIDE 19

Design and Technology Solutions

19

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

slide-20
SLIDE 20

Design and Technology Solutions

20

Potential Solution

10

Constraint Solving

slide-21
SLIDE 21

Design and Technology Solutions

21

Potential Solution

10

Constraint Solving

Next: formalizing Routing under Constraints

slide-22
SLIDE 22

Design and Technology Solutions

22

Routing Induces Assignment

11

Edge variables Bool e: edge activity

slide-23
SLIDE 23

Design and Technology Solutions

23 12

slide-24
SLIDE 24

Design and Technology Solutions

24 13

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

slide-25
SLIDE 25

Design and Technology Solutions

25

Routing Induces Assignment

14

Bool v: activity status Bit-vector n: net id ( for inactive vertices) Vertex variables

slide-26
SLIDE 26

Design and Technology Solutions

26 15

slide-27
SLIDE 27

Design and Technology Solutions

27 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,

slide-28
SLIDE 28

Design and Technology Solutions

28

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

slide-29
SLIDE 29

Design and Technology Solutions

29

Routing under Constraints (RUC): Problem Formulation

18

slide-30
SLIDE 30

Design and Technology Solutions

30

Routing under Constraints (RUC): Problem Formulation

18

slide-31
SLIDE 31

Design and Technology Solutions

31

Routing under Constraints (RUC): Problem Formulation

18

Input

slide-32
SLIDE 32

Design and Technology Solutions

32

Routing under Constraints (RUC): Problem Formulation

18

  • 1. Graph G(V,E)
  • 2. Disjoint Nets Ni  V

Input

slide-33
SLIDE 33

Design and Technology Solutions

33

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)

slide-34
SLIDE 34

Design and Technology Solutions

34

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

slide-35
SLIDE 35

Design and Technology Solutions

35

Solving Attempt: Encoding into Bitvector Logic / SAT

19

slide-36
SLIDE 36

Design and Technology Solutions

36

Solving Attempt: Encoding into Bitvector Logic / SAT

  • For 2-terminal nets:

19

slide-37
SLIDE 37

Design and Technology Solutions

37

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

slide-38
SLIDE 38

Design and Technology Solutions

38

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

slide-39
SLIDE 39

Design and Technology Solutions

39

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

slide-40
SLIDE 40

Design and Technology Solutions

40

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

slide-41
SLIDE 41

Design and Technology Solutions

41

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

slide-42
SLIDE 42

Design and Technology Solutions

42 20

SAT Solver’s Internals

slide-43
SLIDE 43

Design and Technology Solutions

43 20

Decision Strategy (Conflict-driven)

SAT Solver’s Internals

slide-44
SLIDE 44

Design and Technology Solutions

44 20

Decision Strategy (Conflict-driven) Boolean Constraint Propagation

SAT Solver’s Internals

slide-45
SLIDE 45

Design and Technology Solutions

45 20

Decision Strategy (Conflict-driven) Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning

slide-46
SLIDE 46

Design and Technology Solutions

46 20

Decision Strategy (Conflict-driven) Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning Backtracking No conflict

slide-47
SLIDE 47

Design and Technology Solutions

47 20

Decision Strategy (Conflict-driven) Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning Backtracking No conflict

slide-48
SLIDE 48

Design and Technology Solutions

48 20

Decision Strategy (Conflict-driven) Boolean Constraint Propagation

SAT Solver’s Internals

Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict

slide-49
SLIDE 49

Design and Technology Solutions

49

SAT  DRouter through Surgery

21

slide-50
SLIDE 50

Design and Technology Solutions

50 22

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict

SAT  DRouter

slide-51
SLIDE 51

Design and Technology Solutions

51 22

Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict

SAT  DRouter

slide-52
SLIDE 52

Design and Technology Solutions

52 22

Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict A*-based Router

SAT  DRouter

slide-53
SLIDE 53

Design and Technology Solutions

53 22

Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict A*-based Router Graph-based Learning

SAT  DRouter

slide-54
SLIDE 54

Design and Technology Solutions

54 22

Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

SAT  DRouter

slide-55
SLIDE 55

Design and Technology Solutions

55 22

Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart?

SAT  DRouter

slide-56
SLIDE 56

Design and Technology Solutions

56

DRouter

23

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart?

slide-57
SLIDE 57

Design and Technology Solutions

57

DRouter

23

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart? Encoded constraints:

slide-58
SLIDE 58

Design and Technology Solutions

58

DRouter

23

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-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)
slide-59
SLIDE 59

Design and Technology Solutions

59

DRouter

23

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-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

slide-60
SLIDE 60

Design and Technology Solutions

60

DRouter

23

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-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!

slide-61
SLIDE 61

Design and Technology Solutions

61

1-Net Example

24

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart?

slide-62
SLIDE 62

Design and Technology Solutions

62

1-Net Example

24

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart?

slide-63
SLIDE 63

Design and Technology Solutions

63

1-Net Example

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

slide-64
SLIDE 64

Design and Technology Solutions

64

1-Net Example

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)

slide-65
SLIDE 65

Design and Technology Solutions

65

1-Net Example

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

slide-66
SLIDE 66

Design and Technology Solutions

66

1-Net Example

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.

slide-67
SLIDE 67

Design and Technology Solutions

67

1-Net Example

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 σ

slide-68
SLIDE 68

Design and Technology Solutions

68

1-Net Example

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.

slide-69
SLIDE 69

Design and Technology Solutions

69

1-Net Example

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 Path found Target is part of path? no Repeat Activate edge in sugg.

slide-70
SLIDE 70

Design and Technology Solutions

70

1-Net Example

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 Path found Target is part of path? no Repeat Activate edge in sugg. BCP

slide-71
SLIDE 71

Design and Technology Solutions

71

1-Net Example

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 Path found Target is part of path? no Repeat Activate edge in sugg. BCP

slide-72
SLIDE 72

Design and Technology Solutions

72

1-Net Example

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 No -violation Target is part of path? no Repeat

slide-73
SLIDE 73

Design and Technology Solutions

73

1-Net Example

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

slide-74
SLIDE 74

Design and Technology Solutions

74

1-Net Example

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

slide-75
SLIDE 75

Design and Technology Solutions

75

1-Net Example

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

slide-76
SLIDE 76

Design and Technology Solutions

76

1-Net Example

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

slide-77
SLIDE 77

Design and Technology Solutions

77

1-Net Example

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. σ-violation Add 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

slide-78
SLIDE 78

Design and Technology Solutions

78

1-Net Example

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

slide-79
SLIDE 79

Design and Technology Solutions

79

1-Net Example

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

slide-80
SLIDE 80

Design and Technology Solutions

80

1-Net Example

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

DONE!

Target is part of path? (yes!) no Repeat Activate edge in sugg.

x

(2,0)  ¬(3,2) σ-violation

slide-81
SLIDE 81

Design and Technology Solutions

81

1-Net Example

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 Path found Graph conflict Learn & Backtrack

DONE!

Target is part of path? (yes!) no Repeat Activate edge in sugg.

x

Result: Path that follows constraints!

(2,0)  ¬(3,2) σ-violation

slide-82
SLIDE 82

Design and Technology Solutions

82

Multiple Nets Handling

30

slide-83
SLIDE 83

Design and Technology Solutions

83

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

30

slide-84
SLIDE 84

Design and Technology Solutions

84

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

30

slide-85
SLIDE 85

Design and Technology Solutions

85

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

30

slide-86
SLIDE 86

Design and Technology Solutions

86

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

30

slide-87
SLIDE 87

Design and Technology Solutions

87

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

30

slide-88
SLIDE 88

Design and Technology Solutions

88

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

30

slide-89
SLIDE 89

Design and Technology Solutions

89

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

30

slide-90
SLIDE 90

Design and Technology Solutions

90

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

30

slide-91
SLIDE 91

Design and Technology Solutions

91

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-92
SLIDE 92

Design and Technology Solutions

92

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-93
SLIDE 93

Design and Technology Solutions

93

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-94
SLIDE 94

Design and Technology Solutions

94

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

slide-95
SLIDE 95

Design and Technology Solutions

95

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-96
SLIDE 96

Design and Technology Solutions

96

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-97
SLIDE 97

Design and Technology Solutions

97

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-98
SLIDE 98

Design and Technology Solutions

98

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-99
SLIDE 99

Design and Technology Solutions

99

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-100
SLIDE 100

Design and Technology Solutions

100

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-101
SLIDE 101

Design and Technology Solutions

101

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-102
SLIDE 102

Design and Technology Solutions

102

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-103
SLIDE 103

Design and Technology Solutions

103

Multiple Nets Handling

  • Route the nets one-by-one

– Order is critical!

  • Example Order 1:

– Red

  • Example Order 2:

– Red

31

slide-104
SLIDE 104

Design and Technology Solutions

104

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

slide-105
SLIDE 105

Design and Technology Solutions

105

DRouter

32

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart?

slide-106
SLIDE 106

Design and Technology Solutions

106

DRouter

32

Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning

Net Swapping Net Restarting

Time-to-flip? Time-to- restart?

slide-107
SLIDE 107

Design and Technology Solutions

107

Net Swapping

  • Example Order 2:

– Red

33

slide-108
SLIDE 108

Design and Technology Solutions

108

Net Swapping

  • Example Order 2:

– Red

33

slide-109
SLIDE 109

Design and Technology Solutions

109

Net Swapping

  • Example Order 2:

– Red

33

slide-110
SLIDE 110

Design and Technology Solutions

110

Net Swapping

  • Example Order 2:

– Red

33

slide-111
SLIDE 111

Design and Technology Solutions

111

Net Swapping

  • Example Order 2:

– Red

33

slide-112
SLIDE 112

Design and Technology Solutions

112

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}

slide-113
SLIDE 113

Design and Technology Solutions

113

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}

slide-114
SLIDE 114

Design and Technology Solutions

114

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}

slide-115
SLIDE 115

Design and Technology Solutions

115

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}

slide-116
SLIDE 116

Design and Technology Solutions

116

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}

slide-117
SLIDE 117

Design and Technology Solutions

117

Net Restarting

  • Example Order 2:

– Red

34

slide-118
SLIDE 118

Design and Technology Solutions

118

Net Restarting

  • Example Order 2:

– Red

34

slide-119
SLIDE 119

Design and Technology Solutions

119

Net Restarting

  • Example Order 2:

– Red

34

slide-120
SLIDE 120

Design and Technology Solutions

120

Net Restarting

  • Example Order 2:

– Red

34

slide-121
SLIDE 121

Design and Technology Solutions

121

Net Restarting

  • Example Order 2:

– Red

34

slide-122
SLIDE 122

Design and Technology Solutions

122

Net Restarting

  • Example Order 2:

– Red

34

Net Restarting Restart and move the blocked net to the top (after M conflicts for that net)

slide-123
SLIDE 123

Design and Technology Solutions

123

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)

slide-124
SLIDE 124

Design and Technology Solutions

124

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)

slide-125
SLIDE 125

Design and Technology Solutions

125

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)

slide-126
SLIDE 126

Design and Technology Solutions

126

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)

slide-127
SLIDE 127

Design and Technology Solutions

127

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

slide-128
SLIDE 128

Design and Technology Solutions

128

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

36

slide-129
SLIDE 129

Design and Technology Solutions

129

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

36

slide-130
SLIDE 130

Design and Technology Solutions

130

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

36

Clock Routing

slide-131
SLIDE 131

Design and Technology Solutions

131

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

36

slide-132
SLIDE 132

Design and Technology Solutions

132

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

  • Reduction to finding bounded-path in graph

36

slide-133
SLIDE 133

Design and Technology Solutions

133

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

slide-134
SLIDE 134

Design and Technology Solutions

134

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

slide-135
SLIDE 135

Design and Technology Solutions

135

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

37

slide-136
SLIDE 136

Design and Technology Solutions

136

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

  • Can reason about graph predicates & SAT/BV

37

slide-137
SLIDE 137

Design and Technology Solutions

137

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

  • Can reason about graph predicates & SAT/BV
  • Graph conflict analysis

37

slide-138
SLIDE 138

Design and Technology Solutions

138

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
  • ptionally applied

37

slide-139
SLIDE 139

Design and Technology Solutions

139

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
  • ptionally 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 Monosat

language

37

slide-140
SLIDE 140

Design and Technology Solutions

140

Monosat vs. DRouter for Routing under Constraints

38

slide-141
SLIDE 141

Design and Technology Solutions

141

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

slide-142
SLIDE 142

Design and Technology Solutions

142

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)

slide-143
SLIDE 143

Design and Technology Solutions

143

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)

slide-144
SLIDE 144

Design and Technology Solutions

144

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)

slide-145
SLIDE 145

Design and Technology Solutions

145

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

slide-146
SLIDE 146

Design and Technology Solutions

146

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)

slide-147
SLIDE 147

Design and Technology Solutions

147

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)

slide-148
SLIDE 148

Design and Technology Solutions

148

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)

slide-149
SLIDE 149

Design and Technology Solutions

149

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)

slide-150
SLIDE 150

Design and Technology Solutions

150

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)

slide-151
SLIDE 151

Design and Technology Solutions

151

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)

slide-152
SLIDE 152

Design and Technology Solutions

152

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)

slide-153
SLIDE 153

Design and Technology Solutions

153

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)

slide-154
SLIDE 154

Design and Technology Solutions

154

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

slide-155
SLIDE 155

Design and Technology Solutions

155

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

slide-156
SLIDE 156

Design and Technology Solutions

156

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

slide-157
SLIDE 157

Design and Technology Solutions

157

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

slide-158
SLIDE 158

Design and Technology Solutions

158

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

slide-159
SLIDE 159

Design and Technology Solutions

159

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

slide-160
SLIDE 160

Design and Technology Solutions

160

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

slide-161
SLIDE 161

Design and Technology Solutions

161

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

slide-162
SLIDE 162

Design and Technology Solutions

162

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

slide-163
SLIDE 163

Design and Technology Solutions

163

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

slide-164
SLIDE 164

Design and Technology Solutions

164

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

slide-165
SLIDE 165

Design and Technology Solutions

165

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

slide-166
SLIDE 166

Design and Technology Solutions

166

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

slide-167
SLIDE 167

Design and Technology Solutions

167

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

slide-168
SLIDE 168

Design and Technology Solutions

168

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

slide-169
SLIDE 169

Design and Technology Solutions

169

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

slide-170
SLIDE 170

Design and Technology Solutions

170

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

slide-171
SLIDE 171

Design and Technology Solutions

171

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

slide-172
SLIDE 172

Design and Technology Solutions

172 40

5 10 15 20 25 30 10 20 30 # SOLVED

DROUTER DROUTER-R DROUTER-S DROUTER-SR MONOSAT MONOSAT+D BV

slide-173
SLIDE 173

Design and Technology Solutions

173 40

5 10 15 20 25 30 10 20 30 # SOLVED

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!
slide-174
SLIDE 174

Design and Technology Solutions

174 40

5 10 15 20 25 30 10 20 30 # SOLVED

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
slide-175
SLIDE 175

Design and Technology Solutions

175

DRouter on Industrial Instances

  • Run DRouter on difficult clips from Intel designs

– Couldn’t be routed cleanly by 2 industrial routers

41

slide-176
SLIDE 176

Design and Technology Solutions

176

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

slide-177
SLIDE 177

Design and Technology Solutions

177

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