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.
Dual-clock asynchronous FIFO
- 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
| Binary | Gray | Δ bits |
|---|---|---|
| 000 | 000 | 0 |
| 001 | 001 | 1 |
| 010 | 011 | 1 |
| 011 | 010 | 1 |
| 100 | 110 | 1 |
| 101 | 111 | 1 |
| 110 | 101 | 1 |
| 111 | 100 | 1 |
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.
Resolution time changes risk exponentially.
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.
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.
Highlighting · clk_sensor ↔ clk_aon / clk_compute
- 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
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.
