estimating routing congestion using probabilistic analysis
play

Estimating Routing Congestion using Probabilistic Analysis Shankar - PowerPoint PPT Presentation

Estimating Routing Congestion using Probabilistic Analysis Shankar Krishnamoorthy Jinan Lou Henry S. Sheng Synopsys Inc. {jlou, shankar, hsheng}@synopsys.com ISPD2001 Congestion Problem 8 Wiring congestion is a key metric to predict


  1. Estimating Routing Congestion using Probabilistic Analysis Shankar Krishnamoorthy Jinan Lou Henry S. Sheng Synopsys Inc. {jlou, shankar, hsheng}@synopsys.com ISPD2001

  2. Congestion Problem 8 Wiring congestion is a key metric to predict routability & performance of a design – A good timing result is useful only if routing can be completed – Congestion increases delay uncertainty – Congestion deteriorate signal integrity 8 Congestion optimization must be performed early in design cycles – Synthesis adds many new gates to the design increasing cell density and wiring demand – Timing-driven placement has to keep critical gates closer – Users would like to close timing in same or smaller floorplans 8 Requires a fast and accurate estimator ISPD2000. SK 2

  3. Physical Synthesis Flow RTL, Constraints Floorplan Resource sharing/allocation T I P M Implementation L I selection A N Congestion C G Logic structuring estimation and E M S optimization E Y N S Technology mapping T T E M Gate-level optimization Optimized netlist ISPD2000. SK 3 Placement

  4. Summary of Our Contributions 8 Proposed a probabilistic based congestion estimator 8 Based on supply and demand analysis of routing resources 8 Independent of implementation details of downstream routing algorithms 8 Blockage aware 8 Fast and yet accurate 8 Congestion optimization based on this algorithm demonstrates its effectiveness ISPD2000. SK 4

  5. Congestion Analysis 8 Divide the core area of the design into congestion grids 8 Analyze the supply and demand for routing resources in each congestion grid one grid ISPD2000. SK 5

  6. Routing Supply of a Grid • N h : number of horizontal routing layers • N v : number of vertical routing layers • L hi : minimum pitch for the i th horizontal layer • L vi : minimum pitch for the i th vertical layer ( ) h N × ∑ = 1 _ horizontal capacity H h L i = i 1 v   N ∑ 1 = × vertical _ capacity W    v  L = i i 1 ISPD2000. SK 6

  7. Routing Demand of a Grid 8 Empirical model – Design dependent – Hard to correlate to the real congestion 8 Global router – Slow – Introduce problems for 3rd party routers 8 Probabilistic analysis – Fast – Router independent ISPD2000. SK 7

  8. An Example Estimate a 2-pin nets covering a 3 × 3 mesh 6 Total number of possible routes: 6 5 4 Horizontal usage = 0.5 + 0.5 + 1.0 = 2.0 3 Vertical usage = 1.0 + 1.0 = 2.0 2 ( ) ( ) ( )   1 1 2 2 3 3   1 ( ) ( ) ( ) ×  1 2 2 2 2 2 2  6 ( ) ( ) ( )   3 3 2 2 1 1   ISPD2000. SK 8

  9. Number of Possible Routes For a 2-pin net covering a m × n mesh, denote the number of possible routes as F ( m , n ) : ( ) ( ) ( ) = − + − F m n , F m 1, n F m n , 1 F ( m -1, n ) ( ) ( ) = F m n , F n m , =  1 n 1  =  m n 2 ( ) =  , F m n i i m −   ∑ ∑ ∑ n 2 2 ≥ � i n 3  1 = = = i 1 i 1 i 1 − − n 2 n 3 1 F ( m , n -1) ISPD2000. SK 9

  10. F ( m , n ) up to 10 × 10   1 10 55 220 715 2002 5005 11440 24310 48620   1 9 45 165 495 1287 3003 6435 12870 24310     1 8 36 120 330 792 1716 3432 6435 11440   1 7 28 84 210 462 924 1716 3003 5005     1 6 21 56 126 252 462 792 1287 2002   1 5 15 35 70 126 210 330 495 715     1 4 10 20 35 56 84 120 165 220     1 3 6 10 15 21 28 36 45 55   1 2 3 4 5 6 7 8 9 10       1 1 1 1 1 1 1 1 1 1 ISPD2000. SK 10

  11. Probabilistic Usage Matrix ( ) ( ) ( ) ( ) ( ) ( )   � P m ,1 P m ,1 P m n , P m n , x y x y   ( ) =  � � �  P m n ,   ( ) ( ) ( ) ( ) ( ) ( ) �   P 1,1 P 1,1 P 1, n P 1, n   x y x y ( ) ( ) = − + − + P i j , P m i 1, n j 1 x y x y n ∑ ( ) = ∀ P i j , 1 i y = j 1 m ∑ ( ) = ∀ P i j , 1 j x = i 1 ISPD2000. SK 11

  12. Computing the Probabilities ( )  − = = F m n , 1 case : a i 1, j 1  = = 1 case : b i 1, j n  ( )  − + − < < = F m i 1, n 1 case : c 1 i m j , 1  1 ( ) = × ( ) ( )  P i j , − + + − ( ) F m n , j 1 F m n , j x = < < F m n ,  case : d i 1, 1 j n  2 ( ) ( ) ( ) ( )  − + − + − − + − + F i j F m , i 1, n j F i j , 1 F m i 1, n j 1   2 ( )  − = = F m 1, n case : a i 1, j 1  = = 1 case : b i 1, j n  ( ) ( )  − + + − F m i 1, n F m i n ,  < < = 1 ( ) case : 1 c i m j , 1 = ×  P i j , ( ) 2 y F m n ,  ( ) − − + = < < F m 1, n j 1 case : d i 1, 1 j n  ( ) ( ) ( ) ( )  − − + + − − + − + F i j F m , i n , j 1 F i 1, j F m i 1, n j 1   2 ISPD2000. SK 12

  13. Off-grid Pins d x2 d y2 W H d y1 d x1 ISPD2000. SK 13

  14. Horizontal Usage with Off-grid Pins  ( ) d − × = = F m n , 1 x 1 case : a i 1, j 1  W  ( ) d − × = = �  F m n , 1 case : a i m j , n x 2 W  d  = = case : b i 1, j n x 2  W  d � = = case : b i m j , 1 x 1  W  ( ) d − + − × < =   F m i 1, n 1 case : 1< c i m j , 1 1 x 1 ( ) = ×  W P i j , ( ) x F m n ,  ( ) d − × < = � F i n , 1 case : 1< c i m j , n x 2  W  ( ) ( ) − + + − F m n , j 1 F m n , j  = < < cas e : d i 1,1 j n  2  ( ) ( ) + − F m j , F m j , 1 case : �  = < < d i m ,1 j n  2  ( ) ( ) ( ) ( ) − + − + − − + − + F i j F m , i 1, n j F i j , 1 F m i 1, n j 1    2 ISPD2000. SK 14

  15. Vertical Usage with Off-grid Pins  d ( ) − × = = y 1 F m 1, n case : a i 1, j 1  H  d ( )  − × = = � y 2 F m 1, n case : a i m j , n H   d = = y 1 case : b i 1, j n  H  d � = =  y 2 case : , 1 b i m j H  ( ) ( ) − + + −  F m i 1, n F m i n ,  1 < = ( ) = × case : 1< c i m j , 1  , P i j ( ) 2 y , F m n  ( ) ( ) + −  F i n , F i 1, n < = � case : 1< , c i m j n  2  d ( )  − − + × = < < y 1 1, 1 case : 1,1 F m n j d i j n  H  d ( ) � − × = < < y 2  F m 1, j case : d i m ,1 j n H  ( ) ( ) ( ) ( ) − − + + − − + − + F i j F m , i n , j 1 F i 1, j F m i 1, n j 1    2 ISPD2000. SK 15

  16. Track Usages for a 5 × 5 Mesh 8 Darker color represents higher probability of usages ISPD2000. SK 16

  17. Multi-pin Nets 8 MST based algorithm in early stages 8 RST based algorithm in later stages ISPD2000. SK 17

  18. Simple Routing Blockages Distribute the usage of a blocked grid to its neighboring grids based on the distance d and number of unblocked neighbors n : w = 2 - d × n ISPD2000. SK 18

  19. Line Blockages original bounding box original bounding box extended bounding box extended bounding box • Extend the bounding box of the net ISPD2000. SK 19

  20. Adjacent Blockages • Find the bounding box of the blockages ISPD2000. SK 20

  21. Complex Blockages • Maze router needed • How often do you see this? ISPD2000. SK 21

  22. Runtime for two Testcases # of instances # of nets CPU time Design1 316K 332K 70s Design2 347K 374K 110s ISPD2000. SK 22

  23. Testcase I: Congestion Correlation Estimated congestion Post-route congestion ISPD2000. SK 23

  24. Testcase II: Congestion Correlation Post-route congestion Estimated congestion ISPD2000. SK 24

  25. Testcase I: Congestion Removal Congestion without Congestion with optimization optimization ISPD2000. SK 25

  26. Testcase II: Congestion Removal Congestion without Congestion with optimization optimization ISPD2000. SK 26

  27. Conclusion 8 Timing closure for complex designs requires fast and accurate congestion estimators 8 Probabilistic congestion estimation is a key technology in physical synthesis 8 Congestion optimization based on this algorithm demonstrates its effectiveness ISPD2000. SK 27

Recommend


More recommend