uvmobject and uvm component differences - vineethkumarv/uvm-repos GitHub Wiki

  1. uvm_component is derived from uvm_object.
  2. There is an extra argument for "uvm_component - new" function for which we need to define the parent class name.
  3. Classes derived from uvm_component, are only can talk to DUT. Where as object can't do.
    uvm_components are "static-like" in that they are created during build_phase() and persist throughout the simulation. Think of them as the class-based equivalent of modules.
    uvm_objects are transient, such as transactions that are created when needed and disappear when not used anymore.
    uvm_components are used to construct the UVM environment. They are used to make testbench components. The registration with the factory is made with the macro uvm_component_utils.
    uvm_objects are used for UVM transient objects like uvm_seq_item, uvm_transaction, uvm_sequence. The base class uvm_object is also used for configuration objects, i.e. classes which contain configuration data to configure uvm_components or other uvm_objects, like sequences, etc. They are regsitered with the factory using the macro `uvm_object_utils.