Part 6 · Testbench Architecture · Intermediate

Stimulus: Generators, Transactions & Drivers

Hub — transaction design, generator patterns, driver design, pipelined and backpressured driving, and mixing directed with random stimulus.

Overview

Stimulus is a three-stage pipeline: a transaction describes one operation abstractly, a generator decides which transactions happen and in what order, and a driver translates each transaction into cycle-accurate pin activity. Keeping those three concerns in three classes is what lets you change the scenario without touching timing, and change the protocol without touching scenarios.

Sub-topics

  1. Transaction Design for Stimulus — rand controls vs derived fields vs metadata, ids and timestamps, printing discipline.

  2. Generator Patterns — randomize-in-loop, scenario generators, weighted mixes, and stop conditions.

  3. Driver Design — the mailbox loop, clocking-block driving, handshake timing, idle and reset behavior.

  4. Pipelined & Backpressured Driving — multi-outstanding transactions, ready/backpressure, split channels, semaphores.

  5. Mixing Directed & Random Stimulus — bring-up directed, constrained-random volume, targeted-random for holes.

diagram
STIMULUS — topic map

  WHAT to send            TRANSACTION DESIGN      (lesson 1)
       │ rand fields, constraints, metadata
  WHEN / HOW MANY         GENERATOR PATTERNS      (lesson 2)
       │ loops, scenarios, weights, stop conditions
       ▼  mailbox #(txn)
  HOW on the pins         DRIVER DESIGN           (lesson 3)
       │ clocking block, handshakes, reset
       ▼
  HOW FAST / OVERLAPPED   PIPELINING/BACKPRESSURE (lesson 4)
       │ outstanding txns, ids, semaphores
       ▼
  STRATEGY over a project DIRECTED + RANDOM       (lesson 5)
       coverage-feedback loop

Key takeaways

  • Transaction = what, generator = when and how many, driver = how on the pins.

  • Generators stay clockless; drivers own every cycle of timing.

  • Stimulus strategy evolves across a project: directed bring-up, random volume, targeted closure.