SYCAN terminology reference¶
A glossary of every short symbol, abbreviation and parameter name that appears across SYCAN’s component models, analyses and noise machinery. Symbols are grouped by topic; each entry lists the source code spelling followed by the fully-expanded mathematical form.
Conventions:
V_Tis the thermal voltage (kT/q), not the threshold voltage. The threshold isV_TH. Mixing these up is the single most common hazard in this codebase.mu_nis the in-code spelling of the channel-carrier mobility μ; for PMOS it physically corresponds to μₚ but the same field name is used.polis+1for NMOS / NPN and−1for PMOS / PNP. All polarity- aware models compute*_eff = pol · (terminal voltage)so the code can be written once for both polarities.All currents use the SPICE sign convention: positive flowing into the named terminal.
1. Physical constants¶
Symbol |
Code |
Meaning |
Typical value |
|---|---|---|---|
|
|
Boltzmann constant |
1.380649 × 10⁻²³ J/K |
|
|
Absolute temperature |
300 K (≈27 °C) |
|
|
Elementary charge |
1.602176634 × 10⁻¹⁹ C |
|
|
Thermal voltage |
≈25.85 mV at 300 K |
The default _DEFAULT_VT = sp.Rational(2585, 100000) baked into the BJT,
diode and sub-threshold MOSFET models is exactly this 25.85 mV value
(sp here is sycan.cas). k_B, T, q are exposed as CAS
Symbols in sycan.mna so users can substitute numeric values when
evaluating noise PSDs.
2. MOSFET parameters¶
2.1 Geometry & process¶
Code |
Expanded name |
Definition / units |
|---|---|---|
|
Channel width |
Drawn gate width [m]. |
|
Channel length |
Drawn gate length [m]. |
|
Oxide capacitance per unit area |
|
|
Channel-carrier mobility |
μₙ for NMOS, μₚ for PMOS [m²/(V·s)]. Same field name used for both polarities. |
|
Transconductance parameter (derived) |
|
Cox is “C-oxide”, not a capacitor named “Cox”. It is the gate-oxide
capacitance per unit gate area, not a total capacitance — multiply
by W · L to get the absolute oxide capacitance of one device.
2.2 Threshold & body effect¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Threshold voltage (positive magnitude) |
Gate-source bias at the strong-inversion boundary. Stored as a positive number for both NMOS and PMOS. |
|
Zero-bias threshold voltage |
|
|
Body-effect coefficient |
√V. |
|
Surface potential at strong inversion ( |
Default ≈ 0.7 V. φ_F is the Fermi potential of the bulk; the surface needs to bend by |
|
Source-to-bulk voltage |
|
In the 3T wrappers (NMOS_3T, PMOS_3T) the bulk is tied to the source,
which forces V_SB = 0 — the body-effect term vanishes and V_TH is
just V_TH0.
2.3 Channel-length modulation & operating-region model¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Channel-length modulation parameter |
|
|
Overdrive voltage |
|
|
Sub-threshold slope factor |
|
|
Strong/weak split point (segmented model) |
|
|
Boundary drain current |
|
2.4 Effective terminal voltages¶
Code |
Definition |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
2.5 Drain-current expressions¶
Strong-inversion saturation (Shichman-Hodges Level 1, with channel- length modulation):
I_D_mag = (1/2) · μ · Cox · (W/L) · (V_GS_eff − V_TH)² · (1 + λ · V_DS_eff)
I_D = pol · I_D_mag
Strong-inversion triode:
I_D_mag = β · (V_ov · V_DS_eff − (1/2) · V_DS_eff²) · (1 + λ · V_DS_eff)
Weak inversion (sub-threshold, MOSFET_subthreshold):
I_D_mag = μ · Cox · (W/L) · V_T²
· exp((V_GS_eff − m · V_TH) / (m · V_T))
· (1 − exp(−V_DS_eff / V_T))
Weak inversion (segmented 3T/4T form, joined to L1 at V_off):
I_D_mag = I_off · exp((V_GS_eff − V_off) / (m · V_T))
· (1 − exp(−V_DS_eff / V_T))
· (1 + λ · V_DS_eff)
2.6 Operating regions¶
Reported by operating_region():
Region |
L1 condition |
3T/4T condition |
|---|---|---|
|
|
(replaced by |
|
— |
|
|
|
|
|
|
|
2.7 Small-signal MOSFET parameters¶
Code |
Expanded name |
Definition (evaluated at |
|---|---|---|
|
Gate transconductance |
|
|
Drain output conductance |
|
|
Bulk transconductance |
|
|
Gate-source capacitance |
Intrinsic; stamped as admittance |
|
Gate-drain capacitance |
Intrinsic; stamped as admittance |
V_GS_op, V_DS_op, V_BS_op are the symbolic operating-point
voltages — substitute concrete numbers (or DC-solve outputs) before
evaluating an AC response.
2.8 Flicker (1/f) noise parameters¶
Supported by MOSFET_L1, MOSFET_3T, MOSFET_4T, and
MOSFET_subthreshold when include_noise contains "flicker".
Code |
Expanded name |
Definition |
|---|---|---|
|
Flicker noise coefficient |
Magnitude of the 1/f drain-current PSD. Default 0. |
|
Drain-current exponent |
Dimensionless. Default 1. |
|
Frequency exponent |
Dimensionless. Default 1 (pure 1/f); 2 → 1/f² roll-off. |
PSD form: S_I_D(f) = KF · I_op^AF / freq^EF. The freq symbol is the
shared analysis-frequency symbol exposed from sycan.mna.
3. BJT (Gummel-Poon) parameters¶
3.1 Junction voltages and ideal transport currents¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Base-emitter voltage |
|
|
Base-collector voltage |
|
|
Forward ideal transport current |
|
|
Reverse ideal transport current |
|
|
Collector-emitter transport current |
|
pol = +1 for NPN, −1 for PNP.
3.2 Model parameters¶
Code |
Expanded name |
Default (Ebers-Moll fall-back) |
|---|---|---|
|
Saturation current |
(must be supplied) |
|
Forward current gain (β_F) |
(must be supplied) |
|
Reverse current gain (β_R) |
(must be supplied) |
|
Forward emission coefficient (ideality factor of B–E ideal diode) |
1 |
|
Reverse emission coefficient (ideality factor of B–C ideal diode) |
1 |
|
Forward Early voltage |
∞ (no Early effect) |
|
Reverse Early voltage |
∞ |
|
Forward knee current (high-level injection roll-off) |
∞ (no roll-off) |
|
Reverse knee current |
∞ |
|
B–E leakage saturation current (non-ideal recombination diode) |
0 |
|
B–E leakage emission coefficient |
1.5 |
|
B–C leakage saturation current |
0 |
|
B–C leakage emission coefficient |
2 |
3.3 Base-charge factor¶
Code |
Definition |
|---|---|
|
|
|
|
|
|
Terminal currents (positive into each terminal):
I_C = pol · (I_CE − I_BC_total)
I_B = pol · (I_BE_total + I_BC_total)
I_E = −(I_C + I_B)
where I_BE_total = I_BF/BF + ISE·(exp(V_BE/(NE·V_T)) − 1) and
I_BC_total = I_BR/BR + ISC·(exp(V_BC/(NC·V_T)) − 1).
3.4 Small-signal hybrid-π AC parameters¶
Linearised around (I_C_op, I_B_op). I_C_op / I_B_op default to
per-instance symbols I_C_op_<name> / I_B_op_<name> — pass numeric
values (or DC-solve outputs) before evaluating an AC response.
Code |
Expanded name |
Definition |
|---|---|---|
|
Transconductance |
|
|
Base–emitter resistance |
|
|
Output resistance |
|
|
Base–emitter capacitance |
Diffusion + B–E depletion. Stamped as admittance |
|
Base–collector capacitance |
B–C depletion (Miller path). Stamped as admittance |
3.5 Noise parameters¶
Code |
Source |
PSD |
|---|---|---|
shot (C–E) |
|
Collector-current shot noise. |
shot (B–E) |
|
Base-current shot noise. |
|
flicker (B–E) |
|
4. Diode (Shockley)¶
4.1 DC and stamping¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Reverse-saturation current |
A. |
|
Ideality / emission coefficient |
Dimensionless; default 1. |
|
Diode voltage |
|
|
Diode current (anode → cathode) |
|
|
Operating-point current (for shot noise PSD) |
A. Pass a value or use the auto-symbol. |
4.2 Small-signal AC¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Operating-point diode bias |
Defaults to per-instance symbol |
|
Small-signal conductance |
|
|
Junction capacitance |
Default 0. Stamped as admittance |
5. JFET (Shichman-Hodges depletion-mode)¶
NJFET / PJFET — depletion-mode field-effect transistors. The model is
the same quadratic (V_GS_eff + VTO)² form as the L1 MOSFET in
saturation, but with the threshold expressed as VTO (positive
magnitude of the pinch-off voltage) and the device conducting at
V_GS_eff = 0.
Code |
Expanded name |
Definition / units |
|---|---|---|
|
Transconductance parameter |
A/V². Plays the role of |
|
Pinch-off / threshold magnitude |
Stored positive for both polarities (NJFET/PJFET). |
|
Channel-length modulation coefficient |
1/V. |
|
Gate-source capacitance |
Stamped as admittance |
|
Gate-drain capacitance |
Stamped as admittance |
|
Operating-point bias |
Default to per-instance symbols if not supplied. |
|
Flicker noise parameters |
Same form as the MOSFET flicker noise (§ 2.8). |
Saturation drain current (for V_DS_eff ≥ V_ov, V_GS_eff ≥ −VTO):
I_D_mag = BETA · (V_GS_eff + VTO)² · (1 + LAMBDA · V_DS_eff)
Small-signal at the operating point: g_m = ∂I_D/∂V_GS,
g_ds = ∂I_D/∂V_DS. Thermal channel noise reuses the L1 MOSFET form
(4 · k_B · T · γ · g_m).
6. Vacuum-tube triode (Langmuir 3/2 power)¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Perveance |
A / V^(3/2). Geometry-dependent constant. |
|
Amplification factor |
Dimensionless; obeys |
|
Grid-cathode voltage |
|
|
Plate-cathode voltage |
|
|
Plate current |
|
|
Plate conductance |
|
|
Triode transconductance |
|
|
Intrinsic interelectrode capacitances |
Grid-cathode, grid-plate (Miller), plate-cathode. |
7. Voltage-controlled passive devices¶
7.1 Varactor (junction-capacitance model)¶
Voltage-controlled capacitor following the standard SPICE junction- capacitance form:
C(V) = C0 / (1 − V/V_J)^M
Code |
Expanded name |
Definition |
|---|---|---|
|
Zero-bias junction capacitance |
F. |
|
Junction (built-in) potential |
V. Default 0.7. |
|
Grading coefficient |
Dimensionless. Default 0.5 (abrupt junction); 0.33 for linearly graded. |
|
Operating-point bias across the varactor |
Defaults to per-instance symbol |
The varactor is stamped in AC as the admittance s · C(V_op). It is
inert at DC.
7.2 VSwitch (voltage-controlled smooth switch)¶
Smooth (tanh-shaped) resistance whose value depends on a control-port
voltage V_c:
R(V_c) = R_off + (R_on − R_off) · ½ · (1 + tanh((V_c − V_t) / V_h))
Code |
Expanded name |
Definition |
|---|---|---|
|
On-state resistance |
Ω. Default 1. |
|
Off-state resistance |
Ω. Default 1 GΩ. |
|
Threshold control voltage |
V. The midpoint of the tanh transition. |
|
Hysteresis-like transition width |
V. Smaller |
|
Operating-point control voltage |
Used to linearise the switch in AC. |
The switch contributes a single conductance 1/R(V_c) between the two
power-port nodes; the control port is a high-impedance pin and only
samples V_c.
8. Mutual inductance (MutualCoupling)¶
Couples two or more inductors via a shared coupling coefficient.
Code |
Expanded name |
Definition |
|---|---|---|
|
Coupling coefficient |
|
|
Mutual inductance (derived per pair) |
|
In SPICE the same primitive is the K element. The MutualCoupling
component takes a list of inductor names; SYCAN stamps the off-diagonal
inductance entries in MNA so the mutual flux shows up as the
expected voltage M_ij · ∂I_j/∂t (i.e. s · M_ij · I_j in AC).
9. Transmission line¶
Code |
Expanded name |
Definition |
|---|---|---|
|
Characteristic impedance |
Ω. Real for the lossless model. |
|
One-way time delay |
s. |
|
Total attenuation (lossy) |
Nepers. Default 0 (lossless). The propagation |
|
Electrical length |
|
|
Propagation constant |
|
ABCD form (with θ = loss + s·td covering both lossless and lossy
cases):
[V1] [ cosh(θ) Z0 · sinh(θ) ] [ V2 ]
[I1] = [ sinh(θ)/Z0 cosh(θ) ] [-I2 ]
Y-matrix entries use coth(θ)/Z0 (self) and −csch(θ)/Z0 (mutual).
10. Controlled sources (basic two-port primitives)¶
Code |
Expanded name |
SPICE form |
Stamping behaviour |
|---|---|---|---|
|
Voltage-Controlled Voltage Source |
|
|
|
Voltage-Controlled Current Source |
|
Drives |
|
Current-Controlled Voltage Source |
|
|
|
Current-Controlled Current Source |
|
Drives |
11. Behavioral sources (B-element)¶
Arbitrary-expression sources. The expression expr may reference any
node-voltage symbol (V(node)); the components linearise it
automatically for AC and noise analyses.
Component |
Constraint enforced |
Notes |
|---|---|---|
|
Injects |
Acts like a non-linear current source. |
|
Forces |
Acts like a non-linear voltage source; carries an auxiliary branch-current unknown. |
Both are noise-less by construction (SUPPORTED_NOISE = frozenset()).
12. Signal-flow blocks (sycan.components.blocks)¶
Higher-level abstract blocks, useful for behavioural top-down design
(PLLs, ΣΔ modulators, etc.). Each is a single ideal voltage-mode I/O
block with differential ports (in_p, in_m) → (out_p, out_m) unless
stated otherwise.
Block |
Constraint |
Parameters |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ideal single-VCVS op-amp: |
|
|
First-order dominant-pole op-amp: |
|
OPAMP and OPAMP1 are implemented as SubCircuits — see § 13.
12.1 OPAMP1 derived quantities¶
Code |
Expanded name |
Definition |
|---|---|---|
|
DC open-loop gain |
|
|
Gain-bandwidth product |
Hz. Unity-gain frequency. |
|
Dominant pole |
|
|
Output impedance |
Optional series output Z. |
13. SubCircuit (sycan.components.blocks.subcircuit)¶
Hierarchical instantiation of a body Circuit into a parent. The
port_map dict maps each pin name in the inner body to its external
parent-circuit node. At stamping time the SubCircuit flattens its
body into the parent MNA system with name-mangled internal nodes, so a
sub-circuit instance contributes the same equations its body would have
contributed if pasted in line.
Code |
Expanded name |
Notes |
|---|---|---|
|
Inner |
Defines the reusable block. |
|
|
Names every external connection point of the block. |
14. Voltage source waveforms (VoltageSource)¶
In addition to a DC value and an AC-phasor ac_value, a voltage
source may declare a time-domain waveform, whose Laplace transform is
stamped on the right-hand side of the MNA system in ac mode.
Waveform |
Parameters |
Laplace transform |
|---|---|---|
|
|
|
|
|
Single rectangular pulse: |
|
|
Exponential pulse rising toward |
DC values are picked up automatically from the waveform parameters
(e.g. value = v1 for pulse/exp).
15. MNA & analysis terms¶
Code / Term |
Expanded |
|---|---|
|
Modified Nodal Analysis. Linear system |
|
Kirchhoff’s Current Law. The MNA row equations are KCL at each non-ground node. |
|
Kirchhoff’s Voltage Law. |
|
MNA matrix (admittances + auxiliary stamps). |
|
Unknown vector — node voltages followed by auxiliary branch currents (one per V/E/H source, etc.). |
|
Right-hand side — independent excitations. |
|
Laplace variable. Capacitor stamps |
|
Auxiliary branch current — extra unknown row used by elements that can’t be stamped as plain admittances (V-source, VCVS/CCVS/CCCS, DC inductor, DC TLINE). |
|
Class flag: component contributes transcendental KCL terms via |
|
SPICE GMIN shunt — a 1 GΩ conductance from every node to ground used during damped Newton to keep the Jacobian conditioned at flat operating points. |
|
Real-valued frequency symbol exposed by |
15.1 Analysis modes¶
Mode |
Component behaviour |
|---|---|
|
Capacitors → open, inductors → 0 V source (short via auxiliary current). Nonlinear models contribute residuals. |
|
Small-signal Laplace-domain stamps. Capacitors → |
15.2 Solvers (sycan.mna)¶
Solver |
Purpose |
|---|---|
|
DC operating point. Linear systems → symbolic LU; nonlinear → CAS solver on full residual system. |
|
Sweep one symbolic |
|
Small-signal Laplace-domain solve. Returns |
|
Transfer function |
|
Pole-zero analysis: factors |
|
Port impedance (input/output) at a labelled port, with |
|
Output-referred noise PSD. Returns |
|
|
PZResult is a small record carrying H, numerator, denominator,
poles, and zeros.
16. ERC / DRC (sycan.check)¶
Read-only structural checks on a Circuit. check_circuit(circuit)
returns an ERCReport.
Code |
Severity |
Meaning |
|---|---|---|
|
error |
Two components share a designator after sub-circuit flattening. |
|
warning |
Two pins of the same component land on the same node (self-loop / pin tie). |
|
warning |
A node is referenced by exactly one pin — almost always a typo. |
|
error |
No ground node ( |
|
error |
A pin connects to ground but ground itself isn’t tied to anything else. |
|
warning |
Two or more disjoint connected components — the netlist isn’t one circuit. |
ERCReport exposes:
Attribute |
Meaning |
|---|---|
|
List of |
|
Findings with |
|
Findings with |
|
|
17. Network parameters (sycan.network_params)¶
Two-port (and n-port where it applies) representations:
Code |
Name |
Defining relation |
|---|---|---|
|
Impedance parameters |
|
|
Admittance parameters |
|
|
Scattering parameters |
|
|
Chain (transmission) matrix |
|
|
Transfer / scattering-transfer |
|
a and b are the incident and reflected normalised power waves; Z0
is the per-port reference impedance (default 50 Ω).
18. Noise¶
Code |
Expanded |
|---|---|
|
Power Spectral Density [V²/Hz or A²/Hz]. |
|
Output-voltage noise PSD. |
|
Trans-impedance from the k-th unit-current noise source to the output node. |
|
One-sided current-noise PSD of the k-th source. |
|
Long-channel channel-thermal-noise excess factor; |
|
Johnson-Nyquist thermal noise. Resistor PSD: |
|
Schottky shot noise, |
|
1/f noise: |
The noise superposition formula used by solve_noise:
S_V_out(s) = Σ_k H_k(s) · H_k(−s) · S_k
19. Filter prototypes (sycan.polynomials)¶
All return (numerator, denominator) in the Laplace variable s,
normalised to |H(0)| = 1 and 1 rad/s cutoff.
Function |
Family |
|---|---|
|
Butterworth — maximally flat magnitude in the passband. |
|
Chebyshev Type I — equiripple in the passband, monotonic in the stopband. |
|
Bessel — maximally flat group delay (linear phase). |
20. Headroom analysis (sycan.headroom)¶
Term |
Meaning |
|---|---|
Headroom |
Range of an input variable (a single source value or a coupled group) over which every MOSFET stays in saturation. |
|
Returned record with |
Binding device |
The transistor that exits saturation at a given interval edge — the one setting the headroom on that side. |
|
Differential input voltage in a differential-pair sweep (typical use case in the headroom docstring). |
21. Acronym quick-reference¶
Acronym |
Expanded |
|---|---|
|
Metal-Oxide-Semiconductor Field-Effect Transistor. |
|
n-channel MOSFET. |
|
p-channel MOSFET. |
|
Junction Field-Effect Transistor. |
|
n-channel / p-channel JFET. |
|
Bipolar Junction Transistor. |
|
BJT polarities; npn = n-emitter/p-base/n-collector, pnp the opposite. |
|
Shichman-Hodges Level 1 — the original SPICE long-channel quadratic MOSFET model. |
|
Three-terminal (bulk tied to source) / four-terminal (bulk exposed) MOSFET wrapper. |
|
Modified Nodal Analysis. |
|
Electrical Rule Check ( |
|
Design Rule Check — used interchangeably with ERC in this codebase. |
|
Simulation Program with Integrated Circuit Emphasis. Reference for sign conventions and parameter names. |
|
Direct-current operating point. |
|
Small-signal alternating-current (Laplace) analysis. |
|
Transfer Function ( |
|
Pole-Zero analysis ( |
|
Gain-bandwidth product (OPAMP1). |
|
Radio-frequency (the |
|
Transmission line. |
|
Naming convention for the controlling source of a CCCS/CCVS. |
|
Voltage- / Current-Controlled Voltage / Current Source primitives. |
|
Chain / transmission matrix. |
|
Power Spectral Density. |
|
SPICE shunt conductance from every node to ground used to keep the Jacobian conditioned. |
|
Flicker (1/f) noise coefficient / current exponent / frequency exponent. |
|
Behavioral source ( |