[source]

Class uvm_pkg::uvm_reg_indirect_data

uvm_pkg::uvm_reg_indirect_data + add_field(): void + add_map(): void + build(): void + configure(): void + do_predict(): void + get(): uvm_reg_data_t + get_indirect_reg(): uvm_reg + get_local_map(): uvm_reg_map + mirror() + needs_update(): bit + peek() + poke() + read() + set(): void + update() + write()

Collaboration Diagram of uvm_reg_indirect_data

CLASS

uvm_reg_indirect_data

Indirect data access abstraction class

Models the behavior of a register used to indirectly access a register array, indexed by a second address register.

This class should not be instantiated directly. A type-specific class extension should be used to provide a factory-enabled constructor and specify the n_bits and coverage models.

Constructors

new(string name = "uvm_reg_indirect", int unsigned n_bits, int has_cover)

Function

new

Create an instance of this class

Should not be called directly, other than via super.new(). The value of n_bits must match the number of bits in the indirect register array.

Parameters:
  • name (string)

  • n_bits (int unsigned)

  • has_cover (int)

Functions

build()
configure(uvm_reg idx, uvm_reg reg_a, uvm_reg_block blk_parent, uvm_reg_file regfile_parent = null)

Function

configure

Configure the indirect data register.

The idx register specifies the index, in the reg_a register array, of the register to access. The idx must be written to first. A read or write operation to this register will subsequently read or write the indexed register in the register array.

The number of bits in each register in the register array must be equal to n_bits of this register.

See uvm_reg::configure() for the remaining arguments.

Parameters:
add_map(uvm_reg_map map)
Parameters:

map (uvm_reg_map) --

Local

do_predict(uvm_reg_item rw, uvm_predict_e kind = UVM_PREDICT_DIRECT, uvm_reg_byte_en_t be = -1)
Parameters:
get_local_map(uvm_reg_map map, string caller = "")
Parameters:
Return type:

uvm_reg_map

add_field(uvm_reg_field field)

Just for good measure, to catch and short-circuit non-sensical uses

Parameters:

field (uvm_reg_field)

set(uvm_reg_data_t value, string fname = "", int lineno = 0)
Parameters:
get(string fname = "", int lineno = 0)
Parameters:
  • fname (string)

  • lineno (int)

Return type:

uvm_reg_data_t

get_indirect_reg(string fname = "", int lineno = 0)
Parameters:
  • fname (string)

  • lineno (int)

Return type:

uvm_reg

needs_update()

Tasks

write(uvm_status_e status, 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)
Parameters:
read(uvm_status_e status, 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)
Parameters:
poke(uvm_status_e status, uvm_reg_data_t value, string kind = "", uvm_sequence_base parent = null, uvm_object extension = null, string fname = "", int lineno = 0)
Parameters:
peek(uvm_status_e status, uvm_reg_data_t value, string kind = "", uvm_sequence_base parent = null, uvm_object extension = null, string fname = "", int lineno = 0)
Parameters:
update(uvm_status_e status, 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)
Parameters:
mirror(uvm_status_e status, uvm_check_e check = UVM_NO_CHECK, 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)
Parameters: