123 Main Street, New York, NY 10001

Programmable Delay / Phase for ps–ns Clock Alignment

← Back to:Reference Oscillators & Timing

Programmable delay/phase blocks are the practical way to trim skew and align clock edges in ps–ns steps across lanes, boards, and backplanes—so timing margin, eye opening, and sampling phase can be optimized. The core is simple: choose the right insertion point and specs, then close the loop with measurement + calibration + health monitoring to keep alignment stable across temperature, voltage, and time.

H2-1. Definition & boundary: what “programmable delay/phase” really solves

Programmable delay/phase aligns clock edges in ps–ns steps to remove path mismatch (skew) and maximize timing margin across lanes and boards. The focus is practical placement, specs that move real alignment, and calibration/verification—without expanding into PLL, JESD204, or PTP theory.

Delay vs phase (same frequency, engineering intuition)

  • At a fixed clock frequency f, time delay Δt maps to phase shift φ: φ = 2π·f·Δt.
  • The reverse view is often more useful in bring-up: Δt = φ / (2π·f).
  • Practical reminder: phase is frequency-dependent; the same delay code represents a different phase shift if the clock frequency changes.

Typical goals (kept within this page boundary)

  • Skew trimming: deskew multi-lane clocks so endpoints sample on matched edges.
  • Phase sweep: scan phase to find the best sampling point (maximize eye/timing margin).
  • Multi-card deskew: compensate backplane/cable/connector differences to align boards.
  • Timing margin maximize: shift edges to widen setup/hold margin where failures occur.

In-scope (what is fully covered here)

  • Where to place programmable delay/phase in a clock tree (global vs per-lane alignment).
  • Specs that govern alignment quality: step/range, additive jitter, time linearity, drift/matching.
  • Safe updates: glitch risk, hitless behavior expectations, and “safe-window” strategies.
  • Calibration and verification flows for repeatable deskew (lab → production → field).

Out-of-scope (do not expand here; link to sibling pages)

  • PLL/clock-cleaner loop theory and phase-noise shaping (handled in PLL/cleaner pages).
  • JESD204 subclass-1 SYSREF/LMFC details and deterministic latency windows (handled in JESD204 pages).
  • PTP/SyncE/GNSSDO timing protocols and network synchronization (handled in timing/sync pages).
  • General SI/EMI textbooks (only delay/phase-relevant routing “red lines” appear later).
SVG-1 · Boundary map (where programmable delay/phase sits in the clock tree)
Boundary map — Programmable Delay / Phase Clock tree blocks from source to endpoint. Programmable delay/phase is highlighted. Out-of-scope blocks for PLL, JESD204 SYSREF, and PTP/SyncE are shown as side items. Clock tree (simplified) Source XO / TCXO / OCXO Cleaner / PLL jitter shaping Fanout multi-output Endpoints FPGA / ADC / DAC Programmable Delay / Phase ps–ns edge alignment This page Not this page (handled in sibling pages) PLL / Clock Cleaner theory JESD204 SYSREF / LMFC windows PTP / SyncE / GNSS timing
Programmable delay/phase is a deskew tool inside the clock tree. PLL/cleaner design, JESD204 timing windows, and PTP/SyncE protocols belong to their dedicated pages.

H2-2. Where to place it in the clock tree: after cleaner? before fanout? at endpoints?

Placement determines what error is being corrected. The most repeatable strategy is to align where the dominant mismatch is created: global phase bias is different from per-lane deskew, and a board-to-board connector mismatch is different from a source phase wander.

A practical framing: align scope × dominant mismatch

  • Align scope: global (entire clock tree) vs per-lane (each output/end-point).
  • Dominant mismatch: source wander (reference/loop) vs path mismatch (trace/connector/cable/backplane).
  • Rule of thumb: use programmable delay/phase to correct path mismatch; use cleaner/PLL choices to manage source wander.

A) After source/cleaner (global bias point)

  • Best when: a single phase reference is needed for the whole system, and per-lane mismatch is small or handled elsewhere.
  • Fixes: system-wide phase centering (coarse alignment relative to a master event).
  • Cannot fix: per-lane skew created after fanout (trace/cable/backplane differences).
  • How to verify: measure multiple endpoints; if channel-to-channel skew remains dominated by path differences, global shifting alone is insufficient.

B) Around fanout (before vs after)

  • Before fanout: aligns the phase entering the distribution stage; downstream path mismatch still appears at outputs.
  • After fanout: aligns each output lane directly; corrects lane-to-lane skew created by routing and channel differences.
  • Engineering trade: post-fanout per-lane trimming increases channel count, control complexity, and aggregate additive jitter risk.
  • How to verify: define per-lane pass criteria (skew pk-pk and drift vs temperature/supply) after calibration.

C) At endpoints (FPGA/ADC/DAC side, per-lane deskew)

  • Best when: skew is created by connectors/cables/backplanes and must be corrected per lane or per card.
  • Fixes: the mismatch closest to where it hurts; typically the highest leverage for multi-card synchronization.
  • Main risk: endpoint environments are noisy; additive jitter and coupling can erase alignment benefits unless routing and supply are controlled.
  • How to verify: validate both static alignment (initial skew) and drift alignment (skew vs temperature/supply/time), then define re-calibration triggers.

Verification templates (keep thresholds system-budget driven)

  • Static deskew: after calibration, channel-to-channel skew (pk-pk) < X over defined loading and routing conditions.
  • Drift deskew: |d(skew)/dT| < Y ps/°C (or within a LUT-compensated envelope) across the operating temperature range.
  • Update safety: phase step causes no missing pulse or runt pulse at the endpoint under worst-case switching and noise conditions.
SVG-2 · Three insertion points (global vs per-lane deskew)
Insertion points comparison — Programmable Delay / Phase Three rows show the same clock chain. The programmable delay/phase block moves location to illustrate global bias, per-lane trimming after fanout, and endpoint deskew. Row 1: After cleaner (global bias) Row 2: After fanout (per-lane trim) Row 3: At endpoints (deskew path mismatch) Source Cleaner/PLL Delay/Phase Global Fanout EP Source Cleaner/PLL Fanout Delay/Phase Per-lane EPs Source Cleaner/PLL Fanout Backplane Delay/Phase Endpoint Blue block = programmable delay/phase. Global bias ≠ per-lane deskew. Endpoint placement targets path mismatch.
Placement should follow the dominant error source: per-lane mismatch and multi-card path differences usually require per-lane/endpoint deskew, while source wander belongs to cleaner/PLL decisions.

