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

Fast to Slow Domain Data Loss

MediumLogic CircuitDebug

A data acquisition system transfers burst sensor readings from a high-speed sampling domain to a slower processing domain. The circuit must transfer all valid data words from the fast clock domain (clk_fast) to the slow clock domain (clk_slow) without data loss.

Expected behavior:

When valid_in is high, data_in is captured on the rising edge of clk_fast. The captured data must sequentially appear on data_out with valid_out asserted high on the rising edge of clk_slow. All captured words must be transferred in their original order.

Simulation shows dropped data words during burst transfers. When a burst of four consecutive words is sent on data_in while valid_in is high, data_out only outputs the first word of the burst. The intermediate data words are lost. Inspect the circuit and correct the fault.

Constraints

  • The fast clock runs at exactly four times the frequency of the slow clock.
  • All transferred words must be properly synchronized to the clk_slow domain.
  • You must not alter the clock generators or the input stimulus.

Topics

sequentialfifocdcsynchronization

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