- 1medium
SR Latch (Gate-Level)
Build a cross-coupled NOR SR latch and reason about its set/reset/hold/invalid behavior.
- 2medium
D Flip-Flop with Asynchronous Reset
A D flip-flop that samples d on the rising clock edge, with an asynchronous active-high reset.
- 3medium
D Flip-Flop with Synchronous Reset and Enable
A D flip-flop with a synchronous, active-high reset that takes priority over a clock-enable input.
- 4medium
4-bit Up/Down Counter
A 4-bit counter that increments or decrements each clock, with a synchronous reset and free-running wraparound.
- 5medium
Decade (Mod-10) Counter
A synchronous-reset counter that cycles through 0-9 and wraps back to 0, rather than the full 4-bit range.
- 6medium
Universal Shift Register
A 4-bit register that can hold, parallel-load, shift left, or shift right, selected by a mode input.
- 7medium
Moore FSM: Non-Overlapping Sequence Detector (1011)
A Moore-style FSM that flags each non-overlapping occurrence of the bit pattern 1011 in a serial input stream.
- 8medium
Mealy FSM: Overlapping Sequence Detector (1011)
A Mealy-style FSM that flags every occurrence of the bit pattern 1011 in a serial input stream, including overlapping matches.
- 9easy
D Flip-Flop
Store one bit on each rising clock edge.
- 10easy
D Flip-Flops
Register an eight-bit vector on the rising clock edge.
- 11easy
DFF with Synchronous Reset
Add a synchronous active-high reset to a D flip-flop.
- 12medium
DFF with Configurable Reset Value
Reset a four-bit register to a specified nonzero value.
- 13medium
DFF with Byte Enable
Update a 32-bit register only when its write enable is asserted.
- 14medium
D Latch
Implement a level-sensitive D latch.
- 15medium
D Flip-Flop with Input Gate
Feed a gated data value into a rising-edge-triggered register.
- 16medium
Mux and DFF
Register the selected one of two input bytes.
- 17medium
Detect a Rising Edge
Convert a sampled low-to-high transition into a one-cycle pulse.
- 18medium
Detect Both Edges
Generate a one-cycle pulse for either sampled signal transition.
- 19medium
Edge Capture Register
Capture data once on a rising capture event and hold the result.
- 20hard
Dual-Edge Register
Capture data on both the rising and falling clock transitions.
- 21medium
Counter 1 to 12
Build a clocked counter cycling through values 1 to 12.
- 22medium
Counter 1000
Count modulo 1000 with a synchronous reset.
- 23medium
Slow Decade Counter
Use a slower enable pulse to advance a decade counter.
- 24hard
4-Digit Decimal Counter
Count from 0000 through 9999 and present the value as packed BCD.
- 25hard
12-Hour Clock
Advance hours, minutes, and seconds in a 12-hour clock.
- 26easy
4-Bit Shift Register
Shift one serial input bit into a four-bit register each cycle.
- 27medium
Left/Right Rotator
Rotate an eight-bit value left or right by one bit per cycle.
- 28medium
Arithmetic Shift by 1 or 8
Register a signed value after an arithmetic right shift of one or eight bits.
- 29medium
5-Bit LFSR
Advance a five-bit linear-feedback shift register from a fixed nonzero seed.
- 30easy
3-Bit LFSR
Build a three-bit linear-feedback shift register.
- 31hard
32-Bit LFSR
Advance a 32-bit LFSR using four feedback taps.
- 32easy
Enabled Shift Register
Shift a serial input into a register only on enabled cycles.
- 33medium
Bidirectional Shift Register
Shift an eight-bit register in either direction with a serial input.
- 34medium
3-Input Lookup Table
Use three logic inputs as the address of an eight-bit lookup table.
- 35medium
Simple FSM 1 (Asynchronous Reset)
Implement a two-state Moore machine with an active-high asynchronous reset.
- 36medium
Simple FSM 1 (Synchronous Reset)
Implement a two-state Moore machine with synchronous reset.
- 37medium
Simple FSM 2 (Asynchronous Reset)
Toggle between two states on input events with an asynchronous reset.
- 38medium
Simple FSM 2 (Synchronous Reset)
Toggle between two states on input events with a synchronous reset.
- 39medium
Simple One-Hot State Transitions
Cycle a three-state machine through one-hot encoded states.
- 40medium
Design a Moore FSM
Build a Moore machine that recognizes two consecutive sampled ones.
- 41medium
Simple FSM 3 (Asynchronous Reset)
Build a three-state counter-style FSM with asynchronous reset.
- 42medium
Simple FSM 3 (Synchronous Reset)
Build a three-state counter-style FSM with synchronous reset.
- 43easy
Lemmings 1: Walk
Create the walking outputs for a simple two-direction character controller.
- 44medium
Lemmings 2: Bump
Turn the character around when it bumps into either wall.
- 45medium
Lemmings 3: Fall
Track whether the character is walking or falling based on ground support.
- 46hard
Lemmings 4: Bump and Fall
Combine wall collisions and missing ground in a small character controller.
- 47medium
Simple State Transitions 3
Implement a three-state transition graph driven by a serial control input.
- 48medium
One-Hot FSM
Implement a four-state ring machine using one-hot state encoding.
- 49medium
Sequence Recognition
Detect a five-bit pattern in a serial stream.
- 50medium
Serial Two's Complementer (Mealy)
Convert a least-significant-bit-first serial word to its two's complement.
- 51hard
Serial Two's Complementer (Moore)
Build a registered serial two's-complement conversion machine.
- 52hard
Serial Receiver
Receive a start bit, eight data bits, and a stop bit using a sample enable.
- 53hard
Serial Receiver and Datapath
Coordinate serial frame timing and byte capture in a receiver.
- 54hard
Serial Receiver with Parity Checking
Check odd parity while receiving serial data frames.
- 55medium
Q8: Design a Mealy FSM
Recognize an overlapping 1101 pattern with an output pulse on its final input bit.
- 56medium
Q3a: FSM State Register
Build a three-state request, busy, and done controller.
- 57medium
Q3b: FSM Output Logic
Decode status outputs from a two-bit state encoding.
- 58medium
Q3c: FSM Next-State Logic
Implement the combinational next-state table for a request controller.
- 59medium
Q6: Complete an FSM
Complete a Moore FSM that reports after two consecutive input samples.
- 60medium
Q6b: FSM Next-State Logic
Compute next-state bits from encoded state and current input.
- 61medium
Q6c: One-Hot Next-State Logic
Derive next-state equations for a one-hot input recognizer.
- 62medium
Q2a: FSM Controller
Build a two-state start and finish controller.
- 63medium
Q2b: One-Hot FSM Equations
Write next-state equations for a one-hot start/finish controller.
- 64easy
Four-Bit Binary Counter
Build a four-bit modulo-16 binary counter.
- 65medium
Decade Counter with Enable
Add a count enable to a modulo-10 counter.
- 66medium
Rule 90 Cellular Automaton
Update a one-dimensional cellular automaton using Rule 90.
- 67medium
Rule 110 Cellular Automaton
Implement a one-dimensional cellular automaton with Rule 110.
- 68hard
Conway's Game of Life 16x16
Compute a 16 by 16 Game of Life generation with dead cells beyond the boundary.
- 69medium
Q2a: Another FSM
Detect a run of three consecutive high input samples.
- 70medium
Q2b: Another One-Hot FSM
Represent the progress of a run-length detector using one-hot state bits.
- 71medium
Mux and DFF with Enable
Combine a data mux and an enabled register.
- 72medium
DFFs and Gates
Compute a bitwise gate function and register its result.
- 73medium
Create Circuit from Truth Table
Implement a sequential transition table as a clocked circuit.
- 74medium
Decade Counter Again
Add a synchronous load path to a decade counter.
- 75medium
PS/2 Packet Parser
Recognize three-byte PS/2 packets in a continuous byte stream.
- 76hard
PS/2 Packet Parser and 3-Byte Datapath
Find three-byte PS/2 message boundaries and capture each completed packet.