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

Pulse Synchronizer

HardLogic CircuitBuild

Passing control signals between asynchronous clock domains requires specialized synchronization logic to prevent data loss. When a control pulse in the source domain is shorter than the period of the destination clock, a standard two-stage synchronizer will miss the event entirely.

The circuit must capture a narrow pulse_in on the source clock clk_tx and safely transfer it to the destination clock clk_rx. The source domain must convert the pulse into a level change. The destination domain must synchronize this level and generate a single-cycle pulse_out for every level transition.

| Clock Event | pulse_in | Internal Toggle State | pulse_out | |-------------|------------|-----------------------|-------------| | clk_tx ↑ | 1 | Toggles | 0 | | clk_rx ↑ | 0 | Holds | 0 | | clk_rx ↑ | 0 | Holds | 1 | | clk_rx ↑ | 0 | Holds | 0 |

Constraints

  • Implement a toggle flip-flop in the clk_tx domain to stretch the incoming pulse.
  • Implement a two-stage flip-flop synchronizer in the clk_rx domain.
  • Implement an edge detector in the clk_rx domain to recover the pulse.
  • Tie all flip-flop reset pins to the asynchronous active-high rst signal.
  • Use only D flip-flops and basic combinational logic gates.

Topics

edge-detectorflip-flopssynchronizercdc

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