H2-3. Architectures: delay lines, DLL-based phase, interpolators, rotators

Architecture choice defines which error term becomes dominant: time linearity, additive jitter, drift, or update safety. The goal is engineering-level selection: what each architecture is best at, what it cannot fix, and what to verify on real hardware.

Tap delay line (discrete steps)

  • Best when: coarse deskew is needed; absolute phase precision is less critical than coverage/range.
  • Dominant risks: time DNL/INL (non-uniform steps), possible non-monotonic segments, PVT drift.
  • Datasheet focus: step size, monotonicity notes, time INL/DNL (or code-to-delay accuracy), drift.
  • Verification hook: sweep all codes and plot code→Δt; confirm monotonicity and local slope stability.

DLL-based phase shifter (locked phases)

  • Best when: stable multi-phase generation is needed with controlled phase spacing.
  • Dominant risks: lock constraints (frequency range, lock time), sensitivity to supply/temperature for phase spacing.
  • Datasheet focus: lock range, lock detect behavior, phase error vs PVT, additive jitter under lock.
  • Verification hook: validate lock across corners; measure phase spacing repeatability after temperature steps.

Phase interpolator (fine steps by mixing phases)

  • Best when: fine phase resolution is required for phase sweep or tight edge alignment.
  • Dominant risks: amplitude/threshold coupling, additive jitter increase, linearity variation across PVT.
  • Datasheet focus: step resolution vs jitter, linearity metrics, supply sensitivity, update behavior.
  • Verification hook: compare “before/after” TIE jitter; validate best-phase stability across supply noise and temperature.

Phase rotator / multi-phase selector (coarse select + fine trim)

  • Best when: combining wide coverage (coarse) with fine alignment is needed for multi-lane systems.
  • Dominant risks: channel-to-channel matching, multi-phase consistency, step discontinuities at boundaries.
  • Datasheet focus: phase set granularity, lane matching specs, drift, and “hitless” selection support.
  • Verification hook: lane-to-lane deskew repeatability; ensure no missing/runt pulses during phase selection.

Architecture comparison (selection at a glance)

Architecture Step / Range Linearity risk Jitter risk Drift / PVT Best use
Tap delay line coarse / wide DNL/INL dominant moderate moderate–high deskew coverage
DLL-based phase multi-phase / bounded depends on lock often low–moderate lock/PVT sensitive stable phase grids
Phase interpolator fine / limited span PVT-dependent can increase moderate fine sweep/trim
Rotator / selector coarse+fine / wide boundary steps depends on mux matching critical multi-lane deskew

Table fields are directional on purpose: selection should be driven by the dominant failure mode (residual skew, drift, or jitter) and validated on the target board.

SVG-3 · Four common architectures (block-diagram view)
Programmable Delay / Phase architectures Four quadrants show different internal approaches: tap chain, DLL, interpolator, and rotator. Each includes input, tuning element, and output with short risk labels. Architecture blocks (minimal text, selection-oriented) Tap delay line coarse steps CLK IN tap chain CODE CLK OUT DNL/INL DLL-based phase locked phases CLK IN PD Loop filter VCDL (tuned delay) φ0 φ1 φ2 LOCK Phase interpolator fine steps φA φB Interpolator weight control CODE CLK OUT Coupling Phase rotator select + trim φ grid Selector coarse fine trim OUT Match
Each architecture shifts the dominant risk: tap chains emphasize time linearity, DLLs emphasize lock behavior, interpolators emphasize coupling/jitter, and rotators emphasize matching across lanes.

H2-4. Key specs that actually matter: range, step, additive jitter, time linearity, tempco

Datasheet numbers matter only when translated into system criteria: coverage of worst-case skew, residual alignment error after tuning, stability across PVT, and safe updates. Each spec below uses a fixed engineering format to keep verification repeatable.

Delay range (ns)

Meaning: maximum compensation span for path mismatch (trace/connector/cable/backplane).

Why it bites: insufficient range forces “best alignment” outside the available codes, leaving permanent residual skew.

How to test: measure worst-slot/worst-cable skew, convert to required Δt, and include measurement uncertainty.

Pass criteria: range ≥ worst-case skew + guardband (guardband accounts for drift, PVT, and measurement error).

Resolution / step (ps)

Meaning: smallest programmable increment; step size is not the same as absolute accuracy.

Why it bites: coarse steps leave residual skew that directly reduces eye opening and timing margin.

How to test: toggle by 1 LSB and observe edge-time shift (TIE/edge histogram); confirm monotonic direction.

Pass criteria: achievable residual skew after tuning fits within the allocated margin budget (not a typical-only claim).

Additive RMS jitter

Meaning: random edge uncertainty added by the device; always interpret with the stated integration bandwidth (for example, 12 kHz–20 MHz).

Why it bites: alignment is deterministic, but added random jitter reduces usable margin and can erase deskew benefits.

How to test: measure input vs output TIE with identical bandwidth settings; use “difference” to estimate additive contribution.

Pass criteria: total jitter after insertion stays within the system jitter budget under worst-case supply noise and layout conditions.

Time linearity (time DNL/INL)

Meaning: non-ideal mapping from code to actual delay; includes uneven steps and possible local non-monotonicity.

Why it bites: phase sweeps become non-repeatable; closed-loop tuning can converge slowly or “hunt” near the optimum.

How to test: sweep all codes and build a code→Δt curve; inspect monotonicity and local slope consistency across temperature.

Pass criteria: monotonic tuning with INL/DNL kept within the calibration strategy envelope (step plan + guardband).

Channel matching & drift (tempco)

Meaning: how closely lanes track each other and how delay changes with temperature, voltage, and time.

Why it bites: one-time calibration fails if drift exceeds margin; multi-card alignment requires predictable tracking or re-cal triggers.

How to test: record skew across temperature and supply steps; measure drift rate and hysteresis; validate lane-to-lane correlation.

Pass criteria: drift stays inside the allowed alignment envelope or can be contained with LUT + defined recalibration cadence.

Update latency / settling after a step

