Thursday, December 22, 2016

What is the Difference Between UVM_OBJECT and UVM_COMPONENT?

uvm_component:
  • Quasi Static Entity (after build phase it is available throughout the simulation) 
  • Always tied to a given hardware(DUT Interface) Or a TLM port 
  • Having phasing mechanism for control the behavior of simulation 
  • Configuration Component Topology 

uvm_object:
  • Dynamic Entity (create when needed, transfer from one component to other & then dereference) 
  • Not tied to a given hardware or any TLM port 
  • Not phasing mechanism 

In Simple Words,
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.
4) uvm_components are "static" in that they are created during build_phase() and persist throughout the simulation. This 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.

No comments:

Post a Comment