Quadratic VLSI Placement Manolis Pantelias
General Various types of VLSI placement Simulated-Annealing Quadratic or Force-Directed Min-Cut Nonlinear Programming Mix of the above Quadratic placers Try to minimize a quadratic wirelength objective function Indirect measure of the wirelength but can be minimized quite efficiently Results in a large amount of overlap among cells Additional techniques needed
Proud R. S. Tsay, E. Kuh and C. P. Hsu, “Proud: A Sea-of-Gates Placement Algorithm”
Objective function Don’t minimize the wirelength but the squared wirelength: cij between module i and module j could be the number of nets connecting the two modules Connectivity matrix C = [cij] B = D – C D is a diagonal matrix with: Only the one-dimensional problem needs to be considered because of the symmetry between x and y
Electric Network Analogy Objective function x T Bx can be interpreted as the power dissipation of an n-node linear resistive network Vector x corresponds to the voltage vector x = [x 1 x 2 ] T, x 1 is of dimension m and is to be determined, x 2 is due to the fixed I/O pads B contains the conductance of the nodes –bij is the conductance between node i and node j
Electric Network Analogy (Cont’d) Placement problem is equivalent to that of choosing voltage vector for which power is a minimum B 11 x 1 + B 12 x 2 = 0 B 21 x 1 + B 22 x 2 = i 2 Solve for Ax 1 = b Where A = B 11, b = - B 12 x 2 Solved with iterating method (successive over-relaxation or SOR)
Placement and Partitioning How to avoid module overlap? Solution: Iterative partitioning in a hierarchical way Add module areas from left to right until roughly half of the total area, that defines partition-line Make modules to the right of partition-line fixed, modules to the left of partition-line movable Project fixed modules to center-line Perform global placement in the left-plane (of center-line)
Placement and Partitioning (Cont’d) Make all modules in the left-plane fixed, project to the center line Make modules to the right of cut-line movables Perform global placement in the right-plane Proceed with horizontal cuts on each half Continue until each block contains one and only module
BGS Iteration For a given hierarchy perform the previous partitioning more than once Assume a vertical cut y 1 splits into y 1a, y 1b for each half y 1a * and y 1b * are perturbed solution from y 1a and y 1b because of the partitioning process 2-5 iterations give very good results at each hierarchy
Problems A bad decision at a higher level affects the placement results of lower levels Difficult to overcome a bad partitioning of a higher level Backtracking?
KraftWerk Hans Eisenmann and F. Johannes, “Generic Global Placement and Floorplanning”
Force Directed Approach Transform the placement problem to the classical mechanics problem of a system of objects attached to springs. Analogies: Module (Block/Cell/Gate) = Object Net = Spring Net weight = Spring constant. Optimal placement = Equilibrium configuration
An Example Resultant Force
Force Calculation Hooke’s Law: Force = Spring Constant x Distance Can consider forces in x- and y-direction separately: (x i, y i ) (x j, y j ) F FxFx FyFy
Problem Formulation Equilibrium: j c ij (x j - x i ) = 0 for all module i. However, trivial solution: x j = x i for all i, j. Everything placed on the same position! Need to have some way to avoid overlapping. Have connections to fixed I/O pins on the boundary of the placement region. Push cells away from dense region to sparse region
Kraftwerk Approach Iteratively solve the quadratic formulation: Spread cells by additional forces: Density-based force proposed Push cells away from dense region to sparse region The force exerted on a cell by another cell is repelling and proportional to the inverse of their distance. The force exerted on a cell by a place is attracting and proportional to the inverse of their distance // equivalent to spring force // equilibrium
Some Details Let f i be the additional force applied to cell i The proportional constant k is chosen so that the maximum of all f i is the same as the force of a net with length K(W+H) K is a user-defined parameter K=0.2 for standard operation K=1.0 for fast operation Can be extended to handle timing, mixed block placement and floorplanning, congestion, heat- driven placement, incremental changes, etc.
Some Potential Problems of Kraftwerk Convergence is difficult to control Large K oscillation Small K slow convergence Example: Layout of a multiplier Density-based force is expensive to compute
FastPlace Natarajan Viswanathan and Chris Chu, “FastPlace: Efficient Analytical Placement using Cell Shifting, Iterative Local Refinement and a Hybrid Net Model”
FastPlace Approach Framework: repeat Solve the convex quadratic program Reduce wirelength by iterative heuristic Spread the cells until the cells are evenly distributed Special features of FastPlace: Cell Shifting Easy-to-compute technique Enable fast convergence Hybrid Net Model Speed up solving of convex QP Iterative Local Refinement Minimize wirelength based on linear objective
Cell Shifting 1.Shifting of bin boundary Uniform Bin StructureNon-uniform Bin Structure 2.Shifting of cells linearly within each bin Apply to all rows and all columns independently
Cell Shifting – Animation … NB i Bin i Bin i+1 OB i OB i-1 OB i+1 UiUi U i+1 j k l Bin i Bin i+1 OB i OB i-1 OB i+1 j k l NB i
Pseudo pin and Pseudo net Need to add forces to prevent cells from collapsing back Done by adding pseudo pins and pseudo nets Only diagonal and linear terms of the quadratic system need to be updated Takes a single pass of O(n) time to regenerate matrix Q (which is common for both x and y problems) Pseudo net Additional Force Pseudo pin Target Position Original Position Pseudo net Pseudo pin
Iterative Local Refinement Iteratively go through all the cells one by one For each cell, consider moving it in four directions by a certain distance Compute a score for each direction based on Half-perimeter wirelength (HPWL) reduction Cell density at the source and destination regions Move in the direction with highest positive score (Do not move if no positive score) Distance moved (H or V) is decreasing over iterations Detailed placement is handled by the same heuristic HH V V
Clique, Star and Hybrid Net Models Runtime is proportional to # of non-zero entries in Q Each non-zero entry in Q corresponds to one 2-pin net Traditionally, placers model each multi-pin net by a clique Hybrid Net Model is a mix of Clique and Star Models Star Node Clique ModelStar Model Hybrid Model # pinsNet Model 2Clique 3 4Star 5 6 ……
Equivalence of Clique and Star Models Lemma: By setting the net weights appropriately, clique and star net models are equivalent. Proof: When star node is at equilibrium position, total forces on each cell are the same for clique and star net models. Star Node Weight = γ W Weight = γ kW for a k-pin net Weight = γ kW for a k-pin net Clique ModelStar Model
Comparison FastPlace is fast compared to Kraftwerk (based on published data) 20-25x faster With cell shifting technique can converge in around 20 iterations. KraftWerk may need hundreds of iterations to converge. 10% better in wirelength hybrid net model