Meaning: time and behavior from register write to stable phase at the output (including transient pulses).

Why it bites: unsafe updates can create missing/runt pulses and break downstream state machines even if static alignment is perfect.

How to test: apply repeated steps under worst-case noise/loading; capture edge anomalies and settling time statistics.

Pass criteria: no missing/runt pulses at endpoints and settling time fits within the defined safe update window.

SVG-4 · Specs → system impacts (what each metric can break)
Specs to system impacts Left boxes list key specs: range, step, time linearity, additive jitter, drift, update settling. Right boxes list system impacts: skew margin, eye opening, deterministic alignment, SNR budget. Arrows connect related items. Key specs System impacts Range Step / resolution Time linearity (INL/DNL) Additive jitter Drift / matching Update settle Skew margin Eye opening Deterministic alignment SNR budget arrows = “can limit / can break”
A spec is “important” only if it limits a system object: margin, eye opening, deterministic alignment lifetime, or the noise budget. Verification should target those objects directly.

H2-5. Trade-offs: step size vs jitter, wide range vs linearity, fine trim vs wander

Selection trade-offs should be decided by the system object that must be protected: residual skew, total jitter floor, linearity across codes, or long-term stability (wander/drift). The goal is to avoid “spec chasing” and converge to a repeatable decision.

Three misconceptions that cause bad picks

  • Finer step is not automatically better: interpolation/multi-phase methods can raise additive jitter, coupling, and calibration burden.
  • Wider range rarely comes “for free”: larger spans often worsen time linearity (INL/DNL), temperature coefficient, and supply sensitivity.
  • “Programmable” does not imply repeatable: without drift tracking and verification hooks, the best code at one moment may not stay optimal.

Decision fork #1 — What is the primary goal?

A) Minimize residual skew
Favor fine trim methods only if total jitter and linearity are verified on the target board. Prefer “fine within a small window” rather than “ultra-fine everywhere.”
B) Preserve the lowest jitter floor
Avoid over-interpolation and unnecessary active stages. Use just enough deskew to recover margin while keeping additive jitter inside the budget window (same measurement bandwidth).

Decision fork #2 — Is alignment static or needs re-alignment?

Static (one-time) calibration
Optimize for coverage + repeatability: range, monotonic code→delay mapping, and channel matching. Drift must stay within the alignment envelope between planned recalibration points.
Periodic / dynamic re-alignment
Update behavior becomes a gating criterion: safe stepping, settling time, and “hitless” requirements must be defined and tested. Fine trim is acceptable only when update safety is proven.

Practical strategy: coarse + fine (risk isolation)

  1. Coarse stage: pull the worst-case skew into a controllable window (coverage first).
  2. Fine stage: trim inside a narrow region where linearity and jitter remain predictable.
  3. Hold/track rule: define re-cal triggers (temperature steps, plug events, time drift threshold).

This approach prevents “wide range” nonlinearity from contaminating “fine trim” stability and keeps calibration manageable.

SVG-5 · Trade-off map (conceptual): step vs risk
Trade-off: step size vs risk index Conceptual chart shows how ultra-fine step can increase risk, while very coarse step leaves residual skew. A sweet spot region is highlighted. Risk index (additive jitter / linearity) Step size (coarse → fine) coarse ultra-fine coarse steps low complexity residual skew ultra-fine risk rises coupling calibration sweet spot enough trim controlled risk Tap Coarse+Fine PI
The chart is conceptual: ultra-fine steps can increase coupling/jitter/linearity risk, while overly coarse steps leave residual skew. Selection should target a controlled “sweet spot” aligned to the system budget.

H2-6. Update behavior: glitch, hitless stepping, deterministic vs dynamic phase moves

Many systems do not align once and forget. If phase is moved during runtime, update behavior must be treated as a primary spec: step safety, settling, and downstream tolerance. “Hitless” must be defined by measurable criteria, not by a label.

What can go wrong during a phase move (failure modes)

Missing pulse
A clock edge disappears; counters and state machines can desynchronize immediately.
Runt pulse
A very short high/low pulse appears; different receivers may or may not detect it.
Short/long cycle
One period is compressed or stretched; downstream timing margins can collapse.
Edge jump / transient jitter
The edge moves abruptly and rings/settles; lock-step logic can misinterpret timing.

“Hitless” as engineering criteria (define before design)

  • No missing pulses and no extra edges across the full operating corner.
  • No runt pulses that cross receiver thresholds unpredictably.
  • Period deviation stays inside an allowed envelope for the downstream timing margin (system-defined).
  • Settling completes within a safe window that does not violate downstream sampling/handshake assumptions.

Do (recommended update practices)

  1. Update in a safe window: schedule phase moves away from sensitive edges/events; define and enforce a safe update window.
  2. Use double-buffering when available: write a shadow register and switch atomically to avoid intermediate states.
  3. Limit step rate: avoid rapid back-to-back moves that keep the system in transient settling.
  4. Validate at endpoints: measure for missing/runt pulses at the receiver side, not only at the source.

Don’t (high-risk shortcuts)

  • Do not update at arbitrary times and assume the device will “handle it” without endpoint validation.
  • Do not sweep phase quickly in production firmware without a defined safe window and step rate limit.
  • Do not declare hitless based on register-write success; the only proof is waveform/event statistics at the receiver.
  • Do not ignore settling behavior; static alignment success does not imply safe dynamic operation.
SVG-6 · Timing view: forbidden zone vs safe update window
Update timing: safe window vs forbidden zone Three rows show clock before, update command, and clock after a phase step. A red forbidden zone is near an edge, and a blue safe update window is between edges. Clock before Update command Clock after (phase moved) forbidden zone safe update window WRITE double-buffer switch phase step
The safe update window must be defined by the downstream tolerance. “Hitless” requires endpoint proof: no missing/runt pulses and bounded period deviation during the move.

H2-7. Calibration & alignment loops: TDC/phase detector, lookup tables, background trim

Programmable delay/phase becomes “ps-level alignment” only when the system defines a measurable timing error, applies controlled updates, and verifies repeatability across temperature, supply, and replacement events. This section turns that goal into an implementable flow and acceptance criteria.

Open-loop vs closed-loop (choose intentionally)

