Explorar el Código

axi_seqitem

master
gandra_pravalika hace 4 meses
padre
commit
7f5ef75581
Se han modificado 1 ficheros con 76 adiciones y 0 borrados
  1. +76
    -0
      axi_seqitem.sv.bak

+ 76
- 0
axi_seqitem.sv.bak Ver fichero

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








Cargando…
Cancelar
Guardar