In Verilog class methods and class properties can be declared as local
or protected
to restrict their access. Sigasi Visual HDL will flag attempted accesses that violate these restrictions as errors (rule 61).
Local
local
methods and properties can only be accessed from within the class itself.
class my_class; local int secret = 42; function int get_secret(); return secret; endfunction endclass module bad_code; my_class inst = new(); int x = inst.secret; endmodule
Protected
protected
methods and properties can only be accessed from within the class itself, or from any of its subclasses.
class my_class; protected int secret = 42; endclass class my_sub_class extends my_class; function int get_secret(); return secret; endfunction endclass module bad_code; my_sub_class inst = new(); int x = inst.secret; endmodule