Open-loop alignment
  • Depends on: device tempco/drift + system margin.
  • Best for: stable environment, wide tolerance, minimal rework.
  • Risk: alignment degrades with temperature/supply/mechanics.
Closed-loop alignment
  • Depends on: timing-error measurement + controller + safe updates.
  • Best for: ps-class targets, multi-channel repeatability, replaceable cards.
  • Risk: measurement noise and update transients must be bounded and verified.

Minimal closed-loop ingredients (system view)

  • Actuator: delay/phase device (code → Δt).
  • Observer: TDC / phase monitor that outputs an error metric.
  • Controller: coarse search + fine search + hold/track logic.
  • Memory: NVM/LUT for best codes and corner tags (temperature/supply/version).
  • Constraints: safe update window, step rate limit, endpoint validation.

Calibration workflow (implementable sequence)

  1. Baseline: freeze the operating state (mode, load, temperature settling) and confirm the error observer is in-range.
  2. Coarse sweep: scan coarse codes to locate the best region (fast convergence, not perfection).
  3. Fine search: scan/iterate inside the region to pick the best code under the chosen error metric.
  4. Lock (hold): apply the code using a safe update window and step-rate limits.
  5. Verify: measure statistics (mean / peak-to-peak / stability over N samples) at the endpoint.
  6. Recal triggers: temperature threshold, card replacement, alarm, or drift accumulation.

Closed-loop ceiling is often set by observer noise and update disturbance, not by the smallest step number in the datasheet.

LUT mapping (temperature / supply → code)

  • Purpose: reduce search time and limit step magnitude during re-alignment.
  • Store: corner tags + best code + validity (CRC/version).
  • Use: interpolation + clamping to prevent large jumps.
  • Fallback: if the residual error exceeds threshold, re-run search (do not trust LUT blindly).

Background trim + alarms (keep alignment without disruption)

  • Background trim: slow updates, small steps, and only inside the safe window.
  • Alarm examples: drift threshold exceeded, observer variance rising, excessive updates, invalid LUT entry.
  • Response: freeze → verify → re-search; log conditions for production/field diagnosis.

Calibration checklist (portable)

  • ☐ Define the alignment object and the observation point (edge A vs edge B).
  • ☐ Define the error metric and statistics window (N samples, same bandwidth/conditions).
  • ☐ Coarse sweep: range, step, stop condition (best region).
  • ☐ Fine search: local step, best-code criterion, stability check.
  • ☐ Apply code with safe update window + rate limit; verify at the endpoint.
  • ☐ LUT: corner tags, CRC/version, interpolation rule, clamping limit, fallback rule.
  • ☐ Recal triggers and recovery: replace/plug event, temperature threshold, alarm threshold.
  • ☐ Alarm + log: drift/variance/update-count thresholds and action policy.
SVG-7 · Closed-loop alignment block diagram (system view)
Closed-loop alignment: actuator, observer, controller, memory, alarms Block diagram for a practical calibration loop: controller reads timing error from a TDC/monitor, writes delay codes, consults LUT/NVM and sensors, and produces alarms/logs. REF edge reference path MEAS edge endpoint tap Delay / Phase IC code → Δt TDC / Phase Monitor error metric Controller coarse sweep fine search hold / track NVM / LUT T, VDD → code Temp sensor VDD sensor Alarm / Log drift / variance update count safe update window + rate limit
A practical loop needs an observer (TDC/monitor), a controller (search + hold/track), and constraints (safe updates). LUT/NVM reduces convergence time but must be guarded by endpoint verification and alarms.

H2-8. Multi-card synchronization: backplane, star, daisy-chain, deterministic deskew

Multi-card alignment is an engineering discipline of measuring each path, programming per-card (or per-lane) delay, and verifying drift and repeatability. The topology determines where skew accumulates and how calibration should be organized.

Star (common source → independent branches)

Risk points
Branch-length mismatch, fanout channel mismatch, and cable/connector repeatability.
Mitigation actions
Per-branch delay trim, controlled harness/length policy, and automatic re-deskew after replacement events.
Verification
Residual skew distribution across cards + plug/unplug repeatability (code shift statistics).

Daisy-chain (hop-by-hop forwarding)

Risk points
Skew and drift accumulate with hop count; one bad node can propagate errors downstream.
Mitigation actions
Segment calibration (per hop), maximum hop budget, and node-level alarms with isolation policy.
Verification
End-to-end skew vs hop count, plus drift under temperature gradients across the chain.

Backplane (slot-to-slot differences)

Risk points
Slot routing/connector asymmetry and mechanical repeatability drive card-to-card skew changes.
Mitigation actions
Slot-aware calibration tables (slot LUT), power-up self-test, and automatic re-deskew on card replacement.
Verification
Slot mapping (best code per slot) and recovery time after card swaps.

Deterministic deskew SOP (measure → program → verify → monitor)

  1. Measure each path: capture per-card (or per-lane) timing error at a consistent observation point.
  2. Program delays: write per-card/per-lane delay codes (coarse then fine) using safe updates.
  3. Verify residual skew: collect statistics (mean, peak-to-peak) under stable conditions.
  4. Characterize drift: test across temperature/supply corners relevant to the deployment.
  5. Monitor + alarms: define drift thresholds and trigger re-deskew or freeze + log policy.
  6. Handle replacement events: card/slot change triggers an automatic re-measure and update.

Repeatability traps (alignment-focused only)

  • Connector engagement: mechanical tolerance can shift effective delay; treat plug events as recal triggers.
  • Cable routing/strain: bending and tension can introduce small but relevant propagation changes; enforce harness discipline.
  • Slot-to-slot asymmetry: backplane routing differences are real; store slot-specific codes and validate after swaps.
SVG-8 · Topologies for multi-card clock alignment (skew sources highlighted)
Multi-card topologies: star, daisy-chain, backplane Three stacked panels show clock distribution topologies and where skew originates: cable, connector, and trace. Each card has a delay trim block. STAR DAISY-CHAIN BACKPLANE Source Source Source Fanout cable connector Card A Card B delay delay Card 1 Card 2 Card 3 delay delay delay hop skew hop skew Backplane trace connector Slot 1 Slot 2 delay delay Skew sources: cable / connector / trace. Deskew: measure each path → program per-card delay → verify residual skew → monitor drift.
Star isolates branches (best for independent per-card trim). Daisy-chain accumulates hop errors (requires segmented calibration). Backplane introduces slot asymmetry (use slot-aware LUT and auto re-deskew on swaps).

