← Back to: Supervisors & Reset
What This Page Solves
Cold vs Warm Starts
PLL/SerDes lock differs on warm boots; without a separate release window, rails may appear “healthy” prematurely.
Slow/Fast Ramps
Slow slopes cause chatter at UV/OV edges; fast slopes can violate minimum reset pulse width.
Level Domains & Back-Power
Wrong OD/PP choice and pull-up domain creates sneak paths and partial powering.
Redundant Source Switch
PG spikes during A/B switchover need debounce windows, min-hold and retry windows to avoid false enables.
Power-Down Logging Loss
No latency budget or batch writes means FRU events can be lost before outage.
What you’ll get: a dependency-graph → timeline method, standardized PG semantics (OD/PP, min pulse, debounce), and a FRU event schema & fields checklist.
Sequencing Strategies for 10–20+ Rails
Dedicated Sequencer / PMIC
- Many channels, tabular parameters, PMBus/I²C manageable.
- Pro: maintainable; Con: step granularity differs across vendors.
PG Daisy-Chain + Logic Debounce
- Fewer parts and simple wiring.
- Risk: per-rail tuning scattered, maintainability drops as rails grow.
CPLD / Small FPGA Custom
- Most flexible mapping from DAG to logic.
- Cost: verification effort and version management complexity.
Key parameters: DAG (Depends_On), tON/tOFF, dV/dt, pre-bias policy, cold/warm templates, redundancy windows (debounce/min-hold/retry), and power-down order to avoid half-powered states.
| Rail_ID | Nominal_V | Tolerance | Depends_On | tON/tOFF | dV/dt | Release_Mode | Notes |
|---|---|---|---|---|---|---|---|
| VDD_CORE | 0.9 V | ±3% | VDD_MAIN | 5/5 ms | 0.2 V/ms | sync | example |
| Rail_ID | Cold: tON_add | Warm: tON_add | Pre-bias | Hold-time |
|---|---|---|---|---|
| VDD_IO | +2 ms | +0 ms | Allowed | ≥3 ms |
- Draw DAG → topological order → break cycles and record the breakpoints.
- Back-solve from slowest lock domains (SerDes/DDR) to define release windows.
- Assign debounce, min-hold, and retry windows; produce cold/warm tables.
- Map to PMIC/Sequencer/CPLD parameters; define power-down order to avoid half-power.
Supervision & Windowing
Effective Window
Combine DC/DC tolerance, sense-chain error, temp drift, and step size to set a real UV/OV window.
Hysteresis vs Slope
Use hysteresis ≥ noise + (dV/dt × debounce) to tame slow-ramp chatter.
Min Reset Pulse
Guarantee POR across MCU/FPGA domains: Min_PW ≥ (sync stages + assert cycles) × Tclk + margin.
OD vs PP & Fan-out
Prefer OD “wire-AND” across mixed domains; pull-up in the target domain; place isolators near sinks.
| Rail_ID | UV_set | OV_set | Hyst | Min_Pulse (ms) | Output (OD/PP) | Debounce (ms / K-of-N) | PG_Semantics |
|---|---|---|---|---|---|---|---|
| VDD_CORE | 0.85 | 0.95 | 15 mV | 2.0 | OD | 4 / 3-of-5 | Active_L, Aggregated |
PMBus/I²C Telemetry & FRU Logging
| Rail_ID | Sensor (VIN|VOUT|IOUT|TEMP) | Scale / LSB | Status_Bits | Event_Class | Policy | Counter | Timestamp |
|---|---|---|---|---|---|---|---|
| VDD_CORE | VOUT | 1 mV/LSB | PG, UV_WARN | UV | retry | 12 | ms |
| Stage | Worst-case | Budget | Margin |
|---|---|---|---|
| T_sample | 2 ms | 1 ms | 0.5 ms |
| T_decide | 0.8 ms | 0.5 ms | 0.3 ms |
| T_queue | 1.2 ms | 0.8 ms | 0.2 ms |
| T_write | 3.0 ms | 2.0 ms | 0.5 ms |
- Prioritize key rails in the scan order; keep Scale/LSB consistent across vendors.
- Gate logging by severity; use ring buffer with roll-over and first-entry HW/FW/Serial stamp.
- Bound end-to-end latency with a measured T_total; verify survival in sudden power-loss tests.
Redundancy & Voting
1oo2 vs 2oo3
1oo2 maximizes availability; 2oo3 suppresses false triggers. Choose per-rail by criticality.
Debounce → Vote
Always debounce first (time or K-of-N), then vote. Apply Min_Hold to stabilize outputs.
Timeout & Isolation
Downline failed channels with Timeout_ms; isolate bad paths and trigger graceful failover.
Synchronized WDT
Feed the watchdog only when Vote_OK ∧ Stable ≥ Min_Hold to avoid phantom recovery.
| Scheme | Window_ms | Timeout_ms | Min_Hold | Retry_Count | Failover_Policy |
|---|---|---|---|---|---|
| 2oo3 | 8 | 50 | 10 ms | 2 | A→B on Timeout |
Reset Tree, Fan-out & Level Domains
Level Islands
Map Source → Target domains; unify polarity and document release order.
OD/PP & Isolation
Use OD across mixed domains; pull-up in target domain; isolator near sinks to prevent back-power.
Min Pulse & Sync
Stretch Min_PW to satisfy MCU/FPGA POR; use double/tri-sync or window release.
Manual/Remote Reset
Debounce + LongPress; safe-exit vs hard-reset; interlock with WDT and PG.
| Source | Sink_Domain | Isolation | OD/PP | Min_PW (ms) | Sync_Mode | Comments |
|---|---|---|---|---|---|---|
| RESET_SRC | FPGA_1V2 | Yes (near sink) | OD | 2.5 | window | Pull-up to 1.2V domain |
Design Rules & Validation
From DAG → Timing Table
Encode Depends_On, then derive tON/tOFF, dV/dt, pre-bias, Min_Pulse, Hyst, and Debounce.
Boundary Matrix
Temp (−40/25/+85) × Ramp (slow/mid/fast) × Load (idle/typ/peak) × Redundancy (off/on-switch).
PG Jitter Stats
Compare pre-vote vs post-vote jitter (rate, amplitude, dwell) under fault injection.
FRU Survival
Budget T_total = sample + decide + queue + write ≤ warning window; batch & ring buffer.
| Item | Method | Pass Criteria | Record Fields |
|---|---|---|---|
| Dependency order | Scope rail enables vs DAG topo | No early release; topo OK | run_id, rail_id, depends_on, t_release |
| Min_Pulse across domains | Pulse stretcher & POR monitor | POR_ok for all targets | min_pw_meas, por_flag, domain |
| UV/OV step sweep | Program thresholds, step Δ | False± ≤ spec; repeatable | uv_set, ov_set, hyst, false_pos, false_neg |
| PG jitter (pre/post vote) | Inject noise/ramp edges | Post-vote jitter ↓ vs pre | rate_hz, amplitude_mV, dwell_ms |
| FRU write survival | Cut power near deadline | Loss ≤ target ppm | t_sample, t_decide, t_queue, t_write, loss_ppm |
Automation Script I/O (CSV → JSON)
Input CSV columns:
Rail_ID, Depends_On, tON_ms, tOFF_ms, dVdt_Vs, Min_Pulse_ms, Hyst_mV, Debounce_ms, Scheme(1oo2|2oo3|NofM), Window_ms
Output JSON schema:
{
"run_id": "YYYYMMDD-HHMM-SEQ",
"env": {"temp":"-40/25/85","slope":"slow/mid/fast","load":"idle/typ/peak","failover":"none/AtoB"},
"metrics": {"pg_jitter_rms":"mV","false_pos":0,"false_neg":0,"fru_loss_ppm":0.0}
}
Cross-Brand Part Mapping
Category-level alignment for multi-rail sequencing / supervision / reset / telemetry. We list concrete PNs; avoid DC/DC control specifics to keep pages non-overlapping.
| Function | TI | ST | NXP | Renesas | onsemi | Microchip | Melexis | Second-Source (Y/N) | Notes |
|---|---|---|---|---|---|---|---|---|---|
| PMBus Sequencer / Manager | UCD90320, UCD9090A, UCD90120A | STPMIC1(A/B…)* (sequencing features) | PF5020 (PMIC class) | ISL68xxx/RAA PMBus mgr | — | PS10, MPM/SMG family | — (focus on reset/watchdog) | N (pin/feature diverge) | Rail count, ADC/LSB, logging differ; migration needs table updates. |
| Window Supervisor / Reset | TPS3850, TPS3702 (OD/PP options) | STM6xx / STM65xx supervisors | S32K/SBC domain supervisors* | ISL80xx/ISL70xx windowed SR* | NCP303 / NCV303 (low Iq) | MCP131x/MCP65xx SR* | MLX8xxx SBC w/ reset* | Y/N by polarity/OD-PP | Match PG polarity & Min_PW; confirm hysteresis model. |
| Telemetry & Event Counters | UCD90xx ADC + faults/counters | STPMICx status & IRQ map | PF5xxx status/OTP | ISL/RAA PMBus status bits | — | PS10 status/counters* | — | N (schema mismatch) | Unify Event_Class/Severity/Policy for FRU export. |
Migration Tips
- PG semantics: normalize active level and OD/PP; update pull-up domain and fan-out buffers.
- Hysteresis & debounce: algorithms differ; keep “debounce → vote → hold” order.
- Threshold LSB: tighten windows only if noise/quantization allow; re-run UV/OV step tests.
- Package height: check heatsink/mezz clearances on high-rail-count managers.
- Second-source: treat “pin-okay, semantics-different” as Not equivalent until validated.
BOM & Procurement Notes
Goal
Provide a submission-ready checklist for 10–20+ rail systems and de-risk cross-brand alternatives without breaking PG semantics or reset timing.
Scope
Only fields/semantics, sourcing and compliance. No DC/DC loop tuning to avoid sibling-page overlap.
Mandatory Fields
| Rail_ID | Nominal_V | ±Tol(%) | Depends_On | Latch / One-shot | Output (OD/PP) | AEC-Q100 (Y/N) | Pkg_Height (mm) | Second-source (Y/N) |
|---|---|---|---|---|---|---|---|---|
| VDD_CORE | 0.90 | ±2 | — | Latch | OD | N | 1.2 | Y |
Optional Fields
| PMBus / I²C | PG Semantics (active, min-pulse) | Event Counter Depth | dV/dt Req (V/s) | Debounce (ms / K-of-N) | Temp Grade | Min Reset Pulse (ms) | FRU Log Depth |
|---|---|---|---|---|---|---|---|
| Yes (400 kHz) | Active-low, ≥2.5 ms | 128 events/rail | ≥0.4 | K=3 of 5 | −40~+85 °C | 3.0 | Last 256 |
Risks & Mitigations
| Risk | Symptom | Root Cause | Mitigation |
|---|---|---|---|
| PG semantics mismatch | False warm-starts / missed resets | Active level / Min_PW / hysteresis model differ | Glue logic shim; re-map polarity; re-run Min_PW tests |
| EOL / NTF / MOQ delays | Lead-time slips, sample gaps | Supply shocks; limited sample pool | Pre-qual second-source; align threshold LSB/window |
| Package height / thermal | Interference with heatsink/mezz | Stacking / air flow limits | Reserve z-budget; validate airflow; consider spreaders |
Pre-Submit Self-Check
- PG polarity and OD/PP match the target voltage island; Min_Pulse ≥ POR requirement.
- Second-source candidate aligns on threshold LSB and window; migration cost noted.
- FRU schema fields unified:
Event_Class/Severity/Counter/Timestamp. - Package height and cooling margin meet chassis constraints.
Frequently Asked Questions
How do I derive a safe 10–20+ rail power-up order from a dependency graph?
Start with a DAG of rails and consumers, then topologically sort to obtain release order. Break feedback loops by selecting a bootstrap rail. Provide cold/warm variants, add brown-in/out guards, and document SerDes/DDR prerequisites. Export a timing table and log dependencies so audits can confirm that enables followed the declared order.
What minimum reset pulse width guarantees a cold MCU/FPGA clock domain?
Set Min_PW to exceed the worst-case PLL lock and clock tree settle time. For synchronous domains, require Min_PW ≥ N×clk_period + margin, with N equal to your synchronizer stages. Verify across temperature and oscillator start-up variance, and measure POR flags to prove the target domain latched a full reset.
When should PG be open-drain instead of push-pull across mixed-voltage islands?
Prefer open-drain where rails span different logic levels or need wired-AND aggregation. Place pull-ups in the target island to prevent back-power. Use push-pull only for same-domain, point-to-point connections with defined level tolerance. For large fan-out, regenerate PG with level buffers to control rise times and eliminate sneak currents.
How wide should UV/OV windows be to avoid chatter with slow ramps and drift?
Sum DC/DC tolerance, sense-path error, ADC quantization and temperature drift to form an effective error band. Choose hysteresis ≥ noise + drift, and compensate for sampling delay. Add debounce or K-of-N voting on the comparator status so slow ramps do not generate toggling PG. Verify with worst-case ramp slopes.
How do I debounce and vote PG signals from redundant rails (1oo2/2oo3)?
Debounce each channel first using time windows or K-of-N sampling, then feed the debounced results into the voter. Select 1oo2 to maximize availability or 2oo3 to suppress false positives. Apply Min_Hold before enabling loads, and isolate channels that exceed timeout to prevent a stuck-high path dominating the vote.
What PMBus channels matter most for FRU logging and post-mortem audits?
Prioritize VIN, VOUT, IOUT, temperature and consolidated status bits. Keep counters for fault classes and store a rolling window of the most recent N events. Batch writes and respect your write-deadline budget so logs persist through brown-outs. Include firmware/hardware versions and board serials to keep audits consistent.
How do I limit false warm-starts after brown-outs on dense backplanes?
Introduce a brown-in blanking period and a re-qualification window before re-enabling rails. Clear or re-sync PG states, gate enable lines until pre-bias is safe, and enforce a cool-down timer between retries. Record each incident in FRU so repeated occurrences can be correlated with slot position or airflow constraints.
How do I fan-out reset across level domains without back-power issues?
Place isolators close to sink domains and pull up on the target side. Use open-drain drivers for mixed levels and stretch the reset pulse so every domain meets its POR requirement. Coordinate release with either multi-flop synchronizers or a windowed release pulse to avoid metastability across clock islands.
What policy should follow a sequencing failure: retry, de-rate, or shut down?
Classify by criticality and hazard. Allow limited retries with cool-down for non-critical rails; de-rate loads to preserve core domains; and shut down when safety or integrity is at risk. Always record failure class, attempt count and policy chosen so field returns can be analyzed against environmental conditions.
How do I bound telemetry latency so FRU logs survive sudden power loss?
Trigger logging on thresholds and batch writes to reduce overhead. Reserve a write-ahead window and honor an early power-fail signal when available. Prove T_total = sample + decide + queue + write ≤ window under worst-case bus contention, then measure loss rate by cutting power near the deadline.
How tight should multi-rail release synchronization be for SerDes/DDR?
Target sub-millisecond alignment, bounded by the receiver’s lock requirements and the interface’s power-up window. Validate with a timing assertion band and phase the dependent rails within that window. Use a common release reference, then confirm the eye or training sequence is not degraded by residual skew.
How do I plan a cross-brand migration without breaking PG semantics?
Normalize PG polarity and minimum pulse, then align threshold step size and hysteresis model. Insert glue logic where semantics diverge and re-run your validation matrix across cold/warm and failover cases. Treat “pin-compatible but semantic-different” parts as non-equivalent until regression results are clean.