From 1a0dad31d924cfeaa5f98100eff24f36623d5131 Mon Sep 17 00:00:00 2001 From: Denis Chevalier Date: Fri, 7 Aug 2026 23:34:44 +0200 Subject: Start writing specification --- electrical-specifications.typ | 587 ++++ introduction.typ | 281 ++ main.pdf | 7297 +++++++++++++++++++++++++++++++++++++++++ main.typ | 79 + mechanical-specifications.typ | 69 + 5 files changed, 8313 insertions(+) create mode 100644 electrical-specifications.typ create mode 100644 introduction.typ create mode 100644 main.pdf create mode 100644 main.typ create mode 100644 mechanical-specifications.typ diff --git a/electrical-specifications.typ b/electrical-specifications.typ new file mode 100644 index 0000000..6d73b5e --- /dev/null +++ b/electrical-specifications.typ @@ -0,0 +1,587 @@ +#import "@preview/unify:0.8.1": qty, qtyrange + += Electrical specifications + +== Signal standards + +=== Voltage range + +There are three types of signals used in the SAME format: + ++ Bipolar signals, ranging from $qty(-10, "V")$ to $plus qty(10, "V")$. ++ Unipolar signals, ranging from $qty(0, "V")$ to $plus qty(10, "V")$. ++ Gate signals, which are either $qty(0, "V")$ (low) or $plus qty(10, "V")$ + (high). Gates represent momentary states, such as a computation error (e.g. + input out of bound) or a logic result (a truthful value being represented as a + high gate). By convention, and to ensure compatibility with other formats, + gate inputs must have a threshold of $plus qty(2.5, "V")$, determined either + at the rising edge or at voltage level (the behavior must be specified in + individual module documentation). + +==== Banana format + +All IO, except when interfacing with other formats, is done on $qty(4, "mm")$ +banana jacks. Banana jacks are stackable and allow passive signal distribution +without the need of dedicated modules. They also allow, when short protection is +strictly enforced (which is the case of SAME format) passive averaging of +outputs: When two short-protected outputs are stacked, the equal output +impedances form a voltage divider, producing the arithmetic mean. + +They are standard on a lot of lab equipment such as digital multimeters. +Their standard spacing ($qty(0.75, "inch")$ grid) allows the use of standard +shorting bars. Furthermore, they are sturdy and reliable. + +However, being unshielded and ungrounded, banana jacks act as RF antennas. This +effectively limits the SNR of the SAME format to $qty(95, "dB")$. This +$qty(95, "dB")$ limit is above the Metrologic tier target of $qty(90, "dB")$, so +banana jacks do not constrain the achievable SNR. + +Users should prefer high quality cables (Pomona or equivalent), +silicone-wrapped, and use the shortest cable length necessary. + +Note that the noise floor of the system can be improved beyond the standard +limitations of banana jacks by using shielded cables with single-ended +grounding. However, to maintain compatibility and accessibility, modules must +not require such cables for normal operation. + +==== Inputs requirements + +All inputs utilize white jacks. They must accept bipolar voltages across the +full $plus.minus qty(10, "V")$ range and the full DC to #qty(20, "kHz") +bandwidth, with precision conforming to the module's declared tier. All inputs +must have an impedance $gt.eq qty(1, "mega ohm")$ (Hi-Z). Inputs must be +protected against RF-induced noise received via the patch cable. RF signals +above 1MHz must be attenuated by at least 40dB at the input. + +===== Out-of-domain handling strategies + +While all inputs must accept bipolar signals, some mathematical functions do not +accept the full range (e.g. logarithm, division, etc.). In that case, the module +must include an out-of-domain handling strategy, and document it: + +#figure( + table( + columns: (auto, auto, auto), + table.header([*Strategy*], [*Description*], [*Example use cases*]), + [Clamp], [Output held at boundary], [Logarithm], + [Hold], [Freeze last valid output], [Integrator], + [Fold], [Reflect at boundary], [Chaotic attractor], + [Wrap], [Wrap around range], [Phase accumulator], + [Oscillate], [Bounded, specified oscillation], [Implicit function solver], + [Zero], [Output $qty(0, "V")$], [Divider], + [Passthrough], [Input passes unchanged], [Signal conditioner], + ), + caption: [Out-of-domain handling stategies], +) + +When such a case occurs, an error gate must be fired on a dedicated error jack +output. On multiple channels modules, there should be one such error gate per +channel. + +==== Output requirements + +Outputs can be either bipolar signals (light blue jack), unipolar signals (light +yellow jack) or gate signals (red jack). + +All outputs must have an impedance $lt.eq qty(10, "ohm")$. This ensures that any +output can be patched into any number of inputs without signal degradation or +loss. Outputs must be short-circuit protected, with fault current limited to +$lt.eq qty(10, "mA")$. + +===== Loading error + +With $Z_"out" lt.eq qty(10, "ohm")$ and $Z_"in" gt.eq qty(1, "mega ohm")$, the +worst-case single-connection loading error is 10ppm, compatible with Metrologic +tier precision. When stacking multiple inputs on a single output via banana +jacks, the parallel input impedance must be considered: + +#figure( + table( + columns: (auto, auto, auto), + table.header([*Inputs stacked*], [*Parallel $Z_"in"$*], [*Loading error*]), + [1], [$qty(1, "mega ohm")$], [$qty(10, "ppm")$], + [4], [$qty(250, "kilo ohm")$], [$qty(40, "ppm")$], + [10], [$qty(100, "kilo ohm")$], [$qty(100, "ppm")$], + [40], [$qty(25, "kilo ohm")$], [$qty(400, "ppm")$], + ), + caption: [Loading error per inputs stacked], +) + +Module designers should document expected fan-out in module specifications. For +typical patches ($lt.eq 10$ connections per output), loading error remains a +small fraction of the Industrial tier budget. + +===== Error gates + +Modules whose mathematical function can produce out-of-domain or internal error +conditions must provide error gates. Modules that cannot produce such conditions +(e.g., a simple attenuator) are exempt. + +Error gates are also considered valid signals and should use $qty(4, "mm")$ red +banana jacks. Modules designers should strive to have one error gate output per +error type per channel. Space constraints may force the module designer to +aggregate multiple error gates (OR operator). In that case, out-of-domain and +internal errors must never be aggregated. + +#figure( + table( + columns: (auto, auto), + table.header([*Source*], [*Category*]), + [Clipping], [Internal], + [PWAM Soft Saturation], [Internal], + [Domain Violation], [Out-of-Domain], + [Passthrough Active], [Out-of-Domain], + [Servo Unlock], [Internal], + ), + caption: [Examples of error gates], +) + +=== Bandwidth + +All signal inputs on a SAME system must accept and give mathematically correct +results for a rate of change ranging from DC ($qty(0, "Hz")$) to at least +$qty(20, "kHz")$). Precision specifications apply within this bandwidth. Are +excluded from this requirement only signals coming from the outside, through +interface modules. In that case, the signal must respect the specifications of +the incoming signal format. + +==== Signals interpretation + +All signals are voltages. Any signal can be used in place of any other signal. +Interpretation of the function of a signal is left to individual module +implementation and computation context (a control voltage in one computation can +be a logic result in another, or a function variable, etc.). + +== Precision tiers + +=== General specification + +We define three precision tiers, with varying precision requirements. Those +three precision tiers must target the same signal range of DC to +$qty(20, "kHz")$ as specified in the signal standards. + +A change of precision tier must not induce a change of PCB: if needed, the PCB +designs should include multiple footprints (notably for various size capacitors) +or jumpers (if a specific sub circuit can be disabled for a lower precision +tier). + +All SAME-compliant designs must at least provide a BOM for the metrologic +precision tier. + +==== Precision measurements conditions + +All precision metrics are measured after one hour of warm-up from a cold start +at ambient temperature. This allows the oven-compensated components to warm-up, +temperature gradients to stabilize, and servo loops to settle. + +===== Temperature + +Measurements are made with an ambient temperature range of +$qtyrange(15, 30, "dC", delimiter: "\"to\"")$, with an hourly variation of +maximum $plus.minus qty(2, "dC")$. Temperature is the main source of drift for +components. While designs should compensate for reasonable temperature +variations, they should expect normal temperature operation conditions, +achievable with a standard HVAC. + +===== Humidity + +Measurements are made within a relative humidity range of +$qtyrange(30, 70, "percent", delimiter: "\"to\"") "RH"$, with an hourly variation of +maximum $plus.minus qty(5, "percent") "RH"$. + +High humidity can cause parasitic leakage paths (nanoamps matter at high-Z +nodes), dielectric changes affecting precision capacitors, and long-term +corrosion. Low humidity can cause electro-static discharges (ESD) risk during +handling and static charge accumulation. + +These requirements ensure that those risks are mostly avoided. They should be +met with easy access humidity control measures and tools. + +===== Atmospheric pressure + +Measurements are made within an atmospheric pressure range from +$qtyrange(800, 1100, "hPa", delimiter: "\"to\"")$, with a daily variation of +maximum $plus.minus qty(50, "hPa")$. + +A low atmospheric pressure impacts convection and temperature regulation. It +also reduces the dielectric strength of the air, inducing a higher risk of +arcing and breakdown. + +Some types of capacitors, relays and switches are sensitive to atmospheric +pressure. The recommended pressure range should allow operation from sea level +to $qty(2000, "m")$ altitude, under normal atmospheric conditions. + +===== Electro-magnetic environment + +RF field immunity must follow EN 61000-4-3 specification ( +$qty(3, "volt per meter")$, $qtyrange(80, 1000, "MHz")$). The magnetic field +should be below $qty(1, "ampere per meter") "DC"$, and below +$qty(0.3, "ampere per meter") "AC"$ (power frequency). SAME equipment should be +at least $qty(1, "m")$ away from switching equipment such as motors, welders +etc. + +While SAME provides strong internal shielding, external electro-magnetic +interference (EMI) beyond specification may degrade the SNR. + +===== Air quality + +SAME equipment should be operated indoors, with clean dust filters (recommended +monthly cleaning). Corrosive gases such as $H_2 S$, $"Cl"_2$, $S O_2$, etc, +conductive particles and salt spray (coastal environment) are not permitted. + +Dust reduces cooling efficiency and can introduce leakage paths. Corrosive gases +degrade the components and contacts. Conductive particles can create short +circuits and leakages. Salt spray is corrosive. + +Those requirements should be met with indoor operation in air-filtered rooms. + +===== Mechanical environment + +SAME equipment should be operated on stable surfaces, free from significant +vibration. Vibration can induce microphonic effects in capacitors and +connectors, affecting precision at high-impedance nodes. + +Operating vibration should be below $qty(0.5, "g")$ ($qtyrange(5, 500, "Hz")$). +Shock should be below $qty(5, "g")$ ($qty(11, "ms")$ pulse). + +These requirements should be met in normal laboratory or studio environments. + +===== Lighting + +Direct sunlight on the chassis should be avoided during precision operation. +Sunlight causes localized heating and thermal gradients. Some precision +semiconductors are photosensitive. + +Normal indoor lighting is acceptable. Modules should not be operated with +cassettes removed in bright light. + +===== Ionizing radiation + +SAME is designed for normal background radiation environments (below +$qty(1, "micro sievert per hour")$). + +Operation near significant ionizing radiation sources such as medical imaging +equipment, nuclear facilities, or particle accelerators is not recommended +without appropriate shielding. Ionizing radiation can increase semiconductor +leakage currents and cause single-event effects. + +At altitudes approaching $qty(2000, "m")$, cosmic ray flux increases +approximately $3 times$ compared to sea level. This is however unlikely to +significantly impact analog precision. + +SAME is not radiation-hardened. Applications requiring radiation tolerance +should seek specialized equipment. + +====== Radioactive source modules + +Some SAME modules (such as true random voltage generators based on radioactive +decay) may contain low-activity sealed radioactive sources. + +These modules: +- Must comply with local regulations regarding exempt-quantity radioactive + materials. The SAME specification does not mandate specific isotopes or + activities; +- Must provide adequate shielding to not affect adjacent modules; +- Must be clearly labeled with radiation symbol and source information; +- Must include handling and disposal instructions. + +The presence of a radioactive source module does not affect the precision +specifications of other modules in the system, provided shielding requirements +are met. + +===== Summary + +#figure( + table( + columns: (auto, auto, auto), + table.header([*Parameter*], [*Range*], [*Variation*]), + [Temperature], [$plus qty(15, "dC") "to" plus qty(30, "dC")$], [$plus.minus qty(2, "celsius per hour")$], + + [Relative humidity], + [$qtyrange(30, 79, "percent", delimiter: "\"to\"") "RH"$], + [$plus.minus qty(5, "percent") "RH"$], + + [Atmospheric pressure], [$qtyrange(800, 1100, "hPa")$], [$plus.minus qty(50, "hecto pascal per day")$], + + [RF immunity], [$qty(3, "volt per meter"), qtyrange(80, 1000, "MHz")$], [N/A], + + [Magnetic field (DC)], [$lt qty(1, "ampere per meter")$], [N/A], + [Magnetic field (AC)], [$lt qty(0.3, "ampere per meter")$], [N/A], + [Vibration], [$lt qty(0.5, "g"), qtyrange(5, 500, "Hz")$], [N/A], + [Shock], [$lt qty(5, "g"), qty(11, "ms")$], [N/A], + [Air quality], [Indoor, filtered], [N/A], + [Lighting], [No direct sunlight], [N/A], + [Background radiation], [$lt qty(1, "micro sievert per hour")$], [N/A], + ), + caption: [Summary of the precision measurements conditions], +) + +Note that electrical supply requirements will be discussed in +#ref(). + +=== Educational tier + +This tier aims for a precision of $qty(0.1, "percent")$ ($qty(1000, "ppm")$), and a SNR of +$qty(70, "dB")$. This tier is intended for lowering the barrier of entry by +reducing the components costs and soldering difficulty. It is suitable for +teaching on circuit topologies and general analog computer patching. At this +level of precision, results are valid within $plus.minus qty(10, "mV")$. + +The maximum drift rate should be inferior or equal to $qty(60, "ppm per hour")$. +We recommend calibration verification before each session. + +=== Industrial tier + +This tier aims for a precision of $qty(0.01, "percent")$ ($qty(100, "ppm")$), and a SNR of +$qty(80, "dB")$. This tier is intended for research, serious experimentation, +and applications requiring repeatable results. It is suitable for control +systems modeling, audio-rate computation, and scientific data acquisition. At +this level of precision, results are valid within $plus.minus qty(1, "mV")$. + +The maximum drift rate should be inferior or equal to +$qty(0.6, "ppm per hour")$. We recommend daily calibration verification. + +=== Metrologic tier + +This tier aims for a precision of $qty(0.001, "percent")$ ($qty(10, "ppm")$), and a SNR of +$qty(90, "dB")$. This tier is intended for precision measurement, long-duration +computation, and applications requiring traceable accuracy. It is suitable for +metrology, reference instrumentation, and extended continuous operation. At this +level of precision, results are valid within $plus.minus qty(0.1, "mV")$. + +The maximum drift rate should be inferior or equal to +$qty(0.014, "ppm per hour")$. We recommend daily calibration verification. + +=== Summary + +#figure( + table( + columns: (auto, auto, auto, auto), + table.header([*Parameter*], [*Educational*], [*Industrial*], [*Metrologic*]), + [*Precision*], + [$qty(0.1, "percent") (qty(1000, "ppm"))$], + [$qty(0.01, "percent") (qty(100, "ppm"))$], + [$qty(0.00, "percent")% (qty(10, "ppm"))$], + + [*SNR*], [$qty(70, "dB")$], [$qty(80, "dB")$], [$qty(90, "dB")$], + [*Result validity*], [$plus.minus qty(0.1, "V")$], [$plus.minus qty(10, "mV")$], [$plus.minus qty(1, "mV")$], + + [*Maximum drift rate*], [$qty(60, "ppm per hour")$], [$qty(0.6, "ppm per hour")$], [$qty(0.014, "ppm per hour")$], + + [*Drift-free computation*], [$approx qty(16, "h")$], [$approx qty(7, "day")$], [$approx qty(30, "day")$], + + [*Calibration verification*], [Before each session], [Daily], [Daily], + ), + caption: [Precision tiers summary], +) + +==== Drift rate derivation + +The drift rates are calculated such that total accumulated drift over the +drift-free computation period consumes approximately $qty(100, "percent")$ of the precision +budget. + +#figure( + table( + columns: (auto, auto, auto, auto), + table.header([*Tier*], [*Precision*], [*Drift rate*], [*Time to drift $qty(100, "percent")$ of budget*]), + [*Educational*], [$qty(1000, "ppm")$], [$qty(60, "ppm per hour")$], [$approx qty(16, "h")$], + + [*Industrial*], [$qty(100, "ppm")$], [$qty(0.6, "ppm per hour")$], [$approx qty(7, "day")$], + + [*Metrologic*], [$qty(10, "ppm")$], [$qty(0.014, "ppm per hour")$], [$approx qty(30, "day")$], + ), + caption: [Drift rate derivations], +) + +== Power distribution + +=== Precision tiers + +We believe that a single system should be able to aggregate modules from +different precision tiers. Power distribution is not a soldering build +accessible to the average builder, due to the integration with mains voltage +(shock risk). For this reason, SAME only admits one set of constraints for the +power distribution, targeting metrologic tier. + +=== Provided power + +==== Power rails + +Power distribution must provide the following voltages: +- $plus.minus qty(15.00, "V")$: Used to power op-amps. +- $plus.minus qty(10.0000, "V")$ Force + Sense (Kelvin Connection): Reference + Voltages used to ensure $qty(10, "ppm")$ precision. +- $qty(10, "MHz")$ Master Oscillator: A high-stability, low-phase-noise sine + wave reference for time-domain computations. +- Stagger ($0$ or $plus qty(15, "V")$, indicates port parity): Used for + time-domain computation cores frequency stagger relative to the master + oscillator’s frequency. +- Analog Ground (AGND): Analog signals return path. +- Digital Ground (DGND): Digital signals return path. +- $plus.minus qty(5.0, "V")$ Digital ($"VD"$): Used to power CMOS and Timers. +- Chassis Earth: For high voltage protection and EMF shielding. + +Note that in this list we use the significant figure convention systematically +to indicate precision requirements. + +==== Power budget + +For 8 modules, the total power budget per $plus.minus qty(15.00, "V")$ rail is +$qty(1.5, "A")$. This permits the use of easily available power supplies for +rack chassis, while giving enough power for compute modules. The total power +budget per $plus.minus qty(5, "VD")$ rail is $qty(800, "mA")$. + +For each module, this means: $approx qty(185, "mA")$ on the +$plus.minus qty(15.00, "V")$, and $qty(100, "mA")$ on the +$plus.minus qty(5, "VD")$ rails. + +==== PWAM frequency staggering + +To limit drift and increase precision in multipliers and time-domain functions, +the system utilizes a global timebase. + +/ Master Oscillator: All modules performing time-domain operations (PWAM, + integration timing, etc.) must accept a $qty(10, "MHz"), qty(1, "Vpp")$ (into + $qty(50, "ohm")$) sine wave via the rear BNC connector. Modules operating + purely in the continuous voltage domain (e.g., standard summers, log amps) may + ignore it. +/ Staggering: Neighboring modules using PWAM should not operate at identical + switching phases/frequencies to prevent intermodulation. The Stagger rail on + the DB-25 connector determines the derivation of the local carrier from the + Master Oscillator. + - Modules receiving $qty(0, "V")$ from the Stagger rail must lock their + carrier frequency to exactly $qty(500, "kHz")$ ($"Master"/20$) with + $qty(0, "degree")$ phase shift. + - Modules receiving $plus qty(15, "V")$ from the Stagger rail must lock their + carrier frequency to $qty(500, "kHz")$ ($"Master"/20$) with a + $qty(90, "degree")$ phase shift, that should be derived via quadrature + division referenced to the $qty(10, "MHz")$ Master. + +==== Cleanliness requirements + +===== $plus.minus qty(15.00, "V")$ analog supply requirements + + +At the module connector, the $plus.minus qty(15.00, "V")$ rails shall maintain +an initial accuracy within $plus.minus qty(7.5, "mV")$ ($plus.minus qty(0.05, "percent")$) at +$qty(25, "dC")$. Line regulation shall be better than $plus.minus qty(1.5, "mV")$ +($qty(0.01, "percent")$) for a $plus.minus qty(10, "percent")$ input voltage variation. Load regulation shall +be better than $plus.minus qty(3.0, "mV")$ ($qty(0.02, "percent")$) over the +full load range ($qtyrange(10, 100, "percent", delimiter: "\"to\"")$). Output +voltage ripple and noise shall not exceed $qty(500, "uVpp")$ over a +$qty(20, "MHz")$ bandwidth. + +===== $plus.minus qty(5.0, "VD")$ digital supply requirements + + +The $plus.minus qty(5.0, "VD")$ rails shall maintain an initial accuracy within +$qty(25, "mV")$ ($plus.minus qty(0.5, "percent")$) at $qty(25, "dC")$. Line +regulation shall be better than $plus.minus qty(5, "mV")$ +($qty(0.1, "percent")$) for a $plus.minus qty(10, "percent")$ input voltage +variation. Load regulation shall be better than $plus.minus qty(10, "mV")$ +($qty(0.2, "percent")$) over the full load range. Output voltage ripple and +noise shall not exceed $qty(5, "mVpp")$ over a $qty(20, "MHz")$ bandwidth. + +===== $plus.minus qty(10.0000, "V")$ reference requirements + + +The $plus.minus qty(10.0000, "V")$ reference rails shall maintain an initial +accuracy within $plus.minus qty(20, "uV")$ ($plus.minus qty(2, "ppm")$) at +$qty(25, "dC")$. Line regulation shall be strictly less than +$qty(2, "micro volt per volt")$ ($qty(0.2, "ppm per volt")$). Load regulation +shall be strictly less than $qty(5, "micro volt per milli ampere")$ +($qty(0.5, "ppm per milli ampere")$). The temperature coefficient must be less +than $qty(0.5, "ppm per celsius")$, and low-frequency noise +($qtyrange(0.1, 10, "Hz", delimiter: "\"to\"")$) shall not exceed +$qty(2, "uVpp")$. + +===== Master oscillator requirements + +The $qty(10, "MHz")$ Master Oscillator shall demonstrate frequency stability +inferior or equal to $qty(10, "ppb")$ (parts per billion) over the full +operating temperature range. Phase noise shall be inferior or equal to +$qty(-140, "dBc per Hz")$ at a $qty(1, "kHz")$ offset. + +===== Grounding rules + +- Analog returns to AGND only. +- Digital returns to DGND only. +- Modules shall not bridge AGND and DGND. Modules containing both analog and + digital circuitry must maintain internal ground separation and connect each + to the appropriate backplane ground. +- Chassis Earth is only used for chassis grounding, EMF shielding and high + voltage protection. +- The power distribution board should provide state of the art ground management + (e.g. star point). + +=== Power distribution calibration + +At power distribution board level, we do not have access to a source of truth +for automatic calibration. We must accept manual, repeatable calibration +methods. This method should be insensitive to drift (in opposition to trimmers +that are notoriously unstable). + +To ensure high precision without drift as specified in the precision tiers +section, the $plus.minus qty(10.0000, "V")$ must be calibrated. The only +accepted method of calibration is Drift-Free, discrete steps, repeatable +topologies, for instance: through two switches (coarse, fine) into a resistor +ladder (R2R) digital-to-analog converter (DAC). The switches must be accessible +on the chassis front panel, next to a $plus qty(10.0000, "V")$ reference, a +$qty(-10.0000, "V")$ reference and an AGND jack (respectively yellow, blue and +black). + +The other power rails may also be calibrated, through dip-switches and R2R DACs +on the power distribution board PCB. + +==== Standby switch + +Since the reference voltages depend on an oven stabilized buried zener diode and +an ovenized crystal oscillator, the front panel must provide a standby switch, +to shut down the unit while maintaining the diode at temperature. The standby +mode power consumption should not exceed 200mA. + +#figure( + [``` + Calibration Coarse: Position X + Calibration Fine: Position Y + +15.00V DIP: 0bXXXXXXXX + -15.00V DIP: 0bXXXXXXXX + Ambient Temperature: XX°C + Date: YYYY-MM-DD + Reference DMM: [model, cal date] + ```], + caption: "Example of calibration log", +) + +=== Backplane connector + +Power is distributed from the power distribution board to modules with a +DB-25 cable: female port panel mounted on module cassette, and PCB mounted on +power distribution board, a short DB-25 male to male cable is used to connect +the cassette to the power distribution board. D-sub connectors are ubiquitous, +sturdy and shielded. + +#figure( + table( + columns: (auto, auto, auto, auto), + table.header([*Pin*], [*Signal*], [*Pin*], [*Signal*]), + [1], [$plus qty(15.00, "V")$], [14], [AGND], + [2], [$plus qty(15.00, "V")$], [15], [AGND], + [3], [$qty(-15.00, "V")$], [16], [AGND], + [4], [$qty(-15.00, "V")$], [17], [DGND], + [5], [AGND], [18], [DGND], + [6], [AGND], [19], [$plus qty(5.0, "VD")$], + [7], [AGND], [20], [$qty(-5.0, "VD")$], + [8], [$plus qty(10.0000, "V")$ Force], [21], [Stagger], + [9], [$plus qty(10.0000, "V")$ Sense], [22], [_Reserved_], + [10], [$qty(-10.0000, "V")$ Force], [23], [_Reserved_], + [11], [$qty(-10.0000, "V")$ Sense], [24], [_Reserved_], + [12], [AGND], [25], [Chassis Earth], + [13], [AGND], [Shell], [Chassis Earth], + ), + caption: "DB-25 backplane connector pin allocation", +) + +The $qty(10, "MHz")$ Master Oscillator is distributed via a dedicated rear-panel +BNC connector, not through the DB-25 backplane connector. diff --git a/introduction.typ b/introduction.typ new file mode 100644 index 0000000..8631e46 --- /dev/null +++ b/introduction.typ @@ -0,0 +1,281 @@ +#import "@preview/unify:0.8.1": add-unit, qty + +// All units for the specification should be specified here +#add-unit("ppm", "ppm", "upright(\"ppm\")") +#add-unit("ppb", "ppb", "upright(\"ppb\")") +#add-unit("inch", "\"", "upright(\"\\\"\")", space: false) +#add-unit("digital voltage", "VD", "upright(\"VD\")") +#add-unit("volt peak-to-peak", "Vpp", "upright(V_\"pp\")") +#add-unit("milli volt peak-to-peak", "mVpp", "upright(\"mV\"_\"pp\")") +#add-unit("micro volt peak-to-peak", "uVpp", "upright(mu V_\"pp\")") +#add-unit("dBc", "dBc", "upright(\"dBc\")") // decibels relative to the carrier +#add-unit("rack unit", "U", "upright(U)", space: false) + += Introduction + +== What is analog computing? + +Analog computing is the action of leveraging the properties of physical +phenomena to model mathematical principles. The actual phenomena can be as +diverse as hydraulics, mechanics, or electrics. In an electronic analog +computer, voltages represent variables and operational amplifier circuits +perform mathematical operations on them. + +Modeling the mathematical principles being computed implies that the results are +continuous in time and amplitude. This directly contrasts digital computing, +where results are symbolic and discrete. + +== Short history of analog computing + +=== Mechanical and hydraulic analog computers + + +Analog computing traces its roots to ancient Greece, with the Antikythera +mechanism. It re-emerged time and time again across the ages, notably with the +invention of the Slide Rule for computation of multiplications and divisions in +the 1620s, and Lord Kelvin's Tide-Predicting machine invented in 1872. +Mechanical or hydraulic analog computers (sometimes electronically controlled) +continued to be the standard until the late 1950s. + +=== First electronic analog computers + +In 1941, Karl D. Swartzel Jr. of Bell Labs patented the first operational +amplifier (op-amp). 1942 saw the birth of the first fully electronic analog +computer for real-time computation by Helmut Hölzer, to calculate V-2 rocket +trajectories. In 1950, Gilbert D. McCann, Charles H. Wilts, and Bart Locanthi +developed the "Direct Analogy Electric Analog Compute" ("the largest and most +impressive general-purpose analyzer facility for the solution of field +problems" - James S. Small, "The Analogue Alternative: The Electronic Analogue +Computer in Britain and the USA, 1930-1975" Routledge in 2001). + +In 1960, the first educational electronic analog computer, the Heathkit EC-1, +was released. It was programmed with patch cords and featured nine operational +amplifiers (op-amps). + +In the late 1960s, electronic analog computer designs were published in +electronics magazines. This is notably the case for the PEAC (Practical +Electronics Analog Computer), published in 1968 in Practical Electronics. + +=== Golden age of electronic analog computers + + +Starting with the EAI PACE TR-48, produced by Electronic Associates Inc. in +1961, hybrid computers became the industry standard for high-performance tasks. +These machines combined the speed of analog computation for solving differential +equations with the logical control and storage of digital computers. They were +heavily utilized in the aerospace and automotive industries for real-time +simulation — such as modeling the Space Shuttle's flight dynamics or nuclear +power plant operations — tasks where purely digital computers of the era were +still too slow. + +=== Decline of analog computing + +The decline began in the late 1970s and accelerated swiftly throughout the +1980s, driven by the "Digital Revolution." While analog computers were fast, +they suffered from physical limitations like noise floors and component aging +(drift), which limited their precision compared to the perfect repeatability of +digital machines. Furthermore, programming an analog computer required +physically rewiring "patch cords," a laborious process compared to the rapidly +evolving software-based programming of digital systems. + +=== Current times + +A new rise of analog computing is currently underway, often referred to as +"Neuromorphic Computing" or "In-Memory Computing". This generation uses the +physical properties of memory devices (like resistance) to perform calculations, +mimicking the neural structure of the human brain to process information. In +2021, startup Mythic introduced the M1076 Analog Matrix Processor, a chip that +performs AI inference using the analog currents inside flash memory cells, +delivering up to 25 TOPS (Trillion Operations Per Second) at incredibly low +power. Mythic filed for bankruptcy in 2024, but managed to raise \$125 million +in December 2025, showing that there is still turbulence in the neuromorphic +startup space. + +The field is still very active, notably with the Innatera Pulsar or the Applied +Brain Research TSP1, both released in 2025. + +== The case for modern general purpose analog computers + + +We believe the time is ripe for a revival of the General Purpose Analog +Computer. Reintroducing general-purpose analog computing is not an exercise in +retro-computing; it is a solution to specific modern problems. By combining the +transparency of "Golden Age" architectures with modern low-noise components, we +can achieve a new standard of computing that is sustainable, secure, and +strategically independent. + +=== Theoretical capabilities + +Historically, the General Purpose Analog Computer (GPAC) was perceived as being +limited to solving differential equations, distinct from the universal logic of +Turing Machines. However, this distinction assumes a finite system. In a +sufficiently large analog system (the same way a digital computer is a Turing +Machine assuming sufficiently large memory), the combinatorial logic required +for universal computation is inherent in the topology. + +We do not rely on discrete "extensions" like Sample & Hold to achieve Turing +Completeness; we use them merely for convenience. The $I$$(I x = x)$, $K$$(K x y + = x)$ and $S$$(S x y z = x z(y z))$ Combinators (which are sufficient for +Turing Completeness) are not a special digital mode; they are a description of +signal distribution and modulation that exists in every analog patch. With +enough modules, the "patch" becomes a computational engine of unbounded +complexity, capable of recursive structures defined purely by feedback loops +rather than iterative loops. This argument will be fully developed in further +sections. + +=== Technological sovereignty + +In an era of chip shortages and trade restrictions, reliance on $qty(5, "nm")$ +or $qty(3, "nm")$ silicon creates critical vulnerabilities. A computer built +from standard through-hole operational amplifiers and passive components does +not require a multi-billion dollar foundry. It can be assembled in a standard +electronics lab anywhere in the world. + +With a 100% open-source design and macro-scale components, the hardware is fully +auditable. There are no hidden "black box" intellectual property cores or +potential hardware backdoors, ensuring high confidence in the computing +substrate for sensitive modeling. + +=== Cost and accessibility + +High-performance simulation usually requires expensive workstations or licensing +fees for proprietary software. By utilizing off-the-shelf components (common +op-amps, resistors, standard capacitors), the Bill of Materials (BOM) is a +fraction of the cost of a modern FPGA or GPU-based accelerator. The +"Through-Hole First" design philosophy means these machines can be produced, +modified, and repaired by students, hobbyists, or labs in developing nations, +without the need for robotic surface-mount assembly lines. + +=== Energy efficiency + +While digital computers must toggle millions of transistors at gigahertz speeds +to approximate a differential equation, an analog computer simply is the +equation. Solving a complex set of coupled differential equations on this +standard requires only the static power to bias the amplifiers. It avoids the +massive dynamic power consumption associated with the high-frequency clock +cycles of digital processors. Using an analog architecture delivers results with +significantly lower total energy consumption per solution, aligning with global +goals for reduced carbon footprints in data processing. This will be fully +developed in further sections. + +=== Sustainability through repairability + +A 100% through-hole and open-source design ensures that every component is +human-accessible. There are no microscopic BGA chips; the machine can be +maintained indefinitely, breaking the environmentally destructive cycle of +planned obsolescence. It essentially enforces the right to repair while allowing +a reduction of e-waste. + +== The SAME Analog Modular Ecosystem + +With this specification, we introduce a new analog computing ecosystem. We +believe that with the right infrastructure, modern components and the advances +in electronics research, we can now build analog computers that address the +three main points that caused the decline of analog computing in the 1980s: +cost, precision and drift. + +=== Making analog computers reliable and sustainable + + +Electronics components are cheaper than ever right now. Op-amps that once cost +hundreds of euros now cost at most a few dozen euros. PCB manufacturing is +democratized. The material conditions are here. New advances in electronics +research have solved the two remaining issues: drift and precision: with a +combination of laser-trimmed components and topological advancements (servo +loops, automated gain control, pulse width amplitude modulation, etc.), it is +now possible to design analog circuits that are able to reach 0.001% precision +(10ppm), over a $qty(90, "dB")$ signal to noise ratio (SNR), in a bandwidth +ranging from DC to more than $qty(20, "kHz")$. + +=== What SAME is not + +SAME is not a modular synthesizer format. It is not Eurorack, Serge or Buchla. +While those synthesizer formats are based on general purpose analog computers, +they are not designed for precision computations or repeatability. While SAME +can be used for sound design or experimental composition, it does not provide +the abstractions and simplifications that make synthesizers powerful. + +SAME is not a digitally controlled or calibrated analog computer. It focuses on +fully analog computer topologies. It advocates a "what you see is what you get" +approach. It has no presets, no patch memory. But it is precise enough that a +patch sheet and a pen and paper allow full patch repeatability. We believe this +approach is needed as it is more educational, and eliminates black boxes in +programming (patches) and design (topologies). It is also more sustainable, as +a design doesn't depend on a microcontroller and code that might fail and be out +of production in five years. + +SAME is not a system on a chip (SOC). The revival of analog computing in the +2020s has been mainly driven by SOCs. We do recognize the importance of this +approach, and its many benefits, notably in energy consumption. However, SOCs +require digital control. With SAME, we aim at creating an infrastructure for +sustainable electronics. A unit built in 2026 should still work in 2076. Some +parts will have been changed, but by focusing on through-hole parts in +production at the time of designing, we ensure that a human with a soldering +iron will be able to repair them. + +=== The scope of this specification + +In this specification, we will provide full details and rationale behind the +SAME format. We will provide schematics, gerber files, CAD files, as well as +ngspice simulations of a reference implementation. We will provide a validation +methodology for our precision claims, as well as the data to support them. + +Finally, we will propose a tiered approach to precision: we believe that a +topology that manages 10ppm precision and $qty(90, "dB SNR")$ SNR over DC to +$qty(20, "kHz")plus$ bandwidth is worth using and studying even with a lower +precision target of $qty(100, "ppm")$ or $qty(1000, "ppm")$. While to achieve +$qty(10, "ppm")$ some parts might get expensive due to their very high +precision, someone could still achieve great reliability with lower precision +parts. For this reason, while we will propose only one specification for the +SAME chassis and power distribution, for each module in the reference +implementation, we will propose three bills of material (BOM): Educational, +aiming at $qty(1000, "ppm")$; Industrial, aiming at $qty(100, "ppm")$; and +Metrologic aiming at $qty(10, "ppm")$. + +=== Reader's guide + +We recommend a reader not familiar with the field to first read this +specification sequentially. Sections 2 and 3 will develop the core +specifications of the SAME ecosystem. Section 4 will specify the module design +principles that allows it to achieve its precision goals. Section 5 will explain +how to verify conformity of a SAME product with this specification. Section 6 +will present a reference implementation of the system. Finally, sections 7 and 8 +will show how and when to use a SAME Analog Computer. + +== Document conventions + +To ensure interoperability between modules, chassis backplanes, and signal +routing standards within the SAME Analog Modular Ecosystem, this specification +utilizes specific keywords to denote requirement levels. + +The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, +RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as +described in IETF RFC 2119. + +/ MUST / SHALL / REQUIRED: These terms indicate an absolute requirement of the + specification. Hardware or documentation that fails to meet these criteria is + non-compliant. Imperative statements (commands) that do not employ specific + keywords are also considered to be in this default state. + - Example: "The reference voltage rail MUST maintain stability within ±0.01% + of the nominal 10V output." +/ MUST NOT / SHALL NOT: These terms indicate an absolute prohibition of the + specification. + - Example: "Signal ground MUST NOT be tied directly to the chassis earth at + the module level." +/ SHOULD / RECOMMENDED: These terms indicate that there may exist valid reasons + in particular circumstances to ignore a particular item, but the full + implications must be understood and carefully weighed and documented before + choosing a different course. + - Example: "Input impedance for operational amplifiers SHOULD exceed 1MΩ to + minimize loading effects." +/ SHOULD NOT / NOT RECOMMENDED: These terms indicate that there may exist valid + reasons in particular circumstances when the particular behavior is acceptable + or even useful, but the full implications should be understood and the case + carefully weighed and documented before implementing any behavior described + with this label. +/ MAY / OPTIONAL: These terms indicate that an item is truly optional. One + vendor may choose to include the item because a particular marketplace + requires it or because the vendor feels that it enhances the product while + another vendor may omit the same item. + - Example: "The integration module MAY include a digital overflow indicator + LED." diff --git a/main.pdf b/main.pdf new file mode 100644 index 0000000..7b39a42 --- /dev/null +++ b/main.pdf @@ -0,0 +1,7297 @@ +%PDF-1.7 +%€€€€ + +1 0 obj +<> +endobj +2 0 obj +<> +endobj +3 0 obj +<> +endobj +4 0 obj +<> +endobj +5 0 obj +<> +endobj +6 0 obj +<> +endobj +7 0 obj +<> +endobj +8 0 obj +<> +endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +11 0 obj +<> +endobj +12 0 obj +<> +endobj +13 0 obj +<> +endobj +14 0 obj +<> +endobj +15 0 obj +<> +endobj +16 0 obj +<> +endobj +17 0 obj +<> +endobj +18 0 obj +<> +endobj +19 0 obj +<> +endobj +20 0 obj +<> +endobj +21 0 obj +<> +endobj +22 0 obj +<> +endobj +23 0 obj +<> +endobj +24 0 obj +<> +endobj +25 0 obj +<> +endobj +26 0 obj +<> +endobj +27 0 obj +<> +endobj +28 0 obj +<> +endobj +29 0 obj +<> +endobj +30 0 obj +<> +endobj +31 0 obj +<> +endobj +32 0 obj +<> +endobj +33 0 obj +<> +endobj +34 0 obj +<> +endobj +35 0 obj +<> +endobj +36 0 obj +<> +endobj +37 0 obj +<> +endobj +38 0 obj +<> +endobj +39 0 obj +<> +endobj +40 0 obj +<> +endobj +41 0 obj +<> +endobj +42 0 obj +<> +endobj +43 0 obj +<> +endobj +44 0 obj +<> +endobj +45 0 obj +<> +endobj +46 0 obj +<> +endobj +47 0 obj +<> +endobj +48 0 obj +<> +endobj +49 0 obj +<> +endobj +50 0 obj +<> +endobj +51 0 obj +<> +endobj +52 0 obj +<> +endobj +53 0 obj +<> +endobj +54 0 obj +</Dest 1517 0 R>> +endobj +55 0 obj +</Dest 1518 0 R>> +endobj +56 0 obj +</Dest 1519 0 R>> +endobj +57 0 obj +<> +endobj +58 0 obj +<> +endobj +59 0 obj +<> +endobj +60 0 obj +<> +endobj +61 0 obj +<> +endobj +62 0 obj +<> +endobj +63 0 obj +<> +endobj +64 0 obj +<> +endobj +65 0 obj +<> +endobj +66 0 obj +<> +endobj +67 0 obj +<> +endobj +68 0 obj +<> +endobj +69 0 obj +<> +endobj +70 0 obj +<> +endobj +71 0 obj +<> +endobj +72 0 obj +<>/K[1378 0 R]/ParentTree<>/IDTree<>/ParentTreeNextKey 100>> +endobj +73 0 obj +[92 0 R 93 0 R 94 0 R 96 0 R 97 0 R 99 0 R 100 0 R 103 0 R 103 0 R 103 0 R 104 0 R 104 0 R] +endobj +74 0 obj +[105 0 R 106 0 R 107 0 R 107 0 R 110 0 R 111 0 R 111 0 R 114 0 R 115 0 R 115 0 R 118 0 R 119 0 R 119 0 R 122 0 R 123 0 R 123 0 R 126 0 R 127 0 R 127 0 R 130 0 R 131 0 R 131 0 R 134 0 R 135 0 R 135 0 R 139 0 R 140 0 R 140 0 R 143 0 R 144 0 R 144 0 R 147 0 R 148 0 R 148 0 R 151 0 R 152 0 R 152 0 R 155 0 R 156 0 R 156 0 R 159 0 R 160 0 R 160 0 R 164 0 R 165 0 R 165 0 R 168 0 R 169 0 R 169 0 R 172 0 R 173 0 R 173 0 R 176 0 R 177 0 R 177 0 R 180 0 R 181 0 R 181 0 R 185 0 R 186 0 R 186 0 R 190 0 R 191 0 R 191 0 R 194 0 R 195 0 R 195 0 R 198 0 R 199 0 R 199 0 R 202 0 R 203 0 R 203 0 R 206 0 R 207 0 R 207 0 R 210 0 R 211 0 R 211 0 R 215 0 R 216 0 R 216 0 R 219 0 R 220 0 R 220 0 R 223 0 R 224 0 R 224 0 R 229 0 R 230 0 R 230 0 R 233 0 R 234 0 R 234 0 R 239 0 R 240 0 R 240 0 R 243 0 R 244 0 R 244 0 R 247 0 R 248 0 R 248 0 R 251 0 R 252 0 R 252 0 R 255 0 R 256 0 R 256 0 R 259 0 R 260 0 R 260 0 R 263 0 R 264 0 R 264 0 R 267 0 R 268 0 R 268 0 R 271 0 R 272 0 R 272 0 R 275 0 R 276 0 R 276 0 R 279 0 R 280 0 R 280 0 R 283 0 R 284 0 R 284 0 R 288 0 R 289 0 R 289 0 R 294 0 R 295 0 R 295 0 R 298 0 R 299 0 R 299 0 R 302 0 R 303 0 R 303 0 R] +endobj +75 0 obj +[306 0 R 307 0 R 307 0 R 310 0 R 311 0 R 311 0 R 316 0 R 317 0 R 317 0 R 320 0 R 321 0 R 321 0 R 324 0 R 325 0 R 325 0 R 328 0 R 329 0 R 329 0 R 332 0 R 333 0 R 333 0 R 336 0 R 337 0 R 337 0 R 340 0 R 341 0 R 341 0 R 344 0 R 345 0 R 345 0 R 345 0 R 345 0 R 345 0 R 345 0 R 345 0 R 346 0 R 346 0 R 349 0 R 350 0 R 350 0 R 350 0 R 350 0 R 351 0 R 351 0 R 354 0 R 355 0 R 355 0 R 355 0 R 355 0 R 355 0 R 355 0 R 355 0 R 355 0 R 355 0 R 356 0 R 356 0 R 359 0 R 360 0 R 360 0 R 363 0 R 364 0 R 364 0 R 369 0 R 370 0 R 370 0 R 373 0 R 374 0 R 374 0 R 378 0 R 379 0 R 379 0 R 384 0 R 385 0 R 385 0 R 388 0 R 389 0 R 389 0 R 392 0 R 393 0 R 393 0 R 396 0 R 397 0 R 397 0 R 400 0 R 401 0 R 401 0 R] +endobj +76 0 obj +[408 0 R 409 0 R 410 0 R 410 0 R 413 0 R 414 0 R 414 0 R 417 0 R 418 0 R 418 0 R 421 0 R 422 0 R 422 0 R 425 0 R 426 0 R 426 0 R 429 0 R 430 0 R 430 0 R 433 0 R 434 0 R 434 0 R 437 0 R 438 0 R 438 0 R 441 0 R 442 0 R 442 0 R] +endobj +77 0 obj +[446 0 R 447 0 R 448 0 R 448 0 R] +endobj +78 0 obj +[452 0 R 452 0 R 453 0 R 453 0 R 454 0 R 454 0 R 454 0 R 454 0 R 454 0 R 455 0 R 455 0 R 456 0 R 456 0 R 457 0 R 457 0 R 458 0 R 458 0 R 458 0 R 458 0 R 458 0 R 459 0 R 459 0 R 460 0 R 460 0 R 460 0 R 460 0 R 460 0 R 460 0 R 461 0 R 461 0 R 462 0 R 462 0 R 462 0 R 463 0 R 463 0 R 464 0 R 464 0 R 464 0 R 464 0 R 464 0 R 464 0 R 465 0 R 465 0 R 466 0 R 466 0 R 466 0 R 466 0 R 466 0 R 466 0 R] +endobj +79 0 obj +[467 0 R 467 0 R 468 0 R 468 0 R 468 0 R 468 0 R 468 0 R 468 0 R 468 0 R 468 0 R 468 0 R 469 0 R 469 0 R 470 0 R 470 0 R 471 0 R 471 0 R 471 0 R 471 0 R 471 0 R 472 0 R 472 0 R 473 0 R 473 0 R 473 0 R 473 0 R 473 0 R 480 0 R 480 0 R 474 0 R 475 0 R 475 0 R 475 0 R 475 0 R 475 0 R 475 0 R 480 0 R 476 0 R 477 0 R 477 0 R 477 0 R 477 0 R 477 0 R 477 0 R 477 0 R 480 0 R 478 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 479 0 R 480 0 R 480 0 R 480 0 R 480 0 R 480 0 R 480 0 R 481 0 R 481 0 R 484 0 R 482 0 R 482 0 R 482 0 R 484 0 R 483 0 R 483 0 R 483 0 R 484 0 R 484 0 R 484 0 R 484 0 R 484 0 R 485 0 R 485 0 R 485 0 R 486 0 R 486 0 R 487 0 R 487 0 R 487 0 R 487 0 R 487 0 R 487 0 R] +endobj +80 0 obj +[488 0 R 488 0 R 489 0 R 489 0 R 489 0 R 489 0 R 489 0 R 489 0 R 489 0 R 490 0 R 490 0 R 491 0 R 491 0 R 491 0 R 491 0 R 492 0 R 492 0 R 493 0 R 493 0 R 493 0 R 493 0 R 494 0 R 494 0 R 497 0 R 497 0 R 497 0 R 497 0 R 497 0 R 497 0 R 497 0 R 495 0 R 495 0 R 495 0 R 497 0 R 497 0 R 496 0 R 496 0 R 496 0 R 496 0 R 497 0 R 498 0 R 498 0 R 499 0 R 499 0 R 499 0 R 499 0 R 499 0 R 500 0 R 500 0 R 500 0 R 500 0 R 500 0 R 500 0 R 501 0 R 501 0 R 501 0 R 501 0 R 501 0 R 501 0 R] +endobj +81 0 obj +[502 0 R 502 0 R 503 0 R 503 0 R 503 0 R 512 0 R 512 0 R 504 0 R 504 0 R 504 0 R 512 0 R 505 0 R 505 0 R 505 0 R 505 0 R 505 0 R 512 0 R 512 0 R 506 0 R 506 0 R 506 0 R 506 0 R 512 0 R 507 0 R 507 0 R 507 0 R 507 0 R 507 0 R 512 0 R 508 0 R 508 0 R 508 0 R 512 0 R 512 0 R 512 0 R 512 0 R 512 0 R 509 0 R 509 0 R 509 0 R 509 0 R 509 0 R 512 0 R 510 0 R 510 0 R 510 0 R 510 0 R 512 0 R 512 0 R 511 0 R 511 0 R 511 0 R 512 0 R 513 0 R 513 0 R 514 0 R 514 0 R 514 0 R 514 0 R 514 0 R 514 0 R 515 0 R 515 0 R 516 0 R 516 0 R 516 0 R 516 0 R 517 0 R 517 0 R 517 0 R 518 0 R 520 0 R 520 0 R 520 0 R 520 0 R 520 0 R 523 0 R 524 0 R 524 0 R 527 0 R 529 0 R 532 0 R 533 0 R 536 0 R 538 0 R 538 0 R 538 0 R 541 0 R 542 0 R 542 0 R 542 0 R 542 0 R 545 0 R 547 0 R 547 0 R 547 0 R 547 0 R 549 0 R 551 0 R 551 0 R 551 0 R 554 0 R 555 0 R] +endobj +82 0 obj +[559 0 R 559 0 R 560 0 R 560 0 R 561 0 R 561 0 R 562 0 R 563 0 R 566 0 R 564 0 R 564 0 R 564 0 R 564 0 R 566 0 R 565 0 R 565 0 R 565 0 R 565 0 R 566 0 R 568 0 R 571 0 R 569 0 R 569 0 R 571 0 R 570 0 R 570 0 R 570 0 R 570 0 R 571 0 R 573 0 R 577 0 R 574 0 R 574 0 R 577 0 R 575 0 R 575 0 R 575 0 R 575 0 R 577 0 R 577 0 R 577 0 R 577 0 R 576 0 R 576 0 R 576 0 R 576 0 R 576 0 R 577 0 R 577 0 R 580 0 R 580 0 R 582 0 R 581 0 R 581 0 R 581 0 R 582 0 R 582 0 R 582 0 R 582 0 R 582 0 R 584 0 R 583 0 R 583 0 R 583 0 R 583 0 R 583 0 R 584 0 R 584 0 R 588 0 R 588 0 R 585 0 R 585 0 R 585 0 R 588 0 R 586 0 R 586 0 R 586 0 R 588 0 R 587 0 R 587 0 R 587 0 R 588 0 R 588 0 R 589 0 R 589 0 R 590 0 R 590 0 R 590 0 R 591 0 R 591 0 R 595 0 R 592 0 R 592 0 R 592 0 R 592 0 R 595 0 R 595 0 R 593 0 R 593 0 R 593 0 R 593 0 R 595 0 R 595 0 R 594 0 R 594 0 R 594 0 R 594 0 R 595 0 R 595 0 R 596 0 R 596 0 R 597 0 R 597 0 R 597 0 R] +endobj +83 0 obj +[600 0 R 602 0 R 604 0 R 608 0 R 609 0 R 610 0 R 612 0 R 613 0 R 614 0 R 616 0 R 617 0 R 618 0 R 620 0 R 621 0 R 622 0 R 624 0 R 625 0 R 626 0 R 628 0 R 630 0 R 629 0 R 629 0 R 631 0 R 633 0 R 634 0 R 635 0 R 598 0 R 639 0 R 639 0 R 640 0 R 640 0 R 641 0 R 641 0 R 644 0 R 642 0 R 642 0 R 642 0 R 642 0 R 644 0 R 644 0 R 644 0 R 643 0 R 643 0 R 643 0 R 643 0 R 643 0 R 644 0 R 645 0 R 645 0 R 648 0 R 646 0 R 646 0 R 646 0 R 646 0 R 646 0 R 646 0 R 648 0 R 647 0 R 647 0 R 647 0 R 647 0 R 647 0 R 647 0 R 648 0 R 648 0 R 648 0 R 648 0 R 651 0 R 653 0 R 654 0 R 654 0 R 657 0 R 661 0 R 662 0 R 662 0 R 662 0 R 664 0 R 664 0 R 664 0 R 667 0 R 668 0 R 668 0 R 668 0 R 668 0 R 668 0 R 670 0 R 670 0 R 670 0 R 673 0 R 674 0 R 674 0 R 674 0 R 674 0 R 674 0 R 676 0 R 676 0 R 676 0 R 676 0 R 679 0 R 680 0 R 680 0 R 680 0 R 680 0 R 682 0 R 682 0 R 682 0 R 682 0 R 649 0 R 688 0 R 687 0 R 687 0 R 687 0 R 688 0 R 689 0 R 689 0 R 690 0 R 690 0 R 690 0 R 692 0 R 691 0 R 691 0 R 691 0 R 692 0 R 692 0 R 692 0 R 692 0 R] +endobj +84 0 obj +[695 0 R 697 0 R 701 0 R 702 0 R 704 0 R 705 0 R 707 0 R 708 0 R 710 0 R 711 0 R 713 0 R 714 0 R 693 0 R 718 0 R 718 0 R 721 0 R 721 0 R 719 0 R 719 0 R 721 0 R 720 0 R 720 0 R 720 0 R 720 0 R 721 0 R 721 0 R 721 0 R 721 0 R 722 0 R 722 0 R 723 0 R 723 0 R 723 0 R 724 0 R 724 0 R 725 0 R 725 0 R 727 0 R 727 0 R 726 0 R 726 0 R 726 0 R 726 0 R 727 0 R 728 0 R 728 0 R 728 0 R 729 0 R 730 0 R 730 0 R 731 0 R 731 0 R 731 0 R 732 0 R 732 0 R 735 0 R 733 0 R 733 0 R 733 0 R 733 0 R 733 0 R 733 0 R 733 0 R 733 0 R 733 0 R 735 0 R 735 0 R 734 0 R 734 0 R 734 0 R 734 0 R 735 0 R 735 0 R 735 0 R 736 0 R 736 0 R 739 0 R 737 0 R 737 0 R 737 0 R 737 0 R 737 0 R 737 0 R 737 0 R 737 0 R 737 0 R 739 0 R 739 0 R 739 0 R 738 0 R 738 0 R 738 0 R 738 0 R 739 0 R 740 0 R 740 0 R 740 0 R] +endobj +85 0 obj +[741 0 R 741 0 R 742 0 R 742 0 R 745 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 743 0 R 745 0 R 745 0 R 744 0 R 744 0 R 744 0 R 744 0 R 744 0 R 745 0 R 746 0 R 746 0 R 748 0 R 748 0 R 747 0 R 747 0 R 747 0 R 747 0 R 747 0 R 748 0 R 748 0 R 749 0 R 749 0 R 755 0 R 750 0 R 750 0 R 750 0 R 750 0 R 750 0 R 755 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 751 0 R 755 0 R 755 0 R 752 0 R 752 0 R 752 0 R 752 0 R 752 0 R 752 0 R 755 0 R 753 0 R 753 0 R 753 0 R 753 0 R 753 0 R 753 0 R 753 0 R 753 0 R 755 0 R 755 0 R 754 0 R 754 0 R 755 0 R 756 0 R 756 0 R 757 0 R 757 0 R 761 0 R 761 0 R 758 0 R 758 0 R 758 0 R 761 0 R 759 0 R 759 0 R 761 0 R 760 0 R 760 0 R 760 0 R 761 0 R 761 0 R 762 0 R 762 0 R 762 0 R 763 0 R 764 0 R 764 0 R 765 0 R 765 0 R 770 0 R 766 0 R 766 0 R 766 0 R 766 0 R 770 0 R 767 0 R 767 0 R 767 0 R 767 0 R 767 0 R 767 0 R 767 0 R 767 0 R 770 0 R 768 0 R 768 0 R 770 0 R 769 0 R 769 0 R 769 0 R 769 0 R 770 0 R 771 0 R 772 0 R 772 0 R 773 0 R 773 0 R 774 0 R 774 0 R 775 0 R 775 0 R 777 0 R 776 0 R 776 0 R 776 0 R 776 0 R 776 0 R 776 0 R 777 0 R 778 0 R 778 0 R 778 0 R 781 0 R 779 0 R 779 0 R 779 0 R 779 0 R 779 0 R 781 0 R 780 0 R 780 0 R 781 0 R 781 0 R] +endobj +86 0 obj +[782 0 R 782 0 R 783 0 R 783 0 R 784 0 R 784 0 R 785 0 R 786 0 R 787 0 R 787 0 R 789 0 R 790 0 R 792 0 R 793 0 R 795 0 R 796 0 R 799 0 R 799 0 R 800 0 R 800 0 R 803 0 R 805 0 R 807 0 R 811 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 812 0 R 814 0 R 814 0 R 814 0 R 814 0 R 814 0 R 814 0 R 814 0 R 817 0 R 818 0 R 818 0 R 818 0 R 818 0 R 818 0 R 818 0 R 818 0 R 818 0 R 818 0 R 820 0 R 820 0 R 820 0 R 820 0 R 823 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 824 0 R 826 0 R 826 0 R 826 0 R 826 0 R 826 0 R 826 0 R 826 0 R 826 0 R 829 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 830 0 R 832 0 R 834 0 R 835 0 R 835 0 R 835 0 R 835 0 R 835 0 R 835 0 R 837 0 R 839 0 R 840 0 R 840 0 R 840 0 R 840 0 R 840 0 R 840 0 R 840 0 R 840 0 R 842 0 R 844 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 845 0 R 847 0 R 849 0 R 850 0 R 850 0 R 850 0 R 850 0 R 850 0 R 850 0 R 850 0 R 850 0 R 852 0 R 854 0 R 855 0 R 856 0 R 858 0 R 859 0 R 860 0 R 862 0 R 863 0 R 863 0 R 863 0 R 863 0 R 863 0 R 863 0 R 863 0 R 865 0 R 801 0 R 870 0 R 869 0 R 870 0 R 871 0 R 871 0 R 876 0 R 872 0 R 872 0 R 872 0 R 872 0 R 876 0 R 873 0 R 873 0 R 873 0 R 873 0 R 873 0 R 876 0 R 874 0 R 874 0 R 874 0 R 876 0 R 876 0 R 876 0 R 876 0 R 875 0 R 875 0 R 875 0 R 875 0 R 875 0 R 876 0 R 878 0 R 877 0 R 877 0 R 877 0 R 877 0 R 877 0 R 877 0 R 878 0 R 878 0 R 878 0 R 879 0 R 879 0 R 884 0 R 880 0 R 880 0 R 880 0 R 880 0 R 880 0 R 884 0 R 881 0 R 881 0 R 881 0 R 881 0 R 884 0 R 882 0 R 882 0 R 882 0 R 884 0 R 884 0 R 884 0 R 884 0 R 883 0 R 883 0 R 883 0 R 883 0 R 884 0 R] +endobj +87 0 obj +[886 0 R 885 0 R 885 0 R 885 0 R 885 0 R 885 0 R 885 0 R 885 0 R 886 0 R 886 0 R 8