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
  • 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
    • CDC/RDC Whiteboard Framework
    • CDC/RDC Framework Drills
    • Scenario: Metastability Bug
    • Scenario: Metastability Escape in Silicon Bring-up
    • Scenario: Async FIFO Pointer Mismatch
      • The Scenario
      • Diagnosis
      • Fix and Guard
    • Scenario: Waiver Debate
    • Scenario: RDC Waiver Under Tapeout Pressure
    • CDC/RDC Interview Q&A Bank
    • CDC/RDC Interview Q&A Bank (Expanded)
  • Capstone: Sign Off a Multi-clock Peripheral4
Loading lesson

‹Scenario: Async FIFO Pointer Mismatch
  1. Topics
  2. CDC & RDC
  3. CDC and RDC Interview Prep
  4. Scenario: Async FIFO Pointer Mismatch
  5. The Scenario

Part 10 · Interview Prep · All levels

The Scenario

Occasional false empty while writes are active, with legal traffic on both sides.

You are told: an async FIFO bridges a fast writer and a slower reader. Occasionally, and only under bursty traffic, the reader sees the empty flag asserted while the writer insists data was available. The reader idles, throughput dips, and the flag clears by itself a little later. Data is never corrupted and never lost: every written word is eventually read exactly once. Both clock frequencies are as specified, and reset sequencing is "the standard one", which nobody can produce in writing.

Reading the symptom

Three details carry the diagnosis. First, the flag is wrong transiently and self-clears: the comparison saw a stale or torn write pointer, then caught up. Second, data is never lost or duplicated: the storage and the eventual pointer values are correct, so only the crossing timing of the pointer is suspect. Third, burst-dependence: pointers move fastest under bursts, which is when multi-step Gray transitions and synchroniser latency hurt most. The prime suspect is the write-pointer crossing into the read domain: its encoding, its synchroniser, or the comparison that consumes it.

Interview

The interviewer is testing whether you defend the data path first or attack it first. Clear it explicitly, "data integrity holds, so storage and addressing are fine", then spend every remaining minute on the pointer crossing. That sentence proves you scope before you dig.

Check yourself Why does self-clearing empty implicate a stale pointer rather than a logic bug?

A logic bug in the comparison would assert empty deterministically for a given pointer state; a transient that clears as synchronised pointers catch up matches crossing latency or a torn sample that later resolves.

Related topics

  • Next: Diagnosis

  • Full and empty

Previous

160 / 179

Next: Diagnosis

Up next

Up nextDiagnosis

Sign in to save progress

Practice this lessonReport an error

See also

  • Fix and Guard