This section defines the abtract 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 abtract register transaction item. |
uvm_reg_item | Defines an abstract register transaction item. |
uvm_reg_bus_op | Struct that defines a generic bus transaction for register and memory accesses, having kind (read or write), address, data, and byte enable information. |
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 | ||||||
new | Create a new instance of this type, giving it the optional name. | |||||
convert2string | Returns a string showing the contents of this transaction. | |||||
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_reg_addr_t offset
For memory accesses, the offset address. For bursts, the starting offset address.
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.
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.
function new( string name = "" )
Create a new instance of this type, giving it the optional name.
virtual function string convert2string()
Returns a string showing the contents of this transaction.
virtual function void do_copy( uvm_object rhs )
Copy the rhs object into this object. The rhs object must derive from uvm_reg_item.
Struct that defines a generic bus transaction for register and memory accesses, having kind (read or write), address, data, and byte enable information. If the bus is narrower than the register or memory location being accessed, there will be multiple of these bus operations for every abstract uvm_reg_item transaction. In this case, data represents the portion of uvm_reg_item::value being transferred during this bus cycle. If the bus is wide enough to perform the register or memory operation in a single cycle, data will be the same as uvm_reg_item::value.
uvm_reg_bus_op | |
Struct that defines a generic bus transaction for register and memory accesses, having kind (read or write), address, data, and byte enable information. | |
Variables | |
kind | Kind of access: READ or WRITE. |
addr | The bus address. |
data | The data to write. |
n_bits | The number of bits of uvm_reg_item::value being transferred by this transaction. |
byte_en | Enables for the byte lanes on the bus. |
status | The result of the transaction: UVM_IS_OK, UVM_HAS_X, UVM_NOT_OK. |
uvm_reg_data_t data
The data to write. If the bus width is smaller than the register or memory width, data represents only the portion of value that is being transferred this bus cycle.
uvm_reg_byte_en_t byte_en
Enables for the byte lanes on the bus. Meaningful only when the bus supports byte enables and the operation originates from a field write/read.
uvm_status_e status
The result of the transaction: UVM_IS_OK, UVM_HAS_X, UVM_NOT_OK. See uvm_status_e.
Defines an abstract register transaction item.
class uvm_reg_item extends uvm_sequence_item
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_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
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_path_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
Create a new instance of this type, giving it the optional name.
function new( string name = "" )
Returns a string showing the contents of this transaction.
virtual function string convert2string()
Copy the rhs object into this object.
virtual function void do_copy( uvm_object rhs )
class uvm_reg_map extends uvm_object
Register abstraction base class
virtual class uvm_reg extends uvm_object
Memory abstraction base class
class uvm_mem extends uvm_object
Field abstraction class
class uvm_reg_field extends uvm_object
Gets the sequencer for the bus associated with this map.
virtual function uvm_sequencer_base get_sequencer ( uvm_hier_e hier = UVM_HIER )
Gets the bus adapter for the bus associated with this map.
virtual function uvm_reg_adapter get_adapter ( uvm_hier_e hier = UVM_HIER )
Kind of access: READ or WRITE.
uvm_access_e kind
The bus address.
uvm_reg_addr_t addr
The data to write.
uvm_reg_data_t data
The number of bits of uvm_reg_item::value being transferred by this transaction.
int n_bits
Enables for the byte lanes on the bus.
uvm_reg_byte_en_t byte_en
The result of the transaction: UVM_IS_OK, UVM_HAS_X, UVM_NOT_OK.
uvm_status_e status