class axi_agent extends uvm_agent; axi_drv drv; axi_sqr sqr; axi_mon mon; axi_cov cov; `uvm_component_utils_begin(axi_agent)// factory registration `NEW_COMP function void build_phase(uvm_phase phase); super.build_phase(phase); mon = axi_mon::type_id::create("mon", this); drv =axi_drv::type_id::create("drv", this);// creating from factory sqr = axi_sqr::type_id::create("sqr", this); cov = axi_cov::type_id::create("cov", this); end endfunction function void connect_phase(uvm_phase phase); drv.seq_item_port.connect(sqr.seq_item_export); mon.ap_port.connect(cov.analysis_export); end endfunction endclass