Difference between create and create_*_by_type/name

Differences

Aspect create create_by_type create_by_name
Defined In uvm_object (virtual method) uvm_factory uvm_factory
Called By User via type_id::create Factory internally or advanced users Factory internally or advanced users
Input Name, parent (for components) Type proxy, name, parent String name, instance name, parent
Override Support Type and instance overrides Type overrides only Name-based overrides
Use Case Standard object/component creation Type-based creation (no string lookup) Name-based creation (string lookup)
Parameterized Classes Supported (via type_id) Supported (via type proxy) Not supported (no string name)
Common Usage Primary method in testbenches Rare, mostly internal or for debugging Rare, mostly internal or for debugging
1 Like