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

drive strength aware cell movement techniques for timing
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

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

2

Agenda

slide-3
SLIDE 3

Introduction

slide-4
SLIDE 4

4

Introduction

slide-5
SLIDE 5

5

Interconnection Characteristics

slide-6
SLIDE 6

6

Path Characteristics

Fixed Fixed

slide-7
SLIDE 7

7

UPlacer

slide-8
SLIDE 8

8

Early and Late Timing Violations

Launch point Capture point Early Violation

slide-9
SLIDE 9

9

Early and Late Timing Violations

Late Violation Early Violation Launch point Capture point

slide-10
SLIDE 10

10

Early and Late Timing Violations

Late Violation Early Violation No Timing Violation Launch point Capture point

slide-11
SLIDE 11

Contributions

slide-12
SLIDE 12

12

Contributions

Local-cell movements a local optimum solution

slide-13
SLIDE 13

13

Contributions

Cell Movement

Improve timing by balancing wire capacitance and resistance Local-cell movements a local optimum solution

slide-14
SLIDE 14

Evaluation Metrics

slide-15
SLIDE 15

15

Driver Sensitivity Calculations Metrics

X4 X1 X1

slide-16
SLIDE 16

16

Driver Sensitivity Calculations Metrics

X4 X1 X1

Direction of Cell Movement to minimize timing violation

slide-17
SLIDE 17

17

Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit)

Metrics

slide-18
SLIDE 18

18

Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit)

Metrics

A B

WNS(circuit) = 20 WNS(A) = 14 WNS(B) = 6

slide-19
SLIDE 19

19

Criticality = Worst Negative Slack(pin) Worst Negative Slack (circuit)

Metrics

A B

WNS(circuit) = 20 Criticality(A) = 0.7 Criticality(B) = 0.3

slide-20
SLIDE 20

20

Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin

A B 1 9

Metrics

slide-21
SLIDE 21

21

Centrality: Indirect measure of how many and how critical are the endpoints affected by a pin

A B 1 9 10

Metrics

slide-22
SLIDE 22

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

slide-23
SLIDE 23

Late Optimization

slide-24
SLIDE 24

For each critical cell

24

Clustered Cell Movement

N2 N1 N3 N4

slide-25
SLIDE 25

25

Clustered Cell Movement

N2 N1 N3 N4

Make clusters of topological neighbour cells

slide-26
SLIDE 26

26

Clustered Cell Movement

N2 N1 N3 N4

Find the center of mass for the cluster

slide-27
SLIDE 27

27

Clustered Cell Movement

N2 N1 N3 N4

Find new cluster position to minimize timing violations

slide-28
SLIDE 28

28

Clustered Cell Movement

N2 N1 N3 N4

Move cells toward to new cluster center

slide-29
SLIDE 29

Buffer Balancing

Goal Minimize segment delay by balancing driver/sink load and delay.

displacement delay displacement delay 29

slide-30
SLIDE 30

Buffer Balancing

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

30

slide-31
SLIDE 31

Buffer Balancing

Assumptions and Formulation Elmore delay. Single driver/sink. Driver/sink won’t move Analytical Formulation

d0 d1 a 31 d0 d1 a

slide-32
SLIDE 32

Cell Balancing

Extension of buffer balancing movement

32

slide-33
SLIDE 33

Cell Balancing

33

Driver Point Sink Point Driver and Sink

slide-34
SLIDE 34

Cell Balancing

Analytical Formulation

34 d0 d1 a driver point sink point

slide-35
SLIDE 35

Cell Balancing

New Cell Position

35

Driver Point Sink Point

slide-36
SLIDE 36
  • Critical nets
  • Load Capacitance
  • ptimization

CS D 36

Load Optimization

slide-37
SLIDE 37
  • Critical nets
  • Load Capacitance
  • ptimization
  • Non critical sinks
  • Move toward to its driver

CS D 37

Load Optimization

slide-38
SLIDE 38

Early Optimization

38

slide-39
SLIDE 39
  • Clock Skew Target
  • Startpoint register
  • Reduce local clock load

capacitance and resistance

39

Skew Optimization

LCB FF

slide-40
SLIDE 40
  • Clock Skew Target
  • Startpoint register
  • Reduce local clock load

capacitance and resistance

  • Move closer to LCB

40

Skew Optimization

LCB FF

slide-41
SLIDE 41

Combinational critical cells

41

Iterative Cell Spreading

slide-42
SLIDE 42

Searching in four directions

42

Iterative Cell Spreading

slide-43
SLIDE 43

Move the cell to the local optimum position

43

Iterative Cell Spreading

slide-44
SLIDE 44

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

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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

slide-47
SLIDE 47

Early critical paths composed by two registers

LCB 47

Register-to-Register Path Fix

slide-48
SLIDE 48

Moving endpoint register apart

LCB 48

Register-to-Register Path Fix

slide-49
SLIDE 49

ABU Optimization

slide-50
SLIDE 50

Only for area overflow Bins Non Critical Cells ranked by slack

1 5 4 2 3

50

ABU Reduction

slide-51
SLIDE 51

Move cells to non critical bins Evaluate incremental local timing

51

ABU Reduction

1 5 4 2 3

slide-52
SLIDE 52

Improvement Flow

slide-53
SLIDE 53

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

slide-54
SLIDE 54
  • Quality Score

○ 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

slide-55
SLIDE 55
  • Quality Score

○ Weighted average for timing improvement

  • After each Step

○ 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

slide-56
SLIDE 56
  • Quality Score

○ Weighted average for timing improvement

  • After each Step

○ Steiner Trees update ○ Timing update ○ Evaluate Quality Score improvement ○ Rollback last solution if QS decreases ■ Iterative Spreading accepts a certainty draw back in QS

  • After each cell movement

○ 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

slide-57
SLIDE 57
  • Incremental legalization
  • Nearest area with enough

free space

57

Cell Legalization

slide-58
SLIDE 58
  • Incremental legalization
  • Nearest area with enough

free space

  • Placing cell in the available

position

  • Placed cells are not moved

58

Cell Legalization

slide-59
SLIDE 59

Experimental Results

slide-60
SLIDE 60
  • 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

Experimental Setup

slide-61
SLIDE 61

61

Short Displacement

Comparison with 1st Placed team at 2015 ICCAD contest

slide-62
SLIDE 62

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

slide-63
SLIDE 63

63

Individual Techniques Gain

slide-64
SLIDE 64
  • 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

Conclusion

slide-65
SLIDE 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

slide-66
SLIDE 66

Timing Evaluation Metric

66

Quality Score (QS) QS = 10 x ΔTNSlate + 2 x ΔTNSearly + 5 x ΔWNSlate + ΔWNSearly