8.1. Overview - Class Fundamentals
​
A class is a template that defines both data and the operations that can be performed on that data. It's the fundamental building block of object-oriented programming.
​
​
​8.1.1. Key Terminology
​
Class
​
The definition or blueprint that describes what objects of this type will contain.
class Transaction; // This is the class definition
int id;
endclass
​
Object
​
An actual instance created from a class. Also called "class instance".
​
Transaction t; // Declare handle
t = new(); // Create object
​
Handle
​
A variable that points to an object. Think of it as a reference or pointer.
​
Transaction t1, t2; // Two handles
t1 = new(); // t1 points to object
t2 = t1; // t2 points to same object
​
Property (Data Member)
​
Variables declared inside a class.
​
class Example;
int count; // Property
string name; // Property
endclass
​
Method
​
Functions or tasks declared inside a class.
​
class Example;
function void print(); // Method
$display("Example");
endfunction
endclass
​
​
​8.1.2. Syntax – Class Definition
​
The Basic syntax for defining a class in SystemVerilog.
​
A class have two kinds of properties:
​
-
Data Members (Variables)
​
2.Methods (Tasks & Functions)
​
Inbuilt Methods:
​
-
pre_randomize()
​
2. post_randomize()
3. randomize()
​
4. new() – Constructor
​
5. constraint()
​
6. constraint_mode()
​
7. rand_mode()
​
Basic Structure
Verilog
Complete Transaction Example
Verilog
8.1.3. Objects (Class Instance)
​
Comprehensive coverage of objects (class instance) with practical examples.
​
-
Creating objects with new()
​
-
Handle vs object concept
​
-
Multiple objects example
​
-
Null handles
Verilog
.png)
.png)
.png)
.png)
Real Example
Verilog
8.1.4. Four Pillars of OOPs
​
1. Encapsulation
​
Bundling data and methods together, hiding implementation details.
Verilog
2. Inheritance
​
Create new classes based on existing classes.
Verilog
3. Polymorphism
​
Objects of different types can be used through the same interface.
Verilog
4. Abstraction
​
Hiding complex implementation, showing only essential features.
Verilog
