Struct libreda_lefdef::def_ast::DEF
source · pub struct DEF {Show 27 fields
pub version: Option<String>,
pub busbitchars: (char, char),
pub dividerchar: char,
pub design_name: Option<String>,
pub technology: Option<String>,
pub units: u32,
pub history: Vec<String>,
pub property_definitions: BTreeMap<String, DEFPropertyDefinition>,
pub die_area: Option<SimpleRPolygon<Coord>>,
pub rows: BTreeMap<String, Row>,
pub tracks: Vec<Tracks>,
pub gcell_grid: Vec<()>,
pub vias: BTreeMap<String, ViaDefinition>,
pub styles: Vec<()>,
pub nondefault_rules: (),
pub regions: BTreeMap<String, Region>,
pub components: Vec<Component>,
pub pins: Vec<Pin>,
pub pin_properties: (),
pub blockages: Vec<Blockage>,
pub slots: (),
pub fills: (),
pub special_nets: BTreeMap<String, ()>,
pub nets: Vec<Net>,
pub scan_chains: (),
pub groups: BTreeMap<String, Vec<Group>>,
pub extensions: (),
}Expand description
Representation of a design as defined in DEF.
Fields§
§version: Option<String>Version of the DEF syntax.
busbitchars: (char, char)Characters that are used to mark bus bit indices. Default are [ and ].
dividerchar: charCharacter used as path separator. Default is /.
design_name: Option<String>Name of the design.
technology: Option<String>Name of the technology.
units: u32Distance units per micron. Values supported by LEF are: 100, 200, 1000, 2000, 10000, 20000 The database unit value in LEF must be greater or equal to the one in DEF to avoid round-off errors.
history: Vec<String>Arbitrary text.
property_definitions: BTreeMap<String, DEFPropertyDefinition>Definitions of custom properties used in the design.
die_area: Option<SimpleRPolygon<Coord>>Shape of the die.
rows: BTreeMap<String, Row>Rows stored by their name.
tracks: Vec<Tracks>Routing grid for standard-cell based designs.
gcell_grid: Vec<()>TODO
vias: BTreeMap<String, ViaDefinition>Geometry definitions of the vias used in the design.
styles: Vec<()>Styles of wire ends.
nondefault_rules: ()TODO
regions: BTreeMap<String, Region>Regions are named geometrical locations that can be used to place components.
components: Vec<Component>Components of the design. This includes placed and unplaced cells and macros.
pins: Vec<Pin>Definitions of external pins of the design. Associates external pin names with internal nets and pin geometries.
pin_properties: ()Definitions of pin properties. TODO
blockages: Vec<Blockage>Placement and routing blockages.
slots: ()TODO
fills: ()TODO
special_nets: BTreeMap<String, ()>Definitions of special nets. Special nets include nets like include power, clock, RF, and analog signals. They should not be touched by the signal router.
nets: Vec<Net>Definitions of normal signal nets.
scan_chains: ()Scan-chain definitions.
groups: BTreeMap<String, Vec<Group>>Groups of components.
extensions: ()BEGINEXT blocks with non-standard extensions of the DEF format.
Implementations§
source§impl DEF
impl DEF
sourcepub fn load<R: Read>(
config: &DEFReaderConfig,
reader: &mut R
) -> Result<DEF, LefDefParseError>
pub fn load<R: Read>( config: &DEFReaderConfig, reader: &mut R ) -> Result<DEF, LefDefParseError>
Deserialize a DEF from a Write trait object.
sourcepub fn load_file(
config: &DEFReaderConfig,
path: impl AsRef<Path>
) -> Result<DEF, LefDefParseError>
pub fn load_file( config: &DEFReaderConfig, path: impl AsRef<Path> ) -> Result<DEF, LefDefParseError>
Shortcut for reading a LEF library from a file.
sourcepub fn store_file(&self, path: impl AsRef<Path>) -> Result<(), DEFWriterError>
pub fn store_file(&self, path: impl AsRef<Path>) -> Result<(), DEFWriterError>
Shortcut for writing a LEF library to a file.