pub struct SimpleDesignRef<'a, C: L2NBase> {
    pub fused_layout_netlist: &'a C,
    pub top_cell: C::CellId,
    pub cell_outlines: &'a HashMap<C::CellId, Rect<C::Coord>>,
    pub placement_region: &'a Vec<SimpleRPolygon<C::Coord>>,
    pub placement_status: &'a HashMap<C::CellInstId, PlacementStatus>,
    pub net_weights: &'a HashMap<C::NetId, f64>,
    pub placement_location: &'a HashMap<C::CellInstId, SimpleTransform<C::Coord>>,
}
Expand description

Collection of data representing the chip during the place & route flow. This struct borrows the data. In contrast, SimpleDesign owns the data.

Fields

fused_layout_netlist: &'a C

Base layout and netlist data-structure.

top_cell: C::CellId

Cell which contains the instances to be placed.

cell_outlines: &'a HashMap<C::CellId, Rect<C::Coord>>

Outline shapes of the cells to be placed.

placement_region: &'a Vec<SimpleRPolygon<C::Coord>>

Regions where cells are allowed to be placed.

placement_status: &'a HashMap<C::CellInstId, PlacementStatus>

Placement status of the cell instances. Default is Movable.

net_weights: &'a HashMap<C::NetId, f64>

Net weights. Default for nets which are not in the hash map is 1.0.

placement_location: &'a HashMap<C::CellInstId, SimpleTransform<C::Coord>>

Overwrite the location information from the fused_layout_netlist.

Trait Implementations

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 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 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 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.

Get the base layout/netlist structure.

Get the top cell whose content should be placed.

Return the nets which should be routed.

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. Place and route algorithms may or may not use the net weight. Read more

Shapes where routes should not pass.

Routes must remain within this boundary.

Weight of an ‘arc’, i.e. a net segment which starts at signal_source and ends at signal_destination. Default weight is 1.0`. Place and route algorithms may or may not use the arc weight. Read more

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.