pub struct SimpleStdCellPlacerCascade<N: NetlistBase> {
stages: Vec<Box<dyn SimpleStdCellPlacer<N>>>,
}Expand description
A pipeline of placers. The result of the first stage is used as the initial placement for the next stage.
Fields§
§stages: Vec<Box<dyn SimpleStdCellPlacer<N>>>Implementations§
source§impl<N: NetlistBase> SimpleStdCellPlacerCascade<N>
impl<N: NetlistBase> SimpleStdCellPlacerCascade<N>
sourcepub fn new(placers: Vec<Box<dyn SimpleStdCellPlacer<N>>>) -> Self
pub fn new(placers: Vec<Box<dyn SimpleStdCellPlacer<N>>>) -> Self
Create a new placer cascade.
Trait Implementations§
source§impl<N: NetlistBase> SimpleStdCellPlacer<N> for SimpleStdCellPlacerCascade<N>
impl<N: NetlistBase> SimpleStdCellPlacer<N> for SimpleStdCellPlacerCascade<N>
source§fn find_cell_positions_impl(
&self,
netlist: &N,
circuit_id: &N::CellId,
core_area: &SimplePolygon<Coord>,
initial_positions: &HashMap<N::CellInstId, Point<Coord>>,
fixed_instances: &HashSet<N::CellInstId>,
cell_outlines: &HashMap<N::CellId, Rect<Coord>>,
net_weights: &HashMap<N::NetId, f64>
) -> HashMap<N::CellInstId, Point<i32>>
fn find_cell_positions_impl( &self, netlist: &N, circuit_id: &N::CellId, core_area: &SimplePolygon<Coord>, initial_positions: &HashMap<N::CellInstId, Point<Coord>>, fixed_instances: &HashSet<N::CellInstId>, cell_outlines: &HashMap<N::CellId, Rect<Coord>>, net_weights: &HashMap<N::NetId, f64> ) -> HashMap<N::CellInstId, Point<i32>>
Find the rough positions of all cell instances inside
cell. Read moresource§fn find_cell_positions(
&self,
netlist: &N,
cell_id: &N::CellId,
core_area: &SimplePolygon<Coord>,
initial_positions: &HashMap<N::CellInstId, Point<Coord>>,
fixed_instances: &HashSet<N::CellInstId>,
cell_outlines: &HashMap<N::CellId, Rect<Coord>>,
net_weights: &HashMap<N::NetId, f64>
) -> HashMap<N::CellInstId, Point<SInt>>
fn find_cell_positions( &self, netlist: &N, cell_id: &N::CellId, core_area: &SimplePolygon<Coord>, initial_positions: &HashMap<N::CellInstId, Point<Coord>>, fixed_instances: &HashSet<N::CellInstId>, cell_outlines: &HashMap<N::CellId, Rect<Coord>>, net_weights: &HashMap<N::NetId, f64> ) -> HashMap<N::CellInstId, Point<SInt>>
Calls
find_cell_positions_impl() before and after doing some sanity checks.