In reply to chrisspear:
When I am executing the hello world program by doulos academy
interface dut_if;
endinterface
module dut(dut_if dif);
endmodule
`include "uvm_macros.svh"
package my_pkg;
import uvm_pkg::*;
class my_env extends uvm_env;
`uvm_component_utils(my_env)
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction
endclass: my_env
class my_test extends uvm_test;
`uvm_component_utils(my_test)
my_env m_env;
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction
function void build_phase(uvm_phase phase);
m_env = my_env::type_id::create("m_env", this);
endfunction
task run_phase(uvm_phase phase);
phase.raise_objection(this);
#10;
`uvm_info("TEST", "Hello Teja", UVM_MEDIUM)
phase.drop_objection(this);
endtask
endclass: my_test
endpackage: my_pkg
module top;
import uvm_pkg::*;
import my_pkg::*;
dut_if dut_if1 ();
dut dut1 ( .dif(dut_if1) );
initial
begin
run_test();
end
endmodule: top
class driverB #(type T=uvm_object) extends uvm_driver;
// parameterized classes must use the _param_utils version
`uvm_component_param_utils(driverB #(T))
// our packet type; this can be overridden via the factory
T pkt;
// standard component constructor
function new(string name, uvm_component parent=null);
super.new(name,parent);
endfunction
// get_type_name not implemented by macro for parameterized classes
const static string type_name = {"driverB #(",T::type_name,")"};
virtual function string get_type_name();
return type_name;
endfunction
// using the factory allows pkt overrides from outside the class
virtual function void build_phase(uvm_phase phase);
pkt = packet::type_id::create("pkt",this);
endfunction
// print the packet so we can confirm its type when printing
virtual function void do_print(uvm_printer printer);
printer.print_object("pkt",pkt);
endfunction
endclass
If you will see above two programs in one program(constructor) is not using anything and one program(constructor) is using null. If you come to create method I just want to know what will happen if we use null and this.