sycan.components.active.bjt¶
SPICE Gummel-Poon BJT — DC and hybrid-pi AC model (SPICE Q).
The DC equations follow Gray & Meyer §1.4 and the SPICE G-P manual. All standard DC effects are included:
ideal forward/reverse transport currents (
IS,NF,NR),ideal forward/reverse current gains (
BF,BR),non-ideal base-emitter / base-collector leakage diodes (
ISE,NEandISC,NC),base-width modulation via forward/reverse Early voltages (
VAF,VAR),high-level-injection roll-off via forward/reverse knee currents (
IKF,IKR) through the base-charge factor.
The AC model is a simplified hybrid-pi with:
g_m = I_C_op / (NF·V_T)— transconductance,r_pi = BF / g_m— base-emitter resistance,r_o = VAF / I_C_op— output resistance (omitted ifVAF = oo),C_pi,C_mu— junction/diffusion capacitances.
Default parameters model an ideal Ebers-Moll transistor:
VAF = VAR = IKF = IKR = oo (no Early, no knee), ISE = ISC = 0
(no leakage), NF = NR = 1, NE = 1.5, NC = 2,
V_T = 25.85 mV. Only IS, BF, BR must be supplied.
Classes
|
Gummel-Poon BJT with hybrid-pi AC model. |
- class sycan.components.active.bjt.BJT(name, collector, base, emitter, polarity, IS, BF, BR, NF=<factory>, NR=<factory>, VAF=<factory>, VAR=<factory>, IKF=<factory>, IKR=<factory>, ISE=<factory>, NE=<factory>, ISC=<factory>, NC=<factory>, V_T=<factory>, I_C_op=None, I_B_op=None, C_pi=<factory>, C_mu=<factory>, KF=<factory>, AF=<factory>, *, include_noise=None)[source]¶
Bases:
ComponentGummel-Poon BJT with hybrid-pi AC model.
With
include_noise="shot"(or"all") two shot-noise current sources are attached: one between collector and emitter with PSD2·q·I_C_op(collector current shot), one between base and emitter with PSD2·q·I_B_op(base current shot). Operating-point currents default to per-instance symbolsI_C_op_<name>andI_B_op_<name>; pass values to override.C_pi(base-emitter) andC_mu(base-collector) capacitances default to 0; set them for frequency-dependent AC behaviour.- Parameters:
name (str)
collector (str)
base (str)
emitter (str)
polarity (str)
IS (Expr)
BF (Expr)
BR (Expr)
NF (Expr)
NR (Expr)
VAF (Expr)
VAR (Expr)
IKF (Expr)
IKR (Expr)
ISE (Expr)
NE (Expr)
ISC (Expr)
NC (Expr)
V_T (Expr)
I_C_op (Expr | None)
I_B_op (Expr | None)
C_pi (Expr)
C_mu (Expr)
KF (Expr)
AF (Expr)
include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])
- name: str¶
- collector: str¶
- base: str¶
- emitter: str¶
- polarity: str¶
- IS: Expr¶
- BF: Expr¶
- BR: Expr¶
- NF: Expr¶
- NR: Expr¶
- VAF: Expr¶
- VAR: Expr¶
- IKF: Expr¶
- IKR: Expr¶
- ISE: Expr¶
- NE: Expr¶
- ISC: Expr¶
- NC: Expr¶
- V_T: Expr¶
- I_C_op: Expr | None = None¶
- I_B_op: Expr | None = None¶
- C_pi: Expr¶
- C_mu: Expr¶
- KF: Expr¶
- AF: Expr¶
- include_noise: None | str | list[str] | tuple[str, ...] | frozenset[str] = None¶
- ports: ClassVar[tuple[str, ...]] = ('collector', 'base', 'emitter')¶
- has_nonlinear: ClassVar[bool] = True¶
- SUPPORTED_NOISE: ClassVar[frozenset[str]] = frozenset({'flicker', '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