Chargement…
Chargement…
Write synthesizable Verilog and validate each module with a self-checking testbench run by Icarus Verilog.
0/28 exercises completed
Modulo-10 Decade Counter
VerilogDesign a four-bit synchronous counter that advances from 0 through 9 and then wraps to zero.
10-bit Down-counter Timer
VerilogLoad a duration, decrement it every cycle, and flag zero before arithmetic wraparound.
Reloading Periodic Timer
VerilogStore a period, count down to zero, and then automatically reload the programmed value.
Parameterized Counter
VerilogCreate a counter whose width is selected at instantiation.
4-bit Up-down Counter
VerilogCount in both directions with enable and modulo-sixteen wraparound.
Modulo-12 Counter
VerilogCount from zero through eleven and pulse on wraparound.
Complete 4-bit Up-down Counter
Pulse Stretcher
VerilogTurn a one-cycle pulse into an active level of a fixed duration.
Complete Modulo-12 Counter
Switch Debouncer
VerilogFilter unstable transitions on an asynchronous input.
Complete Pulse Stretcher
16 x 8 Asynchronous-read RAM
VerilogModel a small memory with synchronous write and combinational read.
Complete Switch Debouncer
16 x 8 Synchronous-read RAM
VerilogModel a RAM whose read and write operations occur on rising edges.
Complete 16 x 8 Asynchronous-read RAM
Dual-read Register File
VerilogBuild an eight-register file with one write and two simultaneous reads.
Complete 16 x 8 Synchronous-read RAM
8 x 8 Synchronous FIFO
VerilogImplement an eight-byte queue with empty and full flags.
Complete Dual-read Register File
Seven-segment Decoder ROM
VerilogUse a combinational lookup table to display a hexadecimal digit or blank the display.
Complete 8 x 8 Synchronous FIFO
Single-digit BCD Adder
VerilogAdd two BCD decimal digits and a carry-in.
Complete Seven-segment Decoder ROM
Barrel Shifter and Rotator
VerilogShift or rotate a byte by zero through seven positions in one combinational cycle.
Complete Single-digit BCD Adder
1011 Sequence Detector
VerilogDetect an overlapping serial sequence with a Mealy state machine.
Complete Barrel Shifter and Rotator
Programmable Timer
VerilogLoad a period and produce a pulse after the requested number of cycles.
Complete 1011 Sequence Detector
Hamming (7,4) Code
VerilogEncode four bits and automatically correct one single-bit error.
Complete Programmable Timer
LFSR Stream Cipher
VerilogCombine each byte with a reproducible pseudo-random sequence.
Complete Hamming (7,4) Code
One’s-complement Checksum
VerilogCompute the checksum of packets made of sixteen-bit words.
Complete LFSR Stream Cipher
PS/2 Mouse Packet Decoder
VerilogAssemble three PS/2 bytes into buttons and signed movements.
Complete One’s-complement Checksum
Blackjack Score Engine
VerilogCompute the best value of a five-card hand without exceeding 21.
Complete PS/2 Mouse Packet Decoder
PRBS Sequence Checker
VerilogCompute the next LFSR state and count mismatches. Implement every specified decision.
Complete Blackjack Score Engine
SRAM Byte-lane Mapper
VerilogMerge one byte according to two byte enables. Implement every specified decision.
Complete PRBS Sequence Checker
PS/2 Frame Validator
VerilogCheck start, stop, and odd parity. Implement every specified decision.
Complete SRAM Byte-lane Mapper
Reciprocal Frequency Estimator
VerilogDivide a reference count by a measured period. Implement every specified decision.
Complete PS/2 Frame Validator
Windowed Watchdog Decision
VerilogClassify a kick as early, valid, or late. Implement every specified decision.
Complete Reciprocal Frequency Estimator
Eight-request Rotating Arbiter
VerilogSelect the first request after the previous winner. Implement every specified decision.
Complete Windowed Watchdog Decision