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

2-FF Synchronizer: Construction and Labeling

EasyLogic CircuitBuild

Signals crossing clock domains risk violating setup and hold times, leading to metastability in the receiving domain. The standard two-stage synchronizer safely transitions asynchronous signals into a synchronous clock domain by providing a full clock period for metastable states to resolve.

Construct a two-stage synchronizer using D flip-flops. Route the asynchronous input async_in through two series-connected flip-flops clocked by clk. Connect the output of the first flip-flop to the meta_out port to explicitly identify the node susceptible to metastability. Connect the output of the second flip-flop to sync_out to provide the safe, resolved signal for downstream synchronous logic.

Constraints

  • Use exactly two D flip-flops.
  • Connect async_in only to the data input of the first flip-flop.
  • Drive the clock pins of both flip-flops with the clk input.
  • Do not connect any synchronous logic to the meta_out node.
  • Route the final synchronized signal from the second flip-flop to the sync_out port.

Topics

flip-flopsmetastabilitysynchronizerclock-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