EDA Design Automation Prof. Ulf Schlichtmann Abacus: Fast - - PowerPoint PPT Presentation

eda
SMART_READER_LITE
LIVE PREVIEW

EDA Design Automation Prof. Ulf Schlichtmann Abacus: Fast - - PowerPoint PPT Presentation

Institute for Electronic EDA Design Automation Prof. Ulf Schlichtmann Abacus: Fast Legalization of Standard Cell Circuits with Minimal Movement Peter Spindler, Ulf Schlichtmann and Frank M. Johannes Technische Universitaet Muenchen ISPD,


slide-1
SLIDE 1

Abacus: Fast Legalization of Standard Cell Circuits with Minimal Movement

Peter Spindler, Ulf Schlichtmann and Frank M. Johannes Technische Universitaet Muenchen

ISPD, April 2008

EDA

Institute for Electronic Design Automation

  • Prof. Ulf Schlichtmann
slide-2
SLIDE 2

Slide 2

Outline

  • Background
  • State-of-the-Art
  • Abacus, PlaceRow
  • Experimental Results
  • Conclusion
slide-3
SLIDE 3

Slide 3

Background

Standard cell circuits:

  • 1. Global

Placement Legalization

  • 2. Legal

Placement Placement: Align cells overlap-free to row structure

  • No overlap
  • Cells aligned to rows
  • Preserve global placement:

minimal cell movement Physical representation: Rectangles, all have the same height, but different widths Millions of cells: inverter , NAND , NOR Legal placement:

slide-4
SLIDE 4

Slide 4

State-of-the-Art in Legalization

  • Flow based: assign cells to places

Domino [Doll et al., TCAD 1994] BonnPlace [Vygen et al., TCAD 2004]

  • Two stage: first assign cells to rows, then place the rows

[Madden et al., ICCAD 2003, Kahng et al., GLS-VLSI 2004]

  • Diffusion based [Alpert et al., DAC 2005]
  • Computational Geometry based [Alpert et al., DAC 2007]
  • Greedy: legalize one cell at a time: Tetris [Hill, Patent, 2002]

State-of-the-Art:

slide-5
SLIDE 5

Slide 5

Abacus: Overview

  • Similar to Tetris: sort cells, legalize one cell at a time
  • Legalization of one cell: move cell over the rows,

place cell to best/nearest row

  • Difference to Tetris: PlaceRow: move already legalized cells

within one row, minimize total movement

  • Because of PlaceRow: lower total movement

Abacus:

slide-6
SLIDE 6

Slide 6

5 1 2 3 4 6

Step 1: Sorting

Sort cells according to x-pos in global placement x 7 8 9 3 1 2 5 4 6 7 8 9 Process order: 1, 2, 3, 4, 5, 6, 7, 8, 9

slide-7
SLIDE 7

Slide 7

Legalize Cell 1

Insert to row 1 Insert to row 2 Insert to row 3 Best row: 2

Row 1 Row 2 Row 3

Cell 1 to be legalized

slide-8
SLIDE 8

Slide 8

Legalize Cell 2

Insert to row 1 Insert to row 2 Insert to row 3 PlaceRow 2: Minimize quadratic movement in x-dir of cells

Row 1 Row 2

Cell 1 already legalized to row 2 Best row: 3

Row 3

Cell 2 to be legalized

slide-9
SLIDE 9

Slide 9

Legalize Cell 3

Insert to row 1 Insert to row 2 Insert to row 3 PlaceRow 2: Minimize quadratic movement in x-dir of cells Cell 1 already legalized to row 2 Best row: 1

Row 1 Row 2 Row 3

Cell 2 already legalized to row 3 PlaceRow 3: Minimize quadratic movement in x-dir of cells Cell 3 to be legalized

slide-10
SLIDE 10

Slide 10

Legalize Cell 4

Insert to row 1 Insert to row 2 Insert to row 3 Best row: 2 PlaceRow 2

Row 1 Row 2 Row 3

PlaceRow 3 Cell 4 to be legalized PlaceRow 1 Already legalized cell is moved within the row

slide-11
SLIDE 11

Slide 11

Final Result

Abacus Tetris: No PlaceRow higher movement (about 50% more for a large circuit) Global Placement

slide-12
SLIDE 12

Slide 12

( xi )

( )

1 1 1 2

s.t. min

− − =

+ ≥ ′ −

i i i N i i i i

w x x x x e

global x-pos legal x-pos weight no overlap width

w1 w2 1 2 3 4 5 6 x 1 2 3 4 5 6 x1 x3 x1 x2 x3

Input: Output: Input: one row with N cells, x-pos of cells: global placement Output: new (legal) x-pos of cells ( xi ) such that the overlap is removed and the total quadratic movement is minimized

