Design Solutions for Routing under Constraints by Alexander Nadel

Routing under Constraints
Routing under Constraints
Alexander Nadel
Alexander Nadel
Intel, Israel
Intel, Israel
FMCAD
FMCAD
Mountain View CA, USA
Mountain View CA, USA
October 4, 2016
October 4, 2016
1
2
"PhysicalDesign" by Linear77 - Own work. Licensed under CC BY 3.0 via
"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
Wikimedia Commons - https://commons.wikimedia.org/wiki/File:PhysicalDesign.png#/media/File:PhysicalDesign.png
Routing
Outline
3
4
Abboud et al, OR Spectrum’08
Routing: 
Routing: 
Input
Input
(AKA Steiner Tree Packing Problem)
(AKA Steiner Tree Packing Problem)
5
Input
A g
raph G(V,E)
Disjoint Nets N
i
 
 V
 
Terminals
Routing: 
Routing: 
Output
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
I
t
 
i
s
 
N
P
-
h
a
r
d
 
t
o
 
f
i
n
d
:
1.
S
h
o
r
t
e
s
t
 
s
o
l
u
t
i
o
n
 
f
o
r
 
o
n
e
 
m
u
l
t
i
-
t
e
r
m
i
n
a
l
 
n
e
t
 
(
S
t
e
i
n
e
r
 
t
r
e
e
 
p
r
o
b
l
e
m
)
2.
A
n
y
 
s
o
l
u
t
i
o
n
 
f
o
r
 
m
a
n
y
 
m
u
l
t
i
-
t
e
r
m
i
n
a
l
 
n
e
t
s
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
Industrial Approach:
Rip-Up and Reroute
 
Nets are routed one-by-one
Nets are routed one-by-one
Using A*
Using A*
s-t shortest-path given costs’ under-approximation
s-t shortest-path given costs’ under-approximation
A*
A*
Dijkstra if no costs’ under-approximation is provided
Dijkstra if no costs’ under-approximation is provided
Trying to heuristically obey design rules
Trying to heuristically obey design rules
Violations are allowed, hence the initial solution
Violations are allowed, hence the initial solution
might be problematic
might be problematic
Net routings might intersect
Net routings might intersect
Design rules might be violated
Design rules might be violated
Clean-up is applied
Rip-up
: problematic net routings are removed
Reroute
: un-routed nets are attempted again
8
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
Potential Solution
10
Constraint Solving
 
 
Next: formalizing Routing under Constraints
Routing Induces Assignment
11
Edge variables
B
o
o
l
 
e
:
 
e
d
g
e
 
a
c
t
i
v
i
t
y
12
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
Routing Induces Assignment
14
Bool 
v
: activity status
Bit-vector 
n
: net id
  (
 
for inactive vertices)
Vertex variables
15
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,
Modeling Routing under
Constraints
Design rules can be easily expressed in BV logic
Design rules can be easily expressed in BV logic
Variables:
Variables:
Edge & vertex activities
Edge & vertex activities
Vertex nids
Vertex nids
Any auxiliary variables
Any auxiliary variables
“Short” rule example
“Short” rule example
For every edge e=(v,u): 
For every edge e=(v,u): 
v 
v 
 
 
u
u
 
 
 
 
nid(v)=nid(u)
nid(v)=nid(u)
17
Short rule is violated for these edges
Routing under Constraints
(RUC): Problem Formulation
18
1.
Graph G(V,E)
2.
Disjoint Nets N
i
 
 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
Solving Attempt: Encoding into
Bitvector Logic / SAT
 
For 2-terminal nets:
For 2-terminal nets:
-
e=(v,u) is active 
e=(v,u) is active 
-
v and u are active, and
v and u are active, and
-
nid(v) = nid(u)
nid(v) = nid(u)
A terminal has one active neighbor edge
A terminal has one active neighbor edge
An active non-terminal has two active neighbor edges
An active non-terminal has two active neighbor edges
For n-terminal nets:
For n-terminal nets:
Encode directed trees
Encode directed trees
Using edge directions
Using edge directions
19
20
Decision Strategy
(Conflict-driven)
Boolean Constraint 
Propagation
SAT Solver’s Internals
Conflict Analysis & 
Learning
Backtracking
Restarts
 
Time-to-
restart?
 
No conflict
 
Conflict
SAT 
SAT 
 DRouter through
 DRouter through
Surgery
Surgery
21
22
Decision Strategy
(Conflict-driven)
Boolean Constraint 
Propagation
Conflict Analysis & 
Learning
Backtracking
Restarts
 
Time-to-
restart?
No conflict
Conflict
A*-based Router
Graph-based 
Learning
Net 
Swapping
Net 
Restarting
 
Time-to-flip?
 
