Memories

class uvm.reg.uvm_mem.UVMMem(name, size, n_bits, access='RW', has_coverage=0)[source]

Bases: UVMObject

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.

m_max_size = 0
configure(parent, hdl_path='')[source]
add_map(_map)[source]
Xlock_modelX()[source]
Xadd_vregX(vreg)[source]
get_full_name()[source]

Objects possessing hierarchy, such as <uvm_components>, override the default implementation. Other objects might be associated with component hierarchy but are not themselves components. For example, <uvm_sequence #(REQ,RSP)> classes are typically associated with a <uvm_sequencer #(REQ,RSP)>. In this case, it is useful to override get_full_name to return the sequencer’s full name concatenated with the sequence’s name. This provides the sequence a full context, which is useful when debugging.

Returns

The full hierarchical name of this object. The default implementation is the same as <get_name>, as uvm_objects do not inherently possess hierarchy.

Return type

str

get_parent()[source]
get_block()[source]
get_n_maps()[source]
get_maps(maps)[source]
get_local_map(_map, caller='')[source]
get_default_map(caller='')[source]
get_rights(_map=None)[source]
get_access(_map=None)[source]
get_size()[source]
get_n_bytes()[source]
get_n_bits()[source]
classmethod get_max_size()[source]
async write(status, offset, value, path=3, _map=None, parent=None, prior=-1, extension=None, fname='', lineno=0)[source]
async read(status, offset, value, path=3, _map=None, parent=None, prior=-1, extension=None, fname='', lineno=0)[source]
async burst_write(status, offset, value, path=3, _map=None, parent=None, prior=-1, extension=None, fname='', lineno=0)[source]
async burst_read(status, offset, value, path=3, _map=None, parent=None, prior=-1, extension=None, fname='', lineno=0)[source]
poke(status, offset, value, kind='', parent=None, extension=None, fname='', lineno=0)[source]
peek(status, offset, value, kind='', parent=None, extension=None, fname='', lineno=0)[source]
Xcheck_accessX(rw, map_info, caller)[source]
async do_write(rw)[source]
async do_read(rw)[source]
set_backdoor(bkdr, fname='', lineno=0)[source]
get_backdoor(inherited=1)[source]
add_hdl_path_slice(name, offset, size, first=0, kind='RTL')[source]
has_hdl_path(kind='')[source]
get_full_hdl_path(paths, kind='', separator='.')[source]
backdoor_read(rw)[source]
backdoor_write(rw)[source]
backdoor_read_func(rw)[source]
async pre_write(rw)[source]
async post_write(rw)[source]
async pre_read(rw)[source]
async post_read(rw)[source]
build_coverage(models)[source]
add_coverage(models)[source]
has_coverage(models)[source]
set_coverage(is_on)[source]
get_coverage(is_on)[source]
sample(offset, is_read, _map)[source]
XsampleX(addr, is_read, _map)[source]