[source]

Class uvm_mem_region

uvm_pkg::uvm_mem_region + Xend_offsetX : bit[63:0] + Xstart_offsetX : bit[63:0] + XvregX : uvm_vreg + burst_read() + burst_write() + convert2string(): string + get_end_offset(): bit[63:0] + get_len(): int unsigned + get_memory(): uvm_mem + get_n_bytes(): int unsigned + get_start_offset(): bit[63:0] + get_virtual_registers(): uvm_vreg + peek() + poke() + read() + release_region(): void + write() uvm_pkg::uvm_vreg XvregX

Collaboration Diagram of uvm_mem_region

Allocated memory region descriptor

Each instance of this class describes an allocated memory region. Instances of this class are created only by the memory manager, and returned by the uvm_mem_mam::reserve_region() and uvm_mem_mam::request_region() methods.

Variables

Name

Type

Description

Xstart_offsetX

bit[63:0]

Can't be local since function

Xend_offsetX

bit[63:0]

calls not supported in constraints

XvregX

uvm_vreg

local

Constructors

function new ( bit[63:0] start_offset, bit[63:0] end_offset, int unsigned len, int unsigned n_bytes, uvm_mem_mam parent ) [source]

Implementation

Functions

function bit[63:0] get_start_offset ( ) [source]

Get the start offset of the region

Return the address offset, within the memory, where this memory region starts.

function bit[63:0] get_end_offset ( ) [source]

Get the end offset of the region

Return the address offset, within the memory, where this memory region ends.

function int unsigned get_len ( ) [source]

Size of the memory region

Return the number of consecutive memory locations (not necessarily bytes) in the allocated region.

function int unsigned get_n_bytes ( ) [source]

Number of bytes in the region

Return the number of consecutive bytes in the allocated region. If the managed memory contains more than one byte per address, the number of bytes in an allocated region may be greater than the number of requested or reserved bytes.

function void release_region ( ) [source]

Release this region

function uvm_mem get_memory ( ) [source]

Get the memory where the region resides

Return a reference to the memory abstraction class for the memory implementing this allocated memory region. Returns null if no memory abstraction class was specified for the allocation manager that allocated this region.

function uvm_vreg get_virtual_registers ( ) [source]

Get the virtual register array in this region

Return a reference to the virtual register array abstraction class implemented in this region. Returns null if the memory region is not known to implement virtual registers.

function string convert2string ( ) [source]

Tasks

function write ( uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path, uvm_reg_map map, uvm_sequence_base parent, int prior, uvm_object extension, string fname, int lineno ) [source]

Write to a memory location in the region.

Write to the memory location that corresponds to the specified offset within this region. Requires that the memory abstraction class be associated with the memory allocation manager that allocated this region.

See uvm_mem::write() for more details.

function read ( uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path, uvm_reg_map map, uvm_sequence_base parent, int prior, uvm_object extension, string fname, int lineno ) [source]

Read from a memory location in the region.

Read from the memory location that corresponds to the specified offset within this region. Requires that the memory abstraction class be associated with the memory allocation manager that allocated this region.

See uvm_mem::read() for more details.

function burst_write ( uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path, uvm_reg_map map, uvm_sequence_base parent, int prior, uvm_object extension, string fname, int lineno ) [source]

Write to a set of memory location in the region.

Write to the memory locations that corresponds to the specified burst within this region. Requires that the memory abstraction class be associated with the memory allocation manager that allocated this region.

See uvm_mem::burst_write() for more details.

function burst_read ( uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path, uvm_reg_map map, uvm_sequence_base parent, int prior, uvm_object extension, string fname, int lineno ) [source]

Read from a set of memory location in the region.

Read from the memory locations that corresponds to the specified burst within this region. Requires that the memory abstraction class be associated with the memory allocation manager that allocated this region.

See uvm_mem::burst_read() for more details.

function poke ( uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_sequence_base parent, uvm_object extension, string fname, int lineno ) [source]

Deposit in a memory location in the region.

Deposit the specified value in the memory location that corresponds to the specified offset within this region. Requires that the memory abstraction class be associated with the memory allocation manager that allocated this region.

See uvm_mem::poke() for more details.

function peek ( uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_sequence_base parent, uvm_object extension, string fname, int lineno ) [source]

Sample a memory location in the region.

Sample the memory location that corresponds to the specified offset within this region. Requires that the memory abstraction class be associated with the memory allocation manager that allocated this region.

See uvm_mem::peek() for more details.