`include "uvm_macros.svh" import uvm_pkg::*; class axi_m_Agent extends uvm_agent; `uvm_component_utils(axi_m_Agent); AXI_SLAVE_SEQR seq; AXI_SLAVE_DRV drv; AXI_SLAVE_MON mon; function new(string name = "axi_m_Agent", uvm_component parent); super.new(name, parent); endfunction : function void build_phase(uvm_phase phase); super.build_phase(phase); seq = AXI_SLAVE_SEQR::type_id::create("seq", this); drv = AXI_SLAVE_DRV::type_id::create("drv", this); mon = AXI_SLAVE_MON::type_id::create("mon", this); endfunction : build_phase function void connect_phase(uvm_phase phase); drv.seq_item_port.connect(seq.seq_item_export); endfunction : connect_phase endclass