Where is the run_test() method is implemented in UVM?

Usually, we call run_test() method to execute the phases as well as test cases from top module. Where is that “run_test()” method is actually implemented in UVM ?

In reply to sarang.sss555:
run_test is implemented in uvm_root.

In reply to sharat:

run_test() is called in the toplevel module of your UVM environment. You can pass as argument the name of the test you want to execute. Because it is not very flexible to recompile this module if you want to execute another test you cane pass the name of the actual test from the simulator command line by adding +UVM_TESTNAME=<test_name>.

In reply to sarang.sss555:

You can see in the file root.svh line number (77) you can find the Task called run_test() and also see the line number (413) from which it will create uvm_test_top if you have given the testname.

In reply to sarang.sss555:

run_test() is a method available in top module when you import uvm_pkg.sv package. Now the fact is,

  • When we call run_test(), we are actually calling run_test() function from uvm_globlas.svh.
  • This run_test() function will call run_test() method of uvm_root class.

In reply to MayurKubavat:

Thanks, I’ve been wondering how can we call the run_test() inside uvm_root by just importing. Now it totally makes sense.