SAT Solver ’ s Internals Decision Strategy (Conflict-driven) Design and Technology 20 Solutions 43
SAT Solver ’ s Internals Boolean Constraint Propagation Decision Strategy (Conflict-driven) Design and Technology 20 Solutions 44
SAT Solver ’ s Internals Boolean Constraint Propagation Decision Strategy Conflict Analysis & (Conflict-driven) Learning Design and Technology 20 Solutions 45
SAT Solver ’ s Internals Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & (Conflict-driven) Learning Backtracking Design and Technology 20 Solutions 46
SAT Solver ’ s Internals Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & (Conflict-driven) Learning Backtracking Design and Technology 20 Solutions 47
SAT Solver ’ s Internals Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & (Conflict-driven) Learning Time-to- restart? Backtracking Restarts Design and Technology 20 Solutions 48
SAT DRouter through Surgery Design and Technology 21 Solutions 49
SAT DRouter Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & (Conflict-driven) Learning Time-to- restart? Backtracking Restarts Design and Technology 22 Solutions 50
SAT DRouter Boolean Constraint Propagation No conflict Conflict Analysis & Learning Time-to- restart? Backtracking Restarts Design and Technology 22 Solutions 51
SAT DRouter Boolean Constraint Propagation No conflict Conflict Analysis & A*-based Router Learning Time-to- restart? Backtracking Restarts Design and Technology 22 Solutions 52
SAT DRouter Boolean Constraint Propagation No conflict Conflict Analysis & A*-based Router Learning Graph-based Time-to- Learning restart? Backtracking Restarts Design and Technology 22 Solutions 53
SAT DRouter Boolean Constraint Propagation No conflict Conflict Analysis & A*-based Router Learning Graph-based Learning Backtracking Design and Technology 22 Solutions 54
SAT DRouter Boolean Constraint Propagation No conflict Conflict Analysis & A*-based Router Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 22 Solutions 55
DRouter Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & A*-based Router (Conflict-driven) Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 23 Solutions 56
DRouter Encoded constraints: Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & A*-based Router (Conflict-driven) Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 23 Solutions 57
DRouter Encoded constraints: 1. Edge consistency • e=(v,u) is active • v and u are active • nid(v) = nid(u) Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & A*-based Router (Conflict-driven) Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 23 Solutions 58
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 No conflict Decision Strategy Conflict Analysis & A*-based Router (Conflict-driven) Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 23 Solutions 59
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 No conflict Decision Strategy Conflict Analysis & terminals??? A*-based Router (Conflict-driven) Learning Routing correctness is guaranteed by the decision strategy! Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 23 Solutions 60
1-Net Example Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & A*-based Router (Conflict-driven) Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 24 Solutions 61
1-Net Example Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & A*-based Router (Conflict-driven) Learning Graph-based Time-to- Time-to-flip? Learning restart? Backtracking Net Net Swapping Restarting Design and Technology 24 Solutions 62
1-Net Example s: (0, 0) 2 t: (3, 0) ¬( 1,0) ¬( 2,0) ¬( 1,0) ¬( 1,1) Design rules 1 ¬( 3,2) ¬( 3,1) 0 1 2 3 Design and Technology Solutions 63
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) ¬( 1,0) ¬( 2,0) ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: A* from s->t 0 1 2 3 Path Suggestion (not an actual SAT decision) Design and Technology Solutions 64
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: SAT A* from s->t Decision 0 1 2 3 Activate edge in sugg. Design and Technology Solutions 65
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: x A* from s->t 0 1 2 3 Activate edge in sugg. σ - violation Design and Technology Solutions 66
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: x A* from s->t 0 1 2 3 Activate edge in sugg. σ - violation A* search for new σ Design and Technology Solutions 67
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: x A* from s->t 0 1 2 3 Activate edge in sugg. Path found A* search for new σ Design and Technology Solutions 68
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 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 69
1-Net Example BCP σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 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 70
1-Net Example BCP σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 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 71
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. σ - violation No -violation no Target is part of path? A* search for new σ Design and Technology Solutions 72
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. No -violation σ - violation no Target is part of path? A* search for new σ Design and Technology Graph conflict (s and t can ’ t be connected) Solutions 73
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. No -violation Add conflicting clause: vertex cut (2,0) (3,1) σ - violation no Target is part of path? A* search for new σ Design and Technology Graph conflict (s and t can ’ t be connected) Solutions 74
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 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 σ Design and Technology Graph conflict (s and t can ’ t be connected) Solutions 75
1-Net Example σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) Initial path: Repeat x A* from s->t 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 σ Design and Technology Graph conflict (s and t can ’ t be connected) Solutions 76
1-Net Example x σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) (2,0) ¬( 3,2) Initial path: Repeat x A* from s->t 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 Graph conflict (s and t can ’ t be connected) Solutions 77
1-Net Example x σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) (2,0) ¬( 3,2) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. No σ -violation σ - violation no Target is part of path? A* search for new σ Learn & Backtrack Design and Technology Solutions Graph conflict 78
1-Net Example x σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) (2,0) ¬( 3,2) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. No σ -violation σ - violation no Target is part of path? A* search for new σ Learn & Backtrack Design and Technology Solutions Graph conflict 79
1-Net Example x σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) (2,0) ¬( 3,2) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. No σ -violation σ - violation no Target is part of path? A* search for new σ (yes!) Learn & Backtrack Design and Technology DONE! Solutions Graph conflict 80
1-Net Example x σ (sugg.) s: (0, 0) 2 t: (3, 0) Real path ¬( 1,0) ¬( 2,0) x ¬( 1,0) ¬( 1,1) 1 ¬( 3,2) ¬( 3,1) (2,0) ¬( 3,2) Initial path: Repeat x A* from s->t 0 1 2 3 Activate edge in sugg. Result: Path that No σ -violation σ - violation Path found no follows Target is part of path? A* search constraints! for new σ (yes!) Learn & Backtrack Design and Technology DONE! Solutions Graph conflict 81
Multiple Nets Handling Design and Technology 30 Solutions 82
Multiple Nets Handling • Route the nets one-by-one – Order is critical! Design and Technology 30 Solutions 83
Multiple Nets Handling • Route the nets one-by-one – Order is critical! Design and Technology 30 Solutions 84
Multiple Nets Handling • Route the nets one-by-one – Order is critical! Design and Technology 30 Solutions 85
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 86
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 87
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 88
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 89
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 30 Solutions 90
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 91
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 92
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 93
Multiple Nets Handling - Graph conflict - black is blocked - Early conflict detection - Check for graph conflicts • Route the nets one-by-one after routing each terminal – Order is critical! - Learn a conflict clause & re-route • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 94
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 95
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 96
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 97
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 98
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 99
Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red • Example Order 2: – Red Design and Technology 31 Solutions 100
Recommend
More recommend