Types and Enumerations | |
Field automation | |
uvm_bitstream_t | The bitstream type is used as a argument type for passing integral values in such methods as uvm_object::set_int_local, uvm_config_int, <uvm_printer::print_field>, <uvm_recorder::record_field>, uvm_packer::pack_field and uvm_packer::unpack_field. |
uvm_integral_t | The integral type is used as a argument type for passing integral values of 64 bits or less in such methods as <uvm_printer::print_field_int>, <uvm_recorder::record_field_int>, uvm_packer::pack_field_int and uvm_packer::unpack_field_int. |
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_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_core_state | Implementation of the uvm_core_state enumeration, as defined in section F.2.10 of 1800.2-2017. |
The bitstream type is used as a argument type for passing integral values in such methods as uvm_object::set_int_local, uvm_config_int, <uvm_printer::print_field>, <uvm_recorder::record_field>, uvm_packer::pack_field and uvm_packer::unpack_field.
The integral type is used as a argument type for passing integral values of 64 bits or less in such methods as <uvm_printer::print_field_int>, <uvm_recorder::record_field_int>, uvm_packer::pack_field_int and uvm_packer::unpack_field_int.
Specifies the radix to print or record in.
Specifies the policy for copying objects.
UVM_DEEP | Objects are deep copied (object must implement uvm_object::copy method) |
UVM_SHALLOW | Objects are shallow copied using default SV copy. |
UVM_REFERENCE | Only object handles are copied. |
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
UVM_CREATED | The sequence has been allocated. |
UVM_PRE_START | The sequence is started and the uvm_sequence_base::pre_start() task is being executed. |
UVM_PRE_BODY | The sequence is started and the uvm_sequence_base::pre_body() task is being executed. |
UVM_BODY | The sequence is started and the uvm_sequence_base::body() task is being executed. |
UVM_ENDED | The sequence has completed the execution of the uvm_sequence_base::body() task. |
UVM_POST_BODY | The sequence is started and the uvm_sequence_base::post_body() task is being executed. |
UVM_POST_START | The sequence is started and the uvm_sequence_base::post_start() task is being executed. |
UVM_STOPPED | The sequence has been forcibly ended by issuing a uvm_sequence_base::kill() on the sequence. |
UVM_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
UNINITIALIZED -> DORMANT -> SCHED -> SYNC -> START -> EXEC -> READY -> END -+-> CLEAN -> DONE ^ | | <-- jump_to | +-------------------------------------------- JUMPING< -+
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.
Implementation of the uvm_core_state enumeration, as defined in section F.2.10 of 1800.2-2017.
Note: In addition to the states defined in section F.2.10, this implementation includes the following additional states.
UVM_CORE_PRE_INIT | The uvm_init method has been invoked at least once, however the core service has yet to be determined/assigned. Additional calls to uvm_init while in this state will result in a fatal message being generated, as the library can not determine the correct core service. |
UVM_CORE_INITIALIZING | The uvm_init method has been called at least once, and the core service has been determined. Once in this state, it is safe to query <uvm_coreservice_t::get>. |
UVM_CORE_POST_INIT | Included for consistency, this is equivalent to UVM_CORE_INITIALIZED in 1800.2-2017. |
@uvm-contrib Potential contribution to 1800.2
virtual function void set_int_local ( string field_name, uvm_bitstream_t value, bit recurse = 1 )
Packs an integral value (less than or equal to 4096 bits) into the packed array.
virtual function void pack_field ( uvm_bitstream_t value, int size )
Unpacks bits from the pack array and returns the bit-stream that was unpacked.
virtual function uvm_bitstream_t unpack_field ( int size )
Unpacks bits from the pack array and returns the bit-stream that was unpacked.
virtual function uvm_integral_t unpack_field_int ( int size )
This base class defines everything about a phase: behavior, state, and context.
class uvm_phase 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 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 copy makes this object a copy of the specified object.
function void copy ( uvm_object rhs, uvm_copier copier = null )
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 otherwise.
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()
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 )
function int unpack ( ref bit bitstream[], input uvm_packer packer = null )
Implementation of uvm_init, as defined in section F.3.1.3 in 1800.2-2017.
function void uvm_init( uvm_coreservice_t cs = null )