H2-9. PCB & signal integrity essentials for delayed clocks (only what delay/phase cares)

A programmable delay/phase block can trim predictable skew, but it cannot “repair” non-deterministic timing errors. On real boards, edge shape, return-path integrity, and noise coupling directly translate into time-walk, jitter tails, and alignment non-repeatability.

Three red lines (break any of these → alignment becomes non-repeatable)

Red line #1 — return-path discontinuity on the differential clock
  • Why it matters: broken reference planes and long return detours distort edges and increase susceptibility to coupled noise, turning skew into drift and jitter.
  • Acceptance checks: impedance profile without large steps; edge remains monotonic; jitter increase vs a “clean path” stays within the system budget.
Red line #2 — wrong termination / common-mode / ringing creates time-walk
  • Why it matters: delay moves the edge; it does not fix a malformed edge. Ringing and slow edges make threshold crossing time sensitive to noise, load, and temperature.
  • Acceptance checks: no secondary crossings; reflection controlled (TDR/eye); jitter distribution does not grow long tails after adding delay/phase updates.
Red line #3 — crosstalk / supply noise coupling makes alignment state-dependent
  • Why it matters: if timing error correlates with aggressor activity or supply ripple, a “best code” is no longer portable across modes and field conditions.
  • Acceptance checks: aggressor on/off test shows bounded jitter/phase-error change; phase drift vs supply/temperature remains trend-bounded.

Three recommendations (actions + measurable acceptance)

Recommendation #1 — length match first, delay-trim second
Use routing to reduce fixed skew wherever possible; use programmable delay for residual, predictable differences. If return paths, reflections, or crosstalk dominate, fix layout instead of “coding around” it.
Acceptance check
The same delay code yields stable residual skew across modes (aggressor activity, load state) within the alignment budget.
Recommendation #2 — enforce keepout to protect repeatability (not cosmetics)
Separate clock differential pairs from switching nodes and high di/dt loops; minimize long parallel runs with aggressors; keep the most sensitive segments on continuous reference planes.
Acceptance check
Jitter tails shrink and phase-error variance stays bounded when aggressors toggle (A/B test).
Recommendation #3 — treat the delay IC supply like an analog-sensitive rail
Place tight local decoupling (small loop), keep return current short, isolate noisy digital control traces from clock pairs, and consider filtering/segmentation when supply ripple correlates with phase drift.
Acceptance check
Phase error remains trend-bounded versus temperature and supply ripple; mode switches do not cause long recovery beyond system limits.
SVG-9 · Layout essentials for delayed clocks (return path + keepout + termination + decoupling)
PCB essentials for delayed clocks Diagram shows a clock zone with a delay IC, differential pair routing to an endpoint, termination at the endpoint, return path arrows, decoupling near the IC, and a keepout boundary separating noisy switching region. Clock zone Noisy zone switching nodes keepout Delay IC CLK OUT Decap tight loop Endpoint FPGA / ADC termination diff pair return path aggressor control lines Priority: continuous return plane → correct termination → keepout from noise → tight decoupling near delay IC.
Delay/phase alignment relies on stable edge crossings. Protect the differential pair’s return path, terminate at the endpoint, enforce keepout from switching aggressors, and keep decoupling loops tight around the delay device.

H2-10. Monitoring & health: readback, missing pulse, phase drift alarms, self-test hooks

A delay/phase system is “field-ready” only if it can detect drift, spot missing-pulse events, and recover to a safe state. Monitoring should favor relative thresholds and trends, with explicit actions and fallback policies.

Monitoring signals (what to watch and what to do)

Signal Source What it tells Quick check Action
Delay code readback register / SPI / I²C code integrity and unintended changes compare to last applied code + CRC/version freeze updates → re-apply → log event
Temp / VDD sensors corner tags for LUT + drift correlation trend + threshold crossing trigger background trim / recal window
Lock / health pin device status in-range / internal fault indicator status sampled over time escalate alarm; consider fallback
Missing pulse / runt detector / counter hitless violation or path failure symptom event count per window enter safe mode; freeze; log; re-verify
Phase error metric TDC/monitor residual skew and drift trend moving mean + variance + tail trim / recal / fallback by severity

Trend-based thresholds are typically more robust than single absolute numbers: compare against a stored baseline and track drift, variance, and tail growth under known conditions.

Alarm policy (Light / Major / Fatal)

Light
  • Triggers: small trend drift, rare spikes, benign readback anomaly.
  • Immediate: log + temporarily freeze updates; run a sanity check window.
  • Recovery: resume background trim if residual skew returns within baseline bounds.
Major
  • Triggers: residual skew exceeds budget, variance grows, tails widen, frequent trims needed.
  • Immediate: run localized re-deskew (coarse+fine); apply updates only in safe windows.
  • Recovery: store new baseline/LUT entry after verification stability.
Fatal
  • Triggers: missing pulse events, persistent instability, observer path failure.
  • Immediate: enter fallback (safe delay / freeze / conservative mode); raise IRQ and log context.
  • Recovery: block high-precision mode until re-verified and errors are cleared.

Self-test hooks (practical sanity checks)

Power-up baseline point
Apply a known code (or LUT suggestion), measure the residual error metric, and compare to a stored baseline window under similar conditions.
Periodic low-impact sanity check
Apply a tiny step (e.g., ±1 code or a small delta) and verify the error metric responds with the expected direction and magnitude trend. No response indicates observer or actuator issues.
Replace / plug event self-test
After slot or card changes, run a localized re-deskew and verification pass before re-enabling high-precision alignment.
SVG-10 · Monitoring panel: sensors → compare/trend → IRQ/log → fallback
Monitoring & health for programmable delay/phase Blocks show Sensors, Readback, and Error Metric feeding a Comparator/Trend Engine. Outputs go to IRQ/Log and a Policy selector that drives Fallback actions such as safe delay, freeze, or re-deskew. Sensors Temp / VDD Readback code / health Error metric phase / skew Comparator relative threshold trend / variance tail growth IRQ event Log context Policy Light Major Fatal Fallback safe delay freeze re-deskew
Health monitoring should compare against a baseline and track trends: drift, variance, and tail growth. Actions must be explicit: log, re-deskew, or enter fallback (safe delay / freeze) when pulse integrity or stability is violated.

