pub struct PlacementProblemOverlay<'a, C: L2NBase> {
    pub placement_problem: &'a dyn PlacementProblem<C>,
    pub initial_positions: HashMap<C::CellInstId, SimpleTransform<C::Coord>>,
    pub placement_status: HashMap<C::CellInstId, PlacementStatus>,
    pub net_weights: HashMap<C::NetId, f64>,
Expand description

Overlay data for PlacementProblems. This struct takes a PlacementProblem and stores updates of initial positions, placement status and net weights. All values which where not set to new values default back to the underlying PlacementProblem. This allows to update such values of a immutable PlacementProblem with no cloning.


placement_problem: &'a dyn PlacementProblem<C>

Underlying placement problem.

initial_positions: HashMap<C::CellInstId, SimpleTransform<C::Coord>>

Updates for initial positions.

placement_status: HashMap<C::CellInstId, PlacementStatus>

Updates for placement status.

net_weights: HashMap<C::NetId, f64>

Updates for net weights.


Create a new overlay over placement_problem without any updates. The returned placement problem will return the same values but they can be updated without changing the underlying values.

Trait Implementations

Representation of the placement task.

Get the base layout/netlist structure.

Get the top cell whose content should be placed.

Get a list of polygons which describe where cells are allowed to be placed.

Get regions which should not be used for placement but can if necessary. Overlap of cells with this regions should be minimized. Read more

Get the position of a cell instance which should be used as an initial value for the optimization. This is most likely the output of the previous placement step. Read more

Tell if the cell instance can be moved by the placement engine.

Get the abutment box / outline of the cell.

Get the weight of a net. Default is 1.0. When optimizing the wire-length, the weighted wire-length should be used. For example a weight 0.0 means that the net should not be considered for wire-length optimization. Read more

Get the abutment box / outline of the cell instance.

TODO: fn arc_weight(&self, arc: &ArcId) -> f64; Get the set of fixed instances. Read more

Get the set of movable cell instances.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.