Memory abstraction base class
A memory is a collection of contiguous locations. A memory may be accessible via more than one address map.
Unlike registers, memories are not mirrored because of the potentially large data space: tests that walk the entire memory space would negate any benefit from sparse memory modelling techniques. Rather than relying on a mirror, it is recommended that backdoor access be used instead.
uvm_mem | ||||
Memory abstraction base class | ||||
Class Hierarchy | ||||
| ||||
Class Declaration | ||||
| ||||
Initialization | ||||
mam | Memory allocation manager | |||
Introspection | ||||
get_name | Get the simple name | |||
get_full_name | Get the hierarchical name | |||
get_size | Returns the number of unique memory locations in this memory. | |||
get_n_bytes | Return the width, in number of bytes, of each memory location | |||
get_n_bits | Returns the width, in number of bits, of each memory location | |||
get_max_size | Returns the maximum width, in number of bits, of all memories | |||
get_vreg_by_offset | Find the virtual register implemented at the specified offset | |||
HDL Access | ||||
Frontdoor | ||||
Backdoor | ||||
Callbacks | ||||
Coverage |
uvm_mem_mam mam
Memory allocation manager
Memory allocation manager for the memory corresponding to this abstraction class instance. Can be used to allocate regions of consecutive addresses of specific sizes, such as DMA buffers, or to locate virtual register array.
Get the simple name
Return the simple object name of this memory.
virtual function string get_full_name()
Get the hierarchical name
Return the hierarchal name of this memory. The base of the hierarchical name is the root block.
function longint unsigned get_size()
Returns the number of unique memory locations in this memory. this is in units of the memory declaration: full memory is get_size()*get_n_bits() (bits)
function int unsigned get_n_bytes()
Return the width, in number of bytes, of each memory location
function int unsigned get_n_bits()
Returns the width, in number of bits, of each memory location
static function int unsigned get_max_size()
Returns the maximum width, in number of bits, of all memories
virtual function uvm_vreg get_vreg_by_offset( uvm_reg_addr_t offset, uvm_reg_map map = null )
Find the virtual register implemented at the specified offset
Finds the virtual register implemented in this memory at the specified offset in the specified address map and returns its abstraction class instance. If no virtual register at the offset is found, returns null.
The uvm_void class is the base class for all UVM classes.
virtual class uvm_void
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
Memory abstraction base class
class uvm_mem extends uvm_object
Memory allocation manager
uvm_mem_mam mam
Get the hierarchical name
virtual function string get_full_name()
Returns the number of unique memory locations in this memory.
function longint unsigned get_size()
Return the width, in number of bytes, of each memory location
function int unsigned get_n_bytes()
Returns the width, in number of bits, of each memory location
function int unsigned get_n_bits()
Returns the maximum width, in number of bits, of all memories
static function int unsigned get_max_size()
Find the virtual register implemented at the specified offset
virtual function uvm_vreg get_vreg_by_offset( uvm_reg_addr_t offset, uvm_reg_map map = null )