x2

PlaceRow

QP:

slide-13
SLIDE 13

Slide 13

PlaceRow: Dynamic Programming

1

PlaceRow:

  • Solve QP by dynamic programming approach:

solve sub problems optimally to obtain final solution

  • Process cells from left to right

Cell 1: first cell do not move

slide-14
SLIDE 14

Slide 14

2

Cell 2:

2 1 1

e e e + ← ( )

2 1 1 2 2 1 1 1

e e w x e x e x + − ′ + ′ ← ′

2 1 1

w w w + ←

( ) ( )

2 2 2 2 2 1 1 1

min x x e x x e ′ − + ′ −

  • verlap with previous cell? yes cluster with previous cell

( ) ( )

2 2 1 1 2 2 1 1 1 2 1

min ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ + − ′ + ′ − + e e w x e x e x e e Update x1, e1, and w1: Clustering process:

1 1 2

w x x + =

new e1 new x1

w1 1

PlaceRow, Cell 2 ( )

2 1 1 1

min x x e ′ −

Result:

1 1

x x ′ =

slide-15
SLIDE 15

Slide 15

PlaceRow, Cell 2 (Cont‘d)

2 1 1 (2) 1 2

Global: Result: Cluster cell 1 and 2 Move cluster to new global x-pos Animation:

slide-16
SLIDE 16

Slide 16

PlaceRow, Cell 3

1 3

Cell 3: Overlap with previous cell? yes cluster with previous cell

w1

3 1 1

e e e + ← ( )

3 1 1 3 3 1 1 1

e e w x e x e x + − ′ + ′ ← ′

3 1 1

w w w + ←

Update x1, e1, and w1:

3 11 (3) 1 3

Prev: Result:

w3

( )

2 1 1 1

min x x e ′ −

1 1

x x

Move cell 1:

′ =

slide-17
SLIDE 17

Slide 17

1 4

Cell 4: Overlap with previous cell? no no clustering, no movement

PlaceRow, Cell 4

slide-18
SLIDE 18

Slide 18

Cell 5: Overlap with previous cell? yes cluster with previous cell 4

( )

5 4 4 5 5 4 4 4

e e w x e x e x + − ′ + ′ ← ′

5 4 4

w w w + ← Update x4, e4, and w4:

1 1 4 1 5 4 5 4 (5)

5 4 4

e e e + ← Overlap with previous cell? yes cluster with previous cell 1

4 1 (4) (5) 1 4

Prev:

5

Result:

( )

2 4 4 4

min x x e ′ −

4 4

x x

Move cell 4:

PlaceRow, Cell 5

′ =

slide-19
SLIDE 19

Slide 19

1 6

Cell 6: Overlap with previous cell? no no clustering, no movement Last cell done, PlaceRow finished

PlaceRow, Cell 6

slide-20
SLIDE 20

Slide 20

PlaceRow: Summary

  • Called several times for legalizing one cell
  • Places cells aligned to one row:

minimize quadratic movement quadratic program (QP)

  • Solves QP by dynamic programming:
  • Process cells from left to right
  • If cell overlaps with previous cell:

clustering movement further checks with left cells

  • Clustering: update width, weight, and global x-pos of cell

constant execution time

  • Linear worst-case complexity: O(N)

N: number of cells in the row At most N-1 clustering operations for N cells PlaceRow:

slide-21
SLIDE 21

Slide 21

Complexity

Worst-case for a complete circuit with N cells: Average-case (experimental results):

) (

2

N O

) (

2 . 1

N Θ

slide-22
SLIDE 22

Slide 22

Movement

Abacus (this work) Tetris Experimental results of one circuit: Tetris: more cells are Abacus: more cells are moved less moved farther Lower movement with Abacus

slide-23
SLIDE 23

Slide 23

0.500 0.600 0.700 0.800 0.900 1.000 1.100

Results

IBM-Place 2.0 benchmark suite:

  • Routability-driven placement
  • Global placement: Kraftwerk (with routability optimization)
  • Legalization: preserve global placement, minimal movement

Results of Abacus (normalized to Tetris):

  • 32%
  • 1.2%

+7%

(negative: better positive: worse)

  • Avg. movement

Routed wirelength Total CPU time place.

slide-24
SLIDE 24

Slide 24

Conclusion

  • Greedy legalization approach, legalizes one cell at a time,

similar to Tetris

  • Already legalized cells are moved within the row: PlaceRow
  • PlaceRow: minimize total quadratic movement,

dynamic programming, linear worst-case complexity

  • Results: lower movement than Tetris

better results in routability-driven placement Abacus:

slide-25
SLIDE 25

Slide 25

The End

Thanks for the attention! Questions?