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

Valid Data Serializer

MediumLogic CircuitBuild

Serial communication protocols require receivers to distinguish between idle line states and active payload transmission. The data valid envelope asserts precisely when the payload begins and deasserts the moment the final bit completes.

The circuit receives a 4-bit parallel input data_in and a start signal. When start is high, the circuit registers data_in and begins transmission on the following clock cycle. Over the next four clock cycles, tx_data outputs the captured bits sequentially from LSB to MSB. Concurrently, tx_valid remains high for exactly these four active cycles. When the line is idle, tx_valid is 0 and tx_data is 0.

Constraints

  • Drive tx_data and tx_valid to 0 when the synchronous active-high rst is asserted.
  • Transmit the 4-bit payload strictly LSB first.
  • Ignore any start assertions that occur while tx_valid is already high.
  • Output tx_data and tx_valid directly from flip-flops to prevent glitching on the interface.

Topics

Shift RegisterState MachineInterface

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