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_T is the thermal voltage (kT/q), not the threshold voltage. The threshold is V_TH. Mixing these up is the single most common hazard in this codebase.

  • mu_n is the in-code spelling of the channel-carrier mobility μ; for PMOS it physically corresponds to μₚ but the same field name is used.

  • pol is +1 for NMOS / NPN and −1 for 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

k_B

k_B

Boltzmann constant

1.380649 × 10⁻²³ J/K

T

T

Absolute temperature

300 K (≈27 °C)

q

q

Elementary charge

1.602176634 × 10⁻¹⁹ C

V_T

V_T

Thermal voltage k_B · T / q

≈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

W

Channel width

Drawn gate width [m].

L

Channel length

Drawn gate length [m].

Cox

Oxide capacitance per unit area

C_ox = ε_ox / t_ox [F/m²]. Gate-oxide specific capacitance.

mu_n

Channel-carrier mobility

μₙ for NMOS, μₚ for PMOS [m²/(V·s)]. Same field name used for both polarities.

β

Transconductance parameter (derived)

β = μ · Cox · (W / L) [A/V²]. Computed internally as _beta.

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

V_TH

Threshold voltage (positive magnitude)

Gate-source bias at the strong-inversion boundary. Stored as a positive number for both NMOS and PMOS.

V_TH0

Zero-bias threshold voltage

V_TH evaluated at V_SB = 0. Used in 4T as the parameter; the body-effect term shifts it.

γ

Body-effect coefficient gamma

√V. V_TH(V_SB) = V_TH0 + γ · (√(2 φ_F + V_SB) √(2 φ_F)). Zero by default → bulk pin is cosmetic.

2 φ_F

Surface potential at strong inversion (phi)

Default ≈ 0.7 V. φ_F is the Fermi potential of the bulk; the surface needs to bend by 2 φ_F for strong inversion.

V_SB

Source-to-bulk voltage

V_SB = V(source) V(bulk), polarity-flipped internally so V_SB 0 in physical operation.

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 lam

1/V. Saturation current carries the factor (1 + λ · V_DS_eff); λ = 0 reproduces ideal long-channel.

V_ov

Overdrive voltage

V_ov = V_GS_eff V_TH. Often called V_GS V_TH in textbooks.

m

Sub-threshold slope factor

m = 1 + C_d / C_ox. Default 1.5. Controls how steeply weak-inversion current rolls off with V_GS.

V_off

Strong/weak split point (segmented model)

V_off = V_TH + 2 · m · V_T. Boundary between weak and strong inversion in the segmented MOSFET_3T/4T.

I_off

Boundary drain current

I_off = 2 · β · (m · V_T)². The drain current at V_GS_eff = V_off; ensures C¹-smooth join.

2.4 Effective terminal voltages

Code

Definition

V_GS

V(gate)   V(source) (un-polarised)

V_DS

V(drain)  V(source) (un-polarised)

V_BS

V(bulk)   V(source) (un-polarised)

V_GS_eff

pol · V_GSpol = +1 (NMOS) / −1 (PMOS)

V_DS_eff

pol · V_DS

V_SB_eff

−pol · V_BS (so V_SB 0 physically)

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

cutoff

V_GS_eff V_TH

(replaced by weak_inversion in 3T/4T)

weak_inversion

V_GS_eff < V_off

triode

V_GS_eff > V_TH, V_DS_eff < V_GS_eff−V_TH

V_GS_eff V_off, V_DS_eff < V_GS_eff−V_TH

saturation

V_GS_eff > V_TH, V_DS_eff V_GS_eff−V_TH

V_GS_eff V_off, V_DS_eff V_GS_eff−V_TH

2.7 Small-signal MOSFET parameters

Code

Expanded name

Definition (evaluated at (V_GS_op, V_DS_op, V_BS_op))

g_m

Gate transconductance

∂I_D/∂V_GS at the operating point.

g_ds

Drain output conductance

∂I_D/∂V_DS at the operating point. Inverse r_ds = 1/g_ds.

g_mb

Bulk transconductance

∂I_D/∂V_BS at the operating point. Captures back-gate effect.

C_gs

Gate-source capacitance

