Error-[TMAFTC] Too many arguments to function/task call
/apps/vcsmx/etc/uvm-1.2/src/base/uvm_registry.svh, 66
“packet::new(name, parent)”
The above function/task call is done with more arguments than needed
It is difficult to help you without seeing your code. But from the error you showed, I think there was mismatched between “new” method and “create” statement:
It seems your “packet” class is an object (extended from uvm_oject), then please make sure:
“new” method of packet class has only one argument: new(string name = “packet”)
“create” statement to create packet class should has one argument as well: packet::type_id::create(“packet”).
forever begin
before_fifo.get(packet_1);
after_fifo.get(packet_2);
compare();
end
endtask :run
virtual function void compare();
if(packet_1 ==packet_2) begin uvm_info("compare ",{"test : OK!"} ,UVM_LOW); end else begin uvm_info(“compare”,{“Test : Fail !”},UVM_LOW);
end
endfunction :compare
You are registering an object or component with the incorrect `uvm_xxx_utils() call, and have likely copy/pasted code to cause this error.
Make sure that every component uses uvm_component_utils(class_name) and every object uses uvm_object_utils(class_name).
DO NOT use the field macros (uvm_object_utils_begin or uvm_component_utils_begin). See other topics regarding why to not do this.
Make sure that class_name in the `uvm_xxx_utils() matches the actual class name and isn’t duplicated from a different class. It seems like you may have used ‘packet’ twice.