Time-to-
restart?
SAT 
SAT 
 DRouter
 DRouter
DRouter
23
Decision Strategy
(Conflict-driven)
Boolean Constraint 
Propagation
Conflict Analysis & 
Learning
Backtracking
No conflict
Conflict
A*-based Router
Graph-based 
Learning
Net 
Swapping
Net 
Restarting
Time-to-flip?
Time-to-
restart?
E
n
c
o
d
e
d
 
c
o
n
s
t
r
a
i
n
t
s
:
1.
Edge consistency
e=(v,u) is active 
v and u are active
nid(v) = nid(u)
 
2.
User-provided constraints modelling
design rules
 
T
h
a
t
s
 
i
t
!
 
W
h
a
t
 
a
b
o
u
t
 
d
i
s
c
o
n
n
e
c
t
e
d
t
e
r
m
i
n
a
l
s
?
?
?
 
R
o
u
t
i
n
g
 
c
o
r
r
e
c
t
n
e
s
s
 
i
s
 
g
u
a
r
a
n
t
e
e
d
 
b
y
t
h
e
 
d
e
c
i
s
i
o
n
 
s
t
r
a
t
e
g
y
!
1-Net Example
24
Decision Strategy
(Conflict-driven)
Boolean Constraint 
Propagation
Conflict Analysis & 
Learning
Backtracking
No conflict
Conflict
A*-based Router
Graph-based 
Learning
Net 
Swapping
Net 
Restarting
Time-to-flip?
Time-to-
restart?
1-Net Example
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 
σ
 
SAT
Decision
 
Path Suggestion
(not an actual SAT decision)
 
Design rules
1-Net Example
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
1-Net Example
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
1-Net Example
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)
 
  (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
1-Net Example
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
 
D
O
N
E
!
 
Target is part of path?
 
(yes!)
 
no
 
Repeat
 
Activate edge in sugg.
x
 
R
e
s
u
l
t
:
Path that
follows
constraints!
  (2,0) 
 ¬(3,2)
σ
-
violation
Multiple Nets Handling
30
Multiple Nets Handling
31
-
Graph conflict
-
black is blocked
-
Early conflict detection
-
Check for graph conflicts 
after routing each terminal
-
Learn a conflict clause & 
re-route
DRouter
32
Decision Strategy
(Conflict-driven)
Boolean Constraint 
Propagation
Conflict Analysis & 
Learning
Backtracking
No conflict
Conflict
A*-based Router
Graph-based 
Learning
Net 
Swapping
Net 
Restarting
Time-to-flip?
Time-to-
restart?
Net Swapping
33
 
Swapped
N
e
t
 
S
w
a
p
p
i
n
g
:
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}
Net Restarting
34
 
Moved to
the top
N
e
t
 
R
e
s
t
a
r
t
i
n
g
Restart and move the blocked net to the top
(after M conflicts for that net)
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
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
Clock Routing
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 Monosat
language
 
37
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
Conflict
Experimental Results on
Crafted Instances
Solvers:
Solvers:
Drouter 
Drouter 
(default)
(default)
Drouter – R
Drouter – R
: no net restarting
: no net restarting
Drouter – S
Drouter – S
: no net swapping
: no net swapping
Drouter – SR
Drouter – SR
: no net swapping, no net restarting
: no net swapping, no net restarting
Monosat 
Monosat 
(default)
(default)
Monosat + D
Monosat + D
: shortest-path decision strategy is on
: shortest-path decision strategy is on
BV
BV
: reduction to BV
: reduction to BV
Instances:
Instances:
120 solid grid graphs of size M 
120 solid grid graphs of size M 
 
 
20
20
M 
M 
 {3,5,7}
 {3,5,7}
20 random 2-terminal nets
20 random 2-terminal nets
Generate C * |V| random binary clauses 
Generate C * |V| random binary clauses 
v 
v 
 
 
u
u
v,u 
v,u 
 V
 V
C 
C 
 {0,0.1,0.2,0.3}
 {0,0.1,0.2,0.3}
39
40
-
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
DRouter on Industrial
Instances
Run DRouter on difficult clips from Intel designs
Couldn’t be routed cleanly by 2 industrial routers
41
Conclusion
DRouter: design-rule-aware router
SAT solver surgery:
Decision heuristic 
 
A*-based router
Conflict analysis enhanced with graph reasoning
Restarts 
 n
et swapping & net restarting
Solves instances which can’t be solved by
existing tools
Including clips from real Intel designs
42
Slide Note
Embed
Share