Intrinsic; stamped as admittance s · C_gs in AC.

C_gd

Gate-drain capacitance

Intrinsic; stamped as admittance s · C_gd in AC. Miller path.

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

KF

Flicker noise coefficient

Magnitude of the 1/f drain-current PSD. Default 0.

AF

Drain-current exponent

Dimensionless. Default 1.

EF

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

V_BE

Base-emitter voltage

V_BE = pol · (V(base) V(emitter))

V_BC

Base-collector voltage

V_BC = pol · (V(base) V(collector))

I_BF

Forward ideal transport current

I_BF = IS · (exp(V_BE / (NF · V_T)) 1)

I_BR

Reverse ideal transport current

I_BR = IS · (exp(V_BC / (NR · V_T)) 1)

I_CE

Collector-emitter transport current

I_CE = (I_BF I_BR) / q_B

pol = +1 for NPN, −1 for PNP.

3.2 Model parameters

Code

Expanded name

Default (Ebers-Moll fall-back)

IS

Saturation current

(must be supplied)

BF

Forward current gain (β_F)

(must be supplied)

BR

Reverse current gain (β_R)

(must be supplied)

NF

Forward emission coefficient (ideality factor of B–E ideal diode)

1

NR

Reverse emission coefficient (ideality factor of B–C ideal diode)

1

VAF

Forward Early voltage

∞ (no Early effect)

VAR

Reverse Early voltage

IKF

Forward knee current (high-level injection roll-off)

∞ (no roll-off)

IKR

Reverse knee current

ISE

B–E leakage saturation current (non-ideal recombination diode)

0

NE

B–E leakage emission coefficient

1.5

ISC

B–C leakage saturation current

0

NC

B–C leakage emission coefficient

2

3.3 Base-charge factor

Code

Definition

q_1

1 / (1 V_BC/VAF V_BE/VAR). Early-effect term.

q_2

I_BF/IKF + I_BR/IKR. High-level injection term.

q_B

(q_1 / 2) · (1 + sqrt(1 + 4 · q_2)). Normalised majority base charge.

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

g_m

Transconductance

g_m = I_C_op / (NF · V_T).

r_pi

Base–emitter resistance

r_pi = BF / g_m. Stamped as conductance 1/r_pi.

r_o

Output resistance

r_o = VAF / I_C_op. Omitted when VAF = .

C_pi

Base–emitter capacitance

Diffusion + B–E depletion. Stamped as admittance s · C_pi.

C_mu

Base–collector capacitance

B–C depletion (Miller path). Stamped as admittance s · C_mu.

3.5 Noise parameters

Code

Source

PSD

shot (C–E)

2 · q · I_C_op

Collector-current shot noise.

shot (B–E)

2 · q · I_B_op

Base-current shot noise.

KF, AF

flicker (B–E)

KF · I_B_op^AF / freq. Enabled when include_noise lists "flicker" and KF != 0.


4. Diode (Shockley)

4.1 DC and stamping

Code

Expanded name

Definition

IS

Reverse-saturation current

A.

N

Ideality / emission coefficient

Dimensionless; default 1.

V_D

Diode voltage

V_D = V(anode) V(cathode)

I_D

Diode current (anode → cathode)

I_D = IS · (exp(V_D / (N · V_T)) 1)

I_op

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

V_D_op

Operating-point diode bias

Defaults to per-instance symbol V_D_op_<name> if not supplied.

g_d

Small-signal conductance

g_d = ∂I_D/∂V_D = (IS / (N · V_T)) · exp(V_D_op / (N · V_T)).

C_j

Junction capacitance

Default 0. Stamped as admittance s · C_j in parallel with g_d.


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

BETA

Transconductance parameter

A/V². Plays the role of (1/2)·μ·Cox·(W/L) in the L1 MOSFET expression.

VTO

Pinch-off / threshold magnitude

Stored positive for both polarities (NJFET/PJFET).

LAMBDA

Channel-length modulation coefficient

1/V. λ = 0 reproduces ideal long-channel.

C_gs

Gate-source capacitance

Stamped as admittance s · C_gs in AC.

C_gd

Gate-drain capacitance

Stamped as admittance s · C_gd in AC.

