Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
$#!
 `uvm_register_begin_fields
 `uvm_register_end_fields
 `uvm_register_field(FIELD_NAME)
0-9
 0
 0 Beta 5 December 22,2008
 0 Beta 6 January 16,2009
 0 Beta 7 March 26,2009
 0 Beta 8 June 29,2009
 0 May 7,2010
 0beta2 March 2,2010
A
 add_field
 add_field_tag
 add_mode
 add_mode_instance
 add_range
 add_range_random_by_hand
 add_register
 add_register_alias
 add_register_file
 add_register_in_range
 add_register_map
 add_slave
 add_target
 address
 Address Map
 ap
 Automated Tests
B
 Bit masks for behavior
 Bit masks for permission
 body
 build
 build_ap
 build_maps
 bus_read
 bus_read_bv
 bus_read32
 bus_request
 bus_response
 bus_rsp_analysis_export
 bus_transaction
 bus_transport_port
 bus_write
 bus_write_bv
 bus_write32
C
 calc_read
 calc_write
 channel
 check_width
 compare
 compare_data
 compare_read_only_bits
 compareMask
 Comparison
 connect
 connect_to_data_register
 Construction and reset
 convert2string
 Copy and clone
 Coverage
 create
 create_named_object
 create_object
 Custom Tests
D
 data
 Data Access
 Data Access functions(masked behavior)
 Data Access functions(RAW value)
 Data Access(DEPRECATED)
 Debug Section
 delete_mappings
 display_address_map
 display_address_map_by_address
 display_address_map_by_name
 do_operation
 do_read
 do_write
 do_write_read
E
 end_address
F
 Factory Interface
 Field Access By Name
 Field By Name Access
 fifo_read
 fifo_write
 find_all
 find_field
 find_fields_with_tag
 find_register_container
G
 get
 get_byte_array
 get_byte_array_no_masking
 get_child
 get_container
 get_data32
 get_data64
 get_first_child
 get_full_name
 get_length
 get_mode
 get_modes
 get_name
 get_next_child
 get_num_bits
 get_num_children
 get_parent
 get_register_array
 get_register_field_by_name
 get_register_field_by_name_with_tag
 get_register_map
 get_type_name
H
 has_child
 has_field
 has_tag
 Hierarchy Interface
I
 id_read
 id_write
 indirect_address_read
 indirect_address_write
 indirect_read
 indirect_write
 is_field_defined
L
 lookup
 lookup_register_address_by_name
 lookup_register_addresslist_by_name
 lookup_register_by_address
 lookup_register_by_name
M
 m_bus_driver
 m_check
 m_check_field_by_name
 m_driver
 m_lock
 m_new_range_random
 m_peek_field_by_name
 m_poke_field_by_name
 m_register_field_by_name
 m_register_map
 m_register_monitor
 m_sequencer
 m_unlock
 Macros
 mem[int]
 mem_peek
 mem_peek_bytes
 mem_poke
 mem_poke_bytes
 Methods
N
 name
 Naming and Structure
 new
O
 op
 Overview
 UVM Register Agent
 UVM Register Auto Test
 UVM Register Backdoor C code
 UVM Register Backdoor SystemVerilog support routines
 UVM Register Base Classes
 UVM Register Environment
 UVM Register Macros
 UVM Register Miscellaneous
 UVM Register Package Overview
 UVM Register semaphore
 UVM Register Sequences
 UVM Register Transactions
 uvm_broadcast_register.svh
 uvm_coherent_register_master
 uvm_coherent_register_slave
 uvm_fifo_register
 uvm_id_register
 uvm_indirect_address_register
 uvm_indirect_register
 uvm_memory
 uvm_memory_range
 uvm_memory_ranges
 uvm_modal_register
 uvm_modal_register_derived
 uvm_named_object
 uvm_named_object_registry
 uvm_register
 uvm_register_auto_test
 uvm_register_base
 uvm_register_bus_driver
 uvm_register_bus_monitor
 uvm_register_check_hdl
 uvm_register_container
 uvm_register_driver
 uvm_register_env
 uvm_register_file
 uvm_register_get_hdl
 uvm_register_get_max_size
 uvm_register_get_register_map()(DEPRECATED)
 uvm_register_map
 UVM_REGISTER_MAX_WIDTH
 uvm_register_monitor
 uvm_register_sequence_base
 uvm_register_sequencer
 uvm_register_set_hdl
 uvm_register_transaction
P
 peek
 peek_data32
 peek_data64
 peek_field_by_name
 peek_snapshot
 poke
 poke_data32
 poke_data64
 poke_field_by_name
 poke_snapshot
 Ports
 Ports for notification
 post_randomize
 power_on_reset
 pre_randomize
 previous_data
 print_fields
 print_override_info
 Printing/ Formating
 put
R
 ranges
 read
 read_data32
 read_data64
 read_field_by_name
 read_without_notify
 Register Base Classes
 Register File
 register_alias
 register_attribute
 register_map
 register_name
 register_sequence_all_registers
 register_type
 Release Notes
 remove_child
 reset
 reset_field_by_name
 reset_field_by_name_with_tag
 resetValue
 RMASK
 run
 Run the examples
S
 sample
 set_access_policy_field_by_name
 set_actual_register
 set_byte_array
 set_data32
 set_data64
 set_inst_override
 set_inst_override_by_type
 set_MASK_field_by_name
 set_mode
 set_name
 set_reset_value
 set_type_override
 set_type_override_by_type
 Shadow checking routines(sized bit vector)
 Shadow checking routines(Type specific vector)
 Since the register maps are no longer uvm_components
 size
 slaves[$]
 snapshot
 start_address
 status
T
 transport_export
 transport_port
 try_get
 txt
U
 UNPREDICTABLE
V
 Variables
`uvm_register_begin_fields is used to start the definition of the field access engine.
`uvm_register_end_fields is used to end the definition of the field access engine.
Formalizes the existing, field tested final beta8.
General housecleaning.
Added additional examples.
Adds support for backdoor access, an id register implementation and a modal register implementation.
*** New Features
uvm_broadcast_register.svh uvm_indirect_register.svh
virtual function void add_field(string name,
BV resetValue,
string access)
Define a new field.
virtual function void add_field_tag(string name,
string tag)
Given a field name, add the tag to the list of tags for this field.
virtual function void add_mode(string mode)
Add ‘mode’ to be a legal mode list.
virtual function void add_mode_instance(string mode,
uvm_register_base inst)
Calls add_mode() and adds ‘inst’ to the list of register proxies.
virtual function uvm_memory_range add_range(address_t range_start,  
address_t range_end,  
string l_tag_name =  "ranges")
This is the “by-hand” access routine.
virtual function uvm_memory_range add_range_random_by_hand(
   string l_tag_name =  "ranges"
)
This is the “MEMORY_RAND_BY_HAND” access routine.
function void add_register(string name,  
offset_t offset,  
uvm_register_base register,  
string hierarchical_name =  "")
Add a register with ‘name’ and an offset (or address).
function void add_register_alias(uvm_register_base register,
string alias_name)
add_register() maps a register using the full path name.
function void add_register_file(uvm_register_container rf,
address_t addr)
Add a register file to this register map.
function void add_register_in_range(string name,  
offset_t first_offset,  
offset_t last_offset,  
offset_t grid,  
uvm_register_base register,  
string hierarchical_name =  "")
Shortcut for adding a register with a large address range.
function void add_register_map(uvm_register_container rm,
address_t addr)
Add a register map to this register map.
virtual function void add_slave(uvm_coherent_register_slave#(T) r)
Adds the slave ‘r’ to the managed list.
virtual function void add_target(uvm_register #(T) r)
Add the register ‘r’ to the list of targets managed by this broadcast register.
rand addressWidth_t address
Address of this transaction
An Address map is used to model two or more devices in a system.
The analysis port for the response.
Output port which publishes register transactions.
Automated tests help test connectivity and certain simple functionality without writing tests.
virtual task body()
Base class functionality; find what sequencer we are connected to, and lookup a “counter” parameter.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
task body()
A sequence which calls the base class, then retrieves a list of all registers.
virtual function void build()
Match the UVM engine
function void build()
Lookup the register map that may have been previously registered.
function void build()
Lookup the register map that may have been previously registered.
virtual function void build()
Match the UVM engine
function void build()
Build the components and ports.
function void build()
Lookup the register map that may have been previously registered.
function void build()
Lookup the register map that may have been previously registered.
function void build_ap(uvm_named_object container =  null)
Construct the analysis ports.
virtual function void build_maps()
virtual function void bus_read(bytearray_t read_data,  
address_t address =  0)
virtual function void bus_read(input bytearray_t read_data,  
address_t address =  0)
An alias for bus_read_bv() which takes an array of bytes as input.
pure virtual function void bus_read(input bytearray_t read_data,  
address_t address =  0)
Must be implemented in the extended class.
virtual function void bus_read_bv(input read_data_bv,  
address_t address =  0)
This function is called when a “READ” transaction is detected.
virtual function void bus_read32(input bv32_t read_data_bv,  
address_t address =  0)
First check to make sure that there are at least 32 bits, then call bus_read_bv() to do the real work.
pure virtual function void bus_read32(input bv32_t read_data_bv,  
address_t address =  0)
Must be implemented in the extended class.
class bus_request extends bus_transaction
Useful in the automated register testing.
class bus_response extends bus_transaction
Useful in the automated register testing.
Publishes the register monitor analysis export.
class bus_transaction extends uvm_sequence_item
Base-class used with the bus request and response.
The “downstream” side of the env.
virtual function void bus_write(input bytearray_t write_data)
An alias for bus_write_bv() which takes an array of bytes as input.
pure virtual function void bus_write(input bytearray_t write_data)
Must be implemented in the extended class.
virtual function void bus_write_bv(input write_data_bv)
This function is called when a “WRITE” transaction is detected.
virtual function void bus_write32(input bv32_t write_data_bv)
First check to make sure that there are at least 32 bits, then call bus_write_bv() to do the real work.
pure virtual function void bus_write32(input bv32_t write_data_bv)
Must be implemented in the extended class.
virtual function T calc_read(current_value,
output new_register_value,
Calculate the new value, based on the old value, the local mask, and the register masks.
virtual function T calc_write(current_value,
new_value,
Calculate the new value, based on the old value, the new value, the local mask, and the register masks.
uvm_tlm_transport_channel #(REQ,
RSP) channel
The communication channel contained in this class.
uvm_tlm_transport_channel #(REQ,
RSP) channel
The channel is used to
local function void check_width(string place,
int n)
Convenience function that makes sure the width you supply (n) will fit into the space of the data.
virtual function bit compare(this_type b)
Same functionality as compare_data(), but a register is passed in, instead of the register data value.
virtual function bit compare_data(new_data)
Compare the data field using the compare mask.
bit compare_read_only_bits = 0
If set, then READ-ONLY bits are included in compare operations.
T compareMask = '1
This bit mask is used to define bits that should not participate in a comparison.
function void connect()
Connect the channel transport_export connection (an internal connection).
function void connect()
Connect the upstream side of the driver to the sequencer.
function void connect_to_data_register(uvm_indirect_register #(T) r)
This routine is used to provide the data register to the address register.
virtual function string convert2string()
Should be implemented in the extended class.
static function T create(string name,  
uvm_named_object parent,  
string contxt = "")
Returns an instance of the named_object type, T, represented by this proxy, subject to any factory overrides based on the context provided by the parent’s full name.
virtual function uvm_named_object create_named_object (
   string name,  
   uvm_named_object parent =  null
)
Creates a named_object of type T having the provided name and parent.
function uvm_object create_object (string requested_type_name,  
string name = "")
A convenience function for uvm_factory::create_object_by_name, this method calls upon the factory to create a new object whose type corresponds to the preregistered type name, requested_type_name, and instance name, name.
Creates an object of type T and returns it as a handle to an uvm_object.
Specific test situations can be created that are either directed tests testing certain capabilities of specific registers, or that are additional automated tests not provided by the base library.
rand dataWidth_t data
Data for the transaction
rand T data
The register data.
rand dataWidth_t data
Data for the transaction
virtual function void delete_mappings()
Delete all the mapping data structures for this register container.
virtual function void display_address_map()
Print information about the address map.
virtual function void display_address_map_by_address()
Print information about the address map, arranged by address
virtual function void display_address_map_by_name()
Print information about the address map, arranged by name
pure virtual task do_operation(REQ req,
output RSP rsp)
A task which MUST be defined in an extension of this class.
virtual task do_read(string register_name,
output dataWidth_t data_read)
Helper function which does a read given a register name.
virtual task do_write(string register_name,
dataWidth_t data_to_write)
Helper function which does a write given a register name and data to write.
virtual task do_write_read(string register_name,
dataWidth_t data_to_write,
output dataWidth_t data_read)
Helper function which does a write and a read given a register name and data to write.
address_t end_address
The last legal address to use in this memory.
The factory interface provides convenient access to a portion of UVM’s uvm_factory interface.
virtual function T fifo_read()
Call this function to fetch or read the last item written from the FIFO register.
virtual function void fifo_write(v)
Call this function to append a new value to the fifo register.
function void find_all(string comp_match,  
ref uvm_named_object comps[$],  
input uvm_named_object comp = null)
Returns the component handle (find) or list of components handles (find_all) matching a given string.
virtual function uvm_register_field_info_t find_field(string name)
Given a name, return the field info structure for that field.
virtual function void find_fields_with_tag(output field_list_t field_list,
string tag_name)
Given a tag name, return ALL the fields for this register that have that tag.
function automatic void find_register_container(
   output mapped_register_container_list list_of_mapped_items,
   input string name
)
Given a name, lookup the name from ‘here’.
static function this_type get()
Returns the singleton instance of this type.
task get(int n =  1)
Lock the lock, by “getting” n keys.
virtual function void get_byte_array(ref bytearray_t o)
This is an alias for read().
virtual function void get_byte_array(ref bytearray_t o)
Return the data value as a list of bytes.
virtual function void get_byte_array_no_masking(ref bytearray_t o)
This is an alias for get_dataN().
virtual function void get_byte_array_no_masking(ref bytearray_t o)
Return the data value as a list of bytes.
function uvm_named_object get_child (string name)
virtual function uvm_named_object get_container()
DEPRECATED: Just use get_parent().
virtual function lv32_t get_data32()
DEPRECATED.
virtual function lv64_t get_data64()
DEPRECATED.
function int get_first_child (ref string name)
These methods are used to iterate through this component’s children, if any.
virtual function string get_full_name ()
Returns the full hierarchical name of this object.
virtual function string deprecated_get_full_name()
Return the full pathname of the register.
virtual function int get_length()
Return the number of reads() that it will take to get all the data items read.
virtual function string get_mode()
Return the current mode.
virtual function void get_modes(output uvm_register_modes_t modes)
Return the list of legal modes.
Return the short name for the register, like “REG1”.
function int get_next_child (ref string name)
virtual function int get_num_bits()
Return the number of bits in this type.
virtual function int get_num_bits()
Return the number of bits this register contains.
function int get_num_children ()
Returns the number of this component’s children.
virtual function uvm_named_object get_parent ()
Returns a handle to this component’s parent, or null if it has no parent.
virtual function void get_register_array(output register_list_t register_array)
Return the list of all registers in this address map
static function uvm_register_map get_register_map(
   string config_name =  "register_map",
   uvm_component c =  null
)
Return the currently registered register map from the configuration.
virtual function string get_type_name()
Returns the value given by the string parameter, Tname.
function int has_child (string name)
Returns 1 if this component has a child with the given name, 0 otherwise.
virtual function bit has_field(string name)
Given a name, return 1, if this is a name of a field in this register.
virtual function bit has_tag(string tag_name)
Given a name, return 1, if any field has this tag in this register.
These methods provide user access to information about the component hierarchy, i.e., topology.
virtual function T id_read()
Call this function to fetch or read the next value from the ID register.
virtual function void id_write(v)
Call this function to append a new value to the id register.
virtual function T indirect_address_read()
Returns the current pointer.
virtual function void indirect_address_write(v)
Sets the indirect address to v for the next data read or write.
virtual function T indirect_read()
Get the current value, and increment the pointer.
virtual function void indirect_write(v)
Set the value, and increment the pointer.
virtual function bit is_field_defined(string name,  
string msg =  "")
Like has_field, but spit out an error if not defined.
function uvm_named_object lookup (string name)
Looks for a component with the given hierarchical name relative to this component.
virtual function address_t lookup_register_address_by_name(
   string name,
   output bit valid_address
)
Given a register name, provide a single mapped address.
virtual function void lookup_register_addresslist_by_name(
   output address_list_t list_of_addresses,
   input string name
)
Given a register name, provide ALL the addresses of the register.
virtual function uvm_register_base lookup_register_by_address(offset_t offset)
Given an offset, provide the register mapped there.
virtual function uvm_register_base lookup_register_by_name(string name)
Given a register name, return the corresponding register handle.
uvm_register_bus_driver #(uvm_register_transaction,
uvm_register_transaction) m_bus_driver
The bus_driver contained in the env.
function void m_check()
A utility function that call be called anytime.
virtual function void m_check_field_by_name(string name)
Check to make sure the field as defined can hold the defined reset value.
uvm_register_driver #(uvm_register_transaction,
uvm_register_transaction) m_driver
The driver contained in the env.
local function void m_lock()
Internal use only, for turning constraints off.
local function uvm_memory_range m_new_range_random(string l_tag_name =  "ranges")
Create a new range, and mark it random.
virtual function BV m_peek_field_by_name(string name,
BV x)
Provide a current value, passed in as ‘x’.
virtual function BV m_poke_field_by_name(string name,
BV x,
BV v)
Provide a current value, passed in as ‘x’.
This code is NOT implemented in a library base class.
uvm_register_map m_register_map
Convenient place to house the register map for users of this env to reference.
uvm_register_monitor #(uvm_register_transaction) m_register_monitor
The register monitor contained in the env.
uvm_register_sequencer #(uvm_register_transaction,
uvm_register_transaction) m_sequencer
The sequencer contained in the env.
local function void m_unlock()
Internal use only, for turning constraints back on after a previous call to lock().
T mem[int]
A “regular” verilog memory implemented as an associative array (sparse array).
function T mem_peek(address_t addr)
“Read” from the actual memory using address (addr).
virtual function void mem_peek_bytes(output bytearray_t d,
input address_t addr,
int nbytes)
Given an address (addr) and a number of bytes to read, return a list of bytes (nbytes long) starting from the address supplied.
function void mem_poke(address_t addr,
d)
“Write” to the actual memory using address (addr) and data (d).
virtual function void mem_poke_bytes(address_t addr,
bytearray_t d)
Given an address (addr) and an array of bytes, write those bytes into the memory, starting at the address supplied.
string name
Name for the register
function new (string name = "",
uvm_named_object parent = null)
Creates a new component with the given leaf instance name and handle to to its parent.
function new(string l_name =  "registerName",
uvm_named_object p =  null,
l_resetVal =  0)
Construct the register, given a name, a parent and a reset value.
function new(string l_name =  "",
uvm_named_object p =  null)
Construct a register base class, providing a name and a parent.
function new(string name,  
uvm_component parent =  null)
Construct this register bus driver, the internal channel, and the port connections.
function new(string name,  
uvm_component parent =  null)
Construct this register bus monitor and the analysis port.
function new(string name,  
uvm_component parent =  null)
Construct the register driver and the transport_port.
function new(string name,  
uvm_component parent =  null)
Construct this object.
function new(string name,  
uvm_component parent =  null)
Construct the register scoreboard.
function new(string name =  "uvm_register_sequence_base")
Construct the object.
function new(string name,  
uvm_component parent =  null)
Construct this register sequencer.
function new(string name =  "power_on_reset")
Construct the object.
function new(string name =  "register_alias")
Construct the object.
function new(string name =  "register_sequence_all_registers")
Construct the object.
function new(string name =  "walking")
Construct the object.
function new(string name =  "walking_ones")
Construct the object.
function new(string name =  "walking_zeros")
Construct the object.
function new(string name =  "write_read")
Construct the object.
rand op_code_t op
rand op_code_t op
The UVM memory API can be used where an uvm_register can be used, and has the same API.
This collection of classes provides drivers, monitors and sqeuencers for the UVM Register Package.
This class is provided for quick layering.
This code is not strictly associated with the UVM register library.
These routines provide an interface to the DPI/PLI implementation of backdoor access used by registers.
The UVM Register Base classes reprent functionality for the fields, registers, register files and register maps.
This environment is a template for other register test enviornments or may be used as-is.
These macros (uvm_register_begin_fields, uvm_register_field, uvm_register_end_fields) form a collection and are used as
This page provides a brief overview of the contents of this kit.
A register sequence base class and a register sequence.
Transaction definitions for register based transactions and bus independent transactions.
class uvm_coherent_register_master #(type T =  int) extends uvm_register#(T)
A base class which acts as a “master”, managing “slaves”.
class uvm_coherent_register_slave #(type T =  int) extends uvm_register #(T)
A base class which implements the “slave” which will be kept “coherent”.
class uvm_fifo_register #(type T =  bit[31:0]) extends uvm_register#(T)
A base class which implements a “FIFO register” functionality.
class uvm_id_register #(type T =  bit[31:0]) extends uvm_register#(T)
A base class which implements an “ID register” functionality.
class uvm_indirect_address_register #(
   type T =  bit[31:0]
) extends uvm_register#(T)
Used in conjunction with uvm_indirect_register.
class uvm_indirect_register #(type T =  bit[31:0]) extends uvm_register#(T)
and uvm_indirect_address_register
class uvm_memory #(type T =  int) extends uvm_register#(T)
uvm_memory is used to model memory, and have that modeled memory participate with the register models in order to support certain address map verification techniques (like “shadow” memory and randomized configurations of memory and registers).
class uvm_memory_range
A uvm_memory_range defines one block of memory with a range_start address and an end address.
class uvm_memory_ranges
The class uvm_memory_ranges contains a list of ranges, sorted by starting address.
class uvm_modal_register #(type T =  int) extends uvm_register #(T)
This class is an uvm_register, which also has “modes”.
class uvm_modal_register_derived #(type T =  int) extends uvm_modal_register #(T)
This is an uvm_register, which has modes and contains a list of registers which act on behalf of the current mode.
virtual class uvm_named_object extends uvm_object
The uvm_named_object class is the root base class for UVM components.
class uvm_named_object_registry #(
   type T = uvm_named_object,
   string Tname = "<unknown>"
) extends uvm_object_wrapper
The uvm_named_object_registry serves as a lightweight proxy for a named_object of type T and type name Tname, a string.
class uvm_register #(type T =  int) extends uvm_register_base
The register class that a user build registers from.
virtual class uvm_register_auto_test #(
   type REQ =  uvm_sequence_item,
   type RSP =  uvm_sequence_item
) extends uvm_component
Utility class to plug into the register_env.
virtual class uvm_register_base extends uvm_named_object
Base class for registers.
class uvm_register_bus_driver #(
   type REQ =  uvm_register_transaction,
   type RSP =  uvm_register_transaction
) extends uvm_component
This is not a real bus_driver; it is not meant to be used as part of a sequencer/sequence/driver triumvirate.
class uvm_register_bus_monitor #(
   type T =  bus_transaction
) extends uvm_subscriber#(T)
A monitor which expects to monitor bus transactions
Given a path, look the path name up using the PLI, but don’t set or get.
class uvm_register_container extends uvm_named_object
The shared base class for register files and register maps.
class uvm_register_driver #(
   type REQ =  uvm_register_transaction,
   type RSP =  uvm_register_transaction
) extends uvm_driver #(REQ, RSP)
A driver which expects to be connected to a sequencer.
class uvm_register_env extends uvm_env
An environment that can be used for automated register testing.
class uvm_register_file extends uvm_register_container
A register file contains a list of registers.
import "DPI-C" function void uvm_register_get_hdl(
   string path,
   output logic[`UVM_REGISTER_MAX_WIDTH-1:0] value
)
This routine gets the value of a named path, using the PLI.
This C code checks to see if there is PLI handle with a value set to define the maximum bit width.
Return the currently registered register map from the configuration.
class uvm_register_map extends uvm_register_file
A register map contains other register maps, register files and registers.
parameter int UVM_REGISTER_MAX_WIDTH = `UVM_REGISTER_MAX_WIDTH
This parameter will be looked up by the DPI-C code using: vpi_handle_by_name( “uvm_register_pkg::UVM_REGISTER_MAX_WIDTH”, 0);
class uvm_register_monitor #(type T =  int) extends uvm_subscriber#(T)
A component which expects to be sent relevant register transactions.
class uvm_register_sequence_base #(
   type REQ =  uvm_sequence_item,
   type RSP =  uvm_sequence_item
) extends uvm_sequence #(REQ, RSP)
A useful base class for register sequences Especially when used in automated register testing.
class uvm_register_sequencer #(
   type REQ =  uvm_register_transaction,
   type RSP =  uvm_register_transaction
) extends uvm_sequencer #(REQ, RSP)
A sequencer to use with an uvm_register_driver.
Given a path, look the path name up using the PLI, and set it to ‘value’.
class uvm_register_transaction extends uvm_sequence_item
A utility register transaction.
function T peek()
Returns the snapshot value.
function T peek()
Peek is re-implemented to get the pointer value in the data register.
virtual function T peek()
“Raw” interface to read data.
virtual function lv32_t peek_data32()
Check to make sure the register can return at least 32 bits.
virtual function lv32_t peek_data32()
Return the data value as a raw 32 bit vector.
virtual function lv64_t peek_data64()
Check to make sure the register can return at least 64 bits.
virtual function lv64_t peek_data64()
Return the data value as a raw 64 bit vector.
virtual function BV peek_field_by_name(string name)
User callable function to return the value of a field.
virtual function T peek_snapshot()
This function returns the current snapshot value.
function void poke(v)
Re-implement poke() to forward all pokes to the managed targets.
function void poke(v)
Poke is re-implemented to set the pointer value in the data register.
function void poke(v)
Re-implement to have the correct behavior.
virtual function void poke(v)
“Raw” interface to write data.
virtual function void poke_data32(lv32_t bv)
First check to make sure that there are at least 32 bits, then call poke() to assign data.
virtual function void poke_data32(lv32_t bv)
Set the data value as a raw 32 bit vector.
virtual function void poke_data64(lv64_t bv)
First check to make sure that there are at least 64 bits, then call poke() to assign data.
virtual function void poke_data64(lv64_t bv)
Set the data value as a raw 64 bit vector.
virtual function void poke_field_by_name(string name,
BV v)
User callable function to set the value of a field.
virtual function void poke_snapshot(v)
This function saves the value ‘v’ into the snapshot.
function void post_randomize()
Built-in function.
class power_on_reset #(
   type REQ =  uvm_sequence_item,
   type RSP =  uvm_sequence_item
) extends built_in_sequences #(REQ, RSP)
function void pre_randomize()
Built-in function.
T previous_data
The previous value of the register.
virtual function void print_fields()
Dump the field info structure for all the fields.
virtual function void print_fields()
Call print_fields() on every register contained in this register_file/register_map.
function void print_override_info(string requested_type_name,  
string name = "")
This factory debug method performs the same lookup process as create_object and create_named_object, but instead of creating an object, it prints information about what type of object would be created given the provided arguments.
function void put(int n =  1)
Unlock the lock, by “putting back” n keys.
uvm_memory_ranges ranges
This is the list of managed (and unmanaged) addresses.
virtual function T read(
Read masked data with notify.
virtual function lv32_t read_data32()
Returns the masked value.
virtual function lv32_t read_data32()
Calls read_data32() in the extended class.
virtual function lv64_t read_data64()
Returns the masked value.
virtual function lv64_t read_data64()
Calls read_data64() in the extended class.
virtual function BV read_field_by_name(string name)
User callable function to return the value of a field.
function T read_without_notify(
This is the “normal” read function that is called in the register package.
function T read_without_notify(
function T read_without_notify(
Re-implemented to affect our new ID register functionality.
function T read_without_notify(
Re-implement to have the correct behavior.
virtual function T read_without_notify(
Read the masked data without notify.
The Register Bases classes consist of the unparameterized base class uvm_register_base and the parameterized base class uvm_registger, which extends uvm_register_base.
The Register file is used to describe a collection of registers within a device.
class register_alias #(
   type REQ =  uvm_sequence_item,
   type RSP =  uvm_sequence_item
) extends built_in_sequences #(REQ, RSP)
string register_attribute
Optional field.
uvm_register_map register_map
The register map that will be used for address lookup.
uvm_register_map register_map
The register map that lookups will occur in.
uvm_register_map register_map
The register map that will be used for name lookup.
uvm_register_map register_map
Can be used by sequences to find out what registers are available.
protected string register_name
The name of the register; a simple string usually.
class register_sequence_all_registers #(
   type REQ =  uvm_sequence_item,
   type RSP =  uvm_sequence_item
) extends built_in_sequences #(REQ, RSP)
Gets a list of all registers.
string register_type
The type of the register; an optional field.
function void uvm_named_object::remove_child(string name,
uvm_named_object old_child)
Remove the child named ‘name’ from ‘this’.
virtual function void reset()
Set the value of the register to the reset value.
virtual function void reset()
Should be implemented in the extended class.
virtual function void reset()
For all the registers, call the reset() function
virtual function void reset_field_by_name(string name)
User callable function to reset a field by name
virtual function void reset_field_by_name(string field_name)
virtual function void reset_field_by_name_with_tag(string tag_name)
User callable function to reset a field which has the given tag name.
virtual function void reset_field_by_name_with_tag(string tag_name)
T resetValue
The reset value.
T RMASK = '1
This bit mask defines bits that are readable.
task run()
Simple process.
task run()
Do a “get()” to get a register request transaction from the channel.
task run()
This is a standard uvm_driver, and uses get() and rsp_port.write() to communicate with the sequencer.
task run()
1) Find a sequence to run.
The examples demonstrate possible use models for the register package.
virtual function void sample()
Implement this is the design specific register.
virtual function void sample()
Should be implemented in the extended class.
virtual function void set_access_policy_field_by_name(string name,
string access)
Given an “access policy”, interrpret it into the proper mask settings.
function void set_actual_register(this_type s)
Setup the special mirroring code.
virtual function void set_byte_array(input bytearray_t i)
This is an alias for bus_write().
virtual function void set_byte_array(input bytearray_t i)
Return the data value as a list of bytes.
virtual function void set_data32(lv32_t bv)
DEPRECATED.
virtual function void set_data64(lv64_t bv)
DEPRECATED.
function void set_inst_override(string relative_inst_path,
string original_type_name,
string override_type_name)
A convenience function for uvm_factory::set_inst_override_by_type, this method registers a factory override for components created at this level of hierarchy or below.
static function void set_inst_override(uvm_object_wrapper override_type,  
string inst_path,  
uvm_named_object parent = null)
Configures the factory to create a named_object of the type represented by override_type whenever a request is made to create an object of the type, T, represented by this proxy, with matching instance paths.
A convenience function for uvm_factory::set_inst_override_by_type, this method registers a factory override for components and objects created at this level of hierarchy or below.
virtual function void set_MASK_field_by_name(string mask_name,
string name,
BV v)
Given a mask name and a field name, set the field to value v in that mask.
virtual function void set_mode(string mode)
Set the current mode.
function void set_mode(string mode)
Set the mode, but also copy the current value into the new mode register.
virtual function void set_name (string name)
Renames this component to name and recalculates all descendants’ full names.
virtual function void xxx_set_name(string name)
Set the short name for the register, like “REG1”.
virtual function void set_reset_value(resetValue)
Use this function to set the default reset value.
static function void set_type_override(string original_type_name,  
string override_type_name,  
bit replace = 1)
A convenience function for uvm_factory::set_type_override_by_name, this method configures the factory to create an object of type override_type_name whenever the factory is asked to produce a type represented by original_type_name.
static function void set_type_override (uvm_object_wrapper override_type,  
bit replace = 1)
Configures the factory to create an object of the type represented by override_type whenever a request is made to create an object of the type, T, represented by this proxy, provided no instance override applies.
static function void set_type_override_by_type (
   uvm_object_wrapper original_type,  
   uvm_object_wrapper override_type,  
   bit replace = 1
)
A convenience function for uvm_factory::set_type_override_by_type, this method registers a factory override for components and objects created at this level of hierarchy or below.
they are uvm_named_objects, then do not have any phasing.
virtual function int size()
Return the number of reads() that it will take to get all the data items read.
uvm_coherent_register_slave #(T) slaves[$]
The list of all the slaves “managed”.
virtual function void snapshot()
Causes the managed slaves to be snapshotted.
virtual function void snapshot()
Calling this function causes a snapshot to be taken.
address_t start_address
The first legal address to use in this memory.
status_t status
Response status.
Connects the channel to the outside world.
This export is connected to the channel, and is available for others outside to connect to.
Bus request transactions are generated and sent down this transport_port.
This is the “downstream” connection for this register driver.
function int try_get(int n =  1)
Like get() above, but if the lock would fail (block), then a zero is returned instead of actually blocking.
T UNPREDICTABLEMASK = '0
This bit mask is used as an additional compare mask.