pub struct NonIdealityModel {
pub weight_gain_sigma: f64,
pub gm_distance_sigma_per_pitch: f64,
pub offset_sigma_v: Volts,
pub noise_floor_v: Volts,
pub cross_tier_gain_sigma: f64,
pub gain_tempco_per_k: f64,
pub offset_tempco_v_per_k: f64,
pub chop_residual_v: Volts,
pub provenance: &'static str,
}Expand description
The characterized non-ideality figures a physical target carries.
Fields§
§weight_gain_sigma: f64Fractional 1σ error of a programmed weight (unit-element/programming accuracy class).
gm_distance_sigma_per_pitch: f64Additional fractional 1σ gain error per tile-pitch of operand separation — the Pelgrom distance-gradient lever the placer optimizes against.
offset_sigma_v: VoltsPer-tile output-referred offset 1σ, volts.
noise_floor_v: VoltsSampled-noise floor (kT/C class), volts rms, per tile.
cross_tier_gain_sigma: f64Additional fractional 1σ gain error between tiles on SEPARATELY MANUFACTURED tiers — a flat categorical ceiling, not a distance gradient: dies do not share a Pelgrom field, so cross-tier matching gets the class figure, full stop.
gain_tempco_per_k: f64Fractional gain drift per kelvin of TEMPERATURE DIFFERENCE between a tile and its
operand tile — matching cares about gradients, so the coupled term prices
|ΔT_cell − ΔT_operand|, not absolute temperature.
offset_tempco_v_per_k: f64Absolute output-referred offset drift, volts per kelvin of a tile’s rise.
chop_residual_v: VoltsThe per-tile offset RESIDUAL after chopping, volts 1σ — intra-pair drift over one chop period (the frozen component cancels exactly; this is what survives).
provenance: &'static strSourcing statement — pinned verbatim by analog_provenance_lock.
Trait Implementations§
Source§impl Clone for NonIdealityModel
impl Clone for NonIdealityModel
Source§fn clone(&self) -> NonIdealityModel
fn clone(&self) -> NonIdealityModel
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NonIdealityModel
impl Debug for NonIdealityModel
Source§impl PartialEq for NonIdealityModel
impl PartialEq for NonIdealityModel
impl StructuralPartialEq for NonIdealityModel
Auto Trait Implementations§
impl Freeze for NonIdealityModel
impl RefUnwindSafe for NonIdealityModel
impl Send for NonIdealityModel
impl Sync for NonIdealityModel
impl Unpin for NonIdealityModel
impl UnsafeUnpin for NonIdealityModel
impl UnwindSafe for NonIdealityModel
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
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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.