V_GS_op, V_DS_op

Operating-point bias

Default to per-instance symbols if not supplied.

KF, AF, EF

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

K

Perveance

A / V^(3/2). Geometry-dependent constant.

μ

Amplification factor mu

Dimensionless; obeys μ = g_m · r_p = g_m / g_p.

V_gk

Grid-cathode voltage

V(grid) V(cathode)

V_pk

Plate-cathode voltage

V(plate) V(cathode)

I_p

Plate current

I_p = K · · V_gk + V_pk)^(3/2) (forward conduction only)

g_p

Plate conductance

∂I_p / ∂V_pk. Inverse r_p = 1 / g_p is plate resistance.

g_m

Triode transconductance

∂I_p / ∂V_gk = (3/2) · K · μ · √(μ V_g_op + V_p_op)

C_gk, C_gp, C_pk

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

C0

Zero-bias junction capacitance

F.

V_J

Junction (built-in) potential

V. Default 0.7.

M

Grading coefficient

Dimensionless. Default 0.5 (abrupt junction); 0.33 for linearly graded.

V_op

Operating-point bias across the varactor

Defaults to per-instance symbol V_op_<name> if not supplied.

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

R_on

On-state resistance

Ω. Default 1.

R_off

Off-state resistance

Ω. Default 1 GΩ.

V_t

Threshold control voltage

V. The midpoint of the tanh transition.

V_h

Hysteresis-like transition width

V. Smaller V_h → sharper switch. Default 0.1.

V_c_op

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

k

Coupling coefficient

0 k 1; k = 1 is perfect coupling. Default 1.

M

Mutual inductance (derived per pair)

M_ij = k · √(L_i · L_j), computed from each pair of named inductors at stamping time.

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

Z0

Characteristic impedance

Ω. Real for the lossless model.

td

One-way time delay

s. td = / v for line length ℓ and phase velocity v.

loss

Total attenuation (lossy)

Nepers. Default 0 (lossless). The propagation θ = loss + s · td.

θ

Electrical length theta

θ = s · td for the lossless line; θ = loss + s · td when lossy.

γ

Propagation constant

γ · = + s/v) · , with the lossless case setting α = 0.

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

VCVS

Voltage-Controlled Voltage Source

Exxx N+ N- NC+ NC- gain

V(n+) V(n−) = gain · (V(nc+) V(nc−)). gain is dimensionless.

VCCS

Voltage-Controlled Current Source

Gxxx N+ N- NC+ NC- gain

Drives gain · (V(nc+) V(nc−)) from n+ to n−. gain is a transconductance [S].

CCVS

Current-Controlled Voltage Source

Hxxx N+ N- VCTRL gain

V(n+) V(n−) = gain · I(ctrl). gain is a trans-resistance [Ω].

CCCS

Current-Controlled Current Source

Fxxx N+ N- VCTRL gain

Drives gain · I(ctrl) from n+ to n−. gain is dimensionless.


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

BehavioralCurrent

Injects expr from n_plus to n_minus

Acts like a non-linear current source. V_op_subs (optional) supplies operating-point substitutions used during AC linearisation.

BehavioralVoltage

Forces V(n_plus) V(n_minus) = expr

Acts like a non-linear voltage source; carries an auxiliary branch-current unknown. V_op_subs plays the same role as above.

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

Gain

V(out_p) V(out_m) = k · (V(in_p) V(in_m))

k (voltage gain).

Integrator

H(s) = k / (s + leak)

k (DC gain numerator), leak (damping; 0 → ideal integrator), var.

Summer

V(out_p) V(out_m) = Σ wᵢ · (V(in_p,i) V(in_m,i))

inputs — list of (in_p, in_m, weight) tuples.

Quantizer

V(out_p) V(out_m) = k_q · (V(in_p) V(in_m)) + V_q

k_q (linear quantizer gain), plus an additive symbolic noise input.

TransferFunction

V(out_p) V(out_m) = H(s) · (V(in_p) V(in_m))

H (Laplace expression), var (default s).

OPAMP

Ideal single-VCVS op-amp: V(out) = A · (V(in_p) V(in_m))

A (open-loop gain).

OPAMP1

