Skip to content
VLSI Mentor
Learnings · RTL Design Patterns · Labs

RTL Design Patterns Labs.

Thirty advanced block-level design problems in SystemVerilog — control logic, buffering, arbitration, pipelining, clock-domain crossing, subsystem integration, and memory, power and reliability patterns. Each lab is a specification you design to, the way RTL is written on a real chip team.

30Labs
6Modules
30Published
Advanced / ExpertLevel
All 30 labs are published. One purchase covers the entire collection.
RTL Design Patterns Labs

Six modules — control logic to reliability patterns

Module 15 labs

Control Logic and Sequential Design Patterns

Priority encoding, timers, registered output control, transaction FSMs and multi-mode counters.

RTL-01 · RTL-02 · RTL-03 · RTL-04 · RTL-21

Module 25 labs

Buffers, Queues, and Data Movement

FIFOs, skid buffers, SerDes, ping-pong buffering and multi-port register files.

RTL-05 · RTL-06 · RTL-07 · RTL-08 · RTL-22

Module 35 labs

Arbitration and Resource Sharing

Round-robin and weighted arbitration, shared resources with ordered responses, and crossbars.

RTL-09 · RTL-10 · RTL-11 · RTL-12 · RTL-23

Module 46 labs

Pipelining and Performance-Oriented RTL

Elastic pipelines, pipelined arithmetic, hazard control and area/timing trade-offs.

RTL-13 · RTL-14 · RTL-15 · RTL-16 · RTL-24 · RTL-25

Module 55 labs

Robust RTL and Subsystem Integration

Clock-domain crossing, watchdogs, DMA-style control and reset sequencing.

RTL-17 · RTL-18 · RTL-19 · RTL-20 · RTL-26

Module 64 labs

Advanced Memory, Power, and Reliability Patterns

SRAM control, clock-enable power reduction, SECDED protection and transaction tracking.

RTL-27 · RTL-28 · RTL-29 · RTL-30

Lab numbers are stable IDs (Lab 21 is RTL-21); labs are listed in module order.

All 30 labs

Search and filter the full curriculum. Titles, previews and metadata are free to browse — full lab content requires the labs package.

30 of 30
Module
Difficulty
Status

Module 1Control Logic and Sequential Design Patterns

Priority encoding, timers, registered output control, transaction FSMs and multi-mode counters.

5 labs · 5 published
  1. Lab 1
    Control Logic and Sequential Design Patterns

    Parameterized Priority Encoder

    Design a parameterized priority encoder with valid indication and deterministic priority.

    Advanced·60 min·Testbench·4 challenges
    AdvancedPublishedPaid
  2. Lab 2
    Control Logic and Sequential Design Patterns

    Programmable Timer Controller

    Design a timer supporting start, pause, resume, restart, and terminal-count signaling.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid
  3. Lab 3
    Control Logic and Sequential Design Patterns

    Registered Output Switching Controller

    Design a glitch-free registered output controller with programmable switching delays.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid
  4. Lab 4
    Control Logic and Sequential Design Patterns

    Transaction Control FSM

    Design an FSM with backpressure, timeout recovery, and error handling.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  5. Lab 21
    Control Logic and Sequential Design Patterns

    Programmable Multi-Mode Counter

    Design a programmable counter supporting multiple counting modes, saturation, and overflow detection.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid

Module 2Buffers, Queues, and Data Movement

FIFOs, skid buffers, SerDes, ping-pong buffering and multi-port register files.

5 labs · 5 published
  1. Lab 5
    Buffers, Queues, and Data Movement

    Parameterized Synchronous FIFO

    Design a synchronous FIFO with simultaneous read/write support and full/empty detection.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  2. Lab 6
    Buffers, Queues, and Data Movement

    Ready/Valid Skid Buffer

    Design a skid buffer preventing data loss under ready/valid backpressure.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid
  3. Lab 7
    Buffers, Queues, and Data Movement

    Configurable Serializer and Deserializer

    Design a serializer/deserializer with framing and backpressure.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  4. Lab 8
    Buffers, Queues, and Data Movement

    Ping-Pong Buffer Controller

    Design a double-buffer controller for independent producer and consumer operation.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  5. Lab 22
    Buffers, Queues, and Data Movement

    Multi-Port Register File

    Design a parameterized register file with configurable read/write ports and collision semantics.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid

Module 3Arbitration and Resource Sharing

Round-robin and weighted arbitration, shared resources with ordered responses, and crossbars.

