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: char

Character used as path separator. Default is /.

§design_name: Option<String>

Name of the design.

§technology: Option<String>

Name of the technology.

§units: u32

Distance 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

source

pub fn load<R: Read>( config: &DEFReaderConfig, reader: &mut R ) -> Result<DEF, LefDefParseError>

Deserialize a DEF from a Write trait object.

source

pub fn load_file( config: &DEFReaderConfig, path: impl AsRef<Path> ) -> Result<DEF, LefDefParseError>

Shortcut for reading a LEF library from a file.

source

pub fn store_file(&self, path: impl AsRef<Path>) -> Result<(), DEFWriterError>

Shortcut for writing a LEF library to a file.

source

pub fn store<W: Write>(&self, writer: &mut W) -> Result<(), DEFWriterError>

Serialize to a Write trait object.

Trait Implementations§

source§

impl Clone for DEF

source§

fn clone(&self) -> DEF

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DEF

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for DEF

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for DEF

§

impl Send for DEF

§

impl Sync for DEF

§

impl Unpin for DEF

§

impl UnwindSafe for DEF

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.