routing under constraints
play

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


  1. SAT Solver ’ s Internals Decision Strategy (Conflict-driven) Design and Technology 20 Solutions 43

  2. SAT Solver ’ s Internals Boolean Constraint Propagation Decision Strategy (Conflict-driven) Design and Technology 20 Solutions 44

  3. SAT Solver ’ s Internals Boolean Constraint Propagation Decision Strategy Conflict Analysis & (Conflict-driven) Learning Design and Technology 20 Solutions 45

  4. SAT Solver ’ s Internals Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & (Conflict-driven) Learning Backtracking Design and Technology 20 Solutions 46

  5. SAT Solver ’ s Internals Boolean Constraint Propagation No conflict Decision Strategy Conflict Analysis & (Conflict-driven) Learning Backtracking Design and Technology 20 Solutions 47

  6. 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

  7. SAT  DRouter through Surgery Design and Technology 21 Solutions 49

  8. 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

  9. SAT  DRouter Boolean Constraint Propagation No conflict Conflict Analysis & Learning Time-to- restart? Backtracking Restarts Design and Technology 22 Solutions 51

  10. SAT  DRouter Boolean Constraint Propagation No conflict Conflict Analysis & A*-based Router Learning Time-to- restart? Backtracking Restarts Design and Technology 22 Solutions 52

  11. 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

  12. SAT  DRouter Boolean Constraint Propagation No conflict Conflict Analysis & A*-based Router Learning Graph-based Learning Backtracking Design and Technology 22 Solutions 54

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. Multiple Nets Handling Design and Technology 30 Solutions 82

  41. Multiple Nets Handling • Route the nets one-by-one – Order is critical! Design and Technology 30 Solutions 83

  42. Multiple Nets Handling • Route the nets one-by-one – Order is critical! Design and Technology 30 Solutions 84

  43. Multiple Nets Handling • Route the nets one-by-one – Order is critical! Design and Technology 30 Solutions 85

  44. Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 86

  45. Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 87

  46. Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 88

  47. Multiple Nets Handling • Route the nets one-by-one – Order is critical! • Example Order 1: – Red Design and Technology 30 Solutions 89

  48. 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

  49. 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

  50. 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

  51. 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

  52. 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

  53. 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

  54. 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

  55. 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

  56. 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

  57. 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

  58. 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