Engineering checklist (bring-to-lab + bring-to-production)

Make programmable delay/phase alignment repeatable and traceable: the same fields flow from bring-up → calibration → production → field monitoring, so “bench OK” becomes “system OK”.

Bring-up Calibration Production Field

A) Bring-up (lab): lock measurement conditions + baseline

Objective: freeze the reference measurement window and a baseline so later drift/updates have a ground truth.

Field Why it exists Output artifact
Default delay/phase code (incl. Safe code) Defines a known “boot” state; enables controlled fallback. Boot profile record
Clock frequency + output standard Phase = delay × frequency; termination depends on standard. Clock tree snapshot
Measurement points (TP map) Separates IC behavior from connector/trace artifacts. TP drawing / photo ID
Scope setup + probe type Prevents “improved” results due to changed probing. Setup screenshot
Jitter integration window record RMS jitter is meaningless without the integration window. Window + instrument profile
Aggressor A/B condition Captures crosstalk/PSU coupling sensitivity that breaks repeatability. A/B delta report
Copy fields
DEFAULT_CODE=
SAFE_CODE=
F_CLK=
OUTPUT_STANDARD=
TP_MAP=
SCOPE_BW_LIMIT=
PROBE_TYPE=
JITTER_WINDOW=
BASELINE_SKEW=
BASELINE_JITTER=
MISSING_PULSE_BASELINE=
AGGRESSOR_A=
AGGRESSOR_B=
          
Pass criteria (lab baseline)
  • Baseline jitter is recorded with a fixed integration window (no window = invalid record).
  • A/B aggressor delta does not collapse the alignment margin beyond the system budget.
  • No missing pulse / forbidden edge behavior in the default + safe codes.

B) Calibration: coarse→fine sweep, converge, lock, re-cal plan

Objective: reach ps-class alignment by an explicit loop: sweepoptimizelockperiodic re-check.

Checklist item What to lock down Pass criteria
Sweep plan Range, coarse step, fine step, step rate. Objective improves monotonically until convergence.
Objective function Residual skew, phase-error metric, or margin proxy. Metric variance stays below a stability threshold for N reads.
Safe update rule Safe window, double-buffer registers, rate limit. No missing pulse / forbidden behavior during updates.
LUT + re-cal triggers Temperature/voltage bins, drift trend triggers, time triggers. Alignment stays within budget across defined bins/conditions.
Copy fields
SWEEP_RANGE=
COARSE_STEP=
FINE_STEP=
STEP_RATE_LIMIT=
OBJECTIVE_METRIC=
CONVERGENCE_N_READS=
SAFE_UPDATE_WINDOW_RULE=
DOUBLE_BUFFER_MODE=
LUT_BINS_T=
LUT_BINS_V=
RECAL_TRIGGER_TREND=
RECAL_TRIGGER_TIME=
          

C) Production: calibrate fast, verify, program NVM, trace

Objective: move from “one perfect bench setup” to a fixture-stable, auditable production flow.

Item Rule to define Traceability
# calibration points 1-pt / 2-pt / multi-pt based on drift + linearity risk. CAL_POINTS=
Soak time Prefer “stable-threshold” criterion over fixed minutes. SOAK_RULE=
NVM program + verify Write, readback, CRC, version, lock policy. NVM_CRC= / FW_VER=
Quick screens Missing pulse screen, readback consistency, sanity jitter/phase check. SCREEN_RESULT=
Copy fields
CAL_POINTS=
SOAK_RULE=
FIXTURE_ID=
TP_MAP_PROD=
NVM_WRITE_FLOW=
NVM_CRC=
FW_VER=
BOARD_REV=
SERIAL_NO=
LOT_ID=
CAL_TEMP_POINT=
CAL_TIME_UTC=
SCREEN_RESULT=
          

D) Field: trend, alarms, fallback, recovery

Objective: detect drift early and keep behavior predictable under aging/thermal events.

Alarm tier Trigger style Action
Light Trend deviation (relative threshold) Log + schedule re-deskew
Major Metric crosses alignment budget Re-deskew now + throttle updates
Fatal Missing pulse / health pin asserts Fallback to Safe code / freeze / isolate
Copy fields
DRIFT_METRIC=
LIGHT_THRESH_REL=
MAJOR_THRESH_ABS=
FATAL_CONDITION=
ALARM_EVENT_ID=
LOG_PAYLOAD_FIELDS=
FALLBACK_POLICY=
RECOVERY_CRITERIA=
SELFTEST_PERIOD=
          
SVG-11 · From lab to production (one flow, one dataset)
From lab bring-up to production and field monitoring Flowchart showing Bring-up, Calibration, Verify gate, Production programming, and Field monitoring with traceable artifacts. Bring-up Baseline Calibrate Sweep→Lock Verify Gate Production NVM + Trace Field Trend + Alarm Artifacts (must be kept together): TP map Jitter window Codes + CRC Trace fields Logs

Practical rule: if any artifact changes (TP, probe, window, codes), baseline must be re-established before comparing results.

Applications & IC selection logic (decision tree, not a part-number dump)

Selection should output a spec combo + verification plan. Part numbers are provided as starting points for datasheet lookup and lab validation—verify package/suffix, speed grade, and availability.

A) Application buckets (strictly within programmable delay/phase)

1) Multi-card / backplane deskew
  • Goal: remove connector/cable/slot skew; keep residual skew within budget.
  • Placement: typically at endpoints (closest to the card edge / receiver).
  • Update mode: mostly static + periodic re-deskew (trend-triggered).
  • Failure mode: poor repeatability across reconnects; drift with temperature gradients.
2) Data-acquisition phase sweep (edge placement)
  • Goal: sweep phase to maximize margin; lock the best operating point.
  • Placement: near the sampling endpoint (ADC/DAC/FPGA clock input).
  • Update mode: controlled stepping during characterization; limited updates in runtime.
  • Failure mode: time INL/DNL or step settling makes the “best point” non-portable.
