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
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
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
Introduction Contributions Evaluation Metrics Late Timing-Driven Placement Techniques Early Timing-Driven Placement Techniques ABU Improvement Experimental Results Conclusion
2
Agenda
4
Introduction
5
Interconnection Characteristics
6
Path Characteristics
Fixed Fixed
7
UPlacer
8
Early and Late Timing Violations
Launch point Capture point Early Violation
9
Early and Late Timing Violations
Late Violation Early Violation Launch point Capture point
10
Early and Late Timing Violations
Late Violation Early Violation No Timing Violation Launch point Capture point
12
Contributions
Local-cell movements a local optimum solution
13
Contributions
Cell Movement
Improve timing by balancing wire capacitance and resistance Local-cell movements a local optimum solution
15
Driver Sensitivity Calculations Metrics
X4 X1 X1
16
Driver Sensitivity Calculations Metrics
X4 X1 X1
17
Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit)
Metrics
18
Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit)
Metrics
A B
WNS(circuit) = 20 WNS(A) = 14 WNS(B) = 6
19
Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit)
Metrics
A B
WNS(circuit) = 20 Criticality(A) = 0.7 Criticality(B) = 0.3
20
Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin
A B 1 9
Metrics
21
Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin
A B 1 9 10
Metrics
22
Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin
A B 1 9 criticality(A) = 0.7 criticality(B) = 0.3 10 7 3
Metrics
7 = 0.7 x 10
For each critical cell
24
Clustered Cell Movement
N2 N1 N3 N4
25
Clustered Cell Movement
N2 N1 N3 N4
Make clusters of topological neighbour cells
26
Clustered Cell Movement
N2 N1 N3 N4
Find the center of mass for the cluster
27
Clustered Cell Movement
N2 N1 N3 N4
Find new cluster position to minimize timing violations
28
Clustered Cell Movement
N2 N1 N3 N4
Move cells toward to new cluster center
Buffer Balancing
Goal Minimize segment delay by balancing driver/sink load and delay.
displacement delay displacement delay 29
Buffer Balancing
Assumptions and Formulation Elmore delay. Single driver/sink. Driver/sink won’t move.
30
Buffer Balancing
Assumptions and Formulation Elmore delay. Single driver/sink. Driver/sink won’t move Analytical Formulation
d0 d1 a 31 d0 d1 a
Cell Balancing
Extension of buffer balancing movement
32
Cell Balancing
33
Driver Point Sink Point Driver and Sink
Cell Balancing
Analytical Formulation
34 d0 d1 a driver point sink point
Cell Balancing
New Cell Position
35
Driver Point Sink Point
CS D 36
Load Optimization
CS D 37
Load Optimization
38
capacitance and resistance
39
Skew Optimization
LCB FF
capacitance and resistance
40
Skew Optimization
LCB FF
Combinational critical cells
41
Iterative Cell Spreading
Searching in four directions
42
Iterative Cell Spreading
Move the cell to the local optimum position
43
Iterative Cell Spreading
Assignment problem Hungarian algorithm Local Clock Network
LCB 3 2 7 4 1 6 5 8 LCB C B G D A F E H C B G D A F E H 1 2 3 4 5 6 7 8 . . .
44
Register Swap
Minimize total cost of assignment
LCB 3 2 7 4 1 6 5 8 LCB C B G D A F E H LCB 8->C 7->B 2->G 5->D 6->A 4->F 1->E 3->H C B G D A F E H 1 2 3 4 5 6 7 8 6 7 8 5 1 4 2 3 . . .
45
Register Swap
Assumptions Registers are equal Clock network keeps its timing characteristic
LCB 3 2 7 4 1 6 5 8 LCB C B G D A F E H LCB 8->C 7->B 2->G 5->D 6->A 4->F 1->E 3->H C B G D A F E H 1 2 3 4 5 6 7 8 6 7 8 5 1 4 2 3 . . .
46
Register Swap
Early critical paths composed by two registers
LCB 47
Register-to-Register Path Fix
Moving endpoint register apart
LCB 48
Register-to-Register Path Fix
Only for area overflow Bins Non Critical Cells ranked by slack
1 5 4 2 3
50
ABU Reduction
Move cells to non critical bins Evaluate incremental local timing
51
ABU Reduction
1 5 4 2 3
Early Optimization Late Optimization Skew Optimization Iterative Spreading Register Swap Reg-To-Reg Path Fix Buffer Balancing Cell Balancing Load Optimization Clustered Move ABU Reduction Initial Placement
53
Incremental Timing-Driven Placement Flow
○ Weighted average for timing improvement
Early Optimization Late Optimization Skew Optimization Iterative Spreading Register Swap Reg-To-Reg Path Fix Buffer Balancing Cell Balancing Load Optimization Clustered Move ABU Reduction Initial Placement
54
Incremental Timing-Driven Placement Flow
○ Weighted average for timing improvement
○ Steiner Trees update ○ Timing update ○ Evaluate Quality Score improvement ○ Rollback last solution if QS decreases ■ Iterative Spreading accepts a certainty draw back in QS
Early Optimization Late Optimization Skew Optimization Iterative Spreading Register Swap Reg-To-Reg Path Fix Buffer Balancing Cell Balancing Load Optimization Clustered Move ABU Reduction Initial Placement
55
Incremental Timing-Driven Placement Flow
○ Weighted average for timing improvement
○ Steiner Trees update ○ Timing update ○ Evaluate Quality Score improvement ○ Rollback last solution if QS decreases ■ Iterative Spreading accepts a certainty draw back in QS
○ Update locally Steiner Trees ○ Update locally timing ○ Evaluate timing cost ■ 2Xcentrality + criticality ○ Reject movement if timing cost increases ○ Legalize cell
Early Optimization Late Optimization Skew Optimization Iterative Spreading Register Swap Reg-To-Reg Path Fix Buffer Balancing Cell Balancing Load Optimization Clustered Move ABU Reduction Initial Placement
56
Incremental Timing-Driven Placement Flow
free space
57
Cell Legalization
free space
position
58
Cell Legalization
○ 8 circuits
contest
60
Experimental Setup
61
Short Displacement
Comparison with 1st Placed team at 2015 ICCAD contest
62
67% of improvement in QS compared with first place at ICCAD 2015 contest
Long Displacement
Comparison with 1st Placed team at 2015 ICCAD contest
63
Individual Techniques Gain
contest teams)
minimization in timing violation
64
Conclusion
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
Timing Evaluation Metric
66
Quality Score (QS) QS = 10 x ΔTNSlate + 2 x ΔTNSearly + 5 x ΔWNSlate + ΔWNSearly