pub struct StackTarget {
pub name: &'static str,
pub tiers: Vec<Tier>,
pub gaps: Vec<Vec<VerticalClass>>,
pub cooling: CoolingBoundary,
}Expand description
The composed stack — tiers bottom-up, gap i between tier i and tier i+1.
Fields§
§name: &'static str§tiers: Vec<Tier>§gaps: Vec<Vec<VerticalClass>>§cooling: CoolingBoundaryImplementations§
Source§impl StackTarget
impl StackTarget
Sourcepub fn single(t: AnalogTarget) -> StackTarget
pub fn single(t: AnalogTarget) -> StackTarget
The 1-tier degenerate embed: today’s 2D analog lane, unchanged — the lock proves the compiled artifact is bit-identical to the direct path.
Sourcepub fn sky130_stack_v1() -> StackTarget
pub fn sky130_stack_v1() -> StackTarget
The V1 stack: the sourced-power digital tier BELOW the analog tier — deliberately in its heat path, so the thermal phases have something honest to measure and refuse.
Sourcepub fn validate(&self) -> Result<(), StackShapeError>
pub fn validate(&self) -> Result<(), StackShapeError>
Structural coherence — refused with a name, never a meaningless stack.
Sourcepub fn analog_tier(&self) -> Option<(usize, &AnalogTarget)>
pub fn analog_tier(&self) -> Option<(usize, &AnalogTarget)>
The stack’s FIRST analog tier, if any (the region-compilation anchor; placement spans
all analog tiers via stack_place).
Trait Implementations§
Source§impl Clone for StackTarget
impl Clone for StackTarget
Source§fn clone(&self) -> StackTarget
fn clone(&self) -> StackTarget
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 StackTarget
impl Debug for StackTarget
Source§impl PartialEq for StackTarget
impl PartialEq for StackTarget
impl StructuralPartialEq for StackTarget
Auto Trait Implementations§
impl Freeze for StackTarget
impl RefUnwindSafe for StackTarget
impl Send for StackTarget
impl Sync for StackTarget
impl Unpin for StackTarget
impl UnsafeUnpin for StackTarget
impl UnwindSafe for StackTarget
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.