| 
				
				
				
				 | 
			
			 | 
			@@ -0,0 +1,75 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			class axi_seq_item extends uvm_sequence_item;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//FACTORY REGISTRATION 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				'uvm_object_utils(axi_seq_item);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//WRITE ADDRESS CHANNEL
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [31:0] AWADDR;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [3:0]  AWLEN;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [2:0]  AWSIZE;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [1:0]  AWBURST;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        AWVALID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        AWREADY;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			               bit [1:0]  AWLOCK;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [2:0]  AWPROT;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [3:0]  AWCACHE;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand   bit [3:0]  AWID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//WRITE DATA CHANNEL
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          rand bit [3:0]  WID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			               bit [2:0]  WSTRB;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        rand logic [7:0]  WDATA;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        WVALID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        WREADY;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        WLAST;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//WRITE RESPONSE CHANNEL
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			               bit [1:0]  BRESP;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        BVALID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        BREADY;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//READ ADDRESS CHANNEL         
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        rand   bit [3:0]  ARID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        rand logic [31:0] ARADDR;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [2:0]  ARSIZE;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [1:0]  ARBURST;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [3:0]  ARLEN;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [2:0]  ARPROT;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [3:0]  ARCACHE;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				rand logic [1:0]  AELOCK;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        ARVALID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        ARREADY;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//READ DATA CHANNEL
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit [3:0]  RID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				     logic [7:0]  RDATA;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit [1:0]  RRESP;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        RVALID;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        RREADY;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit [3:0]  RSTRB;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				       bit        RLAST;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//==============================================4kb boundary=====================================//
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint awaddr_4k{ AWADDR % 4096 + (AWLEN + (1 << AWSIZE) <= 4096;} 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint araddr_4k{ ARADDR % 4096 + (ARLEN + (1 << ARSIZE) <= 4096;} 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//==============================================id must be same for bot read/write operation =====================================//
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint ali_w_addr{ AWID==ARID;}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint ali_r_addr{WID==RID;}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//==============================================burst type always not reserved=====================================//
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint burst_type{ AWBURST!=2'b11; ARBURST!=2'b11;}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint wr_data_size{if(AWBURST==2'b01)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                           (WDATA inside{[1:((2**AWSIZE)*16)]});}           
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint rd_data_size{if(ARBURST==2'b01)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                           (RDATA inside{[1:((2**ARSIZE)*16)]});} 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			constraint wrap_data{ if(AWBURST==2'b10)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    WDATA inside {((2**AWSIZE)*2),((2**AWSIZE)*4),((2**AWSIZE)*8),((2**AWSIZE)*16)};}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				   
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			endclass |