First-order dominant-pole op-amp: H(s) = A · ω_p / (s + ω_p), with ω_p = 2π·GBW / A

A (DC open-loop gain), GBW (gain-bandwidth product, Hz), Z_out.

OPAMP and OPAMP1 are implemented as SubCircuits — see § 13.

12.1 OPAMP1 derived quantities

Code

Expanded name

Definition

A

DC open-loop gain

H(0) of the OPAMP1 transfer function.

GBW

Gain-bandwidth product

Hz. Unity-gain frequency.

ω_p

Dominant pole

ω_p = · GBW / A.

Z_out

Output impedance

Optional series output Z. None ⇒ ideal voltage output.


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

body

Inner Circuit

Defines the reusable block.

port_map

{body_pin: parent_node} mapping

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

"sine"

amplitude, frequency, phase

A · (s · sin(φ) + ω · cos(φ)) / (s² + ω²) with ω = 2π·frequency.

"pulse"

v1, v2, td, pw

Single rectangular pulse: v1/s + (v2−v1)·(exp(−s·td) exp(−s·(td+pw)))/s.

"exp"

v1, v2, td1, tau1, td2?, tau2?

Exponential pulse rising toward v2 with tau1, optionally recovering to v1 with tau2.

DC values are picked up automatically from the waveform parameters (e.g. value = v1 for pulse/exp).


15. MNA & analysis terms

Code / Term

Expanded

MNA

Modified Nodal Analysis. Linear system A · x = b whose unknowns are node voltages plus a few branch currents.

KCL

Kirchhoff’s Current Law. The MNA row equations are KCL at each non-ground node.

KVL

Kirchhoff’s Voltage Law.

A

MNA matrix (admittances + auxiliary stamps).

x

Unknown vector — node voltages followed by auxiliary branch currents (one per V/E/H source, etc.).

b

Right-hand side — independent excitations.

s

Laplace variable. Capacitor stamps s · C; inductor stamps 1 / (s · L).

aux

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).

has_nonlinear

Class flag: component contributes transcendental KCL terms via stamp_nonlinear (diode, BJT, MOSFET, JFET, triode, behavioral, varactor, vswitch).

G_MIN

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.

freq

Real-valued frequency symbol exposed by sycan.mna. Used by flicker-noise PSDs (which carry 1/freq^EF) since s = is not a useful argument for a real PSD.

15.1 Analysis modes

Mode

Component behaviour

dc

Capacitors → open, inductors → 0 V source (short via auxiliary current). Nonlinear models contribute residuals.

ac

Small-signal Laplace-domain stamps. Capacitors → s · C, inductors → 1 / (s · L). Nonlinear devices → linearised at their operating point (g_m, g_ds, intrinsic caps).

15.2 Solvers (sycan.mna)

Solver

Purpose

solve_dc

DC operating point. Linear systems → symbolic LU; nonlinear → CAS solver on full residual system.

solve_dc_sweep

Sweep one symbolic parameter across values and substitute into the symbolic DC solution. Closed-form .DC.

solve_ac

Small-signal Laplace-domain solve. Returns {Symbol(V(node)): expr(s)}.

solve_tf

Transfer function H(s) = V(output_node) / source_value. Returns dict with H, dc_gain, hf_gain, numerator, denominator.

solve_pz

Pole-zero analysis: factors H(s) to extract poles (denominator roots) and zeros (numerator roots). Returns PZResult.

solve_impedance

Port impedance (input/output) at a labelled port, with termination="auto" choosing excitation/loading.

solve_noise

Output-referred noise PSD. Returns (S_total, per_source)S_total and a dict of per-noise-source contributions.

solve_sensitivity

∂V_out/∂p for each parameter, in DC or AC mode. normalized=True reports (p / V_out) · ∂V_out/∂p.

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

DUPLICATE_NAME

error

Two components share a designator after sub-circuit flattening.

PIN_SHORT

warning

Two pins of the same component land on the same node (self-loop / pin tie).

DANGLING_NODE

warning

A node is referenced by exactly one pin — almost always a typo.

NO_GROUND

error

No ground node ("0" / GND) exists in the flattened netlist.

FLOATING_GROUND

error

A pin connects to ground but ground itself isn’t tied to anything else.

