# uvm_reg_backdoor

Base class for user-defined back-door register and memory access.

This class can be extended by users to provide user-specific back-door access to registers and memories that are not implemented in pure SystemVerilog or that are not accessible using the default DPI backdoor mechanism.

Summary

uvm_reg_backdoor
Base class for user-defined back-door register and memory access.
Class Hierarchy
uvm_void
uvm_object
uvm_reg_backdoor
Class Declaration
> class uvm_reg_backdoor extends uvm_object
Methods |
new | Create an instance of this class
do_pre_read | Execute the pre-read callbacks
do_post_read | Execute the post-read callbacks
do_pre_write | Execute the pre-write callbacks
do_post_write | Execute the post-write callbacks
write | User-defined backdoor write operation.
read | User-defined backdoor read operation.
read_func | User-defined backdoor read operation.
is_auto_updated | Indicates if wait_for_change() method is implemented
wait_for_change | Wait for a change in the value of the register or memory element in the DUT.
pre_read | Called before user-defined backdoor register read.
post_read | Called after user-defined backdoor register read.
pre_write | Called before user-defined backdoor register write.
post_write | Called after user-defined backdoor register write.

### Methods

### new

> function new(
> | string | name | = | ""
> )

Create an instance of this class

Create an instance of the user-defined backdoor class for the specified register or memory

### do_pre_read

> protected task do_pre_read(
> | uvm_reg_item | rw
> )

Execute the pre-read callbacks

This method must be called as the first statement in a user extension of the read() method.

### do_post_read

> protected task do_post_read(
> | uvm_reg_item | rw
> )

Execute the post-read callbacks

This method must be called as the last statement in a user extension of the read() method.

### do_pre_write

> protected task do_pre_write(
> | uvm_reg_item | rw
> )

Execute the pre-write callbacks

This method must be called as the first statement in a user extension of the write() method.

### do_post_write

> protected task do_post_write(
> | uvm_reg_item | rw
> )

Execute the post-write callbacks

This method must be called as the last statement in a user extension of the write() method.

### write

> virtual task write(
> | uvm_reg_item | rw
> )

User-defined backdoor write operation.

Call do_pre_write(). Deposit the specified value in the specified register HDL implementation. Call do_post_write(). Returns an indication of the success of the operation.

### read

> virtual task read(
> | uvm_reg_item | rw
> )

User-defined backdoor read operation.

Overload this method only if the backdoor requires the use of task.

Call do_pre_read(). Peek the current value of the specified HDL implementation. Call do_post_read(). Returns the current value and an indication of the success of the operation.

By default, calls read_func().

### read_func

> virtual function void read_func(
> | uvm_reg_item | rw
> )

User-defined backdoor read operation.

Peek the current value in the HDL implementation. Returns the current value and an indication of the success of the operation.

### is_auto_updated

> virtual function bit is_auto_updated(
> | uvm_reg_field | field
> )

Indicates if wait_for_change() method is implemented

Implement to return TRUE if and only if wait_for_change() is implemented to watch for changes in the HDL implementation of the specified field

### wait_for_change

> virtual local task wait_for_change(
> | uvm_object | element
> )

Wait for a change in the value of the register or memory element in the DUT.

When this method returns, the mirror value for the register corresponding to this instance of the backdoor class will be updated via a backdoor read operation.

### pre_read

> virtual task pre_read(
> | uvm_reg_item | rw
> )

Called before user-defined backdoor register read.

The registered callback methods are invoked after the invocation of this method.

### post_read

> virtual task post_read(
> | uvm_reg_item | rw
> )

Called after user-defined backdoor register read.

The registered callback methods are invoked before the invocation of this method.

### pre_write

> virtual task pre_write(
> | uvm_reg_item | rw
> )

Called before user-defined backdoor register write.

The registered callback methods are invoked after the invocation of this method.

The written value, if modified, modifies the actual value that will be written.

### post_write

> virtual task post_write(
> | uvm_reg_item | rw
> )

Called after user-defined backdoor register write.

The registered callback methods are invoked before the invocation of this method.

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

> class uvm_reg_backdoor extends uvm_object

Base class for user-defined back-door register and memory access.

> function new(
> | string | name | = | ""
> )

Create an instance of this class

> protected task do_pre_read(
> | uvm_reg_item | rw
> )

Execute the pre-read callbacks

> protected task do_post_read(
> | uvm_reg_item | rw
> )

Execute the post-read callbacks

> protected task do_pre_write(
> | uvm_reg_item | rw
> )

Execute the pre-write callbacks

> protected task do_post_write(
> | uvm_reg_item | rw
> )

Execute the post-write callbacks

> virtual task write(
> | uvm_reg_item | rw
> )

User-defined backdoor write operation.

> virtual task read(
> | uvm_reg_item | rw
> )

User-defined backdoor read operation.

> virtual function void read_func(
> | uvm_reg_item | rw
> )

User-defined backdoor read operation.

> virtual function bit is_auto_updated(
> | uvm_reg_field | field
> )

Indicates if wait_for_change() method is implemented

> virtual local task wait_for_change(
> | uvm_object | element
> )

Wait for a change in the value of the register or memory element in the DUT.

> virtual task pre_read(
> | uvm_reg_item | rw
> )

Called before user-defined backdoor register read.

> virtual task post_read(
> | uvm_reg_item | rw
> )

Called after user-defined backdoor register read.

> virtual task pre_write(
> | uvm_reg_item | rw
> )

Called before user-defined backdoor register write.

> virtual task post_write(
> | uvm_reg_item | rw
> )

Called after user-defined backdoor register write.