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

Shift Register Based Fall Through FIFO

MediumLogic CircuitBuild

High-speed communication interfaces require buffering where traditional pointer-based tracking introduces critical path delays. A fall-through bubble FIFO solves this by allowing incoming data to automatically ripple down to the lowest available empty slot using localized valid bits instead of centralized read and write pointers.

Construct a 2-stage, 1-bit wide synchronous fall-through FIFO. The circuit consists of Stage 1 (top) and Stage 0 (bottom). Each stage maintains a 1-bit data register and a 1-bit valid register (v1 and v0).

State transition rules evaluated on the rising edge of clk: * If rst is 1: clear v1 and v0. * If push is 1 and full is 0: load din into Stage 1 and set v1 to 1. * If v1 is 1, and either v0 is 0 or pop is 1: move Stage 1 data to Stage 0, set v0 to 1, and clear v1 (unless a new push simultaneously loads Stage 1). * If pop is 1 and no data is moving from Stage 1: clear v0. * If full is 1, new push requests are ignored.

Output assignments: * empty: 1 when both v1 and v0 are 0. * full: 1 when both v1 and v0 are 1. * dout: continuous assignment to the Stage 0 data register.

Constraints

  • Use only D flip-flops and combinational logic gates.
  • Do not use RAM or memory blocks.
  • Implement exactly 2 stages of depth.
  • Drive outputs empty, full, and dout combinationally based on the current register states.

Topics

FIFODatapathSynchronousRegisters

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