Specification

Intermediate

Read the technical specification and design the complete VHDL. GHDL simulation validates your code.

0 / 35
1

Synchronous FIFO Controller

Implement a synchronous FIFO controller managing read/write pointers, full/empty flags and fill level.

Telecom

AXI4 Master — Read Channels

Implement a simple AXI4 master managing the two read channels: Read Address (AR) and Read Data (R).

Locked

AXI-Lite Slave — Register Map

Implement an AXI-Lite slave with three 32-bit read/write registers, managed by two independent state machines.

Locked

FSM — Pedestrian Light

Implement a 3-process state machine for a pedestrian light with integrated timer and per-state duration management.

Locked

LED Controller — Moore State Machine

Implement a 3-process Moore state machine that cycles 4 LEDs in sequence on command.

Locked

N-bit Adder — Ripple Carry

Implement an N-bit ripple carry adder using only logical operators, without any arithmetic library.

Locked

Bidirectional Counter with Parallel Load

Implement a generic bidirectional counter with parallel load, enable, and asynchronous reset.

Locked

Configurable Debouncer

Implement a debouncer circuit with configurable stabilization time via generics.

Locked

8-to-3 Priority Encoder

Implement an 8-to-3 combinational priority encoder that encodes the position of the highest-priority active bit.

Locked

4-bit Johnson Counter

Implement a 4-bit Johnson counter with synchronous reset. The counter goes through a sequence of 8 states before returning to its initial state.

Locked

8-bit Barrel Shifter

Implement an 8-bit barrel shifter performing a logical left shift in 3 combinational stages (shift-by-4, shift-by-2, shift-by-1).

Locked

W1C Register (Write-1-to-Clear)

Implement a W1C register: bits are set via i_set_en and cleared by writing 1 via i_clr_en.

Locked

1µs Tick Generator

Generate a 1µs periodic pulse from a system clock with known period.

Locked

N-bit Counter with Overflow Output

Implement a generic synchronous N-bit counter with enable, asynchronous reset and overflow indication.

Locked

8-Bit Comparator

Implement an 8-bit combinational comparator that compares two unsigned numbers and indicates their relationship.

Locked

4-Bit Adder-Subtractor

Implement a 4-bit combinational block selectable between addition and subtraction via a control signal.

Locked

Cascadable N-Bit Comparator

Implement a generic cascadable comparator with cascade inputs for connecting multiple stages.

Locked

8-Bit Register with Load Enable

Implement an 8-bit register with parallel load enable and asynchronous reset.

Locked

4-Bit Bidirectional Shift Register

Implement a 4-bit shift register that can shift left, shift right, parallel load, or hold its value.

Locked

8x4 ROM

Implement an 8-word by 4-bit read-only memory (ROM), purely combinational.

Locked

16x4 ROM with Constant Array

Implement a 16-word by 4-bit ROM using a VHDL constant array.

Locked

8x4 Synchronous RAM

Implement an 8-word by 4-bit RAM with synchronous write and asynchronous read.

Locked

16x4 Synchronous RAM

Implement a 16-word by 4-bit RAM with synchronous write and asynchronous read.

Locked

8-Deep 8-Bit LIFO Stack

Implement an 8-deep, 8-bit LIFO stack with push, pop, and empty/full flags.

Locked

8x8 Dual-Port RAM

Implement an 8-word by 8-bit dual-port RAM: independent write and read ports.

Locked

4x8 Register File

Implement a 4-register, 8-bit register file with 1 write port and 2 read ports.

Locked

4-Bit Carry Lookahead Adder

Implement a 4-bit Carry Lookahead Adder (CLA).

Locked

8-Bit CLA Adder (2 Cascaded Blocks)

Implement an 8-bit CLA adder by cascading two 4-bit CLA blocks.

Locked

4-Bit Barrel Shifter

Implement a 4-bit, 2-stage barrel shifter that can logically shift left by 0 to 3 positions.

Locked

Simplified 8-Bit Floating-Point Adder

Implement an adder for a simplified float format: 1 sign bit, 3 exponent bits (bias 3), 4 mantissa bits (implicit 1.xxxx).

Locked

Simplified 8-Bit Floating-Point Multiplier

Implement a multiplier for the same simplified float format: 1 sign bit, 3 exponent bits (bias 3), 4 mantissa bits (implicit 1).

Locked

7-Bit Parity Generator

Implement an even parity generator: generates a parity bit for 7 data bits, and verifies an 8-bit word (7 data + 1 parity).

Locked

8-Bit Population Counter (Popcount)

Implement a population counter: count the number of '1' bits in an 8-bit vector.

Locked

4-Channel Priority Multiplexer

Implement a priority multiplexer: 4 data channels of 4 bits with request bits. The highest-priority active channel is selected.

Locked

CDC Handshake Synchronizer

Implement a 4-phase handshake synchronizer to transfer a data bus between two independent clock domains.

Locked