Design and Technology Solutions
Routing under Constraints
Alexander Nadel Intel, Israel
FMCAD Mountain View CA, USA October 4, 2016
1
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
Design and Technology Solutions
1
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
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
Design and Technology Solutions
4
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
Design and Technology Solutions
5 4
Abboud et al, OR Spectrum’08
Design and Technology Solutions
6
5
Design and Technology Solutions
7
5
Design and Technology Solutions
8
5
Design and Technology Solutions
9
5
Design and Technology Solutions
10
5
Terminals
Design and Technology Solutions
11
5
Disjoint Nets Ni V
Design and Technology Solutions
12
6
Design and Technology Solutions
13
6
Design and Technology Solutions
14
6
It is NP-hard to find:
Design and Technology Solutions
15
7
Design and Technology Solutions
16
7
Short rule is violated for these edges
Design and Technology Solutions
17
7
Short rule is violated for these edges When the short rule is on, this example is UNSAT
Design and Technology Solutions
18
– s-t shortest-path given costs’ under-approximation – A*Dijkstra if no costs’ under-approximation is provided
18
Design and Technology Solutions
19
9
Some violations still persist Time-to-market is impacted
Design and Technology Solutions
20
10
Design and Technology Solutions
21
10
Design and Technology Solutions
22
11
Edge variables Bool e: edge activity
Design and Technology Solutions
23 12
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
Design and Technology Solutions
25
14
Bool v: activity status Bit-vector n: net id ( for inactive vertices) Vertex variables
Design and Technology Solutions
26 15
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,
Design and Technology Solutions
28
– Edge & vertex activities – Vertex nids – Any auxiliary variables
Short rule is violated for these edges
Design and Technology Solutions
29
18
Design and Technology Solutions
30
18
Design and Technology Solutions
31
18
Input
Design and Technology Solutions
32
18
Input
Design and Technology Solutions
33
18
Input A quantifier-free bit-vector formula F(V E N A)
(represents the design rules)
Design and Technology Solutions
34
18
Input A quantifier-free bit-vector formula F(V E N A)
(represents the design rules) Output: a model to F, which induces a routing:
active edges span the net’s terminals
weight of active edges is as small as possible
Design and Technology Solutions
35
19
Design and Technology Solutions
36
19
Design and Technology Solutions
37
19
Design and Technology Solutions
38
19
Design and Technology Solutions
39
19
Design and Technology Solutions
40
– Using edge directions
19
Design and Technology Solutions
41
– Using edge directions
19
Design and Technology Solutions
42 20
Design and Technology Solutions
43 20
Decision Strategy (Conflict-driven)
Design and Technology Solutions
44 20
Decision Strategy (Conflict-driven) Boolean Constraint Propagation
Design and Technology Solutions
45 20
Decision Strategy (Conflict-driven) Boolean Constraint Propagation
Conflict Analysis & Learning
Design and Technology Solutions
46 20
Decision Strategy (Conflict-driven) Boolean Constraint Propagation
Conflict Analysis & Learning Backtracking No conflict
Design and Technology Solutions
47 20
Decision Strategy (Conflict-driven) Boolean Constraint Propagation
Conflict Analysis & Learning Backtracking No conflict
Design and Technology Solutions
48 20
Decision Strategy (Conflict-driven) Boolean Constraint Propagation
Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict
Design and Technology Solutions
49
21
Design and Technology Solutions
50 22
Decision Strategy (Conflict-driven) Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict
Design and Technology Solutions
51 22
Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict
Design and Technology Solutions
52 22
Boolean Constraint Propagation Conflict Analysis & Learning Backtracking Restarts Time-to- restart? No conflict A*-based Router
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
Design and Technology Solutions
54 22
Boolean Constraint Propagation Conflict Analysis & Learning Backtracking No conflict A*-based Router Graph-based Learning
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?
Design and Technology Solutions
56
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?
Design and Technology Solutions
57
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:
Design and Technology Solutions
58
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:
Design and Technology Solutions
59
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:
design rules
Design and Technology Solutions
60
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:
design rules That’s it! What about disconnected terminals??? Routing correctness is guaranteed by the decision strategy!
Design and Technology Solutions
61
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?
Design and Technology Solutions
62
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?
Design and Technology Solutions
63
1 2 1 2 3 s: (0, 0) t: (3, 0) ¬(1,0) ¬(2,0) ¬(1,0) ¬(1,1) ¬(3,2) ¬(3,1) Design rules
Design and Technology Solutions
64
1 2 1 2 3 s: (0, 0) t: (3, 0) ¬(1,0) ¬(2,0) ¬(1,0) ¬(1,1) ¬(3,2) ¬(3,1) Initial path: A* from s->t σ (sugg.) Path Suggestion (not an actual SAT decision)
Design and Technology Solutions
65
1 2 1 2 3 s: (0, 0) t: (3, 0) ¬(1,0) ¬(2,0) ¬(1,0) ¬(1,1) ¬(3,2) ¬(3,1) Initial path: A* from s->t Real path σ (sugg.) Activate edge in sugg. SAT Decision
Design and Technology Solutions
66
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.) σ-violation Activate edge in sugg.
Design and Technology Solutions
67
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.) σ-violation Activate edge in sugg. A* search for new σ
Design and Technology Solutions
68
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.) A* search for new σ Path found Activate edge in sugg.
Design and Technology Solutions
69
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.) A* search for new σ No -violation Path found Target is part of path? no Repeat Activate edge in sugg.
Design and Technology Solutions
70
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.) A* search for new σ No -violation Path found Target is part of path? no Repeat Activate edge in sugg. BCP
Design and Technology Solutions
71
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.) A* search for new σ No -violation Path found Target is part of path? no Repeat Activate edge in sugg. BCP
Design and Technology Solutions
72
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.) A* search for new σ Activate edge in sugg.
σ-violation No -violation Target is part of path? no Repeat
Design and Technology Solutions
73
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.) A* search for new σ Activate edge in sugg.
σ-violation Graph conflict (s and t can’t be connected) No -violation Target is part of path? no Repeat
Design and Technology Solutions
74
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.) A* search for new σ Activate edge in sugg.
σ-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
Design and Technology Solutions
75
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.) 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) Graph conflict (s and t can’t be connected) No -violation Target is part of path? no Repeat
Design and Technology Solutions
76
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.) 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) Graph conflict (s and t can’t be connected) No -violation Target is part of path? no Repeat
Design and Technology Solutions
77
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.) 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)
Graph conflict (s and t can’t be connected) Learn & Backtrack No -violation Target is part of path? no Repeat
Design and Technology Solutions
78
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.) A* search for new σ No σ-violation Graph conflict Learn & Backtrack Target is part of path? no Repeat Activate edge in sugg.
(2,0) ¬(3,2) σ-violation
Design and Technology Solutions
79
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.) A* search for new σ No σ-violation Graph conflict Learn & Backtrack Target is part of path? no Repeat Activate edge in sugg.
(2,0) ¬(3,2) σ-violation
Design and Technology Solutions
80
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.) A* search for new σ No σ-violation Graph conflict Learn & Backtrack
Target is part of path? (yes!) no Repeat Activate edge in sugg.
(2,0) ¬(3,2) σ-violation
Design and Technology Solutions
81
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.) A* search for new σ No σ-violation Path found Graph conflict Learn & Backtrack
Target is part of path? (yes!) no Repeat Activate edge in sugg.
(2,0) ¬(3,2) σ-violation
Design and Technology Solutions
82
30
Design and Technology Solutions
83
30
Design and Technology Solutions
84
30
Design and Technology Solutions
85
30
Design and Technology Solutions
86
30
Design and Technology Solutions
87
30
Design and Technology Solutions
88
30
Design and Technology Solutions
89
30
Design and Technology Solutions
90
30
Design and Technology Solutions
91
31
Design and Technology Solutions
92
31
Design and Technology Solutions
93
31
Design and Technology Solutions
94
31
after routing each terminal
re-route
Design and Technology Solutions
95
31
Design and Technology Solutions
96
31
Design and Technology Solutions
97
31
Design and Technology Solutions
98
31
Design and Technology Solutions
99
31
Design and Technology Solutions
100
31
Design and Technology Solutions
101
31
Design and Technology Solutions
102
31
Design and Technology Solutions
103
31
Design and Technology Solutions
104
31
Design and Technology Solutions
105
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?
Design and Technology Solutions
106
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?
Design and Technology Solutions
107
33
Design and Technology Solutions
108
33
Design and Technology Solutions
109
33
Design and Technology Solutions
110
33
Design and Technology Solutions
111
33
Design and Technology Solutions
112
33
Net Swapping: After N conflicts, swap the order between: the first blocked net i the blocking net j {A,j,B,i,C} {A,i,j,B,C}
Design and Technology Solutions
113
33
Swapped Net Swapping: After N conflicts, swap the order between: the first blocked net i the blocking net j {A,j,B,i,C} {A,i,j,B,C}
Design and Technology Solutions
114
33
Swapped Net Swapping: After N conflicts, swap the order between: the first blocked net i the blocking net j {A,j,B,i,C} {A,i,j,B,C}
Design and Technology Solutions
115
33
Swapped Net Swapping: After N conflicts, swap the order between: the first blocked net i the blocking net j {A,j,B,i,C} {A,i,j,B,C}
Design and Technology Solutions
116
33
Swapped Net Swapping: After N conflicts, swap the order between: the first blocked net i the blocking net j {A,j,B,i,C} {A,i,j,B,C}
Design and Technology Solutions
117
34
Design and Technology Solutions
118
34
Design and Technology Solutions
119
34
Design and Technology Solutions
120
34
Design and Technology Solutions
121
34
Design and Technology Solutions
122
34
Net Restarting Restart and move the blocked net to the top (after M conflicts for that net)
Design and Technology Solutions
123
34
Moved to the top Net Restarting Restart and move the blocked net to the top (after M conflicts for that net)
Design and Technology Solutions
124
34
Moved to the top Net Restarting Restart and move the blocked net to the top (after M conflicts for that net)
Design and Technology Solutions
125
34
Moved to the top Net Restarting Restart and move the blocked net to the top (after M conflicts for that net)
Design and Technology Solutions
126
34
Moved to the top Net Restarting Restart and move the blocked net to the top (after M conflicts for that net)
Design and Technology Solutions
127
35
Design and Technology Solutions
128
36
Design and Technology Solutions
129
36
Design and Technology Solutions
130
36
Clock Routing
Design and Technology Solutions
131
36
Design and Technology Solutions
132
36
Design and Technology Solutions
133
36
Design and Technology Solutions
134
36
Design and Technology Solutions
135
37
Design and Technology Solutions
136
37
Design and Technology Solutions
137
37
Design and Technology Solutions
138
37
Design and Technology Solutions
139
37
Design and Technology Solutions
140
38
Design and Technology Solutions
141
38
Design and Technology Solutions
142
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
143
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
144
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
145
38
Routing in DRouter (net swapping&restarting are off) Conflict
Design and Technology Solutions
146
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
147
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
148
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
149
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
150
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
151
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
152
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
153
38
Routing in DRouter (net swapping&restarting are off)
Design and Technology Solutions
154
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
155
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
156
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
157
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat Conflict
Design and Technology Solutions
158
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
159
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
160
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
161
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
162
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
163
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
164
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
165
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
166
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
167
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
168
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
169
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
170
38
Routing in DRouter (net swapping&restarting are off) Routing in Monosat
Design and Technology Solutions
171
– 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
– 120 solid grid graphs of size M 20
– M {3,5,7}
– 20 random 2-terminal nets – Generate C * |V| random binary clauses v u
– v,u V – C {0,0.1,0.2,0.3}
39
Design and Technology Solutions
172 40
5 10 15 20 25 30 10 20 30 # SOLVED
DROUTER DROUTER-R DROUTER-S DROUTER-SR MONOSAT MONOSAT+D BV
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
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
Design and Technology Solutions
175
41
Design and Technology Solutions
176
41
Area in m2 Nets Vertices Constraints Time in sec. Memory in Gb. 24 110 42,456 484,008 25 0.7 24 230 42,456 484,008 391 1.0 32 352 63,740 667,764 705 2.2 129 788 127,480 2,669,056 14,733 6.5 129 891 127,480 2,669,056 92,950 6.5
Design and Technology Solutions
177
– Decision heuristic A*-based router – Conflict analysis enhanced with graph reasoning – Restarts net swapping & net restarting
42