[source]

Class 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

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

function new ( string name, int unsigned n_bits, int has_cover ) [source]

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.

Functions

virtual function void build ( ) [source]
function void configure ( uvm_reg idx, uvm_reg reg_a, uvm_reg_block blk_parent, uvm_reg_file regfile_parent ) [source]

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.

virtual function void add_map ( uvm_reg_map map ) [source]
virtual function void do_predict ( uvm_reg_item rw, uvm_predict_e kind, uvm_reg_byte_en_t be ) [source]
virtual function uvm_reg_map get_local_map ( uvm_reg_map map, string caller ) [source]
virtual function void add_field ( uvm_reg_field field ) [source]

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

virtual function void set ( uvm_reg_data_t value, string fname, int lineno ) [source]
virtual function uvm_reg_data_t get ( string fname, int lineno ) [source]
virtual function uvm_reg get_indirect_reg ( string fname, int lineno ) [source]
virtual function bit needs_update ( ) [source]

Tasks

virtual function write ( uvm_status_e status, 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]
virtual function read ( uvm_status_e status, 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]
virtual function poke ( uvm_status_e status, uvm_reg_data_t value, string kind, uvm_sequence_base parent, uvm_object extension, string fname, int lineno ) [source]
virtual function peek ( uvm_status_e status, uvm_reg_data_t value, string kind, uvm_sequence_base parent, uvm_object extension, string fname, int lineno ) [source]
virtual function update ( uvm_status_e status, uvm_path_e path, uvm_reg_map map, uvm_sequence_base parent, int prior, uvm_object extension, string fname, int lineno ) [source]
virtual function mirror ( uvm_status_e status, uvm_check_e check, uvm_path_e path, uvm_reg_map map, uvm_sequence_base parent, int prior, uvm_object extension, string fname, int lineno ) [source]