3) High-speed link / lane deskew (delay role only)
  • Goal: lane-to-lane skew trim; deterministic alignment without breaking downstream logic.
  • Placement: per-lane near the receiver domain where deskew is measured.
  • Update mode: if runtime updates exist, hitless behavior is mandatory.
  • Failure mode: missing pulse / forbidden short cycles during stepping.

B) Decision tree (what the purchase must guarantee)

Step 1 · Static calibration or dynamic phase moves?
  • Static: prioritize drift/tempco + channel matching drift; LUT support helps.
  • Dynamic: prioritize hitless stepping, update latency/settling, and missing-pulse safety.
Step 2 · Jitter-limited or drift-limited system?
  • Jitter-limited: minimize additive RMS jitter (with a declared integration window) + protect supply/return paths.
  • Drift-limited: minimize delay tempco + keep channel-to-channel drift bounded and observable (readback/temperature).
Step 3 · Scale & maintainability
  • How many channels? per-channel delay control vs global phase shift.
  • Matching needed? specify channel-to-channel matching + drift, not only absolute delay.
  • Observability: code readback, temperature readback, health/missing-pulse flags.
  • Production hooks: NVM/CRC/versioning + trace fields for auditability.

C) Verification template (how to accept the IC)

Dimension What to measure Pass criteria style Record fields
Range + step Full delay range; monotonic stepping; time INL/DNL proxy via sweep. Within system alignment budget across the used range. RANGE= STEP= INL_PROXY=
Additive jitter RMS jitter with explicit integration window; A/B aggressor delta. Delta stays within jitter budget; no tail growth in worst condition. JITTER_RMS= WINDOW= A_B_DELTA=
Update safety Step while running; check missing pulse/short cycles; settling after step. No forbidden events during safe-window updates; stable within N cycles. SAFE_RULE= SETTLE_CYCLES=
Drift + monitoring Temperature sweep or controlled gradient; readback consistency; alarm thresholds. Drift stays within budget; alarms trip before functional failure. DRIFT= TEMP= READBACK_OK=

D) Reference examples (specific material numbers; starting points only)

Use these to accelerate datasheet lookup and bench validation. Final selection must follow the decision tree and the verification template above.

1) Dedicated programmable delay line ICs (ns range, ps steps)
  • Microchip SY89297U — dual-channel programmable delay line (high-speed class).
  • Microchip SY89296U — programmable delay line with ps-class increments (LVPECL class).
  • Microchip SY89295U — precision LVPECL programmable delay.
  • Analog Devices DS1023 — 8-bit programmable timing element (classic, broad use).
  • Analog Devices DS1020 / DS1021 — 8-bit programmable delay lines (classic).
  • onsemi MC100EP196 — programmable delay chip for clock deskewing/timing adjustment.
2) Programmable skew clock buffers (multi-output deskew)
  • Infineon (Cypress) CY7B991 / CY7B992 — programmable skew clock buffers.
  • Infineon (Cypress) CY7B991V — low-voltage programmable skew clock buffer (family variant).
3) Clock generators / conditioners with per-output phase/skew (use only if needed)
  • Renesas 5P49V6965 — programmable clock generator family with programmable skew capability.
  • Texas Instruments CDCE18005 — programmable clock buffer with digital phase adjust features.
  • Texas Instruments LMK03200 — clock conditioner family including programmable delay blocks per distribution path.
Use this bucket when the design actually needs synthesis/conditioning plus phase alignment. If a separate cleaner/synth is already chosen, prefer “Dedicated delay line ICs” to keep the chain simpler.
SVG-12 · Selection flow (requirements → verify → production hooks)
Programmable delay/phase selection flow Flowchart from requirements to architecture choice, specs, lab verification, and production hooks. Requirements Static vs Dynamic Architecture Delay / Skew / Gen Specs Range / Step / Jit Lab verify Window + A/B Production hooks (must be planned early): Soak + points NVM + CRC Trace fields Alarm plan

Output of selection is only valid after lab verification under the declared measurement window and A/B aggressor conditions.

Request a Quote

Accepted Formats

pdf, csv, xls, xlsx, zip

Attachment

Drag & drop files here or use the button below.

FAQs (10–12) — troubleshooting only (no scope creep)

Each answer is intentionally short and actionable: Likely cause / Quick check / Fix / Pass criteria. Example part numbers are starting points only—verify suffix/package/speed grade and validate on the target board.

