Accessing a property of a class top down is done through hierarchical access through dot operator which is very common in the HVL world. Accessing class properties bottom up through multiple levels is also a requirement we come across in verification which is little bit tricky to implement.
Following is an example on how we could do a bottom up access of a class property.
class top;
int flag;
level_1 obj;
function new();
obj=new(this);
endfunction
endclass
class level_1;
top parent_of_the_class;
function new ( top parent_of_the_class);
this.parent_of_the_class=parent_of_the_class;
endfunction
task run();
if(parent_of_the_class.flag==1)
begin
$display(" Flag set \n");
end
else
begin
$display(" Flag not set \n");
end
endtask
endclass