drive strength aware cell movement techniques for timing
play

Drive Strength Aware Cell Movement Techniques for Timing Driven - PowerPoint PPT Presentation

Drive Strength Aware Cell Movement Techniques for Timing Driven Placement Guilherme Flach, Mateus Fogaa, Jucemar Monteiro , Marcelo Johann and Ricardo Reis Universidade Federal do Rio Grande do Sul (UFRGS) - Brazil


  1. Drive Strength Aware Cell Movement Techniques for Timing Driven Placement Guilherme Flach, Mateus Fogaça, Jucemar Monteiro , Marcelo Johann and Ricardo Reis Universidade Federal do Rio Grande do Sul (UFRGS) - Brazil jucemar.monteiro@inf.ufrgs.br

  2. Agenda Introduction Contributions Evaluation Metrics Late Timing-Driven Placement Techniques Early Timing-Driven Placement Techniques ABU Improvement Experimental Results Conclusion 2

  3. Introduction

  4. Introduction 4

  5. Interconnection Characteristics 5

  6. Path Characteristics Fixed Fixed 6

  7. UPlacer 7

  8. Early and Late Timing Violations Launch point Capture point Early Violation 8

  9. Early and Late Timing Violations Launch point Capture point Early Late Violation Violation 9

  10. Early and Late Timing Violations Launch point Capture point Early Late No Timing Violation Violation Violation 10

  11. Contributions

  12. Contributions Local-cell movements a local optimum solution 12

  13. Contributions Local-cell movements a local optimum solution Cell Movement Improve timing by balancing wire capacitance and resistance 13

  14. Evaluation Metrics

  15. Metrics Driver Sensitivity Calculations X1 X4 X1 15

  16. Metrics Driver Sensitivity Calculations X1 X4 X1 Direction of Cell Movement to minimize timing violation 16

  17. Metrics Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit) 17

  18. Metrics Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit) WNS(circuit) = 20 A WNS(A) = 14 WNS(B) = 6 B 18

  19. Metrics Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit) WNS(circuit) = 20 A Criticality(A) = 0.7 Criticality(B) = 0.3 B 19

  20. Metrics Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin 1 A 9 B 20

  21. Metrics Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin 1 A 10 9 B 21

  22. Metrics Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin 7 = 0.7 x 10 1 A 7 10 3 9 B criticality(A) = 0.7 criticality(B) = 0.3 22

  23. Late Optimization

  24. Clustered Cell Movement For each critical cell N1 N2 N4 N3 24

  25. Clustered Cell Movement Make clusters of topological neighbour cells N1 N2 N4 N3 25

  26. Clustered Cell Movement Find the center of mass for the cluster N1 N2 N4 N3 26

  27. Clustered Cell Movement Find new cluster position to minimize timing violations N1 N2 N4 N3 27

  28. Clustered Cell Movement Move cells toward to new cluster center N1 N2 N4 N3 28

  29. Buffer Balancing Goal delay delay Minimize segment delay by balancing driver/sink load and delay. displacement displacement 29

  30. Buffer Balancing Assumptions and Formulation Elmore delay. Single driver/sink. Driver/sink won’t move. 30

  31. Buffer Balancing Assumptions and Formulation Elmore delay. Single driver/sink. Driver/sink won’t move Analytical Formulation d 0 a d 1 d 0 a d 1 31

  32. Cell Balancing Extension of buffer balancing movement 32

  33. Cell Balancing Driver and Sink Driver Point Sink Point 33

  34. Cell Balancing Analytical Formulation d 0 a d 1 driver point sink point 34

  35. Cell Balancing New Cell Position Driver Point Sink Point 35

  36. Load Optimization CS ● Critical nets ● Load Capacitance optimization D 36

  37. Load Optimization CS ● Critical nets ● Load Capacitance optimization D ● Non critical sinks ● Move toward to its driver 37

  38. Early Optimization 38

  39. Skew Optimization ● Clock Skew Target ● Startpoint register ● Reduce local clock load capacitance and LCB FF resistance 39

  40. Skew Optimization ● Clock Skew Target ● Startpoint register ● Reduce local clock load LCB capacitance and FF resistance ● Move closer to LCB 40

  41. Iterative Cell Spreading Combinational critical cells 41

  42. Iterative Cell Spreading Searching in four directions 42

  43. Iterative Cell Spreading Move the cell to the local optimum position 43

  44. Register Swap Assignment problem 6 F Hungarian algorithm 7 G 5 1 E A 4 LCB 2 D LCB B 3 C Local Clock Network 8 H 1 A 2 B . 3 C . 4 D . 5 E 6 F 7 G 8 H 44

  45. Register Swap Minimize total cost of assignment 6 F 4->F 7 G 2->G 5 1 E A 1->E 6->A 4 LCB 2 D LCB B 5->D LCB 7->B 3 C 8->C 8 H 3->H 1 A 6 2 B 7 . 3 C 8 . 4 D 5 . 5 E 1 6 F 4 7 G 2 8 H 3 45

  46. Register Swap Assumptions 6 F 4->F Registers are equal 7 G 2->G 5 1 E A 1->E 6->A 4 LCB 2 D LCB B 5->D LCB 7->B 3 C Clock network keeps 8->C 8 H 3->H its timing characteristic 1 A 6 2 B 7 . 3 C 8 . 4 D 5 . 5 E 1 6 F 4 7 G 2 8 H 3 46

  47. Register-to-Register Path Fix Early critical paths composed by two registers LCB 47

  48. Register-to-Register Path Fix Moving endpoint register apart LCB 48

  49. ABU Optimization

  50. ABU Reduction Only for area overflow Bins Non Critical Cells ranked by slack 1 2 4 5 3 50

  51. ABU Reduction Move cells to non critical bins Evaluate incremental local timing 1 2 4 5 3 51

  52. Improvement Flow

  53. Incremental Timing-Driven Placement Flow Initial Placement Early Optimization Skew Optimization Iterative Spreading Register Swap Reg-To-Reg Path Fix Late Optimization Clustered Move Buffer Balancing Cell Balancing Load Optimization ABU Reduction 53

  54. Incremental Timing-Driven Placement Flow ● Quality Score Initial Placement ○ Weighted average for timing improvement Early Optimization Skew Optimization Iterative Spreading Register Swap Reg-To-Reg Path Fix Late Optimization Clustered Move Buffer Balancing Cell Balancing Load Optimization ABU Reduction 54

  55. Incremental Timing-Driven Placement Flow ● Quality Score Initial Placement ○ Weighted average for timing improvement Early Optimization ● After each Step Skew Optimization ○ Steiner Trees update ○ Timing update Iterative Spreading ○ Evaluate Quality Score improvement Register Swap ○ Rollback last solution if QS decreases ■ Iterative Spreading accepts a certainty Reg-To-Reg Path Fix draw back in QS Late Optimization Clustered Move Buffer Balancing Cell Balancing Load Optimization ABU Reduction 55

  56. Incremental Timing-Driven Placement Flow ● Quality Score Initial Placement ○ Weighted average for timing improvement Early Optimization ● After each Step Skew Optimization ○ Steiner Trees update ○ Timing update Iterative Spreading ○ Evaluate Quality Score improvement Register Swap ○ Rollback last solution if QS decreases ■ Iterative Spreading accepts a certainty Reg-To-Reg Path Fix draw back in QS ● After each cell movement Late Optimization ○ Update locally Steiner Trees Clustered Move ○ Update locally timing ○ Evaluate timing cost Buffer Balancing ■ 2Xcentrality + criticality Cell Balancing ○ Reject movement if timing cost increases Load Optimization ○ Legalize cell ABU Reduction 56

  57. Cell Legalization ● Incremental legalization ● Nearest area with enough free space 57

  58. Cell Legalization ● Incremental legalization ● Nearest area with enough free space ● Placing cell in the available position ● Placed cells are not moved 58

  59. Experimental Results

  60. Experimental Setup ● UPlacer tool ● C++-11 ● Incremental Timer ● Incremental Legalizer - Jezz ● Two maximum cell displacement (short and long) ● 2015 ICCAD contest benchmark ○ 8 circuits ● Comparison with 1st Placed team at 2015 ICCAD contest 60

  61. Short Displacement Comparison with 1st Placed team at 2015 ICCAD contest 61

  62. Long Displacement Comparison with 1st Placed team at 2015 ICCAD contest 62 67% of improvement in QS compared with first place at ICCAD 2015 contest

  63. Individual Techniques Gain 63

  64. Conclusion ● Incremental Timing-driven Placement flow ● Local-Cell move techniques ● Optimize early and late timing violations ● Wire load capacitance and resistance ● Outperforms state-of-arts results (ICCAD 15 contest teams) ● Local Timing improvement can achieve a huge minimization in timing violation 64

  65. Drive Strength Aware Cell Movement Techniques for Timing Driven Placement Guilherme Flach, Mateus Fogaça, Jucemar Monteiro, Marcelo Johann and Ricardo Reis Universidade Federal do Rio Grande do Sul (UFRGS) - Brazil jucemar.monteiro@inf.ufrgs.br

  66. Timing Evaluation Metric Quality Score (QS) QS = 10 x ΔTNS late + 2 x ΔTNS early + 5 x ΔWNS late + ΔWNS early 66

Recommend


More recommend