Module libreda_pnr::db::traits[][src]

Expand description

Re-export of most traits. This can be useful if only traits should be used but not the rest.

Structs

Default implementation for CellInstRef. This is just a wrapper around a netlist and a cell ID.

A reference to a cell. This is just a wrapper around a netlist and a cell ID.

Reference to a layer.

A reference to a net. This is just a wrapper around a netlist and a net ID.

A reference to a pin instance. This is just a wrapper around a netlist and a pin instance ID.

A reference to a pin. This is just a wrapper around a netlist and a pin ID.

Reference to a shape.

Enums

A terminal is a generalization of pins and pin instances.

Either a pin or a pin instance.

Traits

Calculate the area of a geometry.

Calculation of the ‘bounding box’, i.e. the smallest rectangle that contains the geometrical object.

Calculate the doubled oriented area of a geometry. Using the doubled area allows to compute the area without using fractions. This is especially helpful when computing in integer coordinates.

Most basic trait for the hierarchical flyweight pattern which is used to efficiently represent chip layouts and netlists.

Edit functions for a hierarchical flyweight structure like a netlist or a cell-based layout.

Modifying utility functions for the cell hierarchy.. Import the this trait to use the utility functions all types that implement the HierarchyEdit trait.

Trait that provides object-like read access to a cell hierarchy structure and its elements.

Non-modifying utility functions for the cell hierarchy.. Import the this trait to use the utility functions all types that implement the HierarchyBase trait.

Fused layout and netlist view. This trait makes the link between netlist elements and layout elements.

Fused layout and netlist view. This trait makes the link between netlist elements and layout elements.

Most basic trait of a layout.

Trait for layouts that support editing.

Helper functions for layouts.

Trait that provides object-like read access to a layout structure and its elements.

Transform the geometrical object by transforming each point of it.

Mirror at the x or y axis.

Most basic trait for traversing a netlist. A netlist extends the HierarchyBase and hence is hierarchical. NetlistBase extends the components of the hierarchy with pins and nets. Each cell can have pins. Each cell instance has pin instances that correspond one-to-one to the pins of the template cell. Cells can contain nets. Each pin and each pin instance can be connected to one or zero nets. A net can be connected to an arbitrary number of pins and pin instances.

Trait for netlists that support editing.

Modifying utility functions for netlists. Import the this trait to use the utility functions all types that implement the NetlistBase trait.

Trait that provides object-like read access to a hierarchical netlist structure and its elements.

Non-modifying utility functions for netlists. Import the this trait to use the utility functions all types that implement the NetlistBase trait.

Access shapes and instances in a layout based on their locations.

Rotate by a integer multiple of 90 degrees.

Scale the geometrical shape. Scaling center is the origin (0, 0).

Translate the geometrical object by a vector.

Try the calculation of the ‘bounding box’, i.e. the smallest rectangle that contains the geometrical object. In some cases this is not always possible, so the try might fail. For instance a set of polygons does not have a bounding box if the set is empty.

This trait defines the type-casting of the coordinate types for geometrical objects.

Try to compute the bounding box while consuming the data. This is intended to be used for computing bounding boxes over iterators.

Compute the winding number of a geometrical object around a point. The winding number is used to check if a point is contained in a shape.

Functions

Copy all layers (without their contents) from a source layout into a destination layout.

Copy a layer (without its content) from a source layout into a destination layout.

Copy the shapes on a specific layer from one cell into another cell.

Copy the shapes from all layers in a cell into another cell.