an enhanced global router an enhanced global router an
play

An Enhanced Global Router An Enhanced Global Router An Enhanced - PowerPoint PPT Presentation

An Enhanced Global Router An Enhanced Global Router An Enhanced Global Router An Enhanced Global Router With Consideration of With Consideration of General Layer Directives General Layer Directives Hsien Lee 1 , Yen Jung Chang 1 , and Ting


  1. An Enhanced Global Router An Enhanced Global Router An Enhanced Global Router An Enhanced Global Router With Consideration of With Consideration of General Layer Directives General Layer Directives Hsien Lee 1 , Yen Jung Chang 1 , and Ting Chi Wang 2 Tsung- Tsung -Hsien Lee , Yen- -Jung Chang , and Ting- -Chi Wang 1 Department of Electrical and Computer Engineering, University of Texas at Austin Department of Electrical and Computer Engineering, University of Texas at Austin 2 Department of Computer Science, National Tsing Hua University, Taiwan Department of Computer Science, National Tsing Hua University, Taiwan

  2. Agenda g 2  Background  Background  Problem formulation  Previous work: GLADE  Previous work: GLADE  Our router  Experimental results E i l l  Conclusion

  3. Global Routing 3  Global routing determines tile-to-tile  Global routing determines tile to tile routes of nets  Conventional Metrics C ti l M t i  Total overflow (TOF)  Total wirelength (TWL) 3D Grid Graph for Global Routing 3D Grid Graph for Global Routing

  4. ICCAD 2009 Benchmarks (1/2) ( / ) 4  Produced by making some modifications  Produced by making some modifications to ISPD 2008 benchmarks  Specifying layer directives for a subset of nets (LD nets)  Layer directive: a range of consecutive layers on which the net should be routed

  5. ICCAD 2009 Benchmarks (2/2) ( / ) 5  Different LD types whose layer ranges have proper  Different LD types whose layer ranges have proper subset relations  Do not support arbitrary layer ranges  Do not support arbitrary layer ranges [1 4] [1:4] (not supported)

  6. Problem Formulation 6  Input: a multi-layer global routing instance with a  Input: a multi layer global routing instance with a subset of nets associated with general layer directives  The two ends of a layer range can be any metal layers  Output: a global routing solution that minimizes p g g  total LD violation as well as TOF  A LD net passing through an edge on a non-preferred layer causes one unit of LD violation on the edge  TWL

  7. Previous Work: GLADE [ICCAD10] 7  Handling ICCAD 2009 benchmarks and  Handling ICCAD 2009 benchmarks and hence only targeting a restricted set of l layer ranges  Extending NTHU-Route 2.0 [TCAD10] by performing  Pseudo layer assignment during 2D  Pseudo layer assignment during 2D routing  LD-aware layer assignment  LD-aware layer assignment

  8. GLADE: Pseudo Layer Assignment y g 8  Exploited during 2D global routing  Exploited during 2D global routing  Predicting the amount of LD violations that may occur after actual layer assignment subject to occur after actual layer assignment, subject to no overflow increase  Calculating virtual capacity (VC) and virtual C l l i i l i (VC) d i l demand (VD) which are also used to define edge costs for LD nets during the iterative d f LD d i h i i ripup-and-reroute process

  9. Illustration of VC (1/4) ( / ) 9  3D edges e ’ 1 , e ’ 2 , e ’ 3 , e ’ 4 are projected to a 2D edge e  3D edges e 1 , e 2 , e 3 , e 4 are projected to a 2D edge e  Three LD types: t1, t2, t3 t1 e ’ 4 e 4 5 t2 t3 e ’ 3 5 e ’ 2 10 e ’ 1 10

  10. Illustration of VC (2/4) ( / ) 10  vc (t1) = 5  vc e (t1) 5 t1 e ’ 4 e 4 5 e ’ 3 5 e ’ 2 10 e ’ 1 10

  11. Illustration of VC (3/4) ( / ) 11  vc (t2) = 5 + 5 = 10  vc e (t2) 5 + 5 10 e ’ 4 e 4 5 t2 e ’ 3 5 e ’ 2 10 e ’ 1 10

  12. Illustration of VC (4/4) ( / ) 12  vc (t3) = 5 + 5 + 10 = 20  vc e (t3) 5 + 5 + 10 20 e ’ 4 e 4 5 t3 e ’ 3 5 e ’ 2 10 e ’ 1 10

  13. Illustration of VD (1/3) ( / ) 13  vd (t1) = 4  vd e (t1) 4 t1 e ’ 4 e 4 5 demand=4 demand=4 t2 demand=3 t3 e ’ 3 5 demand=12 e ’ 2 10 e ’ 1 10

  14. Illustration of VD (2/3) ( / ) 14  vd (t1) = 4  vd e (t1) 4  vd e (t2) = 4 + 3 = 7 4 t1 e 4 e ’ 4 t1 demand=4 demand=4 t2 demand=3 t3 e ’ 3 5 demand=12 e ’ 2 10 e ’ 1 10

  15. Illustration of VD (3/3) ( / ) 15  vd (t1) = 4  vd e (t1) 4  vd e (t2) = 4 + 3 = 7  vd e (t3) = (4 + 1 + 2) + 12 = 19 d ( 3) (4 1 2) 12 19 4 1 t1 e ’ 4 e 4 t1 t2 demand=4 demand=4 t2 2 demand=3 t3 e ’ 3 t2 demand=12 e ’ 2 10 e ’ 1 10

  16. LD Overflow (LDOF) ( ) 16  LDOF (t) = max(vd (t) – vc (t) 0)  LDOF e (t) max(vd e (t) vc e (t),0)  How many LD nets of type t that pass through e cannot be assigned to their preferred layers without cannot be assigned to their preferred layers without causing additional overflow  LDOF = Σ t LDOF (t) Σ t LDOF e (t)  LDOF e  Total LDOF = Σ e LDOF e  At each ripup-and-reroute iteration, GLADE tries to At h i d t it ti GLADE t i t minimize TOF and total LDOF

  17. GLADE: Layer Assignment y g 17  Modifying the layer assignment method (COLA) of  Modifying the layer assignment method (COLA) of NTHU-Route 2.0 [TCAD’08 ]  Net ordering  Net ordering  LD nets appear before non-LD nets  Single-net layer assignment g y g  Minimizing via count  Considering layer directives by adding penalty to the routing edges of LD nets which are not located in target layer ranges  K  Keeping TOF identical to that of the 2D routing i TOF id ti l t th t f th 2D ti result

  18. Our Router 18  Enhancing GLADE to handle general layer  Enhancing GLADE to handle general layer directives during 2D global routing and layer assignment assignment  Modifying the pseudo layer assignment method for calculating virtual demands calculating virtual demands  Adopting two-stage layer assignment without increase in TOF  Initial layer assignment for via count minimization  Iterative refinement for further minimizing LD violation and via count

  19. Calculation of VD (1/4) ( / ) 19  3D edges e ’ 1 , e ’ 2 , e ’ 3 and e ’ 4 are projected to a 2D edge e  We show how to calculate vd e (t5)  First, LD types are sorted in a non-decreasing order of the s , ypes a e so ed a o dec eas g o de o e sizes of their layer ranges t1 e 4 e ’ 4 5 5 demand=2 demand=2 t4 demand=3 e ’ 3 5 t3 t3 demand=12 t5 e ’ 2 10 demand=1 t2 t2 demand=12 e ’ 1 10

  20. Calculation of VD (2/4) ( / ) 20  Step 1 (considering e ’ 4 and e ’ 1 ) p ( g 1 ) 4  Assigning 2 nets of t1 and 3 nets of t4 to e ’ 4  Assigning 10 nets of t2 to e ’ 1 2 2 3 3 t1 e ’ 4 t1 t4 3 demand=2 t4 demand=3 demand=3 e ’ 3 5 t3 demand=12 t5 t5 e ’ 2 10 demand=1 t2 10 demand=12 e ’ e 1 10 10 t2 t2

  21. Calculation of VD (3/4) ( / ) 21  Step 2 (considering e ’ 3 and e ’ 2 ) p ( g 2 ) 3  Assigning 5 nets of t3 to e ’ 3  Assigning 2 nets of t2 and 7 nets of t3 to e ’ 2 2 2 3 3 t1 e ’ 4 t1 t4 demand=2 t4 5 demand=3 demand=3 e ’ 3 t3 5 t3 2 7 1 demand=12 t5 t5 e ’ 2 t2 t3 demand=1 t2 10 demand=12 e ’ e 1 Cap = 10 Cap. = 10 t2 t2

  22. Calculation of VD (4/4) ( / ) 22  We get vd (t5) = (5 + 2 + 7 +10) + 1 = 25  We get vd e (t5) (5 + 2 + 7 +10) + 1 25 2 2 3 3 t1 e ’ 4 t1 t4 demand=2 t4 5 demand=3 demand=3 e ’ 3 t3 5 t3 2 7 1 demand=12 t5 t5 e ’ 2 t2 t3 1 demand=1 t2 10 demand=12 e ’ e 1 Cap = 10 Cap. = 10 t2 t2

  23. Two-Stage Layer Assignment: Initial Layer Assignment L A i t 23  Adopting  Adopting the the layer layer assignment assignment method method COLA COLA [TCAD’08] without considering layer directives  Targeting via count minimization  Targeting via count minimization  Keeping TOF identical to that of the 2D result

  24. Two-Stage Layer Assignment: R fi Refinement (1/5) t (1/5) 24  Refining the solution for further minimization of LD violation and via count, but without TOF increase TOF increase  Putting all 2D edges into a queue  Iteratively dequeuing an edge and applying a min-cost max-flow technique to re-assign its layer re assign its layer  If improved, accepting the result and enqueuing neighboring edges (if they are not in the queue) e x y x y e 1 e 2 e 3 e 4 e 5 e 6 queue queue dequeue enqueue e 4 e 4 e 1 e 1 Tile A Tile A Tile B Tile B Tile B Tile B Tile A Tile A e 5 e 2 e 5 e 2 e e e 3 e 6 e 3 e 6

  25. Two-Stage Layer Assignment: Refinement (2/5) R fi t (2/5) 25  2D edge without overflow  2D edge without overflow wire cap.(1,3,5)=(1,0,1) Net a [1:3] Net b [3:5] e 3 =2 e 1 =2 e 3 =2 e 1 =2 Net a Net a 3 1 3 1 e 2 =5 3 vias 3 vias 1 via e 2 =1 1 via e 5 =1 e 5 =5 e 4 =4 e 6 =4 e 4 =4 e 6 =4 Net b Net b # Via=1+1+1+1=4 # Via=3+3+3+3=12 #LD-Vio = 0 #LD-Vio = 2

  26. Two-Stage Layer Assignment: Refinement (3/5) R fi t (3/5) 26 1/2 capacity/cost p y e 2 e 2 1 1 0/0 S 3 T e 5 5 1/2 N Nets L Layers 1/2 #Via=Cost =4 e 2 1 #LD-Vio = 0 0/0 S 3 T e 5 5 1/2 Nets Layers

  27. Two-Stage Layer Assignment: Refinement (4/5) R fi t (4/5) 27  2D edge with overflow  2D edge with overflow wire cap.(1,3,5)=(0,0,1) Net a [1:3] Net b [3:5] e 3 =2 e 1 =2 e 1 =2 Net a Net a e 3 =2 e 2 =5 3 vias 3 vias 1 via e 2 =3 1 via e 5 =1 1 e 5 =5 5 e 4 =4 e 4 =4 e 6 =4 e 6 =4 Net b Net b # Via=1+1+1+1=4 # Via=3+3+3+3=12 #LD-Vio = 0 #LD-Vio = 2

Recommend


More recommend