Class definitions can become very long with a lot of lines between
endclass. This makes it difficult to understand what all functions and variables exist within the class because each function and task occupy quite a lot of lines.
extern qualifier in method declaration indicates that the implementation is done outside the body of this class.
class ABC; // Let this function be declared here and defined later // by "extern" qualifier extern function void display(); endclass // Outside the class body, we have the implementation of the // function declared as "extern" function void ABC::display(); $display ("Hello world"); endfunction module tb; // Lets simply create a class object and call the display method initial begin ABC abc = new(); abc.display(); end endmodule
ncsim> run Hello world ncsim: *W,RNQUIE: Simulation is complete.