an effective congestion driven placement framework andré rohe university of bonn, germany joint...

29
An Effective Congestion Driven Placement Framework André Rohe University of Bonn, Germany joint work with Ulrich Brenner

Upload: jeremy-mitchell

Post on 13-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

An Effective Congestion Driven Placement Framework

André Rohe

University of Bonn, Germany

joint work with Ulrich Brenner

A dense Placement

• good wirelength

• impossible to route

Possible Solution

• easy to route

• bad wirelength/timing

Congestion Driven Placement

• easy to route + good wirelength almost no extra computation efford !

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.)

Quality of congestion calculation

congestion estimation

Quality of congestion calculationBonn

Global

HDPGlobal

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.

Placement Step 0

Placement Step 1

Placement Step 2

Placement Step 3

Placement Step 4

Placement Step 5

Placement Step 6

Placement Step 7

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 %

Thank you for your attention !