CodiodeCodiode
Home
Problem Solving
Skill Tracks
My Assignments
Contests
Leaderboard
Community
Settings
Codiode/Problems/Sequential Logic

2-FF Synchronizer: Metastability Resolution

MediumLogic CircuitTiming Diagram

A two-flip-flop synchronizer uses two positive-edge-triggered D flip-flops to mitigate metastability by providing a full clock cycle for the first stage to resolve before the second stage samples the signal.

Four signals are shown: CLK (clock, period 10), ASYNC_IN (asynchronous input), Q1 (first stage output, initially 0), and Q2 (second stage output, initially 0). The asynchronous input transitions exactly on the first clock rising edge, causing Q1 to violate setup/hold requirements and become metastable. Assume the metastable state persists for exactly 8 time steps before resolving to a stable HIGH state.

Trace Q1 and Q2 across all 24 time steps.

Constraints

  • Use "X" to denote any metastable or indeterminate time step.
  • Both flip-flops are positive-edge-triggered and capture the value of their input immediately prior to the clock edge.
  • The clock period is 10 time steps, meaning it alternates state every 5 time steps.

Topics

timing-diagramflip-flopsmetastabilitysynchronizer

Solve this problem

Place the gates, wire them up and watch the signals settle. Every submission runs on the same simulation engine that grades it.

This problem is part of Codiode Pro. The statement above is free to read.

Sign in to solveSee what Pro unlocks

The circuit builder and code editor need a desktop screen. On a phone, read the problem here and open it on a laptop to solve.

Related problems

  • 3-bit Ripple Counter from Toggle Flip-FlopsEasy
  • D Latch from a 2:1 MUXEasy
  • 2-bit Ring CounterEasy
  • T Flip-Flop from a D Flip-FlopEasy
  • Handshake Deadlock Due to Early ResetHard
  • Reconvergence of Individually Synchronized BitsHard
  • Debug: Asynchronous Clear GlitchHard
  • Clock Gate Enable Crossing DomainsHard

Browse all problems · Learning tracks