an effective congestion driven placement framework andré rohe university of bonn, germany joint...
TRANSCRIPT
An Effective Congestion Driven Placement Framework
André Rohe
University of Bonn, Germany
joint work with Ulrich Brenner
Our Basis: Bonn Place
• Partitioning based approach
• Solves QP in each level, followed by partitioning
• Partitioning is done by quadrisection:circuits are partitioned with minimum movement (Vygen)
Methods used for congestion driven placement
• Very fast congestion calculation
• Inflate circuits in congested regions
• Spreading inflated cells
Congestion calculation
• Calculate Steiner Tree for each net• Probablitiy estimation for each 2-point
connection (similar to Hung & Flynn, Lou et al.)
Inflation of circuits(used previously by Hou et al.)
• Initial inflation (based on pin density) • Given a circuit c in Region R, c is inflated
by up to 100% • The inflation is based on the congestion in
R and the surrounding regions & the pin density in R
• Deflation is possible if the circuit is no longer critical.
Spreading inflated cells
• Repartitioning considers 2x2 windows in placement grid to optimize netlength
• Use extra repartitioning step to move cells away from overloaded regions
Summary: Algorithm overview
1. Init:Set window_set := {chip area}, set circuit_list(chip area):={all circuits}
2. Main Loop:While (window size big enough)
Solve a QP to minimize quadratic netlengthFor (each window w in window_set)
Quadrisection(w)
Repartitioning
3. Legalization
Algorithm overview
1. Init:Set window_set := {chip area}, set circuit_list(chip area):={all circuits}For (each c in {all circuits})
Increase b(c) proportionally to |pins(c)|/size(c) # initial inflation b(c)
2. Main Loop:While (window size big enough)
Solve a QP to minimize quadratic netlengthFor (each window w in window_set)
Quadrisection(w)
Repartitioning
3. Legalization
Algorithm overview
1. Init:Set window_set := {chip area}, set circuit_list(chip area):={all circuits}For (each c in {all circuits})
Increase b(c) proportionally to |pins(c)|/size(c) # initial inflation b(c)
2. Main Loop:While (window size big enough)
Solve a QP to minimize quadratic netlengthFor (each window w in window_set)
Quadrisection(w)Compute congestion and update b(c) # update inflation
b(c) Quadrisection(w)
Repartitioning
3. Legalization
Algorithm overview
1. Init:Set window_set := {chip area}, set circuit_list(chip area):={all circuits}For (each c in {all circuits})
Increase b(c) proportionally to |pins(c)|/size(c) # initial inflation b(c)
2. Main Loop:While (window size big enough)
Solve a QP to minimize quadratic netlengthFor (each window w in window_set)
Quadrisection(w)Compute congestion and update b(c) # update inflation
b(c) Quadrisection(w)
Reduce overloaded windows # extra repartitioning steps Repartitioning
3. Legalization
Computational Results I
Chip Tech |Nets| Density Gridsize Release
IBM 1 sa27 73,273 86.0 %4091x3563x6
2000
IBM 2 sa12 73,822 30.9 %6118x6119x5
1999
IBM 3 sa27 426,689 57.5 %26792x26792x7
2001
IBM 4 sa27 706,499 57.7 %14028x13110x6
1999
IBM 5 sa27 1,390,333 53.6 % 23912x23912x7 2001
Computational Results IIStandard Congestion Driven
Chip CPU len CPU len Blow
IBM 1 0:23 h 7.2 m 0:26 h 7.4 m 10.2 %
IBM 2 0:26 h 7.9 m 0:27 h 9.0 m 6.6 %
IBM 3 3:50 h 134 m 4:39 h 142 m 20.1 %
IBM 4 7:08 h 241 m 7:24 h 270 m 20.2 %
IBM 5 16:10 h 375 m 16:37 h 406 m 57.8 %
Computational Results IIStandard Congestion Driven
Chip CPU len CPU len Blow
IBM 1 0:23 h 7.2 m 0:26 h 7.4 m 10.2 %
IBM 2 0:26 h 7.9 m 0:27 h 9.0 m 6.6 %
IBM 3 3:50 h 134 m 4:39 h 142 m 20.1 %
IBM 4 7:08 h 241 m 7:24 h 270 m 20.2 %
IBM 5 16:10 h 375 m 16:37 h 406 m 57.8 %
Mean +8.7 % +8.5%
Computational Results III
Standard Congestion Driven
Chip HDP ov CPU len HDP ov CPU len
IBM 1 81.7 8374 0:15 h 9 m 75.5 0 0:05 h 7.5 m
IBM 2 82.7 7000 0:19 h 11.5 m 75.4 0 0:05 h 10.1 m
IBM 3 88.8 78111 47:36 h 162 m 77.3 0 4:51 h 164 m
IBM 4 82.8 972 7:18 h 324 m 75.2 0 2:48 h 326 m
IBM 5 89.9 14382 70:57 h 512 m 84.2 0 29:48 h 527 m
Computational Results III
Standard Congestion Driven
Chip HDP ov CPU len HDP ov CPU len
IBM 1 81.7 8374 0:15 h 9 m 75.5 0 0:05 h 7.5 m
IBM 2 82.7 7000 0:19 h 11.5 m 75.4 0 0:05 h 10.1 m
IBM 3 88.8 78111 47:36 h 162 m 77.3 0 4:51 h 164 m
IBM 4 82.8 972 7:18 h 324 m 75.2 0 2:48 h 326 m
IBM 5 89.9 14382 70:57 h 512 m 84.2 0 29:48 h 527 m
Mean -9 % -73 % -5.2 %