| 
				
				
				
				 | 
			
			 | 
			@@ -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
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 |