uvm_reg_transaction_order_policy | ||||
Class Hierarchy | ||||
| ||||
Class Declaration | ||||
| ||||
Methods | ||||
order | the order() function may reorder the sequence of bus transactions produced by a single uvm_reg transaction (read/write). |
pure virtual function void order( ref uvm_reg_bus_op q[$] )
the order() function may reorder the sequence of bus transactions produced by a single uvm_reg transaction (read/write). This can be used in scenarios when the register width differs from the bus width and one register access results in a series of bus transactions. the first item (0) of the queue will be the first bus transaction (the last($) will be the final transaction
Address map abstraction class
This class represents an address map. An address map is a collection of registers and memories accessible via a specific physical interface. Address maps can be composed into higher-level address maps.
Address maps are created using the uvm_reg_block::create_map() method.
uvm_reg_map | ||||
Class Hierarchy | ||||
| ||||
Class Declaration | ||||
| ||||
Initialization | ||||
set_sequencer | Set the sequencer and adapter associated with this map. | |||
set_submap_offset | Set the offset of the given submap to offset. | |||
get_submap_offset | Return the offset of the given submap. | |||
set_base_addr | Set the base address of this map. | |||
Introspection | ||||
get_name | Get the simple name | |||
get_full_name | Get the hierarchical name | |||
get_n_bytes | Get the width in bytes of the bus associated with this map. | |||
get_addr_unit_bytes | Get the number of bytes in the smallest addressable unit in the map. | |||
Bus Access | ||||
get_check_on_read | Gets the check-on-read mode setting for this map. | |||
do_bus_write | Perform a bus write operation. | |||
do_bus_read | Perform a bus read operation. | |||
do_write | Perform a write operation. | |||
do_read | Perform a read operation. | |||
if multiple memory addresses would fall into one bus word then the memory is addressed ‘unpacked’ | ie. |
virtual function void set_sequencer ( uvm_sequencer_base sequencer, uvm_reg_adapter adapter = null )
Set the sequencer and adapter associated with this map. This method must be called before starting any sequences based on uvm_reg_sequence.
virtual function void set_submap_offset ( uvm_reg_map submap, uvm_reg_addr_t offset )
Set the offset of the given submap to offset.
virtual function uvm_reg_addr_t get_submap_offset ( uvm_reg_map submap )
Return the offset of the given submap.
virtual function void set_base_addr ( uvm_reg_addr_t offset )
Set the base address of this map.
Get the simple name
Return the simple object name of this address map.
virtual function string get_full_name()
Get the hierarchical name
Return the hierarchal name of this address map. The base of the hierarchical name is the root block.
virtual function int unsigned get_n_bytes ( uvm_hier_e hier = UVM_HIER )
Get the width in bytes of the bus associated with this map. If hier is UVM_HIER, then gets the effective bus width relative to the system level. The effective bus width is the narrowest bus width from this map to the top-level root map. Each bus access will be limited to this bus width.
virtual function int unsigned get_addr_unit_bytes()
Get the number of bytes in the smallest addressable unit in the map. Returns 1 if the address map was configured using byte-level addressing. Returns get_n_bytes() otherwise.
function bit get_check_on_read()
Gets the check-on-read mode setting for this map.
virtual task do_bus_write ( uvm_reg_item rw, uvm_sequencer_base sequencer, uvm_reg_adapter adapter )
Perform a bus write operation.
virtual task do_bus_read ( uvm_reg_item rw, uvm_sequencer_base sequencer, uvm_reg_adapter adapter )
Perform a bus read operation.
ie. every memory location will get an own bus address (and bits on the bus larger than the memory width are discarded otherwise the memory access is ‘packed’
same as get_physical_addresses() but stops at the specified map
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
virtual class uvm_reg_transaction_order_policy extends uvm_object
class uvm_reg_map extends uvm_object
the order() function may reorder the sequence of bus transactions produced by a single uvm_reg transaction (read/write).
pure virtual function void order( ref uvm_reg_bus_op q[$] )
Set the sequencer and adapter associated with this map.
virtual function void set_sequencer ( uvm_sequencer_base sequencer, uvm_reg_adapter adapter = null )
Set the offset of the given submap to offset.
virtual function void set_submap_offset ( uvm_reg_map submap, uvm_reg_addr_t offset )
Return the offset of the given submap.
virtual function uvm_reg_addr_t get_submap_offset ( uvm_reg_map submap )
Set the base address of this map.
virtual function void set_base_addr ( uvm_reg_addr_t offset )
Get the hierarchical name
virtual function string get_full_name()
Get the width in bytes of the bus associated with this map.
virtual function int unsigned get_n_bytes ( uvm_hier_e hier = UVM_HIER )
Get the number of bytes in the smallest addressable unit in the map.
virtual function int unsigned get_addr_unit_bytes()
Gets the check-on-read mode setting for this map.
function bit get_check_on_read()
Perform a bus write operation.
virtual task do_bus_write ( uvm_reg_item rw, uvm_sequencer_base sequencer, uvm_reg_adapter adapter )
Perform a bus read operation.
virtual task do_bus_read ( uvm_reg_item rw, uvm_sequencer_base sequencer, uvm_reg_adapter adapter )
Perform a write operation.
virtual task do_write( uvm_reg_item rw )
Perform a read operation.
virtual task do_read( uvm_reg_item rw )
Create an address map in this block
virtual function uvm_reg_map create_map( string name, uvm_reg_addr_t base_addr, int unsigned n_bytes, uvm_endianness_e endian, bit byte_addressing = 1 )