vlsi placement
DESCRIPTION
VLSI Placement. Prof. Shiyan Hu [email protected] Office: EERC 731. Problem formulation. Input: Blocks (standard cells and macros) B 1 , ... , B n Shapes and Pin Positions for each block B i Nets N 1 , ... , N m Output: Coordinates (x i , y i ) for block B i . - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/2.jpg)
204/20/23
Problem formulation
• Input:– Blocks (standard cells and macros) B1, ... , Bn
– Shapes and Pin Positions for each block Bi
– Nets N1, ... , Nm
• Output:– Coordinates (xi , yi ) for block Bi.
– The total wire length is minimized.– Subject to area constraint or the area of the resulting block is
minimized
![Page 3: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/3.jpg)
304/20/23
Placement can Make A Difference
Random InitialPlacement
FinalPlacement
![Page 4: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/4.jpg)
404/20/23
Partitioning:
Objective:
Given a set of interconnected blocks, produce two sets thatare of equal size, and such that the number of nets connecting the two sets is minimized.
![Page 5: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/5.jpg)
504/20/23
FM Partitioning:
Initial Random Placement
After Cut 1
After Cut 2
list_of_sets = entire_chip;while(any_set_has_2_or_more_objects(list_of_sets)){
for_each_set_in(list_of_sets){
partition_it();}/* each time through this loop the number of *//* sets in the list doubles. */
}
![Page 6: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/6.jpg)
604/20/23
FM Partitioning:
-1
-2
-1
1
0
0
0
2
0
0
1
-1
-1
-2
- each object is assigned a gain- objects are put into a sorted gain list- the object with the highest gain is selected and moved.- the moved object is "locked"- gains of "touched" objects are recomputed- gain lists are resorted
Object Gain: The amount of change in cut crossings that will occur if an object is moved from its current partition into the other partition
Moves are made based on object gain.
![Page 7: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/7.jpg)
704/20/23
-1
-2
-1
1
0
0
0
2
0
0
1
-1
-1
-2
FM Partitioning:
![Page 8: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/8.jpg)
804/20/23
-1
-2
-1
1
0
-2
-20
0
1
-1
-1
-2
-2
![Page 9: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/9.jpg)
904/20/23
-1
-2
-1
1
0
-2
-20
0
1
-1
-1
-2
-2
![Page 10: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/10.jpg)
1004/20/23
-1
-2
-11
0
-2
-20
0
1
-1
-1
-2
-2
![Page 11: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/11.jpg)
1104/20/23
-1
-2
1 -1
0
-2
-20
-2
-1
-1
-1
-2
-2
![Page 12: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/12.jpg)
1204/20/23
-1
-2
1 -1
0
-2
-2 0
-2
-1
-1
-1
-2
-2
![Page 13: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/13.jpg)
1304/20/23
-1
-2
1 -1
0
-2
-20
-2
-1
-1
-1
-2
-2
![Page 14: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/14.jpg)
1404/20/23
-1
-2
1 -1
-2
-2
-2
0
-2
-1
1
-1
-2
-2
![Page 15: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/15.jpg)
1504/20/23
-1
-2
1
-1
-2
-2
-2
0
-2
-1
1
-1
-2
-2
![Page 16: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/16.jpg)
1604/20/23
-1
-2
1
-1
-2
-2
-2
0
-2
-1
1
-1
-2
-2
![Page 17: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/17.jpg)
1704/20/23
-1
-2
-1
-3
-2
-2
-2
0
-2
-1
1
-1
-2
-2
![Page 18: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/18.jpg)
1804/20/23
-1
-2
-1
-3
-2
-2
-2
0
-2
-1
1
-1
-2
-2
![Page 19: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/19.jpg)
1904/20/23
-1
-2
-1
-3
-2
-2
-2
0
-2
-1
1
-1
-2
-2
![Page 20: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/20.jpg)
2004/20/23
-1
-2
-1
-3
-2
-2
-2
-2
-2
-1
-1
-1
-2
-2
![Page 21: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/21.jpg)
2104/20/23
Analytical Placement
• Write down the placement problem as an analytical mathematical problem
• Quadratic placement:– Sum of squared wire length is quadratic in the cell
coordinates.– So the wirelength minimization problem can be formulated
as a quadratic program.– It can be proved that the quadratic program is convex,
hence polynomial time solvable
![Page 22: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/22.jpg)
2204/20/23
Cost x1 1002 x1 x22 x2 2002
x1Cost 2x1 100 2x1 x2
x2Cost 2x1 x2 2x2 200
setting the partial derivatives = 0 we solve for the minimum Cost:
Ax + B = 0
= 04 2 2 4
x1x2
200 400
= 02 1 1 2
x1x2
100 200
x1=400/3 x2=500/3
x2x1
x=100
x=200Example:
![Page 23: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/23.jpg)
2304/20/23
setting the partial derivatives = 0 we solve for the minimum Cost:
Ax + B = 0
= 04 2 2 4
x1x2
200 400
= 02 1 1 2
x1x2
100 200
x1=400/3 x2=500/3
x2x1
x=100
x=200
Interpretation of matrices A and B:
The diagonal values A[i,i] correspond to the number of connections to xiThe off diagonal values A[i,j] are -1 if object i is connected to object j, 0 otherwiseThe values B[i] correspond to the sum of the locations of fixed objects connected to object i
Example:
![Page 24: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/24.jpg)
2404/20/23
Quadratic Placement
Global optimization: solves a sequence of quadratic programming problems
Partitioning: enforces the non-overlap constraints
![Page 25: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/25.jpg)
2504/20/23
Solution of the Original QP
![Page 26: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/26.jpg)
2604/20/23
Partitioning
• Use FM to cut.
![Page 27: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/27.jpg)
2704/20/23
• Perform the Global Optimization again with additional constraints that the center of gravities should be in the center of regions.
Applying the Idea Recursively
Center of Gravities
![Page 28: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/28.jpg)
2804/20/23
Process of Gordian
(a) Global placement with 1 region (b) Global placement with 4 region (c) Final placements
![Page 29: VLSI Placement](https://reader035.vdocuments.us/reader035/viewer/2022062408/568138a8550346895da066bb/html5/thumbnails/29.jpg)
2904/20/23
Quadratic Techniques:
Pros:- mathematically well behaved- efficient solution techniques
Cons:- solution of Ax + B = 0 is not a legal placement, so generally
some additional partitioning techniques are required.- solution of Ax + B = 0 is minimizes wirelength squared, not linear wire length.