pub enum AnaUnplaceable {
MissingCapability {
needed: AnalogCapability,
target: &'static str,
},
TooSmall {
needed_cells: usize,
target_rows: usize,
target_cols: usize,
target: &'static str,
},
GainRatioUnrealizable {
needed: f64,
lo: f64,
hi: f64,
target: &'static str,
},
IntegratorRateUnrealizable {
needed_per_s: f64,
lo: f64,
hi: f64,
target: &'static str,
},
MulReferenceUnrealizable {
needed_v: f64,
options_v: Vec<f64>,
target: &'static str,
},
SumFaninExceeded {
needed: usize,
max: usize,
target: &'static str,
},
DynamicRangeExceeded {
net: usize,
needed_db: f64,
available_db: f64,
target: &'static str,
},
DivisorRangeSpansZero {
net: usize,
lo: f64,
hi: f64,
},
StackTooSmall {
needed_cells: usize,
sites: usize,
stack: &'static str,
},
VerticalResourceExhausted {
gap: usize,
budget: usize,
},
}Expand description
Why a netlist cannot be realized on a given analog target — a TYPED refusal, never a silently-wrong circuit.
Variants§
MissingCapability
The target lacks a discrete capability the netlist needs.
TooSmall
The netlist needs more tiles than the described array carries.
GainRatioUnrealizable
A required programmed weight/gain ratio falls outside the target’s realizable range.
IntegratorRateUnrealizable
A required integrator rate (gm/C, in 1/s) falls outside the target’s realizable range.
MulReferenceUnrealizable
The block scale a Mul-bearing graph needs is not a realizable multiplier reference —
rail safety does not imply Vref realizability.
SumFaninExceeded
A summing tile demands more fan-in than the physical summing node carries (fan-in is a real resource: node loading, settling, noise) — tree the sum instead.
DynamicRangeExceeded
A net’s declared range needs more dynamic range (rail span over noise floor, in dB) than the target provides.
DivisorRangeSpansZero
A translinear ratio whose divisor’s certified box crosses (or touches) zero — the loop starves; no output box exists.
StackTooSmall
A stack’s analog tiers together carry fewer sites than the netlist needs.
VerticalResourceExhausted
A gap’s counted vertical interconnect budget cannot carry the crossings a legal placement needs — vias are SCARCE, and running out is a refusal, not an overcommit.
Trait Implementations§
Source§impl Clone for AnaUnplaceable
impl Clone for AnaUnplaceable
Source§fn clone(&self) -> AnaUnplaceable
fn clone(&self) -> AnaUnplaceable
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnaUnplaceable
impl Debug for AnaUnplaceable
Source§impl Display for AnaUnplaceable
impl Display for AnaUnplaceable
Source§impl PartialEq for AnaUnplaceable
impl PartialEq for AnaUnplaceable
impl StructuralPartialEq for AnaUnplaceable
Auto Trait Implementations§
impl Freeze for AnaUnplaceable
impl RefUnwindSafe for AnaUnplaceable
impl Send for AnaUnplaceable
impl Sync for AnaUnplaceable
impl Unpin for AnaUnplaceable
impl UnsafeUnpin for AnaUnplaceable
impl UnwindSafe for AnaUnplaceable
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.