sycan.components.active.jfet¶
Shichman-Hodges JFET, polarity-aware (N-JFET / P-JFET).
The JFET is a depletion-mode device: the channel is fully open at
V_GS = 0 and pinches off when the gate-source voltage is
sufficiently reverse-biased. With
pol = +1 for NJFET, -1 for PJFET V_GS_eff = pol * (V(gate) - V(source)) V_DS_eff = pol * (V(drain) - V(source)) V_ov = V_GS_eff + VTO
the conduction condition in both cases is V_ov > 0 and saturation
is V_DS_eff >= V_ov. VTO is stored as a positive magnitude
for both polarities (analogous to V_TH for MOSFETs).
DC drain current (saturation + channel-length modulation):
I_D_mag = BETA * (V_GS_eff + VTO)**2 * (1 + LAMBDA * V_DS_eff)
I_D_SPICE = pol * I_D_mag # current INTO drain (SPICE sign)
For NJFET this is positive (I_D flows into drain); for PJFET it is negative (the device pulls current out of the drain externally).
AC small-signal model — obtained by differentiating I_D_SPICE
at (V_GS_op, V_DS_op):
g_m = dI_D/dV_GS|_OP
g_ds = dI_D/dV_DS|_OP
Gate capacitances C_gs / C_gd are stamped as s*C
admittances in AC mode. The gate-channel junction is assumed to be
ideal (zero gate current) — simple Shichman-Hodges model.
Concrete classes NJFET and PJFET fix
polarity via typing.ClassVar; users pick one in their
netlist / Python API.
Classes
|
Shichman-Hodges N-channel JFET (depletion-mode). |
|
Shichman-Hodges P-channel JFET (depletion-mode). |
- class sycan.components.active.jfet.NJFET(name, drain, gate, source, BETA, VTO, LAMBDA=<factory>, C_gs=<factory>, C_gd=<factory>, V_GS_op=None, V_DS_op=None, KF=<factory>, AF=<factory>, EF=<factory>, *, include_noise=None)[source]¶
Bases:
_JFETShichman-Hodges N-channel JFET (depletion-mode).
- Parameters:
name (str)
drain (str)
gate (str)
source (str)
BETA (Expr)
VTO (Expr)
LAMBDA (Expr)
C_gs (Expr)
C_gd (Expr)
V_GS_op (Expr | None)
V_DS_op (Expr | None)
KF (Expr)
AF (Expr)
EF (Expr)
include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])
- polarity: ClassVar[str] = 'N'¶
- class sycan.components.active.jfet.PJFET(name, drain, gate, source, BETA, VTO, LAMBDA=<factory>, C_gs=<factory>, C_gd=<factory>, V_GS_op=None, V_DS_op=None, KF=<factory>, AF=<factory>, EF=<factory>, *, include_noise=None)[source]¶
Bases:
_JFETShichman-Hodges P-channel JFET (depletion-mode).
- Parameters:
name (str)
drain (str)
gate (str)
source (str)
BETA (Expr)
VTO (Expr)
LAMBDA (Expr)
C_gs (Expr)
C_gd (Expr)
V_GS_op (Expr | None)
V_DS_op (Expr | None)
KF (Expr)
AF (Expr)
EF (Expr)
include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])
- polarity: ClassVar[str] = 'P'¶