Skip to main content

place

Function place 

Source
pub fn place(
    geometry: &Geometry,
    units: &[Unit],
    wires: &[Wire],
    fill: Fill,
    aspect: f64,
    blocked: &[Rect],
) -> Result<Vec<Assignment>, PlaceError>
Expand description

The floorplan of units, each in the order given at its candidate of least cost: the width of each of its wires to a unit placed before it or to a fixed site, times the straight distance between centres, so a unit sits where its wires meet; a candidate overlaps no unit placed before it nor blocked. Ties go to the smaller perimeter (the more compact region), then area, then the top row and left column. A unit no candidate holds is refused by name.