5 labs · 5 published
  1. Lab 9
    Arbitration and Resource Sharing

    Round-Robin Arbiter

    Design an N-requester round-robin arbiter with fair grant rotation.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid
  2. Lab 10
    Arbitration and Resource Sharing

    Weighted Round-Robin Arbiter

    Design a programmable weighted round-robin arbiter with service guarantees under defined traffic assumptions.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  3. Lab 11
    Arbitration and Resource Sharing

    Multi-Client Register Bank Controller

    Design arbitration and response routing for multiple clients accessing a shared register bank.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  4. Lab 12
    Arbitration and Resource Sharing

    Shared Multiplier Controller

    Design a shared multiplier with request queuing and ordered responses.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  5. Lab 23
    Arbitration and Resource Sharing

    Parameterized Crossbar Switch

    Design a crossbar with destination decoding and output-port arbitration.

    Advanced·105 min·Testbench·4 challenges
    AdvancedPublishedPaid

Module 4Pipelining and Performance-Oriented RTL

Elastic pipelines, pipelined arithmetic, hazard control and area/timing trade-offs.

6 labs · 6 published
  1. Lab 13
    Pipelining and Performance-Oriented RTL

    Elastic Ready/Valid Pipeline

    Design a parameterized elastic pipeline with stall propagation.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  2. Lab 14
    Pipelining and Performance-Oriented RTL

    Pipelined Arithmetic Unit

    Design an arithmetic unit with configurable pipeline stages and valid tracking.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  3. Lab 15
    Pipelining and Performance-Oriented RTL

    Hazard-Aware Pipeline Controller

    Design forwarding, stall, and flush control for a pipelined datapath.

    Advanced·105 min·Testbench·4 challenges
    AdvancedPublishedPaid
  4. Lab 16
    Pipelining and Performance-Oriented RTL

    Configurable Barrel Shifter

    Design a barrel shifter and compare RTL area/timing trade-offs.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid
  5. Lab 24
    Pipelining and Performance-Oriented RTL

    Pipelined Leading-Zero Detector

    Design a leading-zero detector with parameterized width and latency.

    Advanced·75 min·Testbench·4 challenges
    AdvancedPublishedPaid
  6. Lab 25
    Pipelining and Performance-Oriented RTL

    Configurable Pipelined Reduction Tree

    Design a reduction tree and evaluate timing/area trade-offs.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid

Module 5Robust RTL and Subsystem Integration

Clock-domain crossing, watchdogs, DMA-style control and reset sequencing.

5 labs · 5 published
  1. Lab 17
    Robust RTL and Subsystem Integration

    Asynchronous Pulse/Event Transfer

    Design an asynchronous event transfer circuit with event-rate constraints.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  2. Lab 18
    Robust RTL and Subsystem Integration

    Asynchronous FIFO

    Design a FIFO using Gray-coded pointers and synchronized status generation.

    Advanced·120 min·Testbench·4 challenges
    AdvancedPublishedPaid
  3. Lab 19
    Robust RTL and Subsystem Integration

    Programmable Watchdog Subsystem

    Design watchdog timeout detection and safe recovery behavior.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  4. Lab 20
    Robust RTL and Subsystem Integration

    Multi-Channel DMA-Style Controller

    Design descriptor handling, arbitration, and backpressure for a DMA-style controller.

    Advanced·120 min·Testbench·4 challenges
    AdvancedPublishedPaid
  5. Lab 26
    Robust RTL and Subsystem Integration

    Reset Synchronization and Sequencing Controller

    Design reset synchronization and sequencing across multiple dependent blocks.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid

Module 6Advanced Memory, Power, and Reliability Patterns

SRAM control, clock-enable power reduction, SECDED protection and transaction tracking.

4 labs · 4 published
  1. Lab 27
    Advanced Memory, Power, and Reliability Patterns

    Parameterized SRAM Controller

    Design an SRAM controller with programmable read latency, byte-write enables, and request/response handshaking.

    Advanced·105 min·Testbench·4 challenges
    AdvancedPublishedPaid
  2. Lab 28
    Advanced Memory, Power, and Reliability Patterns

    Clock-Enable-Based Low-Activity Datapath

    Design idle detection, clock-enable control, state retention, and wake-up behavior.

    Advanced·90 min·Testbench·4 challenges
    AdvancedPublishedPaid
  3. Lab 29
    Advanced Memory, Power, and Reliability Patterns

    SECDED-Protected Register Bank

    Design a register bank with error injection, single-bit correction, and double-bit error detection.

    Advanced·120 min·Testbench·4 challenges
    AdvancedPublishedPaid
  4. Lab 30
    Advanced Memory, Power, and Reliability Patterns

    Outstanding Transaction Tracker

    Design transaction-ID tracking, completion matching, and out-of-order response handling.

    Advanced·105 min·Testbench·4 challenges
    AdvancedPublishedPaid