Types and Enumerations | |
Field automation | |
`UVM_MAX_STREAMBITS | Defines the maximum bit vector size for integral types. |
`UVM_PACKER_MAX_BYTES | Defines the maximum bytes to allocate for packing an object using the uvm_packer. |
`UVM_DEFAULT_TIMEOUT | The default timeout for simulation, if not overridden by uvm_root::set_timeout or <+UVM_TIMEOUT> |
uvm_bitstream_t | The bitstream type is used as a argument type for passing integral values in such methods as set_int_local, get_int_local, get_config_int, report, pack and unpack. |
uvm_radix_enum | Specifies the radix to print or record in. |
uvm_recursion_policy_enum | Specifies the policy for copying objects. |
uvm_active_passive_enum | Convenience value to define whether a component, usually an agent, is in “active” mode or “passive” mode. |
`uvm_field_* macro flags | Defines what operations a given field should be involved in. |
Reporting | |
uvm_severity | Defines all possible values for report severity. |
uvm_action | Defines all possible values for report actions. |
uvm_verbosity | Defines standard verbosity levels for reports. |
Port Type | |
uvm_port_type_e | Specifies the type of port |
Sequences | |
uvm_sequencer_arb_mode | Specifies a sequencer’s arbitration mode |
uvm_sequence_state_enum | Defines current sequence state |
uvm_sequence_lib_mode | Specifies the random selection mode of a sequence library |
Phasing | |
uvm_phase_type | This is an attribute of a uvm_phase object which defines the phase type. |
uvm_phase_state | The set of possible states of a phase. |
uvm_phase_transition | These are the phase state transition for callbacks which provide additional information that may be useful during callbacks |
uvm_wait_op | Specifies the operand when using methods like uvm_phase::wait_for_state. |
Objections | |
uvm_objection_event | Enumerated the possible objection events one could wait on. |
Default Policy Classes | Policy classes copying, comparing, packing, unpacking, and recording uvm_object-based objects. |
uvm_default_table_printer | The table printer is a global object that can be used with uvm_object::do_print to get tabular style printing. |
uvm_default_tree_printer | The tree printer is a global object that can be used with uvm_object::do_print to get multi-line tree style printing. |
uvm_default_line_printer | The line printer is a global object that can be used with uvm_object::do_print to get single-line style printing. |
uvm_default_printer | The default printer policy. |
uvm_default_packer | The default packer policy. |
uvm_default_comparer | The default compare policy. |
uvm_default_recorder | The default recording policy. |
Defines the maximum bit vector size for integral types.
Defines the maximum bytes to allocate for packing an object using the uvm_packer. Default is `UVM_MAX_STREAMBITS, in bytes.
The default timeout for simulation, if not overridden by uvm_root::set_timeout or <+UVM_TIMEOUT>
The bitstream type is used as a argument type for passing integral values in such methods as set_int_local, get_int_local, get_config_int, report, pack and unpack.
Specifies the radix to print or record in.
Convenience value to define whether a component, usually an agent, is in “active” mode or “passive” mode.
Defines what operations a given field should be involved in. Bitwise OR all that apply.
UVM_DEFAULT | All field operations turned on |
UVM_COPY | Field will participate in uvm_object::copy |
UVM_COMPARE | Field will participate in uvm_object::compare |
UVM_PRINT | Field will participate in uvm_object::print |
UVM_RECORD | Field will participate in uvm_object::record |
UVM_PACK | Field will participate in uvm_object::pack |
UVM_NOCOPY | Field will not participate in uvm_object::copy |
UVM_NOCOMPARE | Field will not participate in uvm_object::compare |
UVM_NOPRINT | Field will not participate in uvm_object::print |
UVM_NORECORD | Field will not participate in uvm_object::record |
UVM_NOPACK | Field will not participate in uvm_object::pack |
UVM_DEEP | Object field will be deep copied |
UVM_SHALLOW | Object field will be shallow copied |
UVM_REFERENCE | Object field will copied by reference |
UVM_READONLY | Object field will NOT be automatically configured. |
Defines all possible values for report severity.
Defines all possible values for report actions. Each report is configured to execute one or more actions, determined by the bitwise OR of any or all of the following enumeration constants.
Defines standard verbosity levels for reports.
Specifies the type of port
Specifies a sequencer’s arbitration mode
Defines current sequence state
CREATED | The sequence has been allocated. |
PRE_START | The sequence is started and the uvm_sequence_base::pre_start() task is being executed. |
PRE_BODY | The sequence is started and the uvm_sequence_base::pre_body() task is being executed. |
BODY | The sequence is started and the uvm_sequence_base::body() task is being executed. |
ENDED | The sequence has completed the execution of the uvm_sequence_base::body() task. |
POST_BODY | The sequence is started and the uvm_sequence_base::post_body() task is being executed. |
POST_START | The sequence is started and the uvm_sequence_base::post_start() task is being executed. |
STOPPED | The sequence has been forcibly ended by issuing a uvm_sequence_base::kill() on the sequence. |
FINISHED | The sequence is completely finished executing. |
This is an attribute of a uvm_phase object which defines the phase type.
The set of possible states of a phase. This is an attribute of a schedule node in the graph, not of a phase, to maintain independent per-domain state
DORMANT -> SCHED -> SYNC -> START -> EXEC -> READY -> END -> CLEAN -> DONE ^ | | <-- jump_to v +------------------------------------------------------------+
These are the phase state transition for callbacks which provide additional information that may be useful during callbacks
Specifies the operand when using methods like uvm_phase::wait_for_state.
UVM_EQ | equal |
UVM_NE | not equal |
UVM_LT | less than |
UVM_LTE | less than or equal to |
UVM_GT | greater than |
UVM_GTE | greater than or equal to |
Enumerated the possible objection events one could wait on. See uvm_objection::wait_for.
UVM_RAISED | an objection was raised |
UVM_DROPPED | an objection was raised |
UVM_ALL_DROPPED | all objections have been dropped |
Policy classes copying, comparing, packing, unpacking, and recording uvm_object-based objects.
uvm_table_printer uvm_default_table_printer = new()
The table printer is a global object that can be used with uvm_object::do_print to get tabular style printing.
uvm_tree_printer uvm_default_tree_printer = new()
The tree printer is a global object that can be used with uvm_object::do_print to get multi-line tree style printing.
uvm_line_printer uvm_default_line_printer = new()
The line printer is a global object that can be used with uvm_object::do_print to get single-line style printing.
uvm_printer uvm_default_printer = uvm_default_table_printer
The default printer policy. Used when calls to uvm_object::print or uvm_object::sprint do not specify a printer policy.
The default printer may be set to any legal uvm_printer derived type, including the global line, tree, and table printers described above.
uvm_packer uvm_default_packer = new()
The default packer policy. Used when calls to uvm_object::pack and uvm_object::unpack do not specify a packer policy.
uvm_comparer uvm_default_comparer = new()
The default compare policy. Used when calls to uvm_object::compare do not specify a comparer policy.
uvm_recorder uvm_default_recorder = new()
The default recording policy. Used when calls to uvm_object::record do not specify a recorder policy.
Specifies the timeout for the simulation.
function void set_timeout( time timeout, bit overridable = 1 )
This base class defines everything about a phase: behavior, state, and context.
class uvm_phase extends uvm_object
Wait until this phase compares with the given state and op operand.
task wait_for_state( uvm_phase_state state, uvm_wait_op op = UVM_EQ )
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
The table printer is a global object that can be used with uvm_object::do_print to get tabular style printing.
uvm_table_printer uvm_default_table_printer = new()
The do_print method is the user-definable hook called by print and sprint that allows users to customize what gets printed or sprinted beyond the field information provided by the `uvm_field_* macros, Utility and Field Macros for Components and Objects.
virtual function void do_print ( uvm_printer printer )
The tree printer is a global object that can be used with uvm_object::do_print to get multi-line tree style printing.
uvm_tree_printer uvm_default_tree_printer = new()
The line printer is a global object that can be used with uvm_object::do_print to get single-line style printing.
uvm_line_printer uvm_default_line_printer = new()
The default printer policy.
uvm_printer uvm_default_printer = uvm_default_table_printer
The default packer policy.
uvm_packer uvm_default_packer = new()
The default compare policy.
uvm_comparer uvm_default_comparer = new()
The default recording policy.
uvm_recorder uvm_default_recorder = new()
The copy makes this object a copy of the specified object.
function void copy ( uvm_object rhs )
Deep compares members of this data object with those of the object provided in the rhs (right-hand side) argument, returning 1 on a match, 0 othewise.
function bit compare ( uvm_object rhs, uvm_comparer comparer = null )
The print method deep-prints this object’s properties in a format and manner governed by the given printer argument; if the printer argument is not provided, the global uvm_default_printer is used.
function void print ( uvm_printer printer = null )
The record method deep-records this object’s properties according to an optional recorder policy.
function void record ( uvm_recorder recorder = null )
function int pack ( ref bit bitstream[], input uvm_packer packer = null )
This task is a user-definable callback that is called before the optional execution of pre_body.
virtual task pre_start()
This task is a user-definable callback that is called before the execution of body only when the sequence is started with start.
virtual task pre_body()
This is the user-defined task where the main sequence code resides.
virtual task body()
This task is a user-definable callback task that is called after the execution of body only when the sequence is started with start.
virtual task post_body()
This task is a user-definable callback that is called after the optional execution of post_body.
virtual task post_start()
This function will kill the sequence, and cause all current locks and requests in the sequence’s default sequencer to be removed.
function void kill()
Waits for the raised, dropped, or all_dropped event to occur in the given obj.
task wait_for( uvm_objection_event objt_event, uvm_object obj = null )
The sprint method works just like the print method, except the output is returned in a string rather than displayed.
function string sprint ( uvm_printer printer = null )
The uvm_printer class provides an interface for printing uvm_objects in various formats.
virtual class uvm_printer
function int unpack ( ref bit bitstream[], input uvm_packer packer = null )