Chargement…
Chargement…
Start from a technical specification and design the complete VHDL, validated by GHDL simulation.
0/186 exercises completed
AND Gate
VHDLDesign a two-input AND logic gate. This is the fundamental building block of all combinational logic.
OR Gate
VHDLDesign a two-input OR logic gate. The output is active when at least one input is '1'.
NOT Gate (Inverter)
VHDLDesign a logic inverter. The output is the complement of the input.
XOR Gate
VHDLDesign a two-input XOR (exclusive OR) logic gate. Used in adders, parity detection and encryption.
2-to-1 Multiplexer
VHDLDesign a purely combinational 2-to-1 multiplexer. The selector chooses which of the 2 inputs is forwarded to the output.
NAND Gate
VHDLDesign a two-input NAND logic gate. This is the universal gate: any logic function can be built using NAND gates.
Complete 2-to-1 Multiplexer
NOR Gate
VHDLDesign a two-input NOR logic gate. Like NAND, it is a universal gate.
Complete NAND Gate
XNOR Gate
VHDLDesign a two-input XNOR (equivalence) logic gate. The output is active when both inputs are the same.
Complete NOR Gate
Half Adder
VHDLDesign a half adder that adds two bits without carry-in.
Complete XNOR Gate
1-Bit Full Adder
VHDLDesign a 1-bit full adder with carry-in and carry-out. This block is the fundamental building block of any arithmetic unit.
Complete Half Adder
4-to-1 Multiplexer
VHDLDesign a purely combinational 4-to-1 multiplexer. The 2-bit selector chooses which of the 4 inputs is forwarded to the output.
Complete 1-Bit Full Adder
2-to-4 Binary Decoder
VHDLDesign a 2-to-4 binary decoder with an enable signal. The output is a one-hot code corresponding to the selector value when the decoder is active.
Complete 4-to-1 Multiplexer
8-Bit Parity Checker
VHDLDesign an 8-bit parity checker. The output indicates whether the number of 1-bits in the input is odd (parity = 1) or even (parity = 0).
Complete 2-to-4 Binary Decoder
4-Bit Comparator
VHDLDesign a 4-bit combinational comparator that compares two unsigned numbers and indicates whether the first is greater than, equal to, or less than the second.
Complete 8-Bit Parity Checker
D Flip-Flop with Enable
VHDLImplement a D flip-flop with enable and active-high asynchronous reset. The flip-flop stores i_d on the rising edge only if i_en is active.
Complete 4-Bit Comparator
4-Bit Register
VHDLImplement a 4-bit register with enable and active-high asynchronous reset.
Complete D Flip-Flop with Enable
4-Bit Left Shift Register
VHDLImplement a 4-bit left shift register with serial input and asynchronous reset.
Complete 4-Bit Register
4-Bit SIPO Shift Register
VHDLImplement a 4-bit serial-in parallel-out (SIPO) shift register with asynchronous reset. Bits enter serially and are available in parallel.
Complete 4-Bit Left Shift Register
4-Bit Up Counter
VHDLImplement a 4-bit synchronous up counter with enable and asynchronous reset.
Complete 4-Bit SIPO Shift Register
4-Bit Down Counter
VHDLImplement a 4-bit synchronous down counter with enable and asynchronous reset. Reset initializes to maximum value (15).
Complete 4-Bit Up Counter
4-Bit Ring Counter
VHDLImplement a 4-bit ring counter with asynchronous reset. A single '1' bit circulates through the register.
Complete 4-Bit Down Counter
SPI Slave (CPOL=0, CPHA=1)
VHDLImplement a generic SPI slave in mode 1 (CPOL=0, CPHA=1) receiving a 32-bit frame.
Complete 4-Bit Ring Counter
8-bit SPI Master
VHDLImplement an SPI master (mode 0: CPOL=0, CPHA=0) capable of transmitting and receiving a byte over an SPI bus.
Complete SPI Slave (CPOL=0, CPHA=1)
SPI Master Mode 0
VHDLImplement an SPI master in mode 0 (CPOL=0, CPHA=0) capable of transferring 8 bits serially.
Complete 8-bit SPI Master
BCD Counter
VHDLImplement a synchronous BCD counter that counts from 0 to 9 then wraps to 0, with active-low asynchronous reset and enable input.
Complete SPI Master Mode 0
Clock Divider
VHDLImplement a generic clock divider that divides the input frequency by 2 × G_HALF, with asynchronous reset.
Complete BCD Counter
4-bit Shift Register
VHDLImplement a 4-bit serial shift register (SISO) with asynchronous reset. Bits shift right on each rising edge.
Complete Clock Divider
Sequence Detector "101"
VHDLImplement a Mealy state machine that detects the binary sequence "101" on a serial input, with overlap handling.
Complete 4-bit Shift Register
Simple 4-operation ALU
VHDLImplement a combinational ALU performing 4 operations on two 8-bit operands: addition, subtraction, AND, and OR, with carry flag.
Complete Sequence Detector "101"
Transparent Latch (FPGA Pitfall)
VHDLImplement a transparent latch to understand this classic FPGA pitfall. When enable is high, output follows input; when enable is low, output holds its value.
Complete Simple 4-operation ALU
Loadable Shift Register
VHDLImplement an 8-bit loadable shift register combining parallel load and left shift, with load taking priority.
Complete Transparent Latch (FPGA Pitfall)
Pulse Stretcher
VHDLImplement a pulse stretcher that extends a single-cycle signal into an output active for G_CYCLES clock cycles.
Complete Loadable Shift Register
Watchdog Timer
VHDLImplement a safety watchdog timer: a counter decrements continuously and triggers a timeout if no i_kick signal is received in time.
Complete Pulse Stretcher
LED Sequence Controller
VHDLImplement a 3-state FSM controller (OFF, BLINK, ON) that drives an LED with blinking. Each button press advances the sequence.
Complete Watchdog Timer
PWM Generator
VHDLImplement a PWM generator with a sequential counter and a combinational output controlled by the duty cycle.
Complete LED Sequence Controller
8-bit LFSR
VHDLImplement an 8-bit Linear Feedback Shift Register (LFSR) with seed loading and combinational feedback output.
Complete PWM Generator
Moving Average Filter (4 samples)
VHDLImplement a 4-sample moving average filter with a sequential shift register and combinational average computation.
Complete 8-bit LFSR
Generic Parallel Register with Enable
VHDLImplement an N-bit parallel register with enable and combinational update detection.
Complete Moving Average Filter (4 samples)
2-FF CDC Synchronizer with Edge Detection
VHDLImplement a two flip-flop CDC synchronizer with combinational rising and falling edge detection.
Complete Generic Parallel Register with Enable
CRC-16/CCITT (polynomial 0x1021)
VHDLImplement a synchronous CRC-16 calculator, bit by bit, with the CCITT polynomial and a combinational output of the CRC register.
Complete 2-FF CDC Synchronizer with Edge Detection
I2C Master - Start & Addressing
VHDLImplement the first two phases of an I2C master: START condition and sending the 7-bit address + R/W bit via a 5-state FSM.
Complete CRC-16/CCITT (polynomial 0x1021)
7-Segment Decoder
VHDLImplement a 7-segment decoder that converts a BCD digit (0-9) into 7 signals to light the correct display segments, with enable.
Complete I2C Master - Start & Addressing
Top Level - Instantiation
VHDLImplement a top level that instantiates a BCD counter and a 7-segment decoder, correctly wiring internal signals and external ports.
Complete 7-Segment Decoder
4-Bit Binary Multiplier
VHDLDesign a 4-bit combinational multiplier that computes the product of two unsigned numbers on an 8-bit output.
Complete Top Level - Instantiation
BCD to Binary Converter
VHDLDesign a combinational converter that transforms an 8-bit BCD (Binary-Coded Decimal) number into its 7-bit binary value.
Complete 4-Bit Binary Multiplier
8-to-1 Multiplexer
VHDLDesign a purely combinational 8-to-1 multiplexer. The 3-bit selector chooses which of the 8 inputs is forwarded to the output.
Complete BCD to Binary Converter
1-to-2 Demultiplexer
VHDLDesign a 1-to-2 demultiplexer. The input is routed to one of the two outputs based on the selector.
Complete 8-to-1 Multiplexer
1-to-4 Demultiplexer
VHDLDesign a 1-to-4 demultiplexer. The input is routed to one of the four outputs based on the 2-bit selector.
Complete 1-to-2 Demultiplexer
3-to-8 Binary Decoder
VHDLDesign a 3-to-8 binary decoder with enable signal. The output is a one-hot code corresponding to the selector value.
Complete 1-to-4 Demultiplexer
Binary to Gray Code Converter
VHDLDesign a 4-bit binary to Gray code converter. Gray code is used in communications because only one bit changes between consecutive values.
Complete 3-to-8 Binary Decoder
Gray Code to Binary Converter
VHDLDesign a 4-bit Gray code to binary converter. Inverse operation of the binary to Gray converter.
Complete Binary to Gray Code Converter
4-Bit Subtractor
VHDLDesign a 4-bit combinational subtractor that computes the difference of two unsigned numbers with borrow indication.
Complete Gray Code to Binary Converter
JK Flip-Flop
VHDLImplement a JK flip-flop with active-high asynchronous reset. The JK flip-flop is the most versatile: it can hold, set, reset, or toggle its output.
Complete 4-Bit Subtractor
T Flip-Flop
VHDLImplement a T (Toggle) flip-flop with active-high asynchronous reset. When T='1', the output toggles on each rising edge.
Complete JK Flip-Flop
Synchronous SR Flip-Flop
VHDLImplement a synchronous SR flip-flop with active-high asynchronous reset. S sets the output to '1', R resets it to '0'.
Complete T Flip-Flop
BCD to Excess-3 Encoder
VHDLDesign a combinational encoder that converts a valid BCD digit to Excess-3 code.
Complete Synchronous SR Flip-Flop
Hamming (7,4) Encoder
VHDLEncode 4 data bits with three even-parity bits to form a Hamming (7,4) word.
Complete BCD to Excess-3 Encoder
Fix an Unintended Latch
VHDLFix an incomplete combinational process that keeps an old value when `i_sel = "11"`.
Complete Hamming (7,4) Encoder
Odd Counter
VHDLBuild a synchronous counter that only walks through 4-bit odd values.
Complete Fix an Unintended Latch
Self Reloading Counter
VHDLImplement a down counter that reloads itself when it reaches zero.
Complete Odd Counter
Thermometer to Binary Decoder
VHDLConvert an 8-bit thermometer code to a binary count.
Complete Self Reloading Counter
Fibonacci Generator
VHDLDesign an 8-bit sequential Fibonacci sequence generator.
Complete Thermometer to Binary Decoder
Sequence Reverser
VHDLReverse the order of four nibbles packed into a 16-bit word.
Complete Fibonacci Generator
Running Sum Calculator
VHDLAdd a stream of unsigned samples into a 12-bit accumulator.
Complete Sequence Reverser
Duplicate Detector
VHDLDetect whether four 4-bit values contain at least one duplicate.
Complete Running Sum Calculator
Difference Calculator
VHDLCompute the signed difference between two 8-bit samples.
Complete Duplicate Detector
Stream Accumulator
VHDLAccumulate a packet of samples and report the sum on the last word.
Complete Difference Calculator
Prefix Sum
VHDLCompute cumulative sums for four 4-bit values.
Complete Stream Accumulator
Hamming Distance Calculator
VHDLCount the differing bits between two 8-bit words.
Complete Prefix Sum
Trailing Zero Counter
VHDLCount consecutive zeros starting at the least significant bit.
Complete Hamming Distance Calculator
MAC Address Filter
VHDLAccept a frame when its destination MAC is local or broadcast.
Complete Trailing Zero Counter
Packet Length Validator
VHDLCheck that a packet length sits inside an allowed window.
Complete MAC Address Filter
VLAN Tag Detector
VHDLDetect common VLAN TPIDs and extract the TCI field.
Complete Packet Length Validator
ReLU Activation Unit
VHDLImplement an 8-bit signed ReLU activation.
Complete VLAN Tag Detector
Max Pooling Unit
VHDLCompute the maximum over a 2x2 window of 8-bit pixels.
Complete ReLU Activation Unit
Argmax Unit
VHDLReturn the maximum value and its index among four inputs.
Complete Max Pooling Unit
Synchronous FIFO Controller
VHDLImplement a synchronous FIFO controller managing read/write pointers, full/empty flags and fill level.
AXI4 Master - Read Channels
VHDLImplement a simple AXI4 master managing the two read channels: Read Address (AR) and Read Data (R).
AXI-Lite Slave - Register Map
VHDLImplement an AXI-Lite slave with three 32-bit read/write registers, managed by two independent state machines.
FSM - Pedestrian Light
VHDLImplement a 3-process state machine for a pedestrian light with integrated timer and per-state duration management.
LED Controller - Moore State Machine
VHDLImplement a 3-process Moore state machine that cycles 4 LEDs in sequence on command.
N-bit Adder - Ripple Carry
VHDLImplement an N-bit ripple carry adder using only logical operators, without any arithmetic library.
Complete LED Controller - Moore State Machine
Bidirectional Counter with Parallel Load
VHDLImplement a generic bidirectional counter with parallel load, enable, and asynchronous reset.
Complete N-bit Adder - Ripple Carry
Configurable Debouncer
VHDLImplement a debouncer circuit with configurable stabilization time via generics.
Complete Bidirectional Counter with Parallel Load
8-to-3 Priority Encoder
VHDLImplement an 8-to-3 combinational priority encoder that encodes the position of the highest-priority active bit.
Complete Configurable Debouncer
4-bit Johnson Counter
VHDLImplement a 4-bit Johnson counter with synchronous reset. The counter goes through a sequence of 8 states before returning to its initial state.
Complete 8-to-3 Priority Encoder
8-bit Barrel Shifter
VHDLImplement an 8-bit barrel shifter performing a logical left shift in 3 combinational stages (shift-by-4, shift-by-2, shift-by-1).
Complete 4-bit Johnson Counter
W1C Register (Write-1-to-Clear)
VHDLImplement a W1C register: bits are set via i_set_en and cleared by writing 1 via i_clr_en.
Complete 8-bit Barrel Shifter
1µs Tick Generator
VHDLGenerate a 1µs periodic pulse from a system clock with known period.
Complete W1C Register (Write-1-to-Clear)
N-bit Counter with Overflow Output
VHDLImplement a generic synchronous N-bit counter with enable, asynchronous reset and overflow indication.
Complete 1µs Tick Generator
8-Bit Comparator
VHDLImplement an 8-bit combinational comparator that compares two unsigned numbers and indicates their relationship.
Complete N-bit Counter with Overflow Output
4-Bit Adder-Subtractor
VHDLImplement a 4-bit combinational block selectable between addition and subtraction via a control signal.
Complete 8-Bit Comparator
Cascadable N-Bit Comparator
VHDLImplement a generic cascadable comparator with cascade inputs for connecting multiple stages.
Complete 4-Bit Adder-Subtractor
8-Bit Register with Load Enable
VHDLImplement an 8-bit register with parallel load enable and asynchronous reset.
Complete Cascadable N-Bit Comparator
4-Bit Bidirectional Shift Register
VHDLImplement a 4-bit shift register that can shift left, shift right, parallel load, or hold its value.
Complete 8-Bit Register with Load Enable
8x4 ROM
VHDLImplement an 8-word by 4-bit read-only memory (ROM), purely combinational.
Complete 4-Bit Bidirectional Shift Register
16x4 ROM with Constant Array
VHDLImplement a 16-word by 4-bit ROM using a VHDL constant array.
Complete 8x4 ROM
8x4 Synchronous RAM
VHDLImplement an 8-word by 4-bit RAM with synchronous write and asynchronous read.
Complete 16x4 ROM with Constant Array
16x4 Synchronous RAM
VHDLImplement a 16-word by 4-bit RAM with synchronous write and asynchronous read.
Complete 8x4 Synchronous RAM
8-Deep 8-Bit LIFO Stack
VHDLImplement an 8-deep, 8-bit LIFO stack with push, pop, and empty/full flags.
Complete 16x4 Synchronous RAM
8x8 Dual-Port RAM
VHDLImplement an 8-word by 8-bit dual-port RAM: independent write and read ports.
Complete 8-Deep 8-Bit LIFO Stack
4x8 Register File
VHDLImplement a 4-register, 8-bit register file with 1 write port and 2 read ports.
Complete 8x8 Dual-Port RAM
4-Bit Carry Lookahead Adder
VHDLImplement a 4-bit Carry Lookahead Adder (CLA).
Complete 4x8 Register File
8-Bit CLA Adder (2 Cascaded Blocks)
VHDLImplement an 8-bit CLA adder by cascading two 4-bit CLA blocks.
Complete 4-Bit Carry Lookahead Adder
4-Bit Barrel Shifter
VHDLImplement a 4-bit, 2-stage barrel shifter that can logically shift left by 0 to 3 positions.
Complete 8-Bit CLA Adder (2 Cascaded Blocks)
Simplified 8-Bit Floating-Point Adder
VHDLImplement an adder for a simplified float format: 1 sign bit, 3 exponent bits (bias 3), 4 mantissa bits (implicit 1.xxxx).
Complete 4-Bit Barrel Shifter
Simplified 8-Bit Floating-Point Multiplier
VHDLImplement a multiplier for the same simplified float format: 1 sign bit, 3 exponent bits (bias 3), 4 mantissa bits (implicit 1).
Complete Simplified 8-Bit Floating-Point Adder
7-Bit Parity Generator
VHDLImplement an even parity generator: generates a parity bit for 7 data bits, and verifies an 8-bit word (7 data + 1 parity).
Complete Simplified 8-Bit Floating-Point Multiplier
8-Bit Population Counter (Popcount)
VHDLImplement a population counter: count the number of '1' bits in an 8-bit vector.
Complete 7-Bit Parity Generator
4-Channel Priority Multiplexer
VHDLImplement a priority multiplexer: 4 data channels of 4 bits with request bits. The highest-priority active channel is selected.
Complete 8-Bit Population Counter (Popcount)
CDC Handshake Synchronizer
VHDLImplement a 4-phase handshake synchronizer to transfer a data bus between two independent clock domains.
Complete 4-Channel Priority Multiplexer
5-tap FIR Low-pass Filter
VHDLImplement a 5-tap direct-form FIR low-pass filter with line buffer and fixed coefficients.
Complete CDC Handshake Synchronizer
4-Stage Pipelined 5x5 Multiplier
VHDLTransform a 5x5 combinational multiplier into a 4-stage pipelined architecture.
Complete 5-tap FIR Low-pass Filter
Hamming (7,4) Corrector
VHDLDecode a Hamming (7,4) word, compute the syndrome and correct one single-bit error.
Complete 4-Stage Pipelined 5x5 Multiplier
4-Bit PISO Register
VHDLImplement a Parallel-In Serial-Out register with parallel load and controlled shifting.
Complete Hamming (7,4) Corrector
Synchronous Modulo-6 Counter
VHDLDesign a synchronous counter that cycles through states 0 to 5 with enable and terminal-count pulse.
Complete 4-Bit PISO Register
time_of_day Clock with Record
VHDLCreate a `time_of_day_pkg` package, a `record` type and a reusable time-of-day counter.
Complete Synchronous Modulo-6 Counter
Priority Arbiter
VHDLImplement a combinational arbiter that grants the bus to the requester with the lowest numeric priority.
Complete time_of_day Clock with Record
Signed-Magnitude Comparator
VHDLCompare two signed-magnitude numbers without treating them as two's-complement values.
Complete Priority Arbiter
Unconstrained Bit Reverser
VHDLCode a bit-order reverser compatible with vectors of different sizes and directions.
Complete Signed-Magnitude Comparator
Binary to BCD Converter
VHDLConvert an 8-bit binary word into three BCD digits.
Complete Unconstrained Bit Reverser
Gray Code Counter
VHDLImplement a 4-bit counter that exposes its value as Gray code.
Complete Binary to BCD Converter
Leading Zero Counter
VHDLCount consecutive zeros starting at the most significant bit.
Complete Gray Code Counter
Digital Differentiator
VHDLCompute the difference between two consecutive valid samples.
Complete Leading Zero Counter
Lookup Table Interpolator
VHDLLinearly interpolate between four fixed table points.
Complete Digital Differentiator
Counter Manager
VHDLControl four 4-bit counters with select, increment, and clear.
Complete Lookup Table Interpolator
Histogram Calculator
VHDLAccumulate four histogram bins from 2-bit samples.
Complete Counter Manager
Memory Copy Controller
VHDLGenerate a read-then-write sequence to copy four words.
Complete Histogram Calculator
Scratchpad Accumulator
VHDLAccumulate signed values into four scratchpad locations.
Complete Memory Copy Controller
Prime Number Checker
VHDLDetermine whether a 4-bit value is prime.
Complete Scratchpad Accumulator
Moving Maximum Filter
VHDLOutput the maximum of the last four valid samples.
Complete Prime Number Checker
Factorial Calculator
VHDLCompute `n!` for a 3-bit input from 0 to 5.
Complete Moving Maximum Filter
Palindrome Checker
VHDLCheck whether four nibbles form a palindrome sequence.
Complete Factorial Calculator
Two Sum Finder
VHDLFind whether any pair among four values reaches a target.
Complete Palindrome Checker
Run Length Encoder
VHDLCompress a 4-bit stream by emitting symbol and run length on changes.
Complete Two Sum Finder
Peak Detector
VHDLDetect a local maximum in an 8-bit sample stream.
Complete Run Length Encoder
Binary Search
VHDLSearch a target in four sorted ascending values.
Complete Peak Detector
Dot Product Calculator
VHDLCompute the dot product of two four-element 4-bit vectors.
Complete Binary Search
Insertion Sort Engine
VHDLInsert a stream of four values into an internal sorted array.
Complete Dot Product Calculator
Mode Finder
VHDLReturn the most frequent value among four 4-bit values.
Complete Insertion Sort Engine
Bitonic Sequence Detector
VHDLDetect an increasing run followed by a decreasing run in four values.
Complete Mode Finder
Ethernet Header Parser
VHDLSplit a 14-byte Ethernet II header into its main fields.
Complete Bitonic Sequence Detector
IPv4 Header Checksum
VHDLCompute the one’s-complement checksum over ten 16-bit IPv4 header words.
Complete Ethernet Header Parser
ARP Request Detector
VHDLDetect an IPv4/Ethernet ARP request targeting the local address.
Complete IPv4 Header Checksum
MAC Unit
VHDLImplement unsigned 8x8 multiply-accumulate.
Complete ARP Request Detector
Iterative Unsigned Divider
VHDLImplement 8-bit integer division in eight steps, with quotient, remainder, and divide-by-zero detection.
Complete MAC Unit
Cycle-Based Period Meter
VHDLMeasure the exact number of system cycles between two rising edges of a synchronized external signal.
Complete Iterative Unsigned Divider
Sigmoid Lookup Table
VHDLApproximate a sigmoid function from a signed Q4.4 input with a 16-level lookup table.
Complete Cycle-Based Period Meter
Four-Operand Sequential Adder
VHDLAdd four unsigned words with one adder reused over four cycles.
Complete Sigmoid Lookup Table
Carry-Save Multioperand Accumulator
VHDLCompress four operands without propagating carry every cycle, then perform one final addition.
Complete Four-Operand Sequential Adder
Signed Sequential Multiplier
VHDLCompute an 8 by 8-bit signed product with additions and shifts over eight cycles.
Complete Carry-Save Multioperand Accumulator
Thresholded Recursive Pixel Filter
VHDLSmooth large changes while passing small variations in a pixel stream.
Complete Signed Sequential Multiplier
Full SPI Master (Configurable mode)
VHDLImplement a generic SPI master controller supporting all 4 SPI modes, with clock divider, multi-slave and configurable frame sizes.
UART 8N1 Transmitter
VHDLImplement a complete UART 8N1 transmitter with baud rate generator and 4-state FSM driving the serial transfer.
Configurable Synchronous FIFO
VHDLImplement a synchronous FIFO with configurable width and depth, circular pointers and full/empty flags.
Single-Port RAM 256x8
VHDLImplement a single-port synchronous RAM of 256 words of 8 bits with synchronous read and synchronous write.
Dual-Port RAM 128x16
VHDLImplement a dual-port synchronous RAM of 128 words of 16 bits. Port A writes, port B reads.
Interrupt Generator
VHDLImplement an interrupt generator: each IT vector stays active for g_MIN_WIDTH_PULSE cycles then is reported in the status register.
Complete Dual-Port RAM 128x16
AXI4-Lite Master
VHDLImplement a generic AXI4-Lite master capable of performing read and write accesses on an AXI4-Lite bus.
Complete Interrupt Generator
AXI4-Lite Slave
VHDLImplement a generic AXI4-Lite slave with simplified register interface.
Complete AXI4-Lite Master
AXI4 Master - Write Channels
VHDLImplement a simple AXI4 master managing the three write channels: Write Address (AW), Write Data (W) and Write Response (B).
Complete AXI4-Lite Slave
mu0 Processor (16-bit)
VHDLImplement a 16-bit accumulator-based mini processor: ALU, PC/IR/ACC/R registers, control FSM, and top-level assembly. 14 instructions covered.
Complete AXI4 Master - Write Channels
SHA-256 core (1-block)
VHDLImplement a hardware SHA-256 core on a 512-bit block: logical functions, message schedule shift register, compression unit and top-level FSM.
Complete mu0 Processor (16-bit)
4-Bit SAR ADC Controller
VHDLImplement a successive-approximation conversion FSMD to drive an internal DAC and read a comparator.
Complete SHA-256 core (1-block)
2-Stage float32 Multiplier
VHDLImplement a simplified IEEE-754 single-precision multiplier with mantissa/exponent split.
Complete 4-Bit SAR ADC Controller
Intel HEX Initialized ROM
VHDLBuild a simulation ROM from Intel HEX records provided by the project.
Complete 2-Stage float32 Multiplier
µ-law Audio Compressor
VHDLDevelop a functional µ-law compression model for a normalized real-valued signal.
Complete Intel HEX Initialized ROM
Dual Edge Flip Flop
VHDLModel a simple DDR output from two opposite-edge registers.
Complete µ-law Audio Compressor
Stopwatch Timer
VHDLBuild a decimal seconds/tenths stopwatch driven by an external tick.
Complete Dual Edge Flip Flop
Asynchronous FIFO
VHDLImplement a small 8-bit FIFO between two clock domains.
Complete Stopwatch Timer
IIR Biquad Filter
VHDLImplement an integer IIR biquad cell with fixed coefficients.
Complete Asynchronous FIFO
Decimation Filter
VHDLAverage four samples then output one decimated sample.
Complete IIR Biquad Filter
Memory Arbiter
VHDLArbitrate two masters onto a single memory port.
Complete Decimation Filter
Bubble Sort Engine
VHDLSort four 4-bit values with a comparator network inspired by bubble sort.
Complete Memory Arbiter
Merge Sorted Streams
VHDLMerge two already-sorted pairs into four sorted outputs.
Complete Bubble Sort Engine
Median Calculator
VHDLCompute the median of five 4-bit values.
Complete Merge Sorted Streams
1D Convolution Engine
VHDLImplement a 3-tap 1D convolution with fixed coefficients `1,2,1`.
Complete Median Calculator
Matrix Transpose
VHDLTranspose a 2x2 byte matrix packed into 32 bits.
Complete 1D Convolution Engine
Longest Consecutive Sequence
VHDLMeasure the longest `+1` run in four already-sorted values.
Complete Matrix Transpose
Fixed-Point Sequential Neuron
VHDLCompute one neuron with a single multiply-accumulate unit reused across several cycles.
Complete Longest Consecutive Sequence
Two-Neuron Parallel Dense Layer
VHDLCompute two fully connected neurons in parallel from four signed inputs.
Complete Fixed-Point Sequential Neuron
Signed Radix-2 Booth Multiplier
VHDLImplement signed multiplication by recoding multiplier transitions.
Complete Two-Neuron Parallel Dense Layer
Modulo-m Adder and Subtractor
VHDLCompute a sum or difference reduced to the range zero through m minus one.
Complete Signed Radix-2 Booth Multiplier
Modular Shift-Add Multiplier
VHDLCompute x times y modulo m over eight cycles without a combinational multiplier.
Complete Modulo-m Adder and Subtractor
Binary Montgomery Multiplier
VHDLCompute a modular product in the Montgomery domain with eight binary iterations.
Complete Modular Shift-Add Multiplier
Nonrestoring Divider
VHDLDivide two unsigned integers with eight steps alternating subtraction and addition.
Complete Binary Montgomery Multiplier