# 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.

Summary

uvm_reg_indirect_data
Indirect data access abstraction class
Class Hierarchy
uvm_void
uvm_object
uvm_reg
uvm_reg_indirect_data
Class Declaration
> class uvm_reg_indirect_data extends uvm_reg
Methods |
new | Create an instance of this class
configure | Configure the indirect data register.

### Methods

### new

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

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.

### configure

> function void configure (
> | uvm_reg | idx, |  |
> | uvm_reg | reg_a[], |  |
> | uvm_reg_block | blk_parent, |  |
> | uvm_reg_file | regfile_parent | = | null
> )

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 class uvm_void

The uvm_void class is the base class for all UVM classes.

> virtual class uvm_object extends uvm_void

The uvm_object class is the base class for all UVM data and hierarchical classes.

> virtual class uvm_reg extends uvm_object

Register abstraction base class

> class uvm_reg_indirect_data extends uvm_reg

Indirect data access abstraction class

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

Create an instance of this class

> function void configure (
> | uvm_reg | idx, |  |
> | uvm_reg | reg_a[], |  |
> | uvm_reg_block | blk_parent, |  |
> | uvm_reg_file | regfile_parent | = | null
> )

Configure the indirect data register.

> function void configure (
> | uvm_reg_block | blk_parent, |  |
> | uvm_reg_file | regfile_parent | = | null,
> | string | hdl_path | = | ""
> )

Instance-specific configuration