sycan.components.active.diode¶
Shockley diode — DC and small-signal AC model (SPICE D).
DC:
I_D = IS * (exp(V_D / (N V_T)) - 1)
with V_D = V(anode) - V(cathode).
AC small-signal linearisation produces a conductance g_d = dI_D/dV_D
evaluated at V_D_op, plus an optional junction capacitance C_j
stamped as admittance s·C_j.
Classes
|
Shockley diode with small-signal AC model. |
- class sycan.components.active.diode.Diode(name, anode, cathode, IS, N=<factory>, V_T=<factory>, I_op=None, C_j=<factory>, V_D_op=None, *, include_noise=None)[source]¶
Bases:
ComponentShockley diode with small-signal AC model.
Pass
include_noise="shot"(or"all") to attach a shot-noise current source between anode and cathode with one-sided PSD2·q·I_op.I_opdefaults to a per-instance symbolic operating-point current namedI_op_<diode-name>; supply a sympy expression to pin it down.C_j(junction capacitance, default 0) is stamped ass·C_jin AC analysis.V_D_opis the DC operating-point voltage used to compute the small-signal conductanceg_d; it defaults to a per-instance symbolV_D_op_<name>.- Parameters:
name (str)
anode (str)
cathode (str)
IS (Expr)
N (Expr)
V_T (Expr)
I_op (Expr | None)
C_j (Expr)
V_D_op (Expr | None)
include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])
- name: str¶
- anode: str¶
- cathode: str¶
- IS: Expr¶
- N: Expr¶
- V_T: Expr¶
- I_op: Expr | None = None¶
- C_j: Expr¶
- V_D_op: Expr | None = None¶
- include_noise: None | str | list[str] | tuple[str, ...] | frozenset[str] = None¶
- ports: ClassVar[tuple[str, ...]] = ('anode', 'cathode')¶
- has_nonlinear: ClassVar[bool] = True¶
- SUPPORTED_NOISE: ClassVar[frozenset[str]] = frozenset({'shot'})¶
- noise_sources()[source]¶
Return the small-signal noise sources this component emits.
Default is no-op; concrete components override to emit thermal / shot / flicker contributions weighted by the
include_noiseselection.- Return type:
list[NoiseSource]
- stamp(ctx)[source]¶
- Parameters:
ctx (StampContext)
- Return type:
None
- stamp_nonlinear(ctx)[source]¶
Add transcendental terms to
ctx.residualsat solve time.Only invoked for DC analysis when the circuit contains at least one component with
has_nonlinear = True. Default is no-op.- Parameters:
ctx (StampContext)
- Return type:
None