!UVM_ERROR! [NOTYPID] get_type not implemented in derived class. (:0)

I have created below extended class. When I do

set_type_override_by_type(uvm_mem::get_type(),new_mem::get_type)); 

I get the uvm_error
!UVM_ERROR! [NOTYPID] get_type not implemented in derived class. (:0). I have registered the new_mem to the factory. Not sure what is missing.

class new_mem extends uvm_mem; 
  `uvm_object_utils(new_mem)

   bit[MEM_WIDTH:0] ref[int];

   function new(string name = "new_mem");
      super.new(name,0,0);
   endfunction
endclass

uvm_mem is a base class that is not registered with the factory, so you cannot use the factory to override it.

In general, there is no need to use the factory for RAL models as the code is usually generated automatically by another process. For large RAL models, there could be a large overhead in compilation/initialization by using the factory.

1 Like