In reply to sudheer:
UVM class reference manual would give you a more comprehensive description about the difference.
uvm_component Class Hierarchy
- uvm_void
-
- uvm_object
-
-
- uvm_report_object
-
-
-
-
- uvm_component
-
-
17.1 uvm_component
The uvm_component class is the root base class for UVM components. In addition to the features inherited from uvm_object and uvm_report_object,uvm_component provides the following interfaces:
Hierarchy - provides methods for searching and traversing the component hierarchy.
Phasing - defines a phased test flow that all components follow, with a group of standard phase methods and an API for custom phases and multiple independent phasing domains to mirror DUT behavior e.g. power
Reporting - provides a convenience interface to the uvm_report_handler. All messages, warnings, and errors are processed through this interface.
Transaction recording - provides methods for recording the transactions produced or consumed by the component to a transaction database (vendor specific).
Factory - provides a convenience interface to the uvm_factory. The factory is used to create new components and other objects based on type-wide and instance-specific configuration.
The uvm_component is automatically seeded during construction using UVM seeding, if enabled. All other objects must be manually reseeded, if appropriate. See uvm_object::reseed for more information.