Module libreda_pnr::db [−][src]
Expand description
The prelude
helps to import most commonly used modules.
Modules
reference_access  Experimental 
traits  Reexport of most traits. This can be useful if only traits should be used but not the rest. 
util  Utility functions for dealing with layouts. 
Structs
CellInstRef  Default implementation for 
CellRef  A reference to a cell. This is just a wrapper around a netlist and a cell ID. 
Chip  A netlist is the container of circuits. 
ComplexTransform  Transformation described by a mirroring at the 
Edge  An edge (line segment) is represented by its starting point and end point. 
FlatView  Wrapper around a netlist which provides an onthefly flat view of a certain cell. The presented view is flattened until leaf cells. Internally this works by using component IDs that are actually paths through the hierarchy. 
IrregularRepetition  Describe a nonequispaced repetition by storing a list of offsets. 
LayerInfo  Metadata of a layer. 
Matrix2dTransform  Description of a transformation in the euclidean plane by a 2x2 matrix 
Matrix3dTransform  Affine transformation represented as a 3x3 matrix like: 
MultiPolygon  A 
NetRef  A reference to a net. This is just a wrapper around a netlist and a net ID. 
Path 

PinInstRef  A reference to a pin instance. This is just a wrapper around a netlist and a pin instance ID. 
PinRef  A reference to a pin. This is just a wrapper around a netlist and a pin ID. 
Point  A point is defined by a x and y coordinate in the euclidean plane. 
PointString  A point string is a finite sequence of points.
TODO: Implement 
Polygon  A polygon possibly with holes. The polygon is defined by a hull and a list of holes
which are both 
REdge  An rectilinear edge (horizontal or vertical line segment) is represented by its starting point and end point. 
RcString  Resource counted string, used for names.

Rect  A rectangle which is oriented along the x an y axis and represented by its lower left and upper right corner. 
RegularRepetition  Describe a equispaced n*m twodimensional repetition as a lattice.
The offsets are computed as 
Rot90Transform  Transformation that consists only of a rotation by a multiple of 90 degrees
around the origin 
SimplePolygon  A 
SimpleRPolygon  A 
SimpleTransform  Describes a geometric transformation that consists of a optional mirroring along the xaxis followed by a rotation by a multiple of 90 degrees followed by a displacement. 
Text  A text is a point associated with a string. This struct does not define how the text should be rendered on screen. 
Vector 

Enums
Angle  Angle expressed as a multiple of 90 degrees. 
ContainsResult  This is a result type for containment checks. 
Direction  Signal type for pins. 
EdgeIntersection  Return type for the edgeedge intersection functions. Stores all possible results of a edge to edge intersection. 
Geometry  Abstracted geometrical shape. 
LineIntersection  Return type for the lineline intersection functions. Stores all possible results of a line to line intersection. 
Orientation  Relative orientation of two geometrical objects such as vectors. 
PathEndType  Encoding for the type of the beginning and end of the path. 
PropertyValue  Property value type. Properties can hold different types that are encapsulated in this enum. 
REdgeIntersection  Return type for the edgeedge intersection functions. Stores all possible results of a edge to edge intersection. 
REdgeOrientation  Orientation of a rectilinear edge. 
RLineIntersection  Return type for the lineline intersection functions. Stores all possible results of a line to line intersection. 
Repetition  Describe the regular or irregular repetition of a geometrical object. 
Side  Location relative to a directed line or edge. Something can be on the left of the line, right of the line or on top of the line (center). 
TerminalId  A terminal is a generalization of pins and pin instances. 
TerminalRef  Either a pin or a pin instance. 
Constants
PREC_DISTANCE  Precision for distance related decisions. 
Traits
BoundingBox  Calculation of the ‘bounding box’, i.e. the smallest rectangle that contains the geometrical object. 
CoordinateType  Trait for types that can be used as coordinates in the euclidean plane. In practice this are integers, floats and possible rational numbers. 
Deref  Used for immutable dereferencing operations, like 
DoubledOrientedArea  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. 
HierarchyBase  Most basic trait for the hierarchical flyweight pattern which is used to efficiently represent chip layouts and netlists. 
HierarchyEdit  Edit functions for a hierarchical flyweight structure like a netlist or a cellbased layout. 
HierarchyReferenceAccess  Trait that provides objectlike read access to a cell hierarchy structure and its elements. 
L2NBase  Fused layout and netlist view. This trait makes the link between netlist elements and layout elements. 
L2NEdit  Fused layout and netlist view. This trait makes the link between netlist elements and layout elements. 
LayoutBase  Most basic trait of a layout. 
LayoutEdit  Trait for layouts that support editing. 
LayoutStreamReader  Trait for reading a layout from a byte stream. 
LayoutStreamWriter  Trait for writing a layout to a byte stream. 
MapPointwise  Transform the geometrical object by transforming each point of it. 
Mirror  Mirror at the x or y axis. 
NetlistBase  Most basic trait for traversing a netlist.
A netlist extends the 
NetlistEdit  Trait for netlists that support editing. 
NetlistEditUtil  Modifying utility functions for netlists.
Import the this trait to use the utility functions all types that implement the 
NetlistReader  Read a netlist from a byte stream. 
NetlistReferenceAccess  Trait that provides objectlike read access to a hierarchical netlist structure and its elements. 
NetlistUtil  Nonmodifying utility functions for netlists.
Import the this trait to use the utility functions all types that implement the 
NetlistWriter  Write a netlist to a byte stream. 
RotateOrtho  Rotate by a integer multiple of 90 degrees. 
Scale  Scale the geometrical shape. Scaling center is the origin 
TextType  Trait for types that can be used as the text of this label.
The most simple solution is to use 
ToPolygon  Trait for the conversion of a geometric shape to a polygon. 
Translate  Translate the geometrical object by a vector. 
TryBoundingBox  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. 
TryCastCoord  This trait defines the typecasting of the coordinate types for geometrical objects. 
TryIntoBoundingBox  Try to compute the bounding box while consuming the data. This is intended to be used for computing bounding boxes over iterators. 
WindingNumber  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. 
WithProperties  A trait for associating user defined properties with a type. 
Zero  Defines an additive identity element for 
Type Definitions
Coord  Integer coordinate type. 
DistanceType  Default type for euclidean distances. 
FloatType  Default floating point type. 
SInt  Default signed integer type. 
UInt  Default unsigned integer type. 