[source]

Class uvm_pkg::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

CLASS

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

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

Implementation

Parameters:
  • start_offset (bit[63:0]) --

    Local

  • end_offset (bit[63:0])

  • len (int unsigned)

  • n_bytes (int unsigned)

  • parent (uvm_mem_mam)

Functions

get_start_offset()

Function

get_start_offset

Get the start offset of the region

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

get_end_offset()

Function

get_end_offset

Get the end offset of the region

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

get_len()

Function

get_len

Size of the memory region

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

get_n_bytes()

Function

get_n_bytes

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.

release_region()

Function

release_region

Release this region

get_memory()

Function

get_memory

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.

Return type:

uvm_mem

get_virtual_registers()

Function

get_virtual_registers

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.

Return type:

uvm_vreg

convert2string()

Tasks

write(uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path = UVM_DEFAULT_PATH, uvm_reg_map map = null, uvm_sequence_base parent = null, int prior = -1, uvm_object extension = null, string fname = "", int lineno = 0)

Task

write

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.

Parameters:
read(uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path = UVM_DEFAULT_PATH, uvm_reg_map map = null, uvm_sequence_base parent = null, int prior = -1, uvm_object extension = null, string fname = "", int lineno = 0)

Task

read

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.

Parameters:
burst_write(uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path = UVM_DEFAULT_PATH, uvm_reg_map map = null, uvm_sequence_base parent = null, int prior = -1, uvm_object extension = null, string fname = "", int lineno = 0)

Task

burst_write

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.

Parameters:
burst_read(uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_path_e path = UVM_DEFAULT_PATH, uvm_reg_map map = null, uvm_sequence_base parent = null, int prior = -1, uvm_object extension = null, string fname = "", int lineno = 0)

Task

burst_read

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.

Parameters:
poke(uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_sequence_base parent = null, uvm_object extension = null, string fname = "", int lineno = 0)

Task

poke

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.

Parameters:
peek(uvm_status_e status, uvm_reg_addr_t offset, uvm_reg_data_t value, uvm_sequence_base parent = null, uvm_object extension = null, string fname = "", int lineno = 0)

Task

peek

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.

Parameters: