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

UART Transmitter Data Shifter

MediumLogic CircuitBuild

Asynchronous serial communication requires holding data bits stable for an entire baud period so the receiver can reliably sample them. The transmission shift register serializes a parallel payload and advances precisely when commanded by the baud rate generator.

When load is high, the register captures the 8-bit data_in. While load is low, the register shifts out one bit to tx_out every time baud_tick asserts, starting with the least significant bit (LSB). When baud_tick is low, tx_out must remain stable. Upon synchronous rst, tx_out must default to 1 to match the standard UART idle state.

Constraints

  • Implement using sequential and combinational logic.
  • Shift data out LSB first.
  • Update the shift register state only when baud_tick is high or load is high.
  • Drive tx_out directly from the least significant bit of your internal shift register.

Topics

SequentialShift RegisterSerialUART

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