EDA algorithms

Placement algorithm

A placement algorithm decides where on the chip canvas each of the millions of standard cells should sit, before any wires are drawn. Imagine seating guests at a wedding so that people who must talk to each other sit close — except here every cell is connected to dozens of others, no two cells may overlap, and there are millions of guests. Get it wrong and wires sprawl across the die, blowing up delay and power; get it right and the whole design becomes fast, small, and routable.

Most modern placers are analytical: they model the total wirelength as a smooth mathematical function (a quadratic, or a log-sum-exp approximation of half-perimeter wirelength) and minimize it with numerical solvers, then add a spreading force that pushes overlapping cells apart so the layout stops collapsing into one pile. This 'global placement' produces a rough, slightly overlapping arrangement; a later 'detailed placement' snaps every cell onto legal standard-cell rows and gaps. Tools like RePlAce and the academic ePlace family, and Google's RL-based floorplanner, all attack this same wirelength-versus-spreading tug-of-war.

minimize Σ_nets HPWL(net) s.t. no cell overlap

Wirelength is usually estimated with HPWL (half-perimeter wirelength) — the half-perimeter of the bounding box around each net's pins — because it is cheap to compute and tracks true routed length surprisingly well.

Also called
analytical placementglobal placement擺置演算法