4-line format Measurable checks Production-ready criteria
Why does alignment look perfect at room temp but drift across temperature?
Likely cause: Delay tempco / channel-to-channel drift is larger than the alignment budget; calibration LUT does not match the real thermal gradient (board ≠ sensor).
Quick check: Hold the delay code fixed, sweep temperature, and trend the residual skew; compare “uniform soak” vs “gradient” cases to see if drift correlates with board hotspots.
Fix: Add temperature-binned LUT (and optionally voltage bins), re-calibrate after crossing a temperature delta, and place the temperature sensor where the delay path actually warms.
Pass criteria: Across the defined operating temperature range, residual skew stays ≤ system alignment budget (X ps), and drift slope is bounded (≤ Y ps/°C) with no outliers after re-plug / re-boot.
Step size is small, but why does eye/SNR get worse after adding the phase shifter?
Likely cause: Additive jitter or interpolation noise rises; supply/return coupling makes the phase setting “noisy” even if the nominal step is fine.
Quick check: Measure RMS jitter with a declared integration window (same window before/after); run A/B aggressor test (nearby switching activity on/off) and compare jitter/eye delta.
Fix: Prefer a lower-additive-jitter architecture for the critical clock; improve decoupling/return path, isolate aggressors, and limit the usable phase range to the “sweet spot” region.
Pass criteria: Added block increases RMS jitter by ≤ jitter budget (ΔJ ≤ X ps in the declared window), and eye/SNR margin improves or stays within allowed degradation (≤ Z%).
Example parts (starting points)
Dedicated delay line class: SY89295U / SY89296U / SY89297U, MC100EP196. Generator-with-phase class (only if needed): 5P49V6965, CDCE18005, LMK03200.
How do I tell additive jitter from measurement noise quickly?
Likely cause: The instrument/probing setup dominates; the “difference” is within the noise floor or caused by changed bandwidth/window settings.
Quick check: (1) Lock probe type + bandwidth limit + integration window. (2) Replace DUT with a known-clean reference path; record instrument baseline. (3) Compare ΔJ = J(with block) − J(baseline).
Fix: Use differential probing at the correct impedance point, keep measurement window fixed, and report results as “ΔJ relative to baseline” rather than absolute numbers alone.
Pass criteria: ΔJ is repeatable across N re-measurements (std-dev ≤ W% of ΔJ), and ΔJ remains above the instrument repeatability threshold to be considered real.
Why does a “hitless” update still cause an occasional missing pulse downstream?
Likely cause: Update is not truly atomic at the endpoint (no double-buffer), or the write occurs inside a forbidden window where the downstream device interprets a short cycle as a missing pulse.
Quick check: Toggle updates at a controlled rate and count missing-pulse/short-cycle events; correlate each event with the register write timing and the “safe window” rule.
Fix: Enforce safe-window updates, enable double-buffer/latch-on-sync (if available), and apply step-rate limiting; use a “freeze then jump” strategy if true hitless is impossible.
Pass criteria: Missing pulse count = 0 over N updates (N ≥ production stress target), and no forbidden short-cycle is observed at the endpoint monitor.
Range is enough, but I can’t converge to best phase—what is the first sanity check?
Likely cause: The objective metric is not repeatable (measurement noise, aggressor coupling, or intermittent missing pulses), so the “best phase” is not a stable target.
Quick check: At a fixed phase code, read the metric M times and compute variance; if variance is high, fixing the loop logic will not help—stability must be improved first.
Fix: Stabilize measurement conditions (window/probe/aggressors), then use coarse→fine scan with a bounded step rate; define an explicit convergence rule (N stable reads, monotonic improvement).
Pass criteria: The selected phase code re-tests within Δ (e.g., ±1–2 fine steps) across repeated runs, and final residual skew stays within budget.
Channel-to-channel skew returns after power cycle—what to store in NVM?
Likely cause: Only “delay code” is stored, but mode bits / reference selection / LUT version / polarity settings are not restored identically at boot.
Quick check: Compare readback of all relevant registers before power-down vs after boot restore; log differences and correlate with skew return.
Fix: Store a boot profile: per-channel code, mode bits, update behavior config, LUT table ID/version, CRC, calibration timestamp, board/slot ID; restore in a defined order with readback verify.
Pass criteria: After reboot (and after NVM restore), residual skew stays within budget without re-calibration; readback matches stored profile (CRC OK, version match).
Why does the best phase depend on supply voltage?
Likely cause: Supply noise changes edge shape/jitter or internal delay characteristics; the phase shifter is supply-sensitive and couples into the timing metric.
Quick check: Sweep supply within allowed limits and log (phase code → metric); compare “quiet supply” vs “loaded/aggressor on” to see if dependence is noise-driven.
Fix: Improve local regulation/decoupling, isolate return paths, and (if necessary) add a voltage bin dimension to the LUT or trigger re-alignment when supply crosses a threshold.
Pass criteria: Across the defined supply range, best-phase code stays within Δ codes (or metric stays within budget), and worst-case jitter/eye margin remains within system limits.
What calibration cadence is “enough” for field systems?
Likely cause: Cadence is chosen by habit (time-based) rather than by drift behavior; the system drifts on events (thermal ramps, airflow, power states) not on a fixed clock.
Quick check: Trend residual skew vs temperature/voltage/power-state transitions; identify which events cause the largest step in drift.
Fix: Use trigger-based re-calibration: re-align after ΔT/ΔV thresholds or after defined operating-state transitions; keep a time-based backstop only as a safety net.
Pass criteria: Under worst-case field conditions, residual skew remains within budget between calibrations, and trend alarms trigger before functional margin is violated.
Why does deskew work on one backplane slot but not another?
Likely cause: Slot-dependent path differences are not only “delay”—they change edge quality (reflections, crosstalk, return path), breaking repeatability and the objective metric.
Quick check: Measure at the same endpoint TP across slots: compare edge shape, overshoot/undershoot, and A/B aggressor sensitivity; log per-slot baseline before deskew.
Fix: Use per-slot calibration profiles (slot ID → codes), tighten termination/return-path constraints for the backplane clock, and restrict deskew to ranges where waveform remains valid.
Pass criteria: For all qualified slots, deskew converges and re-tests within Δ codes; residual skew + jitter stays within budget under the defined aggressor conditions.
How to define a pass/fail criterion for phase alignment in production?
Likely cause: Production checks focus on “code written” instead of “timing margin achieved”; measurement setup drifts across fixtures/operators.
Quick check: Define a minimal metric that correlates with real alignment (residual skew or a proxy) and verify repeatability across fixture swaps and probe replacements.
Fix: Use a 3-part gate: (1) residual skew ≤ budget, (2) missing pulse screen = 0, (3) readback/NVM CRC + versioning OK; record integration window + fixture ID.
Pass criteria: P95/P99 residual skew is within budget for the production population; screens remain stable across fixtures; trace fields allow full replay (TP map, window, versions, codes).
My drift alarm chatters—how to set hysteresis properly?
Likely cause: Alarm threshold is near the noise floor of the drift metric; no hysteresis/time qualification, so measurement jitter toggles the state.
Quick check: Log the drift metric histogram at steady conditions; estimate noise band (peak-to-peak or robust percentile) and compare it to the alarm threshold.
Fix: Add hysteresis (enter/exit thresholds), add time qualification (must persist for T seconds or N samples), and optionally use a trend detector (slope) to gate alarms.
Pass criteria: Alarm does not chatter at steady state (0 toggles in a defined dwell time), and triggers only when drift exceeds budget for ≥ the qualification window.
Can I fix drift by increasing update frequency—what’s the hidden risk?
Likely cause: Faster updates inject more phase disturbance (settling/glitch risk), potentially increasing missing pulses or widening jitter tails even if average drift looks improved.
Quick check: Run a sweep of update rate and record (a) missing pulse count, (b) RMS jitter in a fixed window, (c) worst-case eye margin; check for non-linear “cliff” behavior.
Fix: Prefer trigger-based updates (event-driven) with rate limiting; update only in safe windows; if drift is fast, use a closed-loop monitor (TDC/phase detector) rather than blind frequent stepping.
Pass criteria: At the chosen update cadence, missing pulse count = 0, jitter/eye margins remain within budget, and performance does not degrade at worst-case aggressor/temperature conditions.