1 / 29

An Effective Congestion Driven Placement Framework

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.

hija
Download Presentation

An Effective Congestion Driven Placement Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. A dense Placement good wirelength impossible to route

  3. Possible Solution • easy to route • bad wirelength/timing

  4. Congestion Driven Placement • easy to route + good wirelength almost no extra computation efford !

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

  6. Methods used for congestion driven placement • Very fast congestion calculation • Inflate circuits in congested regions • Spreading inflated cells

  7. Congestion calculation Calculate Steiner Tree for each net Probablitiy estimation for each 2-point connection (similar to Hung & Flynn, Lou et al.)

  8. Quality of congestion calculation congestion estimation

  9. Quality of congestion calculation Bonn Global HDP Global

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

  11. Placement Step 0

  12. Placement Step 1

  13. Placement Step 2

  14. Placement Step 3

  15. Placement Step 4

  16. Placement Step 5

  17. Placement Step 6

  18. Placement Step 7

  19. Spreading inflated cells Repartitioning considers 2x2 windows in placement grid to optimize netlength Use extra repartitioning step to move cells away from overloaded regions

  20. Summary: Algorithm overview • Init:Setwindow_set := {chip area}, setcircuit_list(chip area):={all circuits} • Main Loop:While (window size big enough) Solve a QP to minimize quadratic netlengthFor (each window w in window_set) Quadrisection(w) Repartitioning • Legalization

  21. Algorithm overview • Init:Setwindow_set := {chip area}, setcircuit_list(chip area):={all circuits}For (each c in {all circuits}) Increase b(c) proportionally to |pins(c)|/size(c) # initial inflation b(c) • Main Loop:While (window size big enough) Solve a QP to minimize quadratic netlengthFor (each window w in window_set) Quadrisection(w) Repartitioning • Legalization

  22. Algorithm overview • Init:Setwindow_set := {chip area}, setcircuit_list(chip area):={all circuits}For (each c in {all circuits}) Increase b(c) proportionally to |pins(c)|/size(c) # initial inflation b(c) • 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 • Legalization

  23. Algorithm overview • Init:Setwindow_set := {chip area}, setcircuit_list(chip area):={all circuits}For (each c in {all circuits}) Increase b(c) proportionally to |pins(c)|/size(c) # initial inflation b(c) • 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 • Legalization

  24. Computational Results I

  25. Computational Results II

  26. Computational Results II

  27. Computational Results III

  28. Computational Results III

  29. Thank you for your attention !

More Related