Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Path
  • CDC/RDC Glossary
  • CDC/RDC Metrics Reference
  • CDC/RDC Interview Prep
  • CDC/RDC Signoff Cheatsheet
  • Clock Domains and Failure Modes8
  • Metastability and Synchronizers16
    • MTBF & Synchronizer Math
    • Two-Flop Synchronizers in Practice
    • Multi-bit CDC Hazards
      • Bus Tearing
      • Why Bitwise Sync Fails
      • Skew and Capture Window
      • Safe Patterns Overview
    • Synchronizer Selection Guide
  • CDC Protocols and Handshakes16
  • Reconvergence and Gray Coding16
  • Reset Domain Crossing16
  • Architecture and Design Rules16
  • CDC Signoff Methodology24
  • RDC Signoff16
  • Debug and Case Studies11
  • CDC and RDC Interview Prep30
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Multi-bit CDC Hazards
  1. Topics
  2. CDC & RDC
  3. Metastability and Synchronizers
  4. Multi-bit CDC Hazards
  5. Safe Patterns Overview

Part 2 · Metastability and Synchronizers · All levels

Safe Patterns Overview

The catalogue of safe multi-bit crossings: Gray, handshake, async FIFO, load pulse, and dual-clock RAM.

Every safe multi-bit crossing follows one idea: arrange that at most one thing can be uncertain at the sampling moment, or hold everything stable until sampling is done. Five patterns cover nearly every design; the table tells you which fits where.

Pattern

Fits

Cost

Gray code plus per-bit synchronisers

Counters and pointers that advance one step at a time.

An encoder, a decoder, and the one-step discipline.

Handshake (request/acknowledge)

Occasional arbitrary words in either direction.

Round-trip latency on every transfer; control logic both sides.

Async FIFO

Streams of words with bursty rates.

Memory, pointers, full/empty logic; the heaviest but highest-throughput option.

Load pulse with held data

Configuration and quasi-static buses written rarely.

Holding logic plus a synchronised pulse; cheap and slow.

Dual-clock RAM

Shared buffers both sides access.

A macro plus ownership discipline so the two sides never touch the same entry together.

The detailed protocols live in the handshake, async FIFO, and pulse synchroniser topics of the cdc-protocols part of this course: two-phase and four-phase handshakes, Gray pointer FIFOs with depth sizing, and toggle and stretch pulse schemes. This lesson only maps the choice; those topics teach the circuits.

Choosing quickly

One changing bit per step points to Gray; anything arbitrary but infrequent points to a handshake; a continuous stream points to a FIFO; rarely written settings point to a load pulse; shared storage points to dual-clock RAM. Independent status flags with no relation to each other are the one case where per-bit synchronisers are genuinely fine.

Common pitfall

The failure mode of every pattern is using it where its precondition breaks: Gray on jumping values, handshakes that do not hold data through the acknowledge, FIFOs with wrong depth or reset, load pulses on data that moves too soon.

Interview

“How do you cross a multi-bit bus?” Never answer with one pattern. List the value types, match each to its pattern from the table, and state the precondition that makes each one safe.

Check yourself A sensor delivers a new 12-bit sample every microsecond into a 100 MHz domain. Which pattern, and why not a handshake?

An async FIFO: it is a continuous stream, and per-sample handshake latency would throttle throughput. A handshake suits occasional words, not streams.

Check yourself A mode register is written once at boot and read in three other domains. Which pattern is cheapest?

A load pulse with held data in each destination: the value is quasi-static, so holding it stable around a synchronised pulse is correct and far cheaper than FIFOs or handshakes.

Related topics

  • Why Bitwise Sync Fails

  • Decision Matrix

  • RTL: Async FIFO

Previous

26 / 179

Next: Synchronizer Selection Guide

Up next

Up nextSynchronizer Selection Guide

Sign in to save progress

Practice this lessonReport an error

See also

  • Bus Tearing
  • Why Bitwise Sync Fails