pub struct DesignProfile {
pub name: String,
pub clock_port: String,
pub clock_period_ns: f64,
pub port_bits: u32,
pub macros: Vec<String>,
pub fixed_die: bool,
}Expand description
What the compiler knows about a design that changes how it should be built.
Fields§
§name: StringTop-level module name; also the OpenLane DESIGN_NAME.
clock_port: String§clock_period_ns: f64§port_bits: u32Top-level I/O count. A design with many wide buses is PAD-LIMITED — its die is set by the perimeter its pins need, not by its logic — and must be given an explicit die area or the floorplanner sizes it too small for the pins to fit.
macros: Vec<String>Hardened macros this design instantiates (SRAM, or another of our blocks).
fixed_die: boolSet for a fixed-die shuttle vehicle wrapper, where the die is not ours to choose.
Implementations§
Source§impl DesignProfile
impl DesignProfile
pub fn new(name: &str, clock_port: &str, clock_period_ns: f64) -> Self
pub fn with_ports(self, bits: u32) -> Self
Sourcepub fn is_pad_limited(&self) -> bool
pub fn is_pad_limited(&self) -> bool
A design is pad-limited when its perimeter, not its logic, sets the die. The threshold is
the point at which the observed blocks needed an explicit DIE_AREA: the infinichip
subsystem (~386 pins) did, everything smaller did not.
Trait Implementations§
Source§impl Clone for DesignProfile
impl Clone for DesignProfile
Source§fn clone(&self) -> DesignProfile
fn clone(&self) -> DesignProfile
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DesignProfile
impl Debug for DesignProfile
Source§impl PartialEq for DesignProfile
impl PartialEq for DesignProfile
impl StructuralPartialEq for DesignProfile
Auto Trait Implementations§
impl Freeze for DesignProfile
impl RefUnwindSafe for DesignProfile
impl Send for DesignProfile
impl Sync for DesignProfile
impl Unpin for DesignProfile
impl UnsafeUnpin for DesignProfile
impl UnwindSafe for DesignProfile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.