Testbenches create thousands of transactions at runtime and pass them between threads. Classes provide dynamic objects, inheritance and polymorphism for that reuse, with virtual interfaces bridging to DUT pins.
Topic | Lessons | Description | Time |
|---|---|---|---|
5 | Classes, objects and handles: the memory model behind every class-based testbench. | 40 min | |
4 | Base handles, virtual dispatch, checked casts, and contracts for reusable testbenches. | 30 min | |
5 | Static members, access control, parameterized classes, constants, enums and extern organization. | 40 min | |
5 | Virtual interfaces bridge classes and pins: binding, clocking drives, config, multi-port vifs. | 40 min | |
6 | Events, semaphores, mailboxes, threads and bench sync patterns in one place. | 50 min | |
5 | Five hand-built testbench patterns and the UVM standards each one becomes. | 40 min |
Modules are built once, before simulation starts, so their number is fixed. A class is a type: new builds a fresh object at run time, as many as the test needs, and a handle keeps track of each one.