SystemVerilog OOP Mastery · All levels
Type-Parameter Patterns for Reusable OOP Testbench Design
Parameterize data type and policy type to build reusable scoreboards and utilities without sacrificing readability.
Overview
Parameterize data type and policy type to build reusable scoreboards and utilities without sacrificing readability.
A productive pattern is data-parameterized infrastructure: scoreboard #(type REQ_T, type RSP_T = REQ_T). This keeps one implementation while permitting many transaction classes. The key is documenting the expected contract on type parameters (for example, supports compare() or convert2string()).
In this topic
diagram
1. Concept Explained
2. Code Examples
3. SystemVerilog vs C++/Java
4. Pitfalls
5. Exercises
6. Interview QuestionsRead the concept first, study the code examples, compare against C++/Java, then test yourself with the exercises and interview questions.
Class vs handle vs object memory model
diagram
CLASS VS HANDLE VS OBJECT IN MEMORY
compile-time blueprint runtime state
+---------------------------+ +-------------------------+
| class packet; | | stack frame |
| rand bit [7:0] addr; | | packet p ------------+----+
| function void display() | | | |
| endclass | +-------------------------+ |
+---------------------------+ |
v
+-------------------------+
| heap object @0x1004 |
| addr = 8'h3C |
| display() body executes |
+-------------------------+
Class defines behavior. Handle stores a reference. Object lives on heap.