Alexander Nadel from Intel presents design solutions for routing under constraints, addressing challenges in formalization, scalability, decision strategies, conflict analysis, and violation resolution in industrial router design. The approach involves problem formalization, SAT encoding, net restarting, A*-based decision strategies, and conflict analysis to efficiently route unsolved instances in the industry. The process emphasizes design rule satisfaction, NP-hard output challenges, and industrial considerations like rip-up and reroute techniques to address violations and intersection issues in net routing.

  • Routing
  • Design Solutions
  • Constraints
  • Alexander Nadel
  • Industrial Approach

Uploaded on Sep 24, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


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

  2. Routing Design and Technology Solutions 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 2

  3. Outline Goal: Design a Scalable Design Rule-aware Router Routing under Constraints (RUC): Problem Formalization Bit-Vector / SAT Encoding Doesn t scale DRouter through SAT Solver Surgery A*-based decision strategy (emulates constraints!) Net restarting & net swapping Graph conflict analysis Unsolved crafted and industrial RUC instances are routed! Design and Technology Solutions 3 3

  4. Abboud et al, OR Spectrum08 Design and Technology Solutions 4 4

  5. Routing: Input (AKA Steiner Tree Packing Problem) Input A graph G(V,E) Disjoint Nets Ni V Terminals Design and Technology Solutions 5 5

  6. Routing: Output It is NP-hard to find: 1. Shortest solution for one multi-terminal net (Steiner tree problem) Output Input 2. Any solution for many multi-terminal nets 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 Design and Technology Solutions 6 6

  7. 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 Short rule is violated for these edges When the short rule is on, this example is UNSAT Design and Technology Solutions 7 7

  8. 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 Design and Technology Solutions 8 8

  9. The Problem with the Current Solution Design rule violations persist Manual clean-up is carried out Some violations still persist Time-to-market is impacted Design and Technology Solutions 9 9

  10. Potential Solution Constraint Solving Next: formalizing Routing under Constraints Design and Technology Solutions 10 10

  11. Routing Induces Assignment Edge variables Bool e: edge activity Design and Technology Solutions 11 11

  12. Design and Technology Solutions 12 12

  13. 0 1 1 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 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Design and Technology Solutions 13 13

  14. Routing Induces Assignment Vertex variables Bool v: activity status Bit-vector n: net id ( for inactive vertices) Design and Technology Solutions 14 14

  15. Design and Technology Solutions 15 15

  16. 0, 0, 0, 0, 1,0 0, 0, 0, 1,0 1,0 0, 0, 0, 0, 1,0 0, 0, 0, 1,1 1,0 0, 0, 0, 0, 1,0 0, 0, 0, 1,1 1,0 0, 0, 0, 0, 1,0 0, 0, 0, 1,1 1,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, 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, Design and Technology Solutions 16 16

  17. Modeling Routing under Constraints Design rules can be easily expressed in BV logic Variables: Edge & vertex activities Vertex nids Any auxiliary variables Short rule example For every edge e=(v,u): v u nid(v)=nid(u) Short rule is violated for these edges Design and Technology Solutions 17

  18. Routing under Constraints (RUC): Problem Formulation 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) 1. Graph G(V,E) 2. Disjoint Nets Ni V Output: a model to F, which induces a routing: - e=(v,u) is active - v and u are active, and - nid(v) = nid(u) - For each net i: active vertices with nid i and active edges span the net s terminals - Optional optimization requirement: the overall weight of active edges is as small as possible Design and Technology Solutions 18 18

  19. 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 Design and Technology Solutions 19 19

  20. SAT Solvers Internals Boolean Constraint Propagation No conflict Decision Strategy (Conflict-driven) Conflict Analysis & Learning Time-to- restart? Backtracking Restarts Design and Technology Solutions 20 20

  21. SAT DRouter through Surgery Design and Technology Solutions 21 21

  22. SAT DRouter Boolean Constraint Propagation No conflict Decision Strategy (Conflict-driven) Conflict Analysis & Learning A*-based Router Graph-based Learning Time-to- restart? Time-to-flip? Time-to- restart? Backtracking Net Net Swapping Restarting Restarts Design and Technology Solutions 22 22

  23. DRouter Encoded constraints: 1. Edge consistency e=(v,u) is active v and u are active nid(v) = nid(u) Boolean Constraint Propagation 2. User-provided constraints modelling design rules That s it! What about disconnected terminals??? No conflict Decision Strategy (Conflict-driven) Routing correctness is guaranteed by the decision strategy! Conflict Analysis & Learning A*-based Router Graph-based Learning Time-to- restart? Time-to-flip? Backtracking Net Net Swapping Restarting Design and Technology Solutions 23 23

  24. 1-Net Example Boolean Constraint Propagation No conflict Decision Strategy (Conflict-driven) Conflict Analysis & Learning A*-based Router Graph-based Learning Time-to- restart? Time-to-flip? Backtracking Net Net Swapping Restarting Design and Technology Solutions 24 24

  25. 1-Net Example s: (0, 0) t: (3, 0) (sugg.) 2 Real path (1,0) (2,0) (1,0) (1,1) (3,2) (3,1) x Design rules 1 Initial path: A* from s->t SAT x Decision 0 1 2 3 Path Suggestion (not an actual SAT decision) Activate edge in sugg. -violation A* search for new Design and Technology Solutions 25

  26. 1-Net Example BCP s: (0, 0) t: (3, 0) (sugg.) 2 Real path (1,0) (2,0) (1,0) (1,1) (3,2) (3,1) x 1 Initial path: A* from s->t Repeat x 0 1 2 3 Activate edge in sugg. No -violation Path found no Target is part of path? A* search for new Design and Technology Solutions 26

  27. 1-Net Example s: (0, 0) t: (3, 0) (sugg.) 2 Real path (1,0) (2,0) (1,0) (1,1) (3,2) (3,1) x x 1 Initial path: A* from s->t Repeat x 0 1 2 3 Activate edge in sugg. -violationNo -violation no Target is part of path? A* search for new Design and Technology Solutions 27

  28. 1-Net Example x s: (0, 0) t: (3, 0) (sugg.) 2 Real path (1,0) (2,0) (1,0) (1,1) (3,2) (3,1) (2,0) (3,2) x x 1 Initial path: A* from s->t Repeat x 0 1 2 3 Activate edge in sugg. 1UIP conflict clause: (2,0) (3,2) No -violation Add conflicting clause: vertex cut (2,0) (3,1) -violation no Target is part of path? A* search for new Learn & Backtrack Design and Technology Solutions Graph conflict (s and t can t be connected) 28

  29. 1-Net Example x s: (0, 0) t: (3, 0) (sugg.) 2 Real path (1,0) (2,0) (1,0) (1,1) (3,2) (3,1) (2,0) (3,2) x 1 Initial path: A* from s->t Repeat x 0 1 2 3 Activate edge in sugg. Result: Path that follows constraints! No -violation -violation Path found no Target is part of path? A* search for new (yes!) Learn & Backtrack Design and Technology Solutions DONE! Graph conflict 29

  30. Multiple Nets Handling Route the nets one-by-one Order is critical! Example Order 1: Violet Black Red Example Order 2: Red Black Violet Design and Technology Solutions 30 30

  31. Multiple Nets Handling - black is blocked - Early conflict detection - Check for graph conflicts after routing each terminal - Learn a conflict clause & re-route - Graph conflict Route the nets one-by-one Order is critical! Example Order 1: Violet Black Red Example Order 2: Red Black Violet Too slow! Solution: dynamic net reordering! Design and Technology Solutions 31 31

  32. DRouter Boolean Constraint Propagation No conflict Decision Strategy (Conflict-driven) Conflict Analysis & Learning A*-based Router Graph-based Learning Time-to- restart? Time-to-flip? Backtracking Net Net Swapping Restarting Design and Technology Solutions 32 32

  33. Net Swapping Example Order 2: Red Black Violet Flip: Black Red Violet Swapped Net Swapping: After N conflicts, swap the order between: the first blocked net i the blocking net j {A,j,B,i,C} {A,i,j,B,C} Design and Technology Solutions 33 33

  34. Net Restarting Example Order 2: Red Black Violet Flip: Black Red Violet Moved to the top Net Restarting Restart and move the blocked net to the top (after M conflicts for that net) Design and Technology Solutions 34 34

  35. 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 Design and Technology Solutions 35 35

  36. 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 Clock Routing Design and Technology Solutions 36 36

  37. 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 Monosat language Design and Technology Solutions 37 37

  38. 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 Routing in DRouter (net swapping&restarting are off) Routing in Monosat Conflict Conflict Design and Technology Solutions 38 38

  39. 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} Design and Technology Solutions 39 39

  40. 30 25 DROUTER DROUTER-R DROUTER-S DROUTER-SR MONOSAT MONOSAT+D BV 20 # SOLVED 15 10 5 0 0 10 20 30 - Full-fledged DRouter only can solves all the instances - Both net restarting and net swapping are essential! Monosat and BV can t solve a single instance - Design and Technology Solutions 40 40

  41. DRouter on Industrial Instances Run DRouter on difficult clips from Intel designs Couldn t be routed cleanly by 2 industrial routers Nets Vertices Constraints Time in sec. Memory in Gb. Area in m2 24 110 42,456 484,008 25 0.7 24 230 42,456 484,008 391 1.0 32 352 63,740 667,764 705 2.2 129 788 127,480 2,669,056 14,733 6.5 129 891 127,480 2,669,056 92,950 6.5 Design and Technology Solutions 41 41

  42. 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 Design and Technology Solutions 42 42

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#