Classes are created at runtime with no pins. Interfaces are elaborated before time zero with real signals. A virtual interface is the one reference that connects them.
Side | Lifetime | How it reaches pins |
|---|---|---|
Static world (modules, interfaces) | Elaborated before time zero | Owns the real signals at fixed paths |
Dynamic world (classes) | Created by | No hierarchy and no pins of its own |
Virtual interface | Bound top-down after elaboration | Class property referencing one interface instance |
Lesson | You will build… |
|---|---|
The static-vs-dynamic binding problem and what a vif reference stores. | |
Constructor binding, top-down handoff, and guards against the null-vif crash. | |
Race-free drives and samples through | |
Constructor chaining, one central config object, and what | |
Vif arrays for multi-port DUTs and strategies for parameterized widths. |
A virtual interface: a class property holding a reference to one elaborated interface instance. Binding flows top-down: tb_top hands the instance into the classes, and classes never reach up for it.