| @@ -0,0 +1,76 @@ | |||||
| class seq_item extends uvm_sequence_item; | |||||
| `uvm_object_utils (seq_item) | |||||
| /////////////////write_address channel/////////////////// | |||||
| rand bit [3:0] awid; | |||||
| rand logic [31:0]awaddr; | |||||
| rand logic [3:0] awlen; | |||||
| rand logic [2:0] awsize; | |||||
| rand logic [1:0] awburst; | |||||
| rand logic [3:0] awcache; | |||||
| rand logic [2:0] awprot; | |||||
| rand logic [1:0] awlock; | |||||
| logic awvalid; | |||||
| logic awready; | |||||
| ////////////write_data channel/////////////////////////// | |||||
| rand bit[3:0] wid; | |||||
| rand logic [31:0]wdata[]; | |||||
| logic [3:0]wstrb; | |||||
| logic wlast; | |||||
| logic wvalid; | |||||
| logic wready; | |||||
| //////////write_response channel//////////////////////// | |||||
| bit [3:0]bid; | |||||
| logic [1:0]bresp; | |||||
| logic bvalid; | |||||
| logic bready; | |||||
| /////////////read_address////////////////////////////// | |||||
| randc bit [3:0] arid; | |||||
| rand logic [31:0]araddr; | |||||
| rand logic [3:0]arlen; | |||||
| rand logic [2:0]arsize; | |||||
| rand logic [1:0]arburst; | |||||
| rand logic [3:0]arcache; | |||||
| rand logic [2:0]arprot; | |||||
| rand logic [1:0]awlock; | |||||
| logic arvalid; | |||||
| logic arready; | |||||
| //////////////read_data///////////////////////////// | |||||
| bit [3:0] rid; | |||||
| logic [31:0]rdata[]; | |||||
| logic [1:0]rresp; | |||||
| logic rlast; | |||||
| logic rvalid; | |||||
| logic rready; | |||||
| bit wr_rd; | |||||
| int lower_boundary; | |||||
| int upper_boundary; | |||||
| constraint burst{awburst !=2'b11;} | |||||
| constraint wrap{if(awburst==2'b10) awlen inside {1,3,7,15};} | |||||
| constraint id {arlen == awlen;arsize == awsize;awid == wid;awid == arid;} | |||||
| constraint aligned {(awaddr%(2**awsize)==0);} | |||||
| constraint awburst{awburst inside {0,1,2}; awburst dist {2'b00:/10 , 2'b01:/60 , 2'b10:/30};} | |||||
| constraint arburst{arburst inside {0,1,2}; arburst dist {2'b00:/10 , 2'b01:/60 , 2'b10:/30};} | |||||
| constraint 4kb{((awaddr%4096) >=(awaddr+(awlen*awsize)%4096;} | |||||
| function new(string name = "seq_item"); | |||||
| super.new(name); | |||||
| endfunction | |||||
| endclass | |||||