|
OVM Monitor example for Memory DUT
|
OVM Monitor example for Memory DUT :
`ifndef __MEM_TRANSFER__
`define __MEM_TRANSFER__
// mem read write enum
typedef enum {
READ,
WRITE
} mem_read_write_enum;
class mem_transfer extends ovm_sequence_item;
rand mem_read_write_enum read_write;
rand bit [`ADDR_SIZE-1:0] addr;
rand bit [`DATA_SIZE-1:0] data;
rand bit [`DATA_SIZE-1:0] write_enable;
rand bit chip_enable;
rand int unsigned size;
constraint c_size {
size inside {1, 2, 4, 8};
}
constraint c_chip_enable {
chip_enable == 0;
}
// Register fields with OVM
`ovm_object_utils_begin (mem_transfer)
`ovm_field_int (addr, OVM_ALL_ON)
`ovm_field_int (data, OVM_ALL_ON)
`ovm_field_int (size, OVM_ALL_ON)
`ovm_field_enum (mem_read_write_enum, read_write, OVM_ALL_ON)
`ovm_object_utils_end
// Class Constructor
function new (string name="mem_transfer_inst") ;
super.new (name);
endfunction : new
endclass : mem_transfer
`endif //__MEM_TRANSFER__
|
|
This Articles is written/submitted by puneet (Puneet Aggarwal). You can also contribute to Asicguru.com. Click here to start
|
Prev << OVM Driver
|
Next >> OVM Sequencer
|
Posted By : Gopi Krishna - Jan. 8, 2010, 11:43 a.m.
This is not ovm monitor code.