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

Reconvergence of Synchronized Signals

HardLogic CircuitTiming Diagram

Independent synchronizers resolving metastable states on different clock cycles destroy the timing relationship of related signals. Two asynchronous inputs, A_IN and B_IN, transition HIGH exactly on the rising edge of CLK at step 3. This causes the first-stage flip-flops of both independent two-stage synchronizers to go metastable. Assume the first stage of the A synchronizer resolves HIGH before the next rising edge, while the first stage of the B synchronizer resolves LOW and captures the HIGH state one cycle later.

Six signals are shown: CLK (clock, period 2), A_IN and B_IN (asynchronous inputs), A_SYNC and B_SYNC (synchronized outputs, initially 0), and ERROR (combinational output of A_SYNC XOR B_SYNC, initially 0). Each synchronizer consists of two positive-edge-triggered D flip-flops that update immediately on the rising edge of CLK.

Trace A_SYNC, B_SYNC, and ERROR across all 14 time steps.

Constraints

  • Output updates for the sequential elements occur immediately on the rising edge of the clock.
  • The ERROR signal is purely combinational and evaluates A_SYNC XOR B_SYNC at every time step without delay.

Topics

MetastabilitySynchronizationClock Domains

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