This section defines the abstract register transaction item. It also defines a descriptor for a physical bus operation that is used by uvm_reg_adapter subtypes to convert from a protocol-specific address/data/rw operation to a bus-independent, canonical r/w operation.
Generic Register Operation Descriptors | |
This section defines the abstract register transaction item. |
Defines an abstract register transaction item. No bus-specific information is present, although a handle to a uvm_reg_map is provided in case a user wishes to implement a custom address translation algorithm.
uvm_reg_item | ||||||
Defines an abstract register transaction item. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Variables | ||||||
element_kind | Kind of element being accessed: REG, MEM, or FIELD. | |||||
element | A handle to the RegModel model element associated with this transaction. | |||||
kind | Kind of access: READ or WRITE. | |||||
value | The value to write to, or after completion, the value read from the DUT. | |||||
offset | For memory accesses, the offset address. | |||||
status | The result of the transaction: IS_OK, HAS_X, or ERROR. | |||||
local_map | The local map used to obtain addresses. | |||||
map | The original map specified for the operation. | |||||
path | The path being used: UVM_FRONTDOOR or UVM_BACKDOOR. | |||||
parent | The sequence from which the operation originated. | |||||
prior | The priority requested of this transfer, as defined by uvm_sequence_base::start_item. | |||||
extension | Handle to optional user data, as conveyed in the call to write(), read(), mirror(), or update() used to trigger the operation. | |||||
bd_kind | If path is UVM_BACKDOOR, this member specifies the abstraction kind for the backdoor access, e.g. | |||||
fname | The file name from where this transaction originated, if provided at the call site. | |||||
lineno | The file name from where this transaction originated, if provided at the call site. | |||||
Methods | ||||||
do_copy | Copy the rhs object into this object. |
uvm_elem_kind_e element_kind
Kind of element being accessed: REG, MEM, or FIELD. See uvm_elem_kind_e.
uvm_object element
A handle to the RegModel model element associated with this transaction. Use element_kind to determine the type to cast to: <uvm_reg>, uvm_mem, or <uvm_reg_field>.
rand uvm_access_e kind
Kind of access: READ or WRITE.
Access to this variable is provided for randomization, otherwise interactions with it shall be via the set_kind() and get_kind() accessor methods
@uvm-contrib This variable is being considered for potential contribution to 1800.2
rand uvm_reg_data_t value[]
The value to write to, or after completion, the value read from the DUT. Burst operations use the values property.
Access to this variable is provided for randomization, otherwise interactions with it shall be via the set_value_array() and get_value_array() accessor methods
@uvm-contrib This variable is being considered for potential contribution to 1800.2
rand uvm_reg_addr_t offset
For memory accesses, the offset address. For bursts, the starting offset address.
Access to this variable is provided for randomization, otherwise interactions with it shall be via the set_offset() and get_offset() accessor methods
@uvm-contrib This variable is being considered for potential contribution to 1800.2
uvm_reg_map local_map
The local map used to obtain addresses. Users may customize address-translation using this map. Access to the sequencer and bus adapter can be obtained by getting this map’s root map, then calling <uvm_reg_map::get_sequencer> and <uvm_reg_map::get_adapter>.
rand uvm_sequence_base parent
The sequence from which the operation originated.
Access to this variable is provided for randomization, otherwise interactions with it shall be via the set_parent() and get_parent() accessor methods
@uvm-contrib This variable is being considered for potential contribution to 1800.2
int prior = -1
The priority requested of this transfer, as defined by uvm_sequence_base::start_item.
rand uvm_object extension
Handle to optional user data, as conveyed in the call to write(), read(), mirror(), or update() used to trigger the operation.
string bd_kind
If path is UVM_BACKDOOR, this member specifies the abstraction kind for the backdoor access, e.g. “RTL” or “GATES”.
string fname
The file name from where this transaction originated, if provided at the call site.
int lineno
The file name from where this transaction originated, if provided at the call site.
virtual function void do_copy( uvm_object rhs )
Copy the rhs object into this object. The rhs object must derive from uvm_reg_item.
@uvm-contrib This API is being considered for potential contribution to 1800.2
This class defines an interface for converting between uvm_reg_bus_op and a specific bus transaction.
virtual class uvm_reg_adapter extends uvm_object
The uvm_void class is the base class for all UVM classes.
virtual class uvm_void
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
The uvm_transaction class is the root base class for UVM transactions.
virtual class uvm_transaction extends uvm_object
The base class for user-defined sequence items and also the base class for the uvm_sequence class.
class uvm_sequence_item extends uvm_transaction
Defines an abstract register transaction item.
class uvm_reg_item extends uvm_sequence_item
Kind of element being accessed: REG, MEM, or FIELD.
uvm_elem_kind_e element_kind
A handle to the RegModel model element associated with this transaction.
uvm_object element
Kind of access: READ or WRITE.
rand uvm_access_e kind
The value to write to, or after completion, the value read from the DUT.
rand uvm_reg_data_t value[]
For memory accesses, the offset address.
rand uvm_reg_addr_t offset
The result of the transaction: IS_OK, HAS_X, or ERROR.
uvm_status_e status
The local map used to obtain addresses.
uvm_reg_map local_map
The original map specified for the operation.
uvm_reg_map map
The path being used: UVM_FRONTDOOR or UVM_BACKDOOR.
uvm_door_e path
The sequence from which the operation originated.
rand uvm_sequence_base parent
The priority requested of this transfer, as defined by uvm_sequence_base::start_item.
int prior = -1
start_item and finish_item together will initiate operation of a sequence item.
virtual task start_item ( uvm_sequence_item item, int set_priority = -1, uvm_sequencer_base sequencer = null )
Handle to optional user data, as conveyed in the call to write(), read(), mirror(), or update() used to trigger the operation.
rand uvm_object extension
If path is UVM_BACKDOOR, this member specifies the abstraction kind for the backdoor access, e.g.
string bd_kind
The file name from where this transaction originated, if provided at the call site.
string fname
The file name from where this transaction originated, if provided at the call site.
int lineno
Copy the rhs object into this object.
virtual function void do_copy( uvm_object rhs )
class uvm_reg_map extends uvm_object
Memory abstraction base class
class uvm_mem extends uvm_object