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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend