[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

Copyright 2010 Synopsys, Inc. Copyright 2010 Cadence Design Systems, Inc. Copyright 2011 Mentor Graphics Corporation All Rights Reserved Worldwide

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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: