blob: a0f73dadc8708e4ba1a8897831e70d37201a0729 [file] [log] [blame] [edit]
//- @my_class1 defines/binding MyClass1
class my_class1;
//- @var1 defines/binding Var1
//- Var1 childof MyClass1
int var1;
//- @my_function1 defines/binding Function1
//- Function1 childof MyClass1
function int my_function1();
//- @var1 ref Var1
return var1;
endfunction
endclass
//- @my_class2 defines/binding MyClass2
//- @my_class1 ref MyClass1
//- MyClass2 extends MyClass1
class my_class2 extends my_class1;
//- @instance2 defines/binding Instance2
//- Instance2 childof MyClass2
my_class2 instance2 = new();
//- @var2 defines/binding Var2
//- Var2 childof MyClass2
int var2;
//- @my_function2 defines/binding Function2
//- Function2 childof MyClass2
function int my_function2();
//- @var1 ref Var1
//- @var2 ref Var2
return var1 + var2;
endfunction
endclass
//- @my_module defines/binding MyModule
module my_module();
//- @my_class2 ref MyClass2
//- @instance1 defines/binding Instance1
//- Instance1 childof MyModule
my_class2 instance1 = new();
initial begin
//- @instance1 ref Instance1
//- @var1 ref Var1
$display(instance1::var1);
//- @instance1 ref Instance1
//- @var2 ref Var2
$display(instance1.var2);
//- @instance1 ref Instance1
//- @instance2 ref Instance2
//- @var1 ref Var1
$display(instance1::instance2::var1);
//- @instance1 ref Instance1
//- @instance2 ref Instance2
//- @var2 ref Var2
$display(instance1.instance2.var2);
//- @instance1 ref Instance1
//- @my_function1 ref Function1
//- @my_function1 ref/call Function1
$display(instance1.my_function1());
//- @instance1 ref Instance1
//- @my_function2 ref Function2
//- @my_function2 ref/call Function2
$display(instance1.my_function2());
//- @instance1 ref Instance1
//- @instance2 ref Instance2
//- @my_function1 ref Function1
//- @my_function1 ref/call Function1
$display(instance1::instance2.my_function1());
//- @instance1 ref Instance1
//- @instance2 ref Instance2
//- @my_function2 ref Function2
//- @my_function2 ref/call Function2
$display(instance1.instance2.my_function2());
end
endmodule