aboutsummaryrefslogtreecommitdiff
path: root/module-design.typ
diff options
context:
space:
mode:
Diffstat (limited to 'module-design.typ')
-rw-r--r--module-design.typ873
1 files changed, 872 insertions, 1 deletions
diff --git a/module-design.typ b/module-design.typ
index d6e737b..b1d84d4 100644
--- a/module-design.typ
+++ b/module-design.typ
@@ -1,4 +1,5 @@
-#import "@preview/unify:0.8.1": numrange, qty, qtyrange
+#import "@preview/unify:0.8.1": numrange, qty, qtyrange, unit
+#import "@preview/diverential:0.3.0": *
= Module design <module-design>
@@ -86,8 +87,878 @@ deeply enough to make the physics work for you rather than against you.
== Terminology <module-design-terminology>
+This section defines the specialized terminology used throughout
+#ref(<module-design>). These definitions establish a consistent vocabulary for
+discussing precision analog circuit design within the SAME ecosystem. Terms are
+organized into logical categories for ease of reference. Terms defined here may
+have already appeared in earlier sections but are formally defined here for the
+Module Design context.
+
+=== Mathematical symbols <mathematical-symbols>
+
+This section defines the mathematical symbols and notational conventions used
+throughout #ref(<module-design>). Symbols are organized by category: fundamental
+constants, electrical quantities, circuit parameters, error quantities, and
+operators.
+
+==== Fundamental constants <fundamental-constants>
+
+#figure(
+ table(
+ columns: 4,
+ table.header([Symbol], [Definition], [Value], [Unit]),
+ [$k_B$], [Boltzmann constant], [$1.381 times 10^(-23)$], [$unit("joule per kelvin")$],
+
+ [$upright(T)$], [Absolute temperature], [N/A], [$unit(K)$],
+ [$upright(e)$], [Elementary charge], [$1.603 times 10^(-19)$], [$unit(C)$],
+ ),
+ caption: [Fundamental constants],
+) <table-fundamental-constants>
+
+==== Electrical quantities <electrical-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(V)$], [Voltage (general)], [$unit(V)$],
+ [$upright(I)$], [Current (general)], [$unit(A)$],
+ [$upright(R)$], [Resistance], [$unit("ohm")$],
+ [$upright(C)$], [Capacitance], [$unit(F)$],
+ [$upright(L)$], [Inductance], [$unit(H)$],
+ [$upright(P)$], [Power], [$unit(W)$],
+ [$upright(f)$], [Frequency], [$unit("Hz")$],
+ [$omega$], [Angular frequency ($omega = 2 pi upright(f)$)], [$unit("radian per second")$],
+
+ [$tau$], [Time constant ($tau = upright("RC") "or" upright("L/R")$)], [$unit(s)$],
+
+ [$upright("BW")$], [Bandwidth], [$unit("Hz")$],
+ ),
+)
+
+==== Voltage and current subscript conventions
+<voltage-and-current-subscript-conventions>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Subscript], [Meaning], [Example]),
+ [in], [Input], [$V_"in", I_"in"$],
+ [out], [Output], [$V_"out", I_"out"$],
+ [ref], [Reference], [$V_"ref"$],
+ [pp], [Peak-to-peak], [$V_"pp"$],
+ [rms], [Root-mean-square], [$V_"rms"$],
+ [n, noise], [Noise], [$V_n, upright(e)_n, i_n$],
+ [OS], [Offset], [$V_"OS"$],
+ [leak], [Leakage], [$I_"leak"$],
+ [supply], [Power supply], [$V_"supply"$],
+ [$plus$, $minus$], [Positive / negative input or rail], [$V_plus, V_minus$],
+
+ [CM], [Common-mode], [$V_"CM"$],
+ [diff], [Differential], [$V_"diff"$],
+ [CR], [Coefficient of resistance], [$V_"CR"$],
+ [CC], [Coefficient of capacitance], [$V_"CC"$],
+ ),
+ caption: [Voltage and current subscript conventions],
+) <table-voltage-and-current-subscript-conventions>
+
+==== Circuit and component parameters <circuit-and-component-parameters>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(G)$], [Gain (closed-loop)], [dimensionless or $unit("dB")$],
+ [$upright(A)$], [Gain (open-loop)], [dimensionless or $unit("dB")$],
+ [$upright(A)_"OL"$], [Open-loop gain (explicit)], [dimensionless],
+ [$beta$], [Feedback factor], [dimensionless],
+ [$upright(A) beta$], [Loop gain], [dimensionless],
+ [$upright(H)$], [Transfer function], [dimensionless],
+ [$R_f$], [Feedback resistor], [$unit("ohm")$],
+ [$R_"in"$], [Input resistor], [$unit("ohm")$],
+ [$Z_"in"$], [Input impedance], [$unit("ohm")$],
+ [$Z_"out"$], [Output impedance], [$unit("ohm")$],
+ [$upright("GBW")$], [Gain-bandwidth product], [$unit("Hz")$],
+ [$upright("SR")$], [Slew rate], [$unit("volt per micro second")$],
+ [$upright("CMRR")$], [Common-mode rejection ration], [$unit("dB")$],
+ [$upright("PSRR")$], [Power supply rejection ratio], [$unit("dB")$],
+ [$upright("TC")$], [Temperature coefficient], [$unit("ppm per celsius")$],
+ [$V_"CR"$], [Voltage coefficient of resistance], [$unit("ppm per volt")$],
+ [$V_"CC"$], [Voltage coefficient of capacitance], [$unit("ppm per volt")$],
+ [$upright("DA")$], [Dielectric absorption], [$unit("percent")$],
+ [$S$], [Seebeck coefficient], [$unit("micro volt per celsius")$],
+ [$theta$], [Thermal resistance], [$unit("celsius per watt")$],
+ ),
+ caption: [Circuit and component parameters],
+) <table-circuit-and-component-parameters>
+
+==== Error and precision quantities <error-and-precision-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$epsilon$], [Error (general)], [$unit("ppm")$ or $unit("uV")$],
+ [$epsilon_"max"$], [Maximum allowable error], [$unit("ppm")$ or $unit("uV")$],
+
+ [$epsilon_"total"$], [Total combined error], [$unit("ppm")$ or $unit("uV")$],
+
+ [$epsilon_"systematic"$], [Systematic error component], [$unit("ppm")$],
+ [$epsilon_"random"$], [Random error component], [$unit("uV") upright("RMS")$],
+
+ [$epsilon_"offset"$], [Offset error], [$unit("uV")$],
+ [$epsilon_"gain"$], [Gain error], [$unit("ppm")$],
+ [$epsilon_"ratio"$], [Ratio error for matched components], [$unit("ppm")$],
+ [$epsilon_"thermal"$], [Thermally-induced error], [$unit("ppm")$],
+ [$dv(epsilon, t)$], [Drift rate], [$unit("ppm per hour")$],
+ [$S_y^p$], [Sensitivity of $y$ to parameter $p$], [dimensionless],
+ [$upright("SNR")$], [Signal-to-noise ratio], [$unit("dB")$],
+ [$upright("RTI")$], [Referred-to-input], [$unit("uV")$],
+ [$upright("RTO")$], [Referred-to-output], [$unit("uV")$],
+ [$upright("FS")$], [Full scale], [$unit("V")$],
+ ),
+ caption: [Error and precision quantities],
+) <table-error-and-precision-quantities>
+
+==== Noise quantities <noise-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(e)_n$], [Voltage noise spectral density], [$unit("nV")/sqrt(unit("Hz"))$],
+
+ [$upright(i)_n$],
+ [Current noise spectral density],
+ [$unit("pA")/sqrt(unit("Hz"))$ or $unit("fA")/sqrt(unit("Hz"))$],
+
+ [$upright(e)_(n,"white")$], [White noise component], [$unit("nV")/sqrt(unit("Hz"))$],
+
+ [$upright(e)_(n,1/upright(f))$],
+ [$1/upright(f)$ noise component],
+ [$unit("nV")/sqrt(unit("Hz"))$ at $qty(1, "Hz")$],
+
+ [$upright(f)_c$], [Noise corner frequency ($1/upright(f)$ to white)], [$unit("Hz")$],
+
+ [$upright(V)_n$], [Total noise voltage], [$unit("V") upright("RMS")$],
+ [$upright("CNI")$], [Current noise index (potentiometers)], [$unit("dB")$],
+ ),
+ caption: [Noise quantities],
+) <table-noise-quantities>
+
+==== Time domain and modulation quantities
+<time-domain-and-modulation-quantities>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(D)$], [Duty cycle], [$unit("percent")$ or dimensionless],
+ [$upright(f)_"carrier"$], [Carrier frequency], [$unit("Hz")$],
+ [$upright(f)_0$], [Resonant or center frequency], [$unit("Hz")$],
+ [$phi$], [Phase], [$unit("radian")$ or $unit("degree")$],
+ [$Delta phi$], [Phase error or shift], [$unit("radian")$ or $unit("degree")$],
+
+ [$upright(t)_"settle"$], [Settling time], [$unit("s")$],
+ [$upright(t)_h$], [Timing jitter], [$unit("ps")$ or $unit("ns")$],
+ ),
+ caption: [Time domain and modulation quantities],
+) <table-time-domain-and-modulation-quantities>
+
+==== Thermal quantities <thermal-quantites>
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Symbol], [Definition], [Typical unit]),
+ [$upright(T)$], [Temperature (absolute)], [$unit("K")$],
+ [$delta upright(T)$], [Temperature difference], [$unit("celsius")$ or $unit("K")$],
+
+ [$(Delta upright(T))/(upright(d) y)$], [Vertical temperature gradient], [$unit("celsius per centimeter")$],
+
+ [$theta_"conv"$], [Convective thermal resistance], [$unit("celsius per watt")$],
+
+ [$theta_"cond"$], [Conductive thermal resistance], [$unit("celsius per watt")$],
+
+ [$accent(Q, dot)$], [Heat flux], [$unit("W")$],
+ [$accent(upright(m), dot)$], [Mass flow rate], [$unit("kilo gram per second")$],
+
+ [$upright(c)_p$], [Specific heat capacity], [$unit("J")/(unit("kg") unit("K"))$],
+ ),
+ caption: [Thermal quantities],
+) <table-thermal-quantities>
+
+==== Mathematical operators and functions <mathematical-operators-and-functions>
+
+#figure(
+ table(
+ columns: 2,
+ table.header([Notation], [Meaning]),
+ [$sum$], [Summation],
+ [$product$], [Product],
+ [$sqrt("")$], [Square root],
+ [$dvp(y, x)$], [Partial derivative of $y$ with respect to $x$],
+ [$dv(y, x)$], [Total derivative of $y$ with respect to $x$],
+ [$integral$], [Integral],
+ [$log_10$], [Common logarithm (base $10$)],
+ [$ln$], [Natural logarithm (base $e$)],
+ [$exp$], [Exponential function],
+ [$abs(x)$], [Absolute value of $x$],
+ [$x mod y$], [Modulo operation (remainder of $x$ divided by $y$)],
+ [$in$], [Element of a set],
+ [$upright("RSS")$], [Root-sum-square: $sqrt(x_1^2 + x_2^2 + ... + x_n^2)$],
+ ),
+ caption: [Mathematical operators and functions],
+) <table-mathematical-operators-and-functions>
+
+==== Unit prefixes <unit-prefixes>
+
+Standard SI prefixes are used throughout:
+
+#figure(
+ table(
+ columns: 3,
+ table.header([Prefix], [Symbol], [Factor]),
+ [tera], [$upright(T)$], [$10^12$],
+ [giga], [$upright(G)$], [$10^9$],
+ [mega], [$upright(M)$], [$10^6$],
+ [kilo], [$upright(k)$], [$10^3$],
+ [], [], [$10^0$],
+ [milli], [$upright(m)$], [$10^(-3)$],
+ [micro], [$upright(mu)$], [$10^(-6)$],
+ [nano], [$upright(n)$], [$10^(-9)$],
+ [pico], [$upright(p)$], [$10^(-12)$],
+ [femto], [$upright(f)$], [$10^(-15)$],
+ ),
+ caption: [Unit prefixes],
+) <table-unit-prefixes>
+
+==== Special notation conventions <special-notation-conventions>
+
+/ Parts per million ($unit("ppm")$): Dimensionless ratio equal to $10^(-6)$.
+ Used for expressing small fractional errors.
+ / Example: $qty(10, "ppm") "of" qty(20, "V") = qty(200, "uV")$.
+/ Parts per billion ($unit("ppb")$): Dimensionless ratio equal to $10^(-9)$.
+ Used for expressing frequency stability of precision oscillators.
+/ Decibels ($unit("dB")$): Logarithmic ratio.
+ / For voltage or amplitude ratios:
+ $unit("dB") = 20 log_10(upright(V)_1/upright(V)_2)$.
+ / For power ratios: $unit("dB") = 10 log_10(upright(P)_1/upright(P)_2)$.
+/ $unit("dBc")/unit("Hz")$: Phase noise specification. Power spectral density of
+ phase fluctuations relative to carrier power, per hertz of bandwidth.
+/ Subscript conventions for matched pairs: When two components are matched,
+ subscripts 1 and 2 (or A and B) denote individual components, while the ratio
+ $upright(R)_1/upright(R)_2$ denotes the matched ratio whose tolerance is
+ tighter than either individual tolerance.
+/ Temperature in calculations: Noise calculations use absolute temperature
+ (Kelvin). Temperature coefficients use Celsius ($unit("celsius")$), since only
+ temperature differences matter and $Delta upright(T)$ in Kelvin equals
+ $Delta upright(T)$ in Celsius.
+/ Frequency-domain notation: Transfer functions are expressed in the Laplace
+ domain with the complex frequency variable $s = sigma + j omega$, where
+ $j = sqrt(−1)$. For sinusoidal steady-state analysis, $s = j omega$.
+
+=== Error and precision terminology <error-and-precision-terminology>
+
+/ Error: Any deviation of an actual output from its ideal mathematical value.
+ Errors are classified by their time dependence (static vs. drift), signal
+ dependence (offset, gain, nonlinearity), and statistical character (systematic
+ vs. random).
+/ Systematic Error: A deterministic deviation that could, in principle, be
+ predicted and corrected if all influence quantities were known. Systematic
+ errors contribute to the precision budget. Examples include resistor
+ temperature coefficients and op-amp offset voltage.
+/ Random Error: A fundamentally unpredictable deviation arising from thermal
+ agitation, quantum fluctuations, or chaotic dynamics. Random errors contribute
+ to the noise budget. Examples include thermal noise and shot noise.
+/ Offset Error: A constant additive error independent of signal amplitude. An
+ offset error adds a fixed voltage to the output regardless of input level.
+/ Gain Error: An error proportional to signal amplitude. A gain error multiplies
+ the output by a factor deviating from the ideal unity or specified gain.
+/ Nonlinearity Error: An error that depends on signal amplitude in a complex,
+ non-proportional way. Nonlinearity errors introduce harmonic distortion and
+ intermodulation products.
+/ Static Error: An error that is constant over the timescale of a measurement or
+ computation. Static errors can be calibrated out at a single point in time.
+/ Drift: A time-varying systematic error that changes either deterministically
+ (as with temperature-driven parameter changes) or stochastically (as with
+ flicker noise). Drift errors require continuous compensation or periodic
+ recalibration.
+/ Drift Rate: The rate at which a parameter changes over time, typically
+ specified in $unit("ppm per hour")$. The SAME Metrologic tier specifies a
+ maximum drift rate of $qty(0.014, "ppm per hour")$.
+/ Precision: A measure of how closely repeated measurements or computations
+ agree with each other, expressed as the maximum acceptable deviation from the
+ ideal value. The SAME Metrologic tier specifies $qty(10, "ppm")$
+ ($qty(0.001, "percent")$) precision.
+/ Accuracy: A measure of how closely a measurement or computation agrees with
+ the true value. In SAME, accuracy is defined relative to the
+ $plus.minus qty(10.0000, "V")$ system reference.
+/ Signal-to-Noise Ratio ($upright("SNR")$): The ratio of signal power to noise
+ power, typically expressed in decibels. The SAME Metrologic tier specifies
+ $qty(90, "dB") upright("SNR")$, corresponding to approximately
+ $qty(632, "uV") upright("RMS")$ noise referred to the $qty(20, "Vpp")$ signal
+ range.
+/ Referred-to-Input ($upright("RTI")$): An error specification expressed as an
+ equivalent error at the circuit input. $upright("RTI")$ allows comparison of
+ errors across stages with different gains.
+/ Referred-to-Output ($upright("RTO")$): An error specification expressed at the
+ circuit output. $upright("RTO")$ is the natural choice for specifications that
+ must be met at the output.
+/ Noise Gain: The gain seen by error sources at the amplifier input, which
+ differs from signal gain in inverting configurations. For an inverting
+ amplifier with feedback resistor $upright(R)_upright(f)$ and input resistor
+ $upright(R)_"in"$, noise gain equals
+ $1 + upright(R)_upright(f)/upright(R)_"in"$.
+/ Error Budget: A systematic accounting of all error sources and their
+ contributions to total system error. Errors are typically combined by
+ root-sum-square ($upright("RSS")$) for independent sources or algebraic sum
+ for correlated sources.
+
+=== Component terminology <component-terminology>
+
+/ Temperature Coefficient (Tempco): The rate at which a component parameter
+ changes with temperature, typically specified in $unit("ppm per celsius")$.
+ Lower tempco indicates greater temperature stability.
+/ Voltage Coefficient of Resistance ($upright(V)_"CR"$): The rate at which
+ resistance changes with applied voltage, specified in $unit("ppm")/unit("V")$
+ or $unit("ppm")/unit("V")_2$. $upright(V)_"CR"$ creates nonlinearity in
+ circuits with signal-dependent voltage across resistors.
+/ Voltage Coefficient of Capacitance ($upright(V)_"CC"$): The rate at which
+ capacitance changes with applied voltage. Class 2 ceramic capacitors (X7R,
+ X5R) can exhibit $upright(V)_"CC"$ of
+ $qtyrange(-30, -80, "percent", delimiter: "\"to\"")$ at rated voltage, making
+ them unsuitable for signal paths.
+/ Dielectric Absorption ($upright("DA")$): A memory effect in capacitors where
+ rapid charge/discharge cycles leave residual polarization that manifests as
+ unpredictable voltage contributions. Film capacitors (polypropylene,
+ polystyrene) have $upright("DA")$ below $qty(0.05, "percent")$.
+/ Seebeck Effect: The thermoelectric effect where a temperature difference
+ across a junction of dissimilar metals produces a voltage. Seebeck voltages at
+ solder joints can contribute significant offset errors if thermal gradients
+ exist.
+/ Seebeck Coefficient: The voltage generated per degree of temperature
+ difference at a thermocouple junction, specified in
+ $unit("micro volt per celsius")$. Copper-to-Kovar junctions have coefficients
+ around $qty(40, "micro volt per celsius")$.
+/ Matched Components: Components fabricated together on a common substrate or
+ selected to have closely tracking parameter values. Matching reduces ratio
+ errors even when absolute tolerances are significant.
+/ Ratio Tolerance: The tolerance on the ratio of two matched component values,
+ which is typically much tighter than individual absolute tolerances. Thin-film
+ resistor networks achieve ratio tolerances of $qty(0.01, "percent")$
+ ($qty(100, "ppm")$) or better.
+/ Tracking Temperature Coefficient: The difference in temperature coefficients
+ between matched components. Well-matched components have tracking tempcos
+ below $qty(2, "ppm per celsius")$ even when individual tempcos are
+ $qty(25, "ppm per celsius")$.
+
+=== Amplifier and circuit terminology <amplifier-and-circuit-terminology>
+
+/ Input Offset Voltage ($upright(V)_"OS"$): The DC voltage that must be applied
+ between an op-amp's inputs to force the output to zero. $upright(V)_"OS"$
+ appears as an error at the input that is multiplied by the noise gain.
+/ Input Bias Current ($upright(I)_upright(B)$): The DC current flowing into or
+ out of an op-amp's input terminals required to bias the input stage. Bias
+ current through source impedances creates voltage errors.
+/ Input Offset Current ($upright(I)_"OS"$): The difference between the bias
+ currents at an op-amp's two input terminals. Balancing source impedances can
+ reduce bias current error to offset current error.
+/ Common-Mode Rejection Ratio ($upright("CMRR")$): The ratio of differential
+ gain to common-mode gain, expressing an amplifier's ability to reject signals
+ that appear equally on both inputs. High $upright("CMRR")$
+ ($gt qty(120, "dB")$) is essential for precision differential measurements.
+/ Power Supply Rejection Ratio ($upright("PSRR")$): The ratio of differential
+ gain to power supply gain, expressing an amplifier's immunity to supply
+ voltage variations. $upright("PSRR")$ degrades with frequency, making
+ high-frequency supply noise more problematic.
+/ Open-Loop Gain ($upright(A)_"OL"$): The gain of an amplifier without feedback,
+ typically $106$ to $108$ ($qtyrange(120, 160, "dB")$) for precision op-amps.
+ Finite open-loop gain creates closed-loop gain error proportional to
+ $upright(G)_"ideal"/upright(A)_"OL"$.
+/ Gain-Bandwidth Product ($upright("GBW")$): The product of an op-amp's DC
+ open-loop gain and the frequency at which open-loop gain falls to unity. For a
+ single-pole op-amp, $upright("GBW")$ is constant and determines gain error at
+ frequency.
+/ Slew Rate: The maximum rate of change of an op-amp's output voltage, typically
+ specified in $unit("volt per micro second")$. Insufficient slew rate causes
+ distortion for large, fast signals.
+/ Settling Time: The time required for an amplifier output to settle within a
+ specified error band after a step input. Settling to $qty(10, "ppm")$
+ typically requires $10$-$20$ time constants.
+/ Chopper Stabilization: A technique that eliminates low-frequency errors by
+ periodically reversing signal polarity and correcting for the resulting
+ offset. Chopper-stabilized amplifiers achieve offset drifts below
+ $qty(0.05, "micro volt per celsius")$.
+/ Loop Gain: The product of forward gain $upright(A)$ and feedback factor $beta$ in a
+ feedback system. Loop gain determines error suppression: errors in the forward
+ path are divided by $(1 + upright(A) beta)$.
+
+=== Computation terminology <computation-terminology>
+
+/ Ratiometric Design: A design methodology where computations depend on
+ component ratios rather than absolute values. Ratiometric designs achieve
+ precision far exceeding individual component tolerances.
+/ Implicit Computation: A design methodology where results emerge from the
+ equilibrium condition of a feedback system rather than from explicit
+ calculation. Implicit computation exploits high loop gain to achieve precision
+ exceeding that of explicit approaches.
+/ Explicit Computation: A design methodology where results are calculated by
+ applying known operations sequentially. Errors accumulate through the
+ computation chain.
+/ Summing Divider: An implicit computation topology that computes the ratio of
+ two current sums, implementing division through feedback equilibrium rather
+ than explicit divider circuitry.
+/ Virtual Ground: A circuit node maintained at ground potential by op-amp
+ feedback, despite signal currents flowing through it. The accuracy of a
+ virtual ground depends on the op-amp's open-loop gain.
+/ Summing Junction: The node at an op-amp's inverting input in a summing
+ amplifier configuration, where input currents sum to zero (Kirchhoff's current
+ law). Also called a summing node.
+
+=== Time-domain and modulation terminology
+<time-domain-and-modulation-terminology>
+
+/ Pulse-Width Amplitude Modulation (PWAM): A modulation technique where one
+ multiplicand is encoded as the duty cycle of a pulse train, enabling
+ multiplication through time-domain encoding rather than amplitude-domain
+ multiplication.
+/ Duty Cycle: The fraction of a period during which a pulse signal is high. In
+ PWAM, the duty cycle encodes signal amplitude: $qty(50, "percent")$
+ corresponds to zero, $qty(0, "percent")$ to $minus upright(V)_"ref"$, and
+ $qty(100, "percent")$ to $plus upright(V)_"ref"$.
+/ Carrier Frequency: The frequency of the triangle wave or pulse train used in
+ PWAM modulation. The SAME specification uses a $qty(500, "kHz")$ carrier
+ derived from the $qty(10, "MHz")$ Master Oscillator.
+/ Master Oscillator: The system-wide $qty(10, "MHz")$ sine wave reference
+ distributed to all modules for time-domain computations. The Master Oscillator
+ provides frequency stability of $plus.minus qty(10, "ppb")$ using an
+ oven-controlled crystal oscillator (OCXO).
+/ Stagger: The phase offset applied to PWAM carriers in adjacent modules to
+ prevent intermodulation between neighboring switching frequencies. The Stagger
+ rail indicates whether a module should operate at $qty(0, "degree")$ or
+ $qty(90, "degree")$ phase relative to the Master Oscillator.
+/ Phase Noise: Random fluctuations in the phase of an oscillator signal, which
+ manifest as timing jitter. Low phase noise ($lt.eq qty(-140, "dBc per hertz")$
+ at $qty(1, "kHz")$ offset) is essential for high-precision PWAM.
+/ Jitter: Random variations in the timing of signal transitions. Clock jitter
+ converts directly to amplitude noise in PWAM systems.
+
+=== Thermal terminology <thermal-terminology>
+
+/ Isothermal: Having uniform temperature throughout. Isothermal layout places
+ matched components along lines of constant temperature to ensure identical
+ thermal environments.
+/ Thermal Gradient: The spatial rate of change of temperature across a surface
+ or volume, typically expressed in $unit("celsius per centimeter")$. Thermal
+ gradients cause matched components to experience different temperatures,
+ degrading their matching.
+/ Ovenization: The practice of enclosing a critical component (typically a
+ voltage reference) in a temperature-controlled enclosure maintained above
+ maximum ambient temperature.
+/ Thermal Time Constant: The time required for a thermal system to reach
+ approximately $qty(63, "percent")$ of its final temperature after a step
+ change in power or ambient temperature.
+/ Thermal Tail: The slow settling of circuit parameters after a thermal
+ transient, caused by the multiple thermal time constants in a system (die,
+ package, PCB, enclosure).
+/ Self-Heating: The temperature rise in a component caused by power dissipation
+ within the component itself. Self-heating creates signal-dependent temperature
+ changes that manifest as nonlinearity.
+/ Thermal Coupling: The degree to which temperature changes in one component
+ affect another. Strong thermal coupling between matched components improves
+ their tracking.
+
+=== Servo and feedback terminology <servo-and-feedback-terminology>
+
+/ DC Servo Loop: A slow feedback system that continuously measures and corrects
+ DC errors (offset, drift) without affecting signal-band performance. Servo
+ loops achieve DC precision far exceeding component capabilities.
+/ Servo Crossover Frequency: The frequency at which a servo loop's correction
+ magnitude equals the uncompensated error magnitude. Below crossover, the servo
+ provides increasing error suppression.
+/ Integrator Servo: A servo loop topology that uses an integrator to provide
+ theoretically infinite DC gain, completely eliminating DC errors at
+ equilibrium.
+/ Phase Margin: The additional phase shift at the unity-gain frequency that
+ would cause instability. Adequate phase margin ($gt qty(45, "degree")$)
+ ensures stable operation without excessive ringing.
+/ Gain Margin: The factor by which loop gain could increase before causing
+ instability. Adequate gain margin ($gt qty(10, "dB")$) ensures robust
+ operation across component variations.
+
+=== Noise and interference terminology <noise-and-interference-terminology>
+
+/ Thermal Noise (Johnson-Nyquist Noise): Voltage fluctuations arising from the
+ thermal agitation of charge carriers in any resistive element. Thermal noise
+ power is proportional to temperature, resistance, and bandwidth.
+/ Flicker Noise ($1/upright(f)$ Noise): Noise whose power spectral density is
+ inversely proportional to frequency. Flicker noise dominates at low
+ frequencies and is particularly significant in DC-coupled precision circuits.
+/ Shot Noise: Noise arising from the discrete nature of electric charge,
+ significant in circuits with DC current flow through semiconductor junctions.
+/ Crosstalk: Unintended coupling of signals between channels or circuits through
+ capacitive, inductive, or conductive mechanisms.
+/ Ground Loop: A condition where multiple ground connections create a current
+ path that can couple interference into the signal path.
+/ Guard Ring: A conductive trace surrounding a high-impedance node, driven at
+ the same potential as the node to eliminate leakage currents and reduce
+ capacitive coupling.
+/ RF Filtering: Attenuation of radio-frequency interference before it reaches
+ sensitive circuit nodes. RF filtering prevents rectification of RF signals at
+ semiconductor junctions.
+/ Shielding Effectiveness: The attenuation of electromagnetic fields provided by
+ a conductive enclosure, typically specified in $unit("dB")$. The SAME cassette
+ provides $gt qty(20, "dB")$ shielding from
+ $qtyrange(80, 1000, "MHz", delimiter: "\"to\"")$.
+
+=== Module category terminology <module-category-terminology>
+
+/ Compute Module: A SAME module that performs mathematical operations on input
+ signals. Compute modules include summers, multipliers, integrators,
+ differentiators, and function generators.
+/ Interface Module: A SAME module that converts signals between the SAME format
+ and external formats (BNC, AES59, RF, etc.). Interface modules handle level
+ shifting, impedance matching, and isolation.
+/ Control Module: A SAME module that generates or manipulates control voltages
+ without performing computation. Control modules include precision constant
+ generators, potentiometers, and joysticks.
+
+=== Precision tier terminology <precision-tier-terminology>
+
+/ Educational Tier: The entry-level SAME precision tier, targeting
+ $qty(1000, "ppm")$ ($qty(0.1, "percent")$) precision and
+ $qty(70, "dB") upright("SNR")$. Suitable for teaching circuit topologies and
+ general analog computing concepts.
+/ Industrial Tier: The intermediate SAME precision tier, targeting
+ $qty(100, "ppm")$ ($qty(0.01, "percent")$) precision and
+ $qty(80, "dB") upright("SNR")$. Suitable for research, experimentation, and
+ applications requiring repeatable results.
+/ Metrologic Tier: The highest SAME precision tier, targeting
+ $qty(10, "ppm")$ ($qty(0.001, "percent")$) precision and
+ $qty(90, "dB") upright("SNR")$. Suitable for precision measurement,
+ long-duration computation, and traceable accuracy.
+/ Bill of Materials (BOM): The list of components required to build a module.
+ SAME modules provide three BOMs (Educational, Industrial, Metrologic) that
+ share a common PCB design but use components of different precision grades.
+/ Drift-Free Computation Period: The maximum duration over which computation
+ remains within precision specification without recalibration. The Metrologic
+ tier specifies 30 days of drift-free operation.
+
+=== Manufacturing and assembly terminology
+<manufacturing-and-assembly-terminology>
+
+/ Burn-In: A period of powered operation (typically
+ $qtyrange(168, 1000, "hour")$) that accelerates initial component
+ stabilization before final calibration.
+/ Surface Insulation Resistance ($upright("SIR")$): The resistance between
+ adjacent conductors on a PCB surface, affected by flux residue, contamination,
+ and humidity. $upright("SIR")$ above $qty(10, "giga ohm")$ is required for
+ Metrologic tier.
+/ Conformal Coating: A thin protective polymer layer applied to PCBs after
+ assembly to protect against moisture, contamination, and surface leakage.
+/ ESD (Electrostatic Discharge): The sudden flow of electricity between objects
+ at different potentials. ESD can cause immediate failure or latent damage to
+ sensitive semiconductor devices.
+/ Kelvin Connection (Four-Wire Sensing): A measurement technique that uses
+ separate force and sense conductors to eliminate voltage errors from lead and
+ contact resistance. The SAME $plus.minus qty(10.0000, "V")$ reference uses
+Kelvin connections.
+
== Module categories <module-design-modules-categories>
+SAME modules are classified into three categories based on their primary
+function within the system: Interface Modules, Compute Modules, and Control
+Modules. Each category has distinct requirements and constraints that reflect
+its role in maintaining system precision and usability.
+
+All SAME modules share a common mechanical format: the single-width cassette of
+$qty(38.0, "mm")$ ($qty(1.5, "inch")$) as specified in
+#ref(<cassette-shielding-and-construction>) Dual-width or multi-width modules
+are not permitted. This constraint ensures uniform thermal behavior across the
+system, predictable rack utilization, and simplified inventory management. If a
+function cannot be implemented within the single-width format, the design must
+either be decomposed into multiple cooperating modules or employ external
+enclosures connected via interface modules.
+
+=== Interface modules <module-category-interface-modules>
+
+Interface modules provide bidirectional signal conversion between the SAME
+ecosystem and external formats. Their purpose is to bridge SAME's precision
+analog domain with the outside world — whether that world uses different
+connector standards, different voltage ranges, or fundamentally different signal
+representations.
+
+==== Precision constraints <interface-modules-precision-constraints>
+
+The precision of an interface module is bounded by the least precise format
+involved in the conversion. An interface module converting between SAME and a
+format with inherently lower precision cannot claim to preserve SAME's
+Metrologic tier specifications for signals crossing that boundary.
+
+For example, a module converting SAME signals to consumer line-level audio
+(nominally $plus.minus qty(1, "V")$, with typical THD+N specifications of
+$qtyrange(0.001, 0.01, "percent", delimiter: "\"to\"")$) cannot deliver
+$qty(10, "ppm")$ precision on the audio side regardless of the quality of the
+conversion circuitry. The interface module documentation must clearly state the
+precision limitations imposed by the external format.
+
+Conversely, when an interface module receives signals from a lower-precision
+external source, it must condition those signals to meet SAME's impedance and
+protection requirements, but the precision of the incoming data remains limited
+by its source.
+
+==== Digital logic constraints <interface-modules-digital-logic-constraints>
+
+Interface modules may incorporate digital logic if, and only if, the external
+format requires it. Examples include:
+- MADI interfaces that would require clock recovery and digital-to-analog
+conversion.
+- RF demodulators that would require digital signal processing for carrier
+extraction.
+- Protocol converters for digital communication standards.
+
+When digital logic is present, it must be completely isolated from the analog
+signal path. The module must ensure:
++ No measurable ripple from digital switching reaches the analog outputs.
+Digital supply noise must be attenuated to below the system noise floor
+($qty(632, "uV") upright("RMS")$ for $qty(90, "dB") upright("SNR")$).
++ No RF emissions escape the cassette. The module must meet the EMI shielding
+requirements specified in #ref(<cassette-grounding-requirements>), with
+particular attention to the higher-frequency harmonics generated by digital
+clocks.
++ Digital ground (DGND) and analog ground (AGND) remain strictly separated per
+#ref(<analog-supply-requirements>), with any necessary coupling occurring only
+at a single, well-defined point within the module.
+
+An interface module containing digital logic that fails to meet these isolation
+requirements is non-compliant, regardless of the precision achieved in bench
+testing. The shielding and isolation must be robust against component aging and
+thermal variation over the module's service life.
+
+==== Input/output requirements <interface-module-input-output-requirements>
+
+Interface modules necessarily deviate from the standard SAME I/O format on their
+external-facing side. The external connector type is determined by the format
+being interfaced (BNC, XLR, DB-25, optical, etc.). However, the SAME-facing side
+of an interface module must use standard 4mm banana jacks conforming to
+#ref(<signal-standards>).
+
+Interface modules must provide clear panel markings indicating which jacks
+connect to the SAME domain and which connect to the external format. Color
+coding should follow SAME conventions on the internal side and the conventions
+of the external format (if any) on the external side.
+
+=== Compute modules <module-category-compute-modules>
+
+Compute modules form the mathematical core of the SAME system. They perform
+precisely defined operations on input signals and produce output signals
+representing the results. The requirements for compute modules are the most
+stringent of the three categories, as they must maintain the precision
+specifications that enable meaningful analog computation.
+
+==== Interface requirements <compute-modules-interface-requirements>
+
+Compute modules must use exclusively 4mm banana jacks for all signal input and
+output. No physical controls (potentiometers, switches, or other manual
+adjustment mechanisms) are permitted on compute modules.
+
+This constraint exists for two reasons:
+/ Precision: Physical controls introduce mechanical variability, contact
+resistance drift, and temperature-dependent behavior that compromise
+repeatability. A computation that depends on a front-panel potentiometer
+position cannot be precisely documented or reproduced.
+/ Documentation: The complete mathematical behavior of a compute module must be
+determinable from its panel labeling and the patch connections. External
+control voltages provide the same functionality as physical controls while
+remaining within the documented signal flow.
+
+If adjustable parameters are required for a computation, they must be provided
+via control voltage inputs, which can be sourced from Control Modules or from
+other points in the patch. This makes all parameters explicit in the patch
+documentation.
+
+==== Functional specification <compute-modules-functional-specifications>
+
+Each compute module must implement exactly one mathematical function. This
+function may be piecewise-defined (as with absolute value, min/max, or the Chua
+function), but it must be expressible as a single mathematical relationship
+between inputs and outputs.
+
+The implemented function must be written on the front panel using standard
+mathematical notation. The notation must be sufficiently complete that a user
+unfamiliar with the specific module can determine the input-output relationship.
+
+For example:
+- A summer might display: $z = sum_i x_i$
+- A multiplier might display: $z = (x y)/qty(10, "V")$
+- A bounded integrator might display:
+$z = integral x upright(d) t; z_e in [qty(-10, "V"), plus qty(10, "V")]$
+
+Complex functions requiring extensive notation may use a symbolic abbreviation
+on the panel with full documentation in the module manual, but the abbreviation
+must be unambiguous and the manual must be readily accessible.
+
+==== Error handling <compute-modules-error-handling>
+
+Compute modules must expose error conditions via dedicated error gate outputs.
+Two categories of errors must be distinguished:
++ Out-of-domain errors occur when an input signal falls outside the mathematical
+domain of the implemented function. Examples include negative inputs to a
+square root function, zero divisors, or inputs exceeding the valid range for a
+logarithm. The module must implement one of the handling strategies defined in
+#ref(<out-of-domain-handling-strategies>) and document which strategy is used.
++ Internal errors occur when the module's circuitry cannot maintain its
+precision specification despite valid inputs. Examples include servo unlock
+conditions, soft saturation in PWAM modulators, or clipping due to internal
+headroom limitations.
+
+Out-of-domain errors and internal errors must never be aggregated onto a single
+error gate. A user must be able to distinguish between "my input is
+mathematically invalid" and "the module is operating outside its designed
+regime."
+
+For multichannel modules, each channel should have independent error gates where
+panel space permits. If space constraints require aggregation, errors from
+different channels may be combined (with documentation), but the
+out-of-domain/internal distinction must be preserved per channel.
+
+==== Channel independence <compute-modules-channel-independence>
+
+Compute modules with multiple channels (e.g., "Quad Logarithm" or "Dual
+Integrator") must ensure that all channels are functionally identical and
+operationally independent. Specifically:
+/ Identical transfer function: Every channel must implement the same
+ mathematical function with the same precision specifications. Component
+ tolerances may cause small channel-to-channel variations, but these must fall
+ within the module's stated precision tier.
+/ No crosstalk: Signals on one channel must not measurably affect signals on
+ other channels. Crosstalk isolation must exceed the module's $upright("SNR")$
+ specification by at least $qty(10, "dB")$.
+/ Independent error states: An out-of-domain error condition on one channel must
+ not affect the operation or error state of other channels. An internal error
+ should not.
+
+Channel independence allows users to treat multichannel modules as equivalent to
+multiple single-channel modules for purposes of patch design and error analysis.
+The only shared resources are power supply and mechanical housing.
+
+=== Control modules <module-category-control-modules>
+
+Control modules provide human interface to the SAME system. They generate
+control voltages through physical manipulation (knobs, faders, joysticks) or
+through preset configurations (precision constant generators, switch banks).
+Unlike compute modules, they are explicitly permitted to include mechanical
+controls.
+
+==== Precision requirements <control-modules-precision-requirements>
+
+Control modules may operate at reduced precision compared to compute modules.
+The nature of human control inherently limits repeatability — a performer cannot
+reliably position a knob to $qty(10, "ppm")$ accuracy. However, the precision
+that is achieved must be predictable and documented.
+
+A control module must specify:
++ The resolution of its output (e.g., "10-bit effective resolution" or
+ "$qty(0.1, "percent")$ setting accuracy").
++ The repeatability of its output (e.g., "returns to within
+ $qty(0.5, "percent")$ of a marked position").
++ The drift characteristics of its output under stable input conditions.
+
+Predictability matters more than absolute precision for control modules. A fader
+that consistently outputs $qty(4.973, "V")$ at its marked "$qty(5, "V")$"
+position is more useful than one that outputs values uniformly distributed
+between $qty(4.95, "V")$ and $qty(5.05, "V")$. Users can compensate for
+consistent offsets; they cannot compensate for randomness.
+
+==== External control enclosures <control-modules-external-control-enclosures>
+
+Some control interfaces cannot be implemented within the $qty(38.0, "mm")$
+single-width cassette format. Examples include:
+- Large mixing-console-style faders requiring panel heights exceeding
+ $qty(4, "U")$.
+- Multi-axis joysticks that would require depth beyond the cassette dimensions.
+- Touch surfaces or other extended interface devices.