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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend