diff options
Diffstat (limited to 'module-design.typ')
| -rw-r--r-- | module-design.typ | 873 |
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. |
