pub struct Spectre {}
Expand description
Spectre simulator global configuration.
Implementations§
Source§impl Spectre
impl Spectre
Sourcepub fn escape_identifier(node_name: &str) -> String
pub fn escape_identifier(node_name: &str) -> String
Escapes the given identifier to be Spectre-compatible.
Sourcepub fn instance_path(
lib: &Library<Spectre>,
conv: &NetlistLibConversion,
path: &InstancePath,
) -> String
pub fn instance_path( lib: &Library<Spectre>, conv: &NetlistLibConversion, path: &InstancePath, ) -> String
Converts a scir::InstancePath
to a Spectre path string corresponding to
the associated instance.
Sourcepub fn node_voltage_path(
lib: &Library<Spectre>,
conv: &NetlistLibConversion,
path: &SliceOnePath,
) -> String
pub fn node_voltage_path( lib: &Library<Spectre>, conv: &NetlistLibConversion, path: &SliceOnePath, ) -> String
Converts a SliceOnePath
to a Spectre path string corresponding to the associated
node voltage.
Sourcepub fn node_current_path(
lib: &Library<Spectre>,
conv: &NetlistLibConversion,
path: &SliceOnePath,
) -> String
pub fn node_current_path( lib: &Library<Spectre>, conv: &NetlistLibConversion, path: &SliceOnePath, ) -> String
Converts a SliceOnePath
to a Spectre path string corresponding to the associated
terminal current.
Trait Implementations§
Source§impl ConvertibleNetlister<Spectre> for Spectre
impl ConvertibleNetlister<Spectre> for Spectre
Source§impl FromSchema<NoSchema> for Spectre
impl FromSchema<NoSchema> for Spectre
Source§impl FromSchema<Spice> for Spectre
impl FromSchema<Spice> for Spectre
Source§impl HasSpiceLikeNetlist for Spectre
impl HasSpiceLikeNetlist for Spectre
Source§fn write_prelude<W: Write>(
&self,
out: &mut W,
lib: &Library<Spectre>,
) -> Result<()>
fn write_prelude<W: Write>( &self, out: &mut W, lib: &Library<Spectre>, ) -> Result<()>
Writes a prelude to the beginning of the output stream. Read more
Source§fn write_include<W: Write>(&self, out: &mut W, include: &Include) -> Result<()>
fn write_include<W: Write>(&self, out: &mut W, include: &Include) -> Result<()>
Writes an include statement. Read more
Source§fn write_start_subckt<W: Write>(
&self,
out: &mut W,
name: &ArcStr,
ports: &[&SignalInfo],
) -> Result<()>
fn write_start_subckt<W: Write>( &self, out: &mut W, name: &ArcStr, ports: &[&SignalInfo], ) -> Result<()>
Writes a begin subcircuit statement. Read more
Source§fn write_end_subckt<W: Write>(&self, out: &mut W, name: &ArcStr) -> Result<()>
fn write_end_subckt<W: Write>(&self, out: &mut W, name: &ArcStr) -> Result<()>
Writes an end subcircuit statement. Read more
Source§fn write_instance<W: Write>(
&self,
out: &mut W,
name: &ArcStr,
connections: Vec<ArcStr>,
child: &ArcStr,
) -> Result<ArcStr>
fn write_instance<W: Write>( &self, out: &mut W, name: &ArcStr, connections: Vec<ArcStr>, child: &ArcStr, ) -> Result<ArcStr>
Writes a SCIR instance. Read more
Source§fn write_primitive_inst<W: Write>(
&self,
out: &mut W,
name: &ArcStr,
connections: HashMap<ArcStr, Vec<ArcStr>>,
primitive: &<Self as Schema>::Primitive,
) -> Result<ArcStr>
fn write_primitive_inst<W: Write>( &self, out: &mut W, name: &ArcStr, connections: HashMap<ArcStr, Vec<ArcStr>>, primitive: &<Self as Schema>::Primitive, ) -> Result<ArcStr>
Writes a primitive instantiation. Read more
Source§fn write_slice<W: Write>(
&self,
out: &mut W,
slice: Slice,
info: &SignalInfo,
) -> Result<()>
fn write_slice<W: Write>( &self, out: &mut W, slice: Slice, info: &SignalInfo, ) -> Result<()>
Writes a slice. Read more
Source§impl Installation for Spectre
impl Installation for Spectre
Source§fn post_install(&self, ctx: &mut ContextBuilder)
fn post_install(&self, ctx: &mut ContextBuilder)
A post-installation hook for additional context modifications
required by the installation. Read more
Source§impl Save<Spectre, Ac> for NestedNode
impl Save<Spectre, Ac> for NestedNode
Source§type SaveKey = VoltageSaveKey
type SaveKey = VoltageSaveKey
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, Ac> for NestedTerminal
impl Save<Spectre, Ac> for NestedTerminal
Source§type SaveKey = (VoltageSaveKey, CurrentSaveKey)
type SaveKey = (VoltageSaveKey, CurrentSaveKey)
The key type used to address the saved output within the analysis. Read more
Source§type Saved = NestedTerminalOutput
type Saved = NestedTerminalOutput
The saved data associated with things object.
Source§impl Save<Spectre, Ac> for RawNestedNode
impl Save<Spectre, Ac> for RawNestedNode
Source§type SaveKey = VoltageSaveKey
type SaveKey = VoltageSaveKey
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, Ac> for SaveFreq
impl Save<Spectre, Ac> for SaveFreq
Source§type SaveKey = ()
type SaveKey = ()
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, Ac> for SaveOutput
impl Save<Spectre, Ac> for SaveOutput
Source§type SaveKey = ()
type SaveKey = ()
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, DcOp> for NestedNode
impl Save<Spectre, DcOp> for NestedNode
Source§type SaveKey = VoltageSaveKey
type SaveKey = VoltageSaveKey
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, DcOp> for NestedTerminal
impl Save<Spectre, DcOp> for NestedTerminal
Source§type SaveKey = (VoltageSaveKey, CurrentSaveKey)
type SaveKey = (VoltageSaveKey, CurrentSaveKey)
The key type used to address the saved output within the analysis. Read more
Source§type Saved = NestedTerminalOutput
type Saved = NestedTerminalOutput
The saved data associated with things object.
Source§impl Save<Spectre, DcOp> for RawNestedNode
impl Save<Spectre, DcOp> for RawNestedNode
Source§type SaveKey = VoltageSaveKey
type SaveKey = VoltageSaveKey
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, DcOp> for SaveOutput
impl Save<Spectre, DcOp> for SaveOutput
Source§type SaveKey = ()
type SaveKey = ()
The key type used to address the saved output within the analysis. Read more
Source§impl<A: Analysis> Save<Spectre, MonteCarlo<A>> for NestedNode
impl<A: Analysis> Save<Spectre, MonteCarlo<A>> for NestedNode
Source§type SaveKey = <NestedNode as Save<Spectre, A>>::SaveKey
type SaveKey = <NestedNode as Save<Spectre, A>>::SaveKey
The key type used to address the saved output within the analysis. Read more
Source§type Saved = Vec<<NestedNode as Save<Spectre, A>>::Saved>
type Saved = Vec<<NestedNode as Save<Spectre, A>>::Saved>
The saved data associated with things object.
Source§fn save(
&self,
ctx: &SimulationContext<Spectre>,
opts: &mut <Spectre as Simulator>::Options,
) -> <Self as Save<Spectre, MonteCarlo<A>>>::SaveKey
fn save( &self, ctx: &SimulationContext<Spectre>, opts: &mut <Spectre as Simulator>::Options, ) -> <Self as Save<Spectre, MonteCarlo<A>>>::SaveKey
Marks the given output for saving, returning a key that can be used to recover
the output once the simulation is complete.
Source§fn from_saved(
output: &<MonteCarlo<A> as Analysis>::Output,
key: &<Self as Save<Spectre, MonteCarlo<A>>>::SaveKey,
) -> <Self as Save<Spectre, MonteCarlo<A>>>::Saved
fn from_saved( output: &<MonteCarlo<A> as Analysis>::Output, key: &<Self as Save<Spectre, MonteCarlo<A>>>::SaveKey, ) -> <Self as Save<Spectre, MonteCarlo<A>>>::Saved
Recovers the desired simulation output from the analysis’s output.
Source§impl<A: Analysis> Save<Spectre, MonteCarlo<A>> for NestedTerminal
impl<A: Analysis> Save<Spectre, MonteCarlo<A>> for NestedTerminal
Source§type SaveKey = <NestedTerminal as Save<Spectre, A>>::SaveKey
type SaveKey = <NestedTerminal as Save<Spectre, A>>::SaveKey
The key type used to address the saved output within the analysis. Read more
Source§type Saved = Vec<<NestedTerminal as Save<Spectre, A>>::Saved>
type Saved = Vec<<NestedTerminal as Save<Spectre, A>>::Saved>
The saved data associated with things object.
Source§fn save(
&self,
ctx: &SimulationContext<Spectre>,
opts: &mut <Spectre as Simulator>::Options,
) -> <Self as Save<Spectre, MonteCarlo<A>>>::SaveKey
fn save( &self, ctx: &SimulationContext<Spectre>, opts: &mut <Spectre as Simulator>::Options, ) -> <Self as Save<Spectre, MonteCarlo<A>>>::SaveKey
Marks the given output for saving, returning a key that can be used to recover
the output once the simulation is complete.
Source§fn from_saved(
output: &<MonteCarlo<A> as Analysis>::Output,
key: &<Self as Save<Spectre, MonteCarlo<A>>>::SaveKey,
) -> <Self as Save<Spectre, MonteCarlo<A>>>::Saved
fn from_saved( output: &<MonteCarlo<A> as Analysis>::Output, key: &<Self as Save<Spectre, MonteCarlo<A>>>::SaveKey, ) -> <Self as Save<Spectre, MonteCarlo<A>>>::Saved
Recovers the desired simulation output from the analysis’s output.
Source§impl<A: Analysis> Save<Spectre, MonteCarlo<A>> for RawNestedNode
impl<A: Analysis> Save<Spectre, MonteCarlo<A>> for RawNestedNode
Source§type SaveKey = <RawNestedNode as Save<Spectre, A>>::SaveKey
type SaveKey = <RawNestedNode as Save<Spectre, A>>::SaveKey
The key type used to address the saved output within the analysis. Read more
Source§type Saved = Vec<<RawNestedNode as Save<Spectre, A>>::Saved>
type Saved = Vec<<RawNestedNode as Save<Spectre, A>>::Saved>
The saved data associated with things object.
Source§fn save(
&self,
ctx: &SimulationContext<Spectre>,
opts: &mut <Spectre as Simulator>::Options,
) -> <Self as Save<Spectre, MonteCarlo<A>>>::SaveKey
fn save( &self, ctx: &SimulationContext<Spectre>, opts: &mut <Spectre as Simulator>::Options, ) -> <Self as Save<Spectre, MonteCarlo<A>>>::SaveKey
Marks the given output for saving, returning a key that can be used to recover
the output once the simulation is complete.
Source§fn from_saved(
output: &<MonteCarlo<A> as Analysis>::Output,
key: &<Self as Save<Spectre, MonteCarlo<A>>>::SaveKey,
) -> <Self as Save<Spectre, MonteCarlo<A>>>::Saved
fn from_saved( output: &<MonteCarlo<A> as Analysis>::Output, key: &<Self as Save<Spectre, MonteCarlo<A>>>::SaveKey, ) -> <Self as Save<Spectre, MonteCarlo<A>>>::Saved
Recovers the desired simulation output from the analysis’s output.
Source§impl Save<Spectre, Tran> for NestedNode
impl Save<Spectre, Tran> for NestedNode
Source§type SaveKey = VoltageSaveKey
type SaveKey = VoltageSaveKey
The key type used to address the saved output within the analysis. Read more
Source§type Saved = OutputWaveform
type Saved = OutputWaveform
The saved data associated with things object.
Source§impl Save<Spectre, Tran> for NestedTerminal
impl Save<Spectre, Tran> for NestedTerminal
Source§type SaveKey = (VoltageSaveKey, CurrentSaveKey)
type SaveKey = (VoltageSaveKey, CurrentSaveKey)
The key type used to address the saved output within the analysis. Read more
Source§type Saved = NestedTerminalOutput
type Saved = NestedTerminalOutput
The saved data associated with things object.
Source§impl Save<Spectre, Tran> for RawNestedNode
impl Save<Spectre, Tran> for RawNestedNode
Source§type SaveKey = VoltageSaveKey
type SaveKey = VoltageSaveKey
The key type used to address the saved output within the analysis. Read more
Source§type Saved = OutputWaveform
type Saved = OutputWaveform
The saved data associated with things object.
Source§impl Save<Spectre, Tran> for SaveOutput
impl Save<Spectre, Tran> for SaveOutput
Source§type SaveKey = ()
type SaveKey = ()
The key type used to address the saved output within the analysis. Read more
Source§impl Save<Spectre, Tran> for SaveTime
impl Save<Spectre, Tran> for SaveTime
Source§type SaveKey = ()
type SaveKey = ()
The key type used to address the saved output within the analysis. Read more
Source§impl SimOption<Spectre> for InitialCondition<&ConvertedNodePath, Voltage>
impl SimOption<Spectre> for InitialCondition<&ConvertedNodePath, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<&NodePath, Voltage>
impl SimOption<Spectre> for InitialCondition<&NodePath, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<&SliceOnePath, Voltage>
impl SimOption<Spectre> for InitialCondition<&SliceOnePath, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<&String, Voltage>
impl SimOption<Spectre> for InitialCondition<&String, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<&str, Voltage>
impl SimOption<Spectre> for InitialCondition<&str, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<ArcStr, Voltage>
impl SimOption<Spectre> for InitialCondition<ArcStr, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<ConvertedNodePath, Voltage>
impl SimOption<Spectre> for InitialCondition<ConvertedNodePath, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<NodePath, Voltage>
impl SimOption<Spectre> for InitialCondition<NodePath, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<SimSignal, Voltage>
impl SimOption<Spectre> for InitialCondition<SimSignal, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<SliceOnePath, Voltage>
impl SimOption<Spectre> for InitialCondition<SliceOnePath, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for InitialCondition<String, Voltage>
impl SimOption<Spectre> for InitialCondition<String, Voltage>
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl SimOption<Spectre> for Temperature
impl SimOption<Spectre> for Temperature
Source§fn set_option(
self,
opts: &mut <Spectre as Simulator>::Options,
_ctx: &SimulationContext<Spectre>,
)
fn set_option( self, opts: &mut <Spectre as Simulator>::Options, _ctx: &SimulationContext<Spectre>, )
Modifies the simulator’s options to enable this option.
Source§impl Simulator for Spectre
impl Simulator for Spectre
Source§fn simulate_inputs(
&self,
config: &SimulationContext<Self>,
options: Self::Options,
input: Vec<Self::Input>,
) -> Result<Vec<Self::Output>>
fn simulate_inputs( &self, config: &SimulationContext<Self>, options: Self::Options, input: Vec<Self::Input>, ) -> Result<Vec<Self::Output>>
Simulates the given set of analyses.
Source§impl SupportedBy<Spectre> for Ac
impl SupportedBy<Spectre> for Ac
Source§impl SupportedBy<Spectre> for DcOp
impl SupportedBy<Spectre> for DcOp
Source§impl<A: SupportedBy<Spectre>> SupportedBy<Spectre> for MonteCarlo<A>
impl<A: SupportedBy<Spectre>> SupportedBy<Spectre> for MonteCarlo<A>
Auto Trait Implementations§
impl Freeze for Spectre
impl RefUnwindSafe for Spectre
impl Send for Spectre
impl Sync for Spectre
impl Unpin for Spectre
impl UnwindSafe for Spectre
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>
Converts
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn 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>
Converts
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which 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)
Converts
&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)
Converts
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<S> FromSchema<S> for S
impl<S> FromSchema<S> for S
Source§type Error = Infallible
type Error = Infallible
The conversion error type.
Source§fn convert_primitive(
primitive: <S as Schema>::Primitive,
) -> Result<<S as Schema>::Primitive, <S as FromSchema<S>>::Error>
fn convert_primitive( primitive: <S as Schema>::Primitive, ) -> Result<<S as Schema>::Primitive, <S as FromSchema<S>>::Error>
Converts a primitive of the other schema to a primitive of this schema.
Source§fn convert_instance(
_instance: &mut Instance,
_primitive: &<S as Schema>::Primitive,
) -> Result<(), <S as FromSchema<S>>::Error>
fn convert_instance( _instance: &mut Instance, _primitive: &<S as Schema>::Primitive, ) -> Result<(), <S as FromSchema<S>>::Error>
Converts an instance from the other schema to a new instance
based on its associated primitive.
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request