uvm_component:
uvm_object:
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.
- 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
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