ISPD2001
Estimating Routing Congestion using Probabilistic Analysis Shankar - - PowerPoint PPT Presentation
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
- ISPD2000. SK 2
Congestion Problem
8Wiring 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
8Congestion 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
8Requires a fast and accurate estimator
- ISPD2000. SK 3
Physical Synthesis Flow
RTL, Constraints
T I M I N G S Y S T E M
Resource sharing/allocation Implementation selection Logic structuring Technology mapping Gate-level optimization Optimized netlist Floorplan Placement
P L A C E M E N T
Congestion estimation and
- ptimization
- ISPD2000. SK 4
Summary of Our Contributions
8Proposed a probabilistic based congestion
estimator
8Based on supply and demand analysis of
routing resources
8Independent of implementation details of
downstream routing algorithms
8Blockage aware 8Fast and yet accurate 8Congestion optimization based on this
algorithm demonstrates its effectiveness
- ISPD2000. SK 5
Congestion Analysis
- ne grid
8Divide the core area of the design into
congestion grids
8Analyze the supply and demand for
routing resources in each congestion grid
- ISPD2000. SK 6
Routing Supply of a Grid ( )
1
1
=
= ×∑ _
h
N h i i
horizontal capacity H L
1
1
=
= ×
∑
_
v
N v i i
vertical capacity W L
- Nh : number of horizontal routing layers
- Nv : number of vertical routing layers
- Lhi : minimum pitch for the ith horizontal layer
- Lvi : minimum pitch for the ith vertical layer
- ISPD2000. SK 7
Routing Demand of a Grid
8Empirical model
– Design dependent – Hard to correlate to the real congestion
8Global router
– Slow – Introduce problems for 3rd party routers
8Probabilistic analysis
– Fast – Router independent
- ISPD2000. SK 8
An Example
1 2 3 4 5 6
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
1 1 2 2 3 3 1 2 2 2 2 2 2 6 3 3 2 2 1 1 ×
Total number of possible routes: 6 Horizontal usage = 0.5 + 0.5 + 1.0 = 2.0 Vertical usage = 1.0 + 1.0 = 2.0
Estimate a 2-pin nets covering a 3×3 mesh
- ISPD2000. SK 9
Number of Possible Routes
( ) ( ) ( )
, 1, , 1 F m n F m n F m n = − + −
( ) ( )
, , F m n F n m =
( )
2 2 2 3 1
1 1 1 1
1 1 2 , 3
n n n
i i m i i i
n m n F m n i n
− − −
= = =
= = = ≥ ∑ ∑
∑
- For a 2-pin net covering a m×n mesh,
denote the number of possible routes as F(m, n) :
F(m-1, n) F(m, n-1)
- ISPD2000. SK 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 11
Probabilistic Usage Matrix
( ) ( )
, 1, 1
x y x y
P i j P m i n j = − + − +
( )
1
, 1
n y j
P i j i
=
= ∀
∑
( )
1
, 1
m x i
P i j j
=
= ∀
∑
( ) ( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
,1 ,1 , , , 1,1 1,1 1, 1,
x y x y x y x y
P m P m P m n P m n P m n P P P n P n =
- ISPD2000. SK 12
Computing the Probabilities
( ) ( ) ( ) ( )
, 1 case : 1, 1 1 case : 1, 1, 1 case : 1 , ,
x
F m n a i j b i j n F m i n c P i j F m n − = = = = − + − = ×
( ) ( ) ( ) ( ) ( ) ( )
1 , 1 , 1 , case : 1, 1 2 , 1, , 1 1, 1 2 i m j F m n j F m n j d i j n F i j F m i n j F i j F m i n j < < = − + + − = < < − + − + − − + − +
( ) ( ) ( ) ( ) ( )
1, case : 1, 1 1 case : 1, 1, , 1 case : 1 , 1 , 2 ,
y
F m n a i j b i j n F m i n F m i n c i m j P i j F m n F m − = = = = − + + − < < = = ×
( ) ( ) ( ) ( ) ( )
1, 1 case : 1, 1 , , 1 1, 1, 1 2 n j d i j n F i j F m i n j F i j F m i n j − − + = < < − − + + − − + − +
- ISPD2000. SK 13
Off-grid Pins
dy1 dy2 dx1 dx2
W H
- ISPD2000. SK 14
Horizontal Usage with Off-grid Pins
( ) ( ) ( ) ( )
1 2 2 1
, 1 case : 1, 1 , 1 case : , case : 1, 1 , ,
x x x x x
d F m n a i j W d F m n a i m j n W d b i j n W d W P i j F m n − × = = − × = = = = = ×
- (
) ( ) ( ) ( )
1 2
case : , 1 1, 1 case : 1< , 1 , 1 case : 1< , , 1 , cas 2
x x
b i m j d F m i n c i m j W d F i n c i m j n W F m n j F m n j = = − + − × < = − × < = − + + −
- (
) ( ) ( ) ( ) ( ) ( )
e : 1,1 , , 1 case : ,1 2 , 1, , 1 1, 1 2 d i j n F m j F m j d i m j n F i j F m i n j F i j F m i n j = < < + − = < < − + − + − − + − +
- ISPD2000. SK 15
Vertical Usage with Off-grid Pins
( ) ( ) ( ) ( )
1 2 1
1, case : 1, 1 1, case : , case : 1, 1 , ,
y y y y
d F m n a i j H d F m n a i m j n H d b i j n H P i j F m n − × = = − × = = = = = ×
- (
) ( ) ( ) ( ) ( )
2 1
case : , 1 1, , case : 1< , 1 2 , 1, case : 1< , 2 1, 1
y y
d b i m j H F m i n F m i n c i m j F i n F i n c i m j n d F m n j H = = − + + − < = + − < = − − + ×
- (
) ( ) ( ) ( ) ( )
2
case : 1,1 1, case : ,1 , , 1 1, 1, 1 2
y
d i j n d F m j d i m j n H F i j F m i n j F i j F m i n j = < < − × = < < − − + + − − + − +
- ISPD2000. SK 16
Track Usages for a 5×5 Mesh
8 Darker color represents higher
probability of usages
- ISPD2000. SK 17
Multi-pin Nets
8 MST based algorithm in early stages 8 RST based algorithm in later stages
- ISPD2000. SK 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 19
Line Blockages
- Extend the bounding box of the net
- riginal bounding box
extended bounding box
- riginal bounding box
extended bounding box
- ISPD2000. SK 20
Adjacent Blockages
- Find the bounding box of the blockages
- ISPD2000. SK 21
Complex Blockages
- Maze router needed
- How often do you see this?
- ISPD2000. SK 22
Runtime for two Testcases
# of instances # of nets CPU time Design1 316K 332K 70s Design2 347K 374K 110s
- ISPD2000. SK 23
Testcase I: Congestion Correlation
Estimated congestion Post-route congestion
- ISPD2000. SK 24
Testcase II: Congestion Correlation
Estimated congestion Post-route congestion
- ISPD2000. SK 25
Testcase I: Congestion Removal
Congestion without
- ptimization
Congestion with
- ptimization
- ISPD2000. SK 26
Testcase II: Congestion Removal
Congestion without
- ptimization
Congestion with
- ptimization
- ISPD2000. SK 27