Site icon Hardware Design and Verification

What is singleton class in system verilog

so question what is singleton class in system verilog

as its name suggest Singleton -> it will be only once ….

what is once , it is one object creation next time it will return handle of first object

So  lets see how it done through program

 

 

 

// Singleton example
// https://testbench4u.com

class single;

int i;

static single obj;

local function new(int i=0);

this.i= i;

endfunction

function void display();

$display(“value of int i= %d”, i);

endfunction

static function single obj_create(int i=0);

if (obj == null) begin
obj =new(i);
end
return obj;

endfunction
endclass
program main;

single obj1;

single obj2;

initial begin
obj1 = single::obj_create ( );
obj2 = single::obj_create ( );
obj1.i=5;

obj1.display();

obj2.i=51;

obj2.display();
end

endprogram

o/p

value of int i= 5
value of int i= 51

in above example we can see through static keywords function is made of that type class

its see if the obj is null then create it or else return the handle  of single

 

Exit mobile version