ISLAND

warning

Two or more disjoint connected components — the netlist isn’t one circuit.

ERCReport exposes:

Attribute

Meaning

findings

List of ERCFinding(severity, code, message).

errors

Findings with severity == "error".

warnings

Findings with severity == "warning".

ok

True iff there are no error-severity findings.


17. Network parameters (sycan.network_params)

Two-port (and n-port where it applies) representations:

Code

Name

Defining relation

Z

Impedance parameters

V = Z · I

Y

Admittance parameters

I = Y · V

S

Scattering parameters

b = S · a, with reference impedance Z0

ABCD

Chain (transmission) matrix

[V1; I1] = ABCD · [V2; −I2] (2-port only)

T

Transfer / scattering-transfer

[a1; b1] = T · [b2; a2] (2-port only)

a and b are the incident and reflected normalised power waves; Z0 is the per-port reference impedance (default 50 Ω).


18. Noise

Code

Expanded

PSD

Power Spectral Density [V²/Hz or A²/Hz].

S_V_out

Output-voltage noise PSD.

H_k(s)

Trans-impedance from the k-th unit-current noise source to the output node.

S_k

One-sided current-noise PSD of the k-th source.

γ (noise)

Long-channel channel-thermal-noise excess factor; _NOISE_GAMMA = 2/3 in the L1/4T MOSFETs.

thermal

Johnson-Nyquist thermal noise. Resistor PSD: 4 · k_B · T / R. MOSFET / JFET channel PSD: 4 · k_B · T · γ · g_m.

shot

Schottky shot noise, 2 · q · I_op (one-sided). Used by Diode, BJT (×2), sub-threshold MOSFET.

flicker

1/f noise: KF · I_op^AF / freq^EF. Emitted by the L1/3T/4T/subthreshold MOSFETs, JFET, and BJT.

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

Butterworth — maximally flat magnitude in the passband.

chebyshev1

Chebyshev Type I — equiripple in the passband, monotonic in the stopband.

bessel

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.

HeadroomResult

Returned record with intervals, boundaries, samples, widest, and binding_devices().

Binding device

The transistor that exits saturation at a given interval edge — the one setting the headroom on that side.

V_id

Differential input voltage in a differential-pair sweep (typical use case in the headroom docstring).


21. Acronym quick-reference

Acronym

Expanded

MOSFET

Metal-Oxide-Semiconductor Field-Effect Transistor.

NMOS

n-channel MOSFET.

PMOS

p-channel MOSFET.

JFET

Junction Field-Effect Transistor.

NJFET / PJFET

n-channel / p-channel JFET.

BJT

Bipolar Junction Transistor.

NPN/PNP

BJT polarities; npn = n-emitter/p-base/n-collector, pnp the opposite.

L1

Shichman-Hodges Level 1 — the original SPICE long-channel quadratic MOSFET model.

3T / 4T

Three-terminal (bulk tied to source) / four-terminal (bulk exposed) MOSFET wrapper.

MNA

Modified Nodal Analysis.

ERC

Electrical Rule Check (sycan.check.check_circuit).

DRC

Design Rule Check — used interchangeably with ERC in this codebase.

SPICE

Simulation Program with Integrated Circuit Emphasis. Reference for sign conventions and parameter names.

DC

Direct-current operating point.

AC

Small-signal alternating-current (Laplace) analysis.

TF

Transfer Function (solve_tf).

PZ

Pole-Zero analysis (solve_pz).

GBW

Gain-bandwidth product (OPAMP1).

RF

Radio-frequency (the components.rf package — currently the lossless transmission line).

TLINE

Transmission line.

VCO/Vctrl

Naming convention for the controlling source of a CCCS/CCVS.

VCVS / VCCS / CCVS / CCCS

Voltage- / Current-Controlled Voltage / Current Source primitives.

ABCD

Chain / transmission matrix.

PSD

Power Spectral Density.

GMIN

SPICE shunt conductance from every node to ground used to keep the Jacobian conditioned.

KF / AF / EF

Flicker (1/f) noise coefficient / current exponent / frequency exponent.

B-element

Behavioral source (BehavioralVoltage, BehavioralCurrent).