eda institute for electronic design automation prof. ulf ... · design automation prof. ulf...
TRANSCRIPT
Abacus: Fast Legalization of Standard Cell Circuits
with Minimal MovementPeter Spindler, Ulf Schlichtmann and Frank M. Johannes
Technische Universitaet Muenchen
ISPD, April 2008
EDA Institute for Electronic Design Automation Prof. Ulf Schlichtmann
Slide 2
Outline
• Background
• State-of-the-Art
• Abacus, PlaceRow
• Experimental Results
• Conclusion
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
State-of-the-Art in Legalization
● Flow based: assign cells to placesDomino [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
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 cellswithin one row, minimize total movement
● Because of PlaceRow: lower total movement
Abacus:
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
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
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: 3Row 3
Cell 2 to be legalized
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
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
Final Result
Abacus Tetris:No PlaceRow higher movement (about 50% more for a large circuit)
Global Placement
Slide 12
( xi )
( ) 111
2 s.t.min −−=
+≥′−∑ iii
N
iiii wxxxxe
global x-poslegal x-posweight no overlap
width
w1 w2
1 2 3 4 5 6
x
1 2 3 4 5 6
x1 x3x1 x2 x3
Input:
Output:
Input: one row with N cells, x-pos of cells: global placementOutput: 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
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
2Cell 2:
211 eee +←( )
21
122111 ee
wxexex+
−′+′←′ 211 www +←
( ) ( )22222
111min xxexxe ′−+′−
overlap with previous cell? yes cluster with previous cell
( ) ( ) 2
21
12211121min ⎟⎟
⎠
⎞⎜⎜⎝
⎛+
−′+′−+
eewxexexee
Update x1, e1, and w1:
Clustering process: 112 wxx +=
new e1 new x1
w1
1
PlaceRow, Cell 2
( )2111min xxe ′−Result: 11 xx ′=
Slide 15
PlaceRow, Cell 2 (Cont‘d)
211(2)
1 2Global:
Result:
Cluster cell 1 and 2
Move cluster to new global x-pos
Animation:
Slide 16
PlaceRow, Cell 3
1 3Cell 3:
Overlap with previous cell? yes cluster with previous cell
w1
311 eee +←
( )31
133111 ee
wxexex+
−′+′←′ 311 www +←Update x1, e1, and w1:
311(3)
1 3Prev:
Result:
w3
( )2111min xxe ′− 11 xxMove cell 1: ′=
Slide 17
1 4
Cell 4:
Overlap with previous cell? no no clustering, no movement
PlaceRow, Cell 4
Slide 18
Cell 5:
Overlap with previous cell? yes cluster with previous cell 4( )
54
455444 ee
wxexex+
−′+′←′
544 www +←Update x4, e4, and w4:
1
1 4
1
5
4 54(5)
544 eee +←
Overlap with previous cell? yes cluster with previous cell 141
(4) (5)
1 4Prev:5
Result:
( )2444min xxe ′− 44 xxMove cell 4:
PlaceRow, Cell 5
′=
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
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 rowAt most N-1 clustering operations for N cells
PlaceRow:
Slide 21
Complexity
Worst-case for a complete circuit with N cells:
Average-case (experimental results):)( 2NO
)( 2.1NΘ
Slide 22
Movement
Abacus (this work)
Tetris
Experimental results of one circuit:
Tetris: more cells are
Abacus: more cellsare moved less
moved farther
Lower movement with Abacus
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
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
The End
Thanks for the attention!
Questions?