Trigger/Marker & Event Routing for Instruments
← Back to: Test & Measurement / Instrumentation
Trigger/marker/event routing is not just “sending edges around” — it is building a deterministic chain that can be calibrated, verified, and diagnosed from input to output. The goal is repeatable latency/skew and bounded time-of-arrival uncertainty across route IDs, temperature, and reconfiguration, with evidence (logs + stats) that explains every intermittent fault.
What this page covers (Boundary + practical value)
- Trigger/marker electrical meaning: thresholds, hysteresis, deglitch, termination, and repeatability.
- Event routing: crosspoint/matrix selection, deterministic path IDs, and switch behavior.
- Programmable delay & deskew: step size vs range, monotonicity, drift, and calibration closure.
- Fanout & pulse shaping: buffering, pulse stretch/qualification, and channel-to-channel skew control.
- Time-of-arrival capture on trigger paths: latch points, timestamp/TDC usage, and auditable records.
- Sampling clock trees / PLL jitter cleaners (handled on the High-Speed ADC & Clocking page).
- Backplane / modular chassis architecture details (PXI/AXIe/USB page).
- Network time sync (PTP/TSN) implementation details (I/O & Comms page).
- EMC filter-network design as a standalone topic (EMC / Shielding & Guarding page).
- Set and prove a skew target (e.g., p99 inter-channel skew < X ps) using a repeatable edge source, path IDs, and temperature points.
- Suppress false triggers without missing real events using hysteresis + deglitch + qualification windows, while keeping latency/jitter inside a defined budget.
- Make routing auditable by recording route ID, delay code, qualification state, calibration version, and ToA statistics for each run.
The routing chain is treated as an engineering object with measurable timing behavior (latency, skew, jitter, drift), not as a “wiring convenience”. Each block above contributes a distinct term to the time-of-arrival uncertainty budget, so calibration and validation must be designed into the routing fabric.
Trigger/Marker signal taxonomy (what matters electrically)
A trigger path fails in real systems for one of two reasons: (1) the event is not consistently detectable, or (2) the event is detectable but not consistently timed. The taxonomy below maps each electrical dimension to what must be measured, what must be controlled, and what commonly breaks repeatability across cables, ports, and temperature.
- Primary risks: false trigger and missed trigger.
- Timing focus: repeatable start latency after event qualification.
- Primary risks: ToA uncertainty and channel-to-channel skew drift.
- Timing focus: consistent time-of-arrival position across routes and temperature.
A practical definition of “repeatable event detectability” is: a single physical event produces one qualified digital edge, and its crossing time stays inside a bounded distribution across ports, cables, and temperature. The figure below makes the key mechanism visible: noise and ringing near the threshold become multiple crossings and time-walk, unless hysteresis and deglitch windows are engineered explicitly.
- Hysteresis reduces multi-crossings near the threshold; it must be treated as a timing-control knob, not just “noise immunity”.
- Deglitch/qualification must be specified in time units (ns) and validated under ringing/termination changes.
- Termination and edge-rate control directly affect ToA uncertainty via ringing-induced time-walk.
Event routing architecture (crosspoint, matrices, and path determinism)
Event routing must be treated as a timing fabric, not a wiring convenience. A route is not fully defined by “which input connects to which output”; it is defined by a path ID that carries a measurable timing signature: latency distribution, switch transient behavior, and susceptibility to trigger-path crosstalk.
- Path delay repeatability: p95/p99 and worst-case drift per path ID across temperature and reboots.
- Route-switch transients: settle time after a route update, plus glitch/extra-edge detection counts.
- Unused-path coupling: crosstalk-induced false triggers or time-walk when neighboring paths are active.
- Configuration auditability: route map snapshot (path ID) + delay codes + qualification state + calibration version.
- Best for: small channel counts; rarely changing topologies; minimal reconfiguration.
- Strength: fewer hidden paths → easier timing proofs and simpler diagnostics.
- Acceptance focus: path delay repeatability; “no-glitch” verification on infrequent switching.
- Best for: many-to-many routing; field reconfiguration; complex trigger distribution.
- Risk: path-dependent delay; switch transient glitches; coupling from unused lines.
- Acceptance focus: per path ID timing characterization + switch settle time + glitch counters.
- Best for: reducing coupling and limiting uncertainty by localizing high-edge activity.
- Strength: smaller matrices + staged fanout improve isolation and measurability.
- Acceptance focus: timing adders per stage; staged switching transient containment.
- path_id: stable identifier for (input, output, stage sequence).
- route_map_hash: compact checksum of the full crosspoint configuration.
- delay_code[]: per-output (or per-stage) delay settings tied to the current path_id.
- qualify_mode: deglitch/windowing mode and time constants used for event qualification.
- cal_version: deskew LUT revision + temperature model revision.
- health_counters: switch_count, glitch_count, missed_event_count, ToA_drift_max, ToA_p99.
- Characterize by path ID: do not average all paths; measure worst-case routes explicitly.
- Define switching policy: specify “route update allowed only when …” and the post-switch settle time.
- Instrument the fabric: add glitch detect, switch count, and ToA drift statistics as first-class counters.
- Bind calibration to routing: the correct deskew LUT must be selected by path ID and versioned.
Programmable delays & deskew (how to move edges on purpose)
Programmable delay is a time actuator. The goal is not “perfect absolute delay”, but a provable skew target with stable behavior: monotonic steps, repeatable timing, and drift that can be estimated and compensated. Deskew turns fixed per-channel delay and temperature drift into a versioned, auditable compensation model.
- Programmable delay lines / taps: fine steps; must validate step uniformity, monotonicity, and temperature drift.
- Phase-shift (DLL-style) delay: useful for periodic alignment; treat added edge uncertainty as part of the ToA budget.
- Digital retiming to a time grid: makes behavior auditable; the grid step becomes a hard timing quantization term.
- Monotonicity: increasing delay code must not produce backward ToA jumps beyond the defined tolerance.
- Step consistency: delay step size must remain within bounds across voltage, temperature, and route states.
- Drift model validity: temperature compensation must reduce residual ToA drift under the skew budget.
- Coupling: tuning one channel must not shift other channels beyond the coupling allowance.
- Auditability: the applied LUT version and delay codes must be loggable and tied to path ID.
- Delay step must be selected from the skew budget (not from “what the IC offers”).
- Monotonicity and coupling are the two common hidden failures that make deskew unstable in production.
- Bind deskew to path ID so route changes cannot silently invalidate calibration.
Fanout, pulse shaping & conditioning (make edges deliverable)
Fanout is not just “copying a trigger”. A deliverable edge must preserve threshold-crossing timing under real loads. That requires isolation (one output cannot disturb another), consistent drive (rise/fall behavior stays within bounds), and shaping that turns noisy analog edges into repeatable digital events.
- Rise integrity: threshold-crossing time stays stable across cable length, termination, and load.
- Load isolation: changing (or shorting) one output does not shift other outputs’ ToA beyond the coupling allowance.
- Channel-to-channel skew: p99 skew across outputs meets the deskew budget with margin.
- Crosstalk containment: adjacent switching activity does not create false triggers or time-walk.
- Survive without drift: after a port stress event, re-run the ToA and false-trigger checks and compare to baseline.
- Know the side effects: protection can add capacitance and clamp recovery behavior that changes threshold crossing.
- Make it auditable: log “port stress detected” with a route snapshot so post-event behavior is reproducible.
- Deliverable edge means: stable threshold crossing under load, not just a logic-level “high”.
- Isolation first: prove one output cannot disturb another before tuning deskew.
- Shaping is policy: deglitch and arming rules must be versioned and auditable like calibration.
Latency & jitter budgeting (what limits trigger fidelity)
Trigger fidelity is limited by time-of-arrival (ToA) uncertainty. For budgeting, treat uncertainty as three buckets: random jitter (short-term noise), deterministic jitter (data/crosstalk/threshold-related), and wander (slow temperature-driven drift). Random terms can often combine statistically; deterministic terms must be bounded in worst cases; wander must be modeled and corrected with calibration.
- Random (σ): combine independent short-term terms (e.g., comparator noise, router noise, output edge noise).
- Deterministic (DJ): bound worst-case time-walk from threshold policy, reflections, and crosstalk conditions.
- Wander: treat temperature drift as a separate term reduced by a model + residual after deskew.
- Comparator noise → time jitter: measure ToA distribution on a fixed edge; reduce with better SNR and stable threshold policy; accept with p99 ToA jitter bound.
- Threshold/hysteresis policy → time-walk: sweep input amplitude/slew; reduce by controlling slew/termination or calibrating; accept with bounded ToA shift over the sweep.
- Deglitch window → quantization + latency: sweep Tmin/N; reduce by finer timing granularity and correct policy; accept with no missed true events and bounded quantization error.
- Routing → path-dependent latency + switching behavior: bucket by path ID; reduce with hierarchical routing and switching rules; accept with per-path p99 and settle-time targets.
- Delay step quantization → skew floor: scan delay codes; reduce with finer step and LUT; accept with monotonic behavior and deskewed p99 skew target.
- Output edge + reflection → multi-crossing and DJ: sweep cable/termination; reduce with isolation/drive and controlled slew; accept with false-trigger and ToA shift limits.
- Budget ToA, not “jitter” in isolation: ToA includes threshold policy, reflections, routing, and quantization.
- Separate wander: temperature drift belongs in a model/residual loop, not in short-term jitter stats.
- Measure per condition: deterministic terms require worst-case conditions (cable/termination/crosstalk), not averages.
Time-of-arrival measurement (timestamp/TDC on trigger paths)
A ToA reading is only meaningful when the capture latch point is unambiguous. “Fast timestamping” alone is not enough: the trigger path itself can introduce time-walk (threshold policy vs edge slew), noise-to-time jitter, domain-crossing artifacts, and readout variability. To make ToA evidence-grade, each record must carry the route and configuration context.
- Edge conditioning: comparator, threshold/hysteresis, deglitch and gating define when an event becomes “valid”.
- Capture latch: the latch point defines the ToA reference (this is the critical definition boundary).
- Timestamp/counter: coarse timebase counting + synchronization policy for multi-domain logic.
- Optional fine TDC: sub-cycle interpolation; must be characterized for nonlinearity and drift.
- Readout: transport latency affects “data visibility”, but must not redefine ToA.
- Threshold time-walk: ToA shifts with edge amplitude/slew because crossing time changes under fixed Vth policy. Validate by sweeping edge slew and measuring ToA shift buckets.
- Noise-to-time jitter: input noise converts into ToA jitter near the threshold crossing. Validate with p99 ToA jitter on a stable reference edge.
- CDC artifacts: crossing from capture domain to readout domain can cause drops, duplicates, or reordering at high event rates. Validate with sequence numbers and stress tests near rate limits.
- Readout latency variability: changes “when the record is seen”, but should not change the captured ToA value. Validate by separating record timestamp (visibility) from ToA (event time).
At minimum, store: seq, route_id, gate_state, delay_code, temp_c, cal_version, and the raw toa_ticks (plus fine_tdc if used).
- Define ToA at the latch: everything before the latch changes “when an event becomes valid”.
- Log context: route and policy fields are required to reproduce drift and false-trigger behavior.
- Separate ToA vs visibility: keep readout latency as a separate system metric.
Calibration & self-check (deskew, loopback, and drift tracking)
Trigger routing becomes maintainable only when deskew is treated as a closed loop: factory baseline, periodic field self-check, and drift tracking over temperature and time. Loopbacks must be insertable without disturbing user routing, and self-check results must be versioned and logged to support safe fallbacks.
- Factory calibration: per-path baseline delay, valid/invalid delay codes, and a calibration version.
- Field self-cal: periodic loopback or reference injection updates LUT or residual limits without user intervention.
- Drift tracking: temperature/aging model + residual trend drives health counters and maintenance alerts.
- Non-invasive: inserting self-check must not change the user path loading or timing when disabled.
- Selectable insertion: enable loopback per route/path segment to localize faults (router-only, delay-only, full-path).
- Pass/fail scoreboard: define measurable thresholds (p99 skew, residual drift, false-trigger rate, settle-time).
- Versioned & logged: record test profile ID, LUT version, temperature, route snapshot and results.
- Trigger conditions: after boot, periodic timer, temperature step, or health counter anomaly.
- Execution: inject a reference edge → route through router+delay → capture ToA → compute residual vs expected.
- Outputs: update LUT (if allowed), increment health counters, and store residual trend points.
- Fallbacks: lock to a safe fixed route, disable a failing output, or freeze delay codes to last-known-good.
- Deskew is a loop: baseline + periodic check + drift trend, not a one-time tuning step.
- Make loopback selectable: isolate faults by testing router-only, delay-only, or full-path.
- Design for safe fallback: lock to safe routes or disable failing outputs while preserving evidence logs.
Trigger qualification & immunity (avoid false triggers without missing real ones)
Immunity is achieved by qualification rules (what counts as a valid event) rather than “more filtering”. Every added rule must be justified twice: how it suppresses false triggers and what latency/ToA uncertainty it adds. The goal is a trigger path that stays deterministic across noise, ringing, crosstalk, switching transients, and boundary effects.
- Noise near threshold: small voltage noise becomes large time jitter when the edge is slow at Vth.
- Ringing / reflections: a single transition produces multiple threshold crossings (double-trigger risk).
- Crosstalk / ground bounce: trigger activity correlates with neighbor channel switching.
- Route switch transients: configuration changes create short-lived glitches on internal nodes.
- Window boundary sensitivity: arming window edges can drop or admit events when boundary timing is noisy.
- Arming window: accept events only inside a defined time gate (reduces out-of-context triggers).
- Hysteresis policy: prevent chatter near Vth; define rising/falling acceptance unambiguously.
- Deglitch / N-sample rule: require the signal to stay valid for a minimum duration before latching.
- Minimum pulse width: reject narrow spikes that cannot represent a real event in the target system.
- Edge consistency: accept only the configured polarity and a stable single-crossing edge.
- Coincidence (multi-channel): require two or more channels to agree within Δt (AND/OR composition).
Reducing false triggers is not the same as adding more filtering. Excess filtering can increase latency, smear edges, and widen time uncertainty. Prefer qualification rules + measurable budgets: each rule must state its added delay and its impact on worst-case ToA uncertainty.
Qualification decisions must be reproducible. Store rule configuration alongside each event record (or each test run).
- gate_state / window_id (arming window open/close definition)
- min_pulse_cfg (width threshold, units, edge mode)
- deglitch_cfg (N samples or time, acceptance policy)
- hysteresis_cfg (Vth, hysteresis width, polarity)
- coincidence_cfg (AND/OR, channels, Δt)
- route_id / delay_code / cal_version / temp_c (path and traceability)
- Diagnose by class: noise, ringing, crosstalk, switching transient, and boundary effects have different signatures.
- Qualify, then budget: define accept/reject rules first, then account for their added latency and ToA uncertainty.
- Make it auditable: store qualification configuration fields to reproduce results in validation and the field.
Validation & production test plan (prove it’s deterministic)
Determinism must be proven with repeatable tests: route latency consistency across path IDs, channel-to-channel skew across temperature points, route-switch transient immunity, ToA uncertainty distributions, and robustness to loads/cables. Production tests should be automated and record enough context to explain failures without manual probing.
- Pattern edge source: repeatable edge with configurable amplitude/slew/pulse width.
- DUT trigger I/O: selected path IDs and qualification configurations under test.
- Time-interval measurement: ToA/skew/latency capture with distribution statistics.
- Load/termination box: selectable termination modes and cable profiles to expose reflections.
- Temperature points: cold/ambient/hot sweep for drift and deskew repeatability.
- Prove determinism by distributions: measure p99/p999, not only averages.
- Make switching testable: verify glitch-free behavior and enforce a documented settle window.
- Record enough context: route, qualification configuration, temperature, and calibration version must travel with results.
Field diagnostics & evidence (logs that catch intermittent timing faults)
In the field, timing faults are often intermittent. The only reliable way to separate “bad external signal” from “internal route/delay/qualification drift” is a compact evidence chain: config snapshot + counters + ToA statistics + calibration/self-test version + temperature correlation.
- Pinpoint whether anomalies align with route changes, temperature drift, or qualification window edges.
- Prove determinism using path_id + ToA p95/p99/max and trend metrics (drift slope, widening detection).
- Capture “just enough” context via ring-buffer + event-triggered snapshot without impacting trigger fidelity.
- Route state mirror: path_id, router register image, route-change sequence number.
- Delay/deskew: per-channel delay_code, active LUT version, temperature at calibration point.
- Qualification: deglitch count, arming window, min-pulse width rule, re-arm state.
- Output mode: enabled fanout group, output format selection (single-ended/diff).
- glitch_detect / extra_trigger / missed_trigger
- route_switch_transient (glitch at or near route change)
- rearm_fail (unexpected edge inside a gated window)
- toa_widen (p99 or max ToA jumps beyond guardband)
| Group | Fields (copy-paste friendly) | Why it matters |
|---|---|---|
| Identify | event_time, event_type, path_id | Binds every symptom to a specific route and a specific moment. |
| State | route_seq, router_state_hash, delay_code[], qual_state, gate_window_id | Distinguishes external signal faults from internal switching/drift. |
| Stats | toa_p50, toa_p95, toa_p99, toa_max, drift_slope | Converts timing stability into provable metrics (distribution + trend). |
| Counters | miss_count, extra_count, glitch_count, rearm_fail_count, route_change_count | Quantifies how often the “intermittent” problem occurs and what it correlates with. |
| Traceability | temp, vrail_status, cal_id, selftest_state, selftest_fail_code | Enables root cause: temperature drift, brownout/reset artifacts, calibration mismatch. |
- High-rate events → RAM ring buffer (fixed length, overwrite).
- Low-rate summaries + anomalies → NVM commit (batch writes, avoid write-amplification).
- Never log every edge. Log snapshots on change and snapshots on anomaly.
- Anomalies cluster around route_seq changes → suspect route switching transient, config coherency, or unsettled path.
- ToA p99/max tracks temperature while delay_code stays constant → suspect drift (delay element / threshold wander / board stress).
- Only specific cables/loads show faults but internal ToA stats remain stable → suspect external reflection/ringing near threshold.
- glitch_count rises but qual_state unchanged → suspect gating boundary, deglitch implementation, or comparator input noise margin.
These are common, well-documented device examples to anchor the logging/calibration architecture. Selection still depends on interface, bandwidth, voltage rails, temperature range, and compliance constraints.
| Function | Example parts | Used here for |
|---|---|---|
| Nonvolatile evidence store | Infineon FM25V20A (SPI F-RAM) · Winbond W25Q64JV (SPI NOR) · Microchip SST26VF064B (Quad-SPI NOR) | commit summaries, anomaly snapshots, cal_id/self-test history |
| Temperature correlation | TI TMP117 (digital temp sensor) · ADI LTC2983 (multi-sensor temperature measurement) | drift tracking vs temperature; calibration point tagging |
| Time-of-arrival measurement | TI TDC7200 (TDC) · ScioSense TDC-GP30 (TDC/measurement SoC reference) | timestamp/TDC-based ToA metrics: p95/p99/max, drift slope |
| Programmable delay/deskew anchors | Microchip SY89297U (programmable delay line) · ADI/Maxim DS1023 (programmable timing element) | delay_code + LUT versioning; periodic self-cal sanity checks |
| Routing / selection anchors | ADI AD8113 (crosspoint concept anchor) · TI LMH6574 (high-speed mux concept anchor) | path determinism checks; switch transient correlation |
| Reset integrity (avoid “half-written evidence”) | TI TPS3890 (voltage supervisor) · TI TPS3430 (window watchdog) | capture reset cause, protect commit transactions, keep evidence consistent |
FAQs (Trigger/Marker & Event Routing)
These FAQs focus on making trigger/marker/event routing deterministic, verifiable, and diagnosable: how edges are qualified, routed, delayed, measured (ToA), and proven across route IDs, temperature, and reconfiguration events.