A virtual register is a collection of fields, overlaid on top of a memory, usually in an array. The semantics and layout of virtual registers comes from an agreement between the software and the hardware, not any physical structures in the DUT.
Virtual Registers | A virtual register is a collection of fields, overlaid on top of a memory, usually in an array. |
uvm_vreg | Virtual register abstraction base class |
uvm_vreg_cbs | Pre/post read/write callback facade class |
Virtual register abstraction base class
A virtual register represents a set of fields that are logically implemented in consecutive memory locations.
All virtual register accesses eventually turn into memory accesses.
A virtual register array may be implemented on top of any memory abstraction class and possibly dynamically resized and/or relocated.
uvm_vreg | ||||
Virtual register abstraction base class | ||||
Class Hierarchy | ||||
| ||||
Class Declaration | ||||
| ||||
Initialization | ||||
Introspection | ||||
get_name | Get the simple name | |||
get_full_name | Get the hierarchical name | |||
get_size | Returns the size of the virtual register array. | |||
get_n_bytes | Returns the width, in bytes, of a virtual register. | |||
get_n_memlocs | Returns the number of memory locations used by a single virtual register. | |||
get_incr | Returns the number of memory locations between two individual virtual registers in the same array. | |||
HDL Access | ||||
Callbacks |
Get the simple name
Return the simple object name of this register.
virtual function string get_full_name()
Get the hierarchical name
Return the hierarchal name of this register. The base of the hierarchical name is the root block.
virtual function int unsigned get_n_bytes()
Returns the width, in bytes, of a virtual register.
The width of a virtual register is always a multiple of the width of the memory locations used to implement it. For example, a virtual register containing two 1-byte fields implemented in a memory with 4-bytes memory locations is 4-byte wide.
virtual function int unsigned get_n_memlocs()
Returns the number of memory locations used by a single virtual register.
virtual function int unsigned get_incr()
Returns the number of memory locations between two individual virtual registers in the same array.
Pre/post read/write callback facade class
uvm_vreg_cbs | |||||
Pre/post read/write callback facade class | |||||
Class Hierarchy | |||||
| |||||
Class Declaration | |||||
| |||||
Types | |||||
uvm_vreg_cb | Convenience callback type declaration | ||||
uvm_vreg_cb_iter | Convenience callback iterator type declaration |
Convenience callback type declaration
Use this declaration to register virtual register callbacks rather than the more verbose parameterized class
Convenience callback iterator type declaration
Use this declaration to iterate over registered virtual register callbacks rather than the more verbose parameterized class
Virtual register abstraction base class
class uvm_vreg extends uvm_object
Pre/post read/write callback facade class
virtual class uvm_vreg_cbs extends uvm_callback
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
Get the hierarchical name
virtual function string get_full_name()
Returns the size of the virtual register array.
virtual function int unsigned get_size()
Returns the width, in bytes, of a virtual register.
virtual function int unsigned get_n_bytes()
Returns the number of memory locations used by a single virtual register.
virtual function int unsigned get_n_memlocs()
Returns the number of memory locations between two individual virtual registers in the same array.
virtual function int unsigned get_incr()
The uvm_callback class is the base class for user-defined callback classes.
class uvm_callback extends uvm_object