Doubt in uvm

m_monitor = ahb_monitor::type_id::create(“m_monitor”, this);
what does that “this” indicate in arguments can any one help me regarding this and even i want to know what does that “m_monitor” indicates in the arguments…

In reply to vkgannoju:

The arguments to the create() method are the same as needed by the constructor of a uvm_component.

In reply to dave_59:

Sir can u suggest me a book on uvm

In reply to vkgannoju:

m_monitor = ahb_monitor::type_id::create(“m_monitor”, this);
what does that “this” indicate in arguments can any one help me regarding this and even i want to know what does that “m_monitor” indicates in the arguments…

These two arguments indicate the NAME and PARENT of the component you are CREATING.
So, “this” is the parent of your m_monitor, possibly an agent and “m_monitor” is the instance name of your monitor.
These arguments are used by UVM to stitch the structural hierarchy of the components, with “uvm_test_top” at the top.

To understand more on these two arguments, (name & parent), you can look at the output of the method print_topology.
You can call this method as shown below in your test class.

function void end_of_elaboration_phase(uvm_phase phase);
uvm_top.print_topology();
endfunction

You can also try passing ‘null’ (just as an experiment, not for production use :) )instead of ‘this’ while calling create and observe the change in the output of print_topology.
Hope this helps.

In reply to vkgannoju:

In reply to dave_59:
Sir can u suggest me a book on uvm

I think it is impossible to learn UVM by reading a book. But you can look for in the UVM Cookbook. This requires a certain level of understanding about OOP, TLM and UVM.
As an entry point you can use the videos provided on the Verifcation Academy website.