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