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