|
|
@@ -0,0 +1,22 @@ |
|
|
|
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
|
|
|
|
|