pub trait SimpleStdCellPlacer<N: NetlistBase> {
    // Required methods
    fn name(&self) -> &str;
    fn find_cell_positions_impl(
        &self,
        netlist: &N,
        top_cell: &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<Coord>>;

    // Provided method
    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>> { ... }
}
Expand description

Traits for simple placement engines that care about standard-cells only and cannot handle obstructions.

Required Methods§

source

fn name(&self) -> &str

Get the name of the placement engine.

source

fn find_cell_positions_impl( &self, netlist: &N, top_cell: &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<Coord>>

Find the rough positions of all cell instances inside cell.

Parameters
  • netlist: The netlist holding the connectivity information.
  • cell_id: The ID of the cell containing all the standard-cell instances to be placed.
  • core_area: The region where the cells are allowed to be placed.
  • initial_positions: Initial positions of the cells. For movable instances this can serve as a hint for the optimization, fixed instances must have a position defined.
  • fixed_instances: A set of instances that have fixed positions and cannot be moved.
  • cell_outlines: Rectangular outline shapes of the cells.
Returns

Returns a HashMap which maps cell instances to positions.

Provided Methods§

source

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.

Implementors§