Skip to guide

Safe boundaries across time and voltage

Clock, Reset, CDC and Power

Operate a dual-clock, power-gated sensor subsystem from cold reset through configuration, streaming, quiesce, sleep, wake, and recovery while every crossing preserves meaning.

Classify each boundary by clock relationship, payload semantics, reset behavior, and power state; then select a structure and signoff evidence that remain safe in silicon.

Updated July 20266 connected chaptersInteractive labs + worked examples

Boundary control room · active

One island. Three clocks. Four meanings.

The same pair of domains needs different circuitry for a persistent mode, a short event, a coherent configuration word, and a continuous sample stream.

Power stateACTIVEPLL lockLOCKEDIsolationOPENOutstanding03 samples
PD_AON · 0.80 V

Always-on control

Clock
clk_aon · 50 MHz
Reset
por_n → rst_aon_n
Power
Always on
PD_SENSOR · 1.00 V

Sensor peripheral

Clock
clk_sensor · 125 MHz
Reset
rst_sensor_n
Power
Standby capable
Boundary fabricSynchronizers · handshake · async FIFOIsolation + level shifting at PD_COMPUTE boundary
PD_COMPUTE · 0.72 V

Compute island

Clock
clk_compute · PLL 500 MHz
Reset
rst_compute_n
Power
Switchable + retention
Always-on power managerQuiesce → isolate → gate → switchOwns wake dependencies and domain-ready
Sensor peripheralCompute island
UseAsynchronous FIFO
ContractDual-port storage keeps data local; only Gray pointers cross.
DeliveryElastic
01

Domain atlas

Draw the boundaries before choosing circuitry.

Start with clock provenance, reset ownership, voltage, switchability, and payload direction. Frequency alone never tells you whether a crossing is synchronous.

Primary sourceCrystalIndependent sourceSensor clockElectrical + temporal boundaryCDC · RDC · isolation · level shift
Switchable consumer

Compute island

Clock
clk_compute · 500 MHz
Provenance
PLL output behind an ICG
Reset
Local release after power-good + PLL lock
Power
0.72 V · Switchable, selected state retained
Traffic
Configuration, samples, completion
Owned state
Filter pipeline, FIFO read side, retained mode
Signoff boundary
CDC + RDC + power-aware + clock-gating checks
Boundary ledger: every crossing receives four classifications
PayloadSource → destinationClock relationReset epochPower rule
mode_enAON → computeRelated while compute clock runsAON survives compute resetClamp before compute OFF
sample_eventSensor → AONIndependent clocksReject stale toggle epochBoth domains powered
config[31:0]AON → computeRelated bundled transferHandshake restarts after resetLevel shift + isolation
samplesSensor → computeDual-clock FIFOPointers converge from emptyDrain before compute OFF
02

Reset and RDC

Release locally. Reconnect deliberately.

Asynchronous assertion can force safety without a clock. Deassertion is a timed local event, and related state must not reconverge until reset epochs agree.

RDC release scopeSafe structure
clk_computerst_compute_nready_aonready_computetraffic_enable
Each domain releases reset on its own active edges.Power-good and PLL lock qualify the asynchronous request. A two-stage local chain then deasserts reset in each domain; traffic waits for synchronized domain-ready.
03

Payload-driven CDC

Transfer meaning, not merely wires.

A CDC structure preserves the meaning of a payload. First classify persistence, coherence, event rate, throughput, and backpressure—then choose circuitry.

Recommended mechanism

Dual-clock asynchronous FIFO

1Write local RAM2Cross Gray pointers3Read local RAM
Contract
Data stays in dual-port storage. Each side computes full or empty from a synchronized, possibly stale opposite pointer.
Delivery
Elastic until the rate difference and burst envelope consume depth.
Do not use it when
Gray encoding is not a replacement for synchronizer stages, reset coordination, or pointer-bus skew constraints.
  • One-bit Gray transitions and bounded bus skew
  • Full/empty at wrap boundaries
  • Overflow, underflow, reset convergence, and rate stress
Async FIFO · ownership topologyMove pointers across domains, not the data bus.
clk_sensorWrite pointerbinary → Gray → 2FF
01234567Dual-port storage
clk_computeRead pointerbinary → Gray → 2FF
Binary wrap0111 1000Four bits may change
Gray wrap0100 1100One bit changes
Three-bit binary to Gray progression
BinaryGrayΔ bits
0000000
0010011
0100111
0110101
1001101
1011111
1101011
1111001

The synchronized opposite pointer may be stale, which makes full or empty conservative. Gray coding reduces incoherent transitions; it does not remove the synchronizers or the pointer-bus skew constraint.

Relative reliability explorer

Resolution time changes risk exponentially.

Relative to the baseline1× baseline
MTBF ∝eTresolve / τfclk · fdata · C

This is a sensitivity comparison, not an absolute MTBF prediction. The fixed baseline is 2 ns, 500 MHz, 10 MHz, and τ = 60 ps; C is held constant. Device-specific τ and C come from characterized library data and vary with process, voltage, temperature, cell choice, placement, and routing. Metastability risk approaches zero with more resolution time; it never becomes zero.

04

Clocks and gating

Prove the relationship before applying an exception.

A crossing can be timed only when the tool knows the actual phase relationship. Clock gating is a separate functional contract that must preserve complete pulses.

Clock interaction reportSubsystem relationship matrix

Highlighting · clk_sensor ↔ clk_aon / clk_compute

clk_aonclk_sensorclk_computeclk_aonSELFASYNCRELATEDclk_sensorASYNCSELFASYNCclk_computeRELATEDASYNCSELF
Relationship
No fixed phase relationship exists, even if two independent oscillators happen to have the same nominal frequency.
Timing action
Use a recognized CDC structure. Constrain the relationship without pretending ordinary setup/hold can prove functional sampling.
Design boundary
Review every crossing by payload semantics with structural CDC and protocol evidence.
Evidence
Clock interaction + CDC/RDC analysis
Integrated clock gateCapture enable while the positive-edge clock is low.
functional_enLow-level latchscan_enAND with root clockgclk_compute
root_clkfunctional_enlatched_engclkenable may change while clock is lowdisable captured low

The latch prevents enable transitions during the high phase, so the AND gate cannot create a runt pulse. Use a library ICG cell, include the test override, constrain the generated clock, and verify min pulse width—not a hand-built RTL AND gate.

05

Power intent

Keep electrical truth beside functional intent.

RTL describes logic behavior. IEEE 1801 UPF adds supply networks, power domains, switch control, isolation, retention, level shifting, and legal power states.

UPF-aware topologyPD_COMPUTE is switchable; PD_AON owns safety.
VDD_AON · 0.80 VVDD_SENSOR · 1.00 VVDD_COMPUTE · 0.72 V
PD_AONPower managerAlways-on control + isolation enable
LSLevel shifterISOClamp compute outputs
PD_COMPUTEFilter pipelinePower switch + retained mode register
Retention supplymode_reg · calibration_epochSave before switch-off · restore before reconnect
Legal compute-island states
StateSupplyClockIsolationRetentionTraffic
ACTIVEONRUNOPENTRACKLEGAL
IDLEONGATEDOPENTRACKBLOCKED
RETENTIONRETOFFCLAMPSAVEDBLOCKED
OFFOFFOFFCLAMPSELECTED HOLDBLOCKED

IsolationClamp outputs from a domain that may be off before its supply becomes invalid. Choose clamp values from the receiving protocol's safe state.

Level shiftingInsert direction-appropriate cells when voltage domains differ. Cell placement and supply ownership are implementation decisions encoded by power intent.

RetentionRetain only state whose restoration cost justifies the always-on leakage and sequencing complexity. Reset and retained state need an explicit precedence rule. This worked subsystem holds mode_reg and calibration_epoch in OFF; a cold-off policy may discard them only if wake skips restore and reinitializes that state instead.

06

Safe sleep and wake

Quiesce first. Reconnect last.

Power transitions are distributed protocols. Every step has an owner, prerequisite, acknowledgment, timeout, and proof that accepted work is not lost.

Step 01 of 10

Compute accepts samples and may create new work.

SupplyONClockRUNResetRELEASEDIsolationOPENRetentionTRACKTrafficACCEPTOutstanding3

Why nowAll dependencies are valid: supply, PLL, clock, reset, isolation, and domain-ready.

Prove itTraffic is legal only while domain_ready is true.

Architecture contractRTL + UPFSTA · CDC · RDCPower-aware simulationAssertions + formalImplementation signoff

Reasoning checkpoints

Questions worth answering without notes.

Each answer states the mechanism first, then the consequence.
01Why does a two-flop synchronizer reduce risk instead of eliminate it?

The first destination flop can still enter metastability when an asynchronous transition violates its sampling aperture. The second stage gives that analog state additional resolution time, which improves MTBF exponentially, but the probability is never mathematically zero and depends on library parameters, placement, clock rate, data-toggle rate, and available resolution time.

02Why is synchronizing every bit of a bus independently unsafe?

Each bit can resolve on a different destination edge, so the receiver may observe a word that never existed at the source. Preserve coherence with a bundled-data handshake, Gray-coded control state, source-synchronous transfer, or asynchronous FIFO selected for the payload and throughput contract.

03What is the safe order for powering down a domain?

Stop new work, drain or cancel accepted work according to the protocol, save retained state, assert isolation while source outputs are still valid, gate clocks when the domain is idle, then remove power. Wake-up reverses the dependency carefully: restore power, wait for stability, enable clocks, restore or reset state, validate readiness, and only then release isolation and accept traffic.

Keep practicing

Move from recognition to explanation.

These links open the existing practice bank without publishing protected solutions on this guide.

Continue the system

Connect the adjacent layer.