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

Data Hold Time Requirements for MUX Sync

MediumLogic CircuitTiming Diagram

A MUX synchronizer transfers a multi-bit data bus across clock domains by passing a valid flag through a two-stage flip-flop synchronizer before using it as a register enable.

Five signals are shown: CLK_B (destination clock, positive-edge-triggered, period 4), VALID_A (source valid flag), DATA (source data bus), and the outputs VALID_SYNC (initially 0) and DATA_OUT (initially 1).

Trace VALID_SYNC (the 2-stage synchronized valid flag) and DATA_OUT (which captures DATA on CLK_B rising edges when VALID_SYNC is HIGH, and holds its value otherwise) across all 16 time steps.

Constraints

  • VALID_SYNC is the output of the second flip-flop in the synchronizer chain.
  • Both synchronizer flip-flops and the DATA_OUT register are clocked by CLK_B.
  • Initial states: VALID_SYNC is 0 and DATA_OUT is 1.

Topics

flip-flopssetup-holdclock-domainssynchronization

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