Uvm_object requires default value for name?

It seems to me that any uvm_object needs a default value for its constructor name argument. Why is this? I guess it must be somewhere in the factory as the create is passed the argument.

And why is this different for uvm_component?

In reply to NiLu:

Any uvm_component as well as a uvm_object needs a default value for the argument name. But the name might be an empty string like this “”.

I thought (by trial) - but have to check - uvm_component doesn’t need a default value.

In the mean time after some more investigation I think to realize that the default value is required because the factory create method actually calls the new method without arguments followed by set_name. I wonder why it was done that way…

In reply to NiLu:
Classes derived uvm_component must not have a default name. The is because the name is used to build a component hierarchy tree and a component needs a unique non-null name for each level of the hierarchy.

UVM 1.2 is now requiring that the factory pass a name to the object, so a default is no longer required. See Mandatory uvm_object Constructors