Package uvm_pkg

Classes

Typedefs

Name

Actual Type

Description

UVM_SEQ_ARB_TYPE

uvm_sequencer_arb_mode

backward compat

uvm_action

int

uvm_barrier_pool

uvm_object_string_pool#(uvm_barrier)

uvm_bitstream_t

logic signed[UVM_STREAMBITS-1:0]

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_callbacks_objection

uvm_objection

Typedef

Exists for backwards compat

uvm_config_int

uvm_config_db#(uvm_bitstream_t)

Convenience type for uvm_config_db#(uvm_bitstream_t)

typedef uvm_config_db#(uvm_bitstream_t) uvm_config_int;
uvm_config_object

uvm_config_db#(uvm_object)

Convenience type for uvm_config_db#(uvm_object)

typedef uvm_config_db#(uvm_object) uvm_config_object;
uvm_config_seq

uvm_config_db#(uvm_sequence_base)

Copyright 2007-2011 Mentor Graphics Corporation Copyright 2007-2011 Cadence Design Systems, Inc. Copyright 2010-2011 Synopsys, Inc. Copyright 2013-2014 NVIDIA Corporation All Rights Reserved Worldwide

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

uvm_config_string

uvm_config_db#(string)

Convenience type for uvm_config_db#(string)

typedef uvm_config_db#(string) uvm_config_string;
uvm_config_wrapper

uvm_config_db#(uvm_object_wrapper)

Convenience type for uvm_config_db#(uvm_object_wrapper)

typedef uvm_config_db#(uvm_object_wrapper) uvm_config_wrapper;
uvm_default_driver_type

uvm_driver#(uvm_sequence_item, uvm_sequence_item)

uvm_default_sequence_type

uvm_sequence#(uvm_sequence_item, uvm_sequence_item)

uvm_default_sequencer_param_type

uvm_sequencer_param_base#(uvm_sequence_item, uvm_sequence_item)

uvm_default_sequencer_type

uvm_sequencer#(uvm_sequence_item, uvm_sequence_item)

uvm_event_pool

uvm_object_string_pool#(uvm_event#(uvm_object))

uvm_hdl_data_t

logic[UVM_HDL_MAX_WIDTH-1:0]

uvm_heartbeat_cbs_t

uvm_callbacks#(uvm_objection, uvm_heartbeat_callback)

uvm_id_actions_array

uvm_pool#(string, uvm_action)

uvm_id_file_array

uvm_pool#(string, UVM_FILE)

uvm_id_verbosities_array

uvm_pool#(string, int)

uvm_integral_t

logic signed[63:0]

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_mem_cb

uvm_callbacks#(uvm_mem, uvm_reg_cbs)

Convenience callback type declaration for memories

Use this declaration to register memory callbacks rather than the more verbose parameterized class

uvm_mem_cb_iter

uvm_callback_iter#(uvm_mem, uvm_reg_cbs)

Convenience callback iterator type declaration for memories

Use this declaration to iterate over registered memory callbacks rather than the more verbose parameterized class

uvm_objection_cbs_t

uvm_callbacks#(uvm_objection, uvm_objection_callback)

uvm_pack_bitstream_t

bit signed[(4096*8)-1:0]

CLASS

uvm_packer

The uvm_packer class provides a policy object for packing and unpacking uvm_objects. The policies determine how packing and unpacking should be done. Packing an object causes the object to be placed into a bit (byte or int) array. If the uvm_field_* macro are used to implement pack and unpack, by default no metadata information is stored for the packing of dynamic objects (strings, arrays, class objects).

uvm_phase_cb_pool

uvm_callbacks#(uvm_phase, uvm_phase_cb)

Convenience type for the uvm_callbacks#(uvm_phase, uvm_phase_cb) class.

uvm_port_list

uvm_port_component_base

uvm_reg_addr_logic_t

logic unsigned[64-1:0]

4-state address value with UVM_REG_ADDR_WIDTH bits

uvm_reg_addr_t

bit unsigned[64-1:0]

2-state address value with UVM_REG_ADDR_WIDTH bits

uvm_reg_bd_cb

uvm_callbacks#(uvm_reg_backdoor, uvm_reg_cbs)

Convenience callback type declaration for backdoor

Use this declaration to register register backdoor callbacks rather than the more verbose parameterized class

uvm_reg_bd_cb_iter

uvm_callback_iter#(uvm_reg_backdoor, uvm_reg_cbs)

Convenience callback iterator type declaration for backdoor

Use this declaration to iterate over registered register backdoor callbacks rather than the more verbose parameterized class

uvm_reg_byte_en_t

bit unsigned[((64-1)/8+1)-1:0]

2-state byte_enable value with UVM_REG_BYTENABLE_WIDTH bits

uvm_reg_cb

uvm_callbacks#(uvm_reg, uvm_reg_cbs)

Convenience callback type declaration for registers

Use this declaration to register the register callbacks rather than the more verbose parameterized class

uvm_reg_cb_iter

uvm_callback_iter#(uvm_reg, uvm_reg_cbs)

Convenience callback iterator type declaration for registers

Use this declaration to iterate over registered register callbacks rather than the more verbose parameterized class

uvm_reg_cvr_rsrc_db

uvm_resource_db#(uvm_reg_cvr_t)

uvm_reg_cvr_t

bit[32-1:0]

Coverage model value set with UVM_REG_CVR_WIDTH bits.

Symbolic values for individual coverage models are defined by the uvm_coverage_model_e type.

The following bits in the set are assigned as follows

0-7

UVM pre-defined coverage models

8-15

Coverage models defined by EDA vendors, implemented in a register model generator.

16-23

User-defined coverage models

24..

Reserved

uvm_reg_data_logic_t

logic unsigned[64-1:0]

4-state data value with UVM_REG_DATA_WIDTH bits

uvm_reg_data_t

bit unsigned[64-1:0]

2-state data value with UVM_REG_DATA_WIDTH bits

uvm_reg_field_cb

uvm_callbacks#(uvm_reg_field, uvm_reg_cbs)

Convenience callback type declaration for fields

Use this declaration to register field callbacks rather than the more verbose parameterized class

uvm_reg_field_cb_iter

uvm_callback_iter#(uvm_reg_field, uvm_reg_cbs)

Convenience callback iterator type declaration for fields

Use this declaration to iterate over registered field callbacks rather than the more verbose parameterized class

uvm_report_cb

uvm_callbacks#(uvm_report_object, uvm_report_catcher)

uvm_report_cb_iter

uvm_callback_iter#(uvm_report_object, uvm_report_catcher)

uvm_sequence_state_enum

uvm_sequence_state

backward compat

uvm_sev_override_array

uvm_pool#(uvm_severity, uvm_severity)

uvm_severity_type

uvm_severity

uvm_table_printer_knobs

uvm_printer_knobs

uvm_tlm_gp

uvm_tlm_generic_payload

This typedef provides a short, more convenient name for the uvm_tlm_generic_payload type.

uvm_tree_printer_knobs

uvm_printer_knobs

uvm_virtual_sequencer

uvm_sequencer#(uvm_sequence_item)

uvm_vreg_cb

uvm_callbacks#(uvm_vreg, uvm_vreg_cbs)

Convenience callback type declaration

Use this declaration to register virtual register callbacks rather than the more verbose parameterized class

uvm_vreg_cb_iter

uvm_callback_iter#(uvm_vreg, uvm_vreg_cbs)

Convenience callback iterator type declaration

Use this declaration to iterate over registered virtual register callbacks rather than the more verbose parameterized class

uvm_vreg_field_cb

uvm_callbacks#(uvm_vreg_field, uvm_vreg_field_cbs)

Convenience callback type declaration

Use this declaration to register virtual field callbacks rather than the more verbose parameterized class

uvm_vreg_field_cb_iter

uvm_callback_iter#(uvm_vreg_field, uvm_vreg_field_cbs)

Convenience callback iterator type declaration

Use this declaration to iterate over registered virtual field callbacks rather than the more verbose parameterized class

Enums

uvm_access_e [source]

Type of operation begin performed

UVM_READ

Read operation

UVM_WRITE

Write operation

Enum Items :
  • UVM_READ
  • UVM_WRITE
  • UVM_BURST_READ
  • UVM_BURST_WRITE
uvm_action_type [source]
Enum Items :
  • UVM_NO_ACTION = 'b0000000
  • UVM_DISPLAY = 'b0000001
  • UVM_LOG = 'b0000010
  • UVM_COUNT = 'b0000100
  • UVM_EXIT = 'b0001000
  • UVM_CALL_HOOK = 'b0010000
  • UVM_STOP = 'b0100000
  • UVM_RM_RECORD = 'b1000000
uvm_active_passive_enum [source]

Convenience value to define whether a component, usually an agent, is in "active" mode or "passive" mode.

UVM_PASSIVE

"Passive" mode

UVM_ACTIVE

"Active" mode

Enum Items :
  • UVM_PASSIVE = 0
  • UVM_ACTIVE = 1
uvm_apprepend [source]

Append/prepend symbolic values for order-dependent APIs

Enum Items :
  • UVM_APPEND
  • UVM_PREPEND
uvm_check_e [source]

Read-only or read-and-check

UVM_NO_CHECK

Read only

UVM_CHECK

Read and check

Enum Items :
  • UVM_NO_CHECK
  • UVM_CHECK
uvm_coverage_model_e [source]

Coverage models available or desired. Multiple models may be specified by bitwise OR'ing individual model identifiers.

UVM_NO_COVERAGE

None

UVM_CVR_REG_BITS

Individual register bits

UVM_CVR_ADDR_MAP

Individual register and memory addresses

UVM_CVR_FIELD_VALS

Field values

UVM_CVR_ALL

All coverage models

Enum Items :
  • UVM_NO_COVERAGE = 'h0000
  • UVM_CVR_REG_BITS = 'h0001
  • UVM_CVR_ADDR_MAP = 'h0002
  • UVM_CVR_FIELD_VALS = 'h0004
  • UVM_CVR_ALL = -1
uvm_elem_kind_e [source]

Type of element being read or written

UVM_REG

Register

UVM_FIELD

Field

UVM_MEM

Memory location

Enum Items :
  • UVM_REG
  • UVM_FIELD
  • UVM_MEM
uvm_endianness_e [source]

Specifies byte ordering

UVM_NO_ENDIAN

Byte ordering not applicable

UVM_LITTLE_ENDIAN

Least-significant bytes first in consecutive addresses

UVM_BIG_ENDIAN

Most-significant bytes first in consecutive addresses

UVM_LITTLE_FIFO

Least-significant bytes first at the same address

UVM_BIG_FIFO

Most-significant bytes first at the same address

Enum Items :
  • UVM_NO_ENDIAN
  • UVM_LITTLE_ENDIAN
  • UVM_BIG_ENDIAN
  • UVM_LITTLE_FIFO
  • UVM_BIG_FIFO
uvm_heartbeat_modes [source]
Enum Items :
  • UVM_ALL_ACTIVE
  • UVM_ONE_ACTIVE
  • UVM_ANY_ACTIVE
  • UVM_NO_HB_MODE
uvm_hier_e [source]

Whether to provide the requested information from a hierarchical context.

UVM_NO_HIER

Provide info from the local context

UVM_HIER

Provide info based on the hierarchical context

Enum Items :
  • UVM_NO_HIER
  • UVM_HIER
uvm_objection_event [source]

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

Enum Items :
  • UVM_RAISED = 'h01
  • UVM_DROPPED = 'h02
  • UVM_ALL_DROPPED = 'h04
uvm_path_e [source]

Path used for register operation

UVM_FRONTDOOR

Use the front door

UVM_BACKDOOR

Use the back door

UVM_PREDICT

Operation derived from observations by a bus monitor via the uvm_reg_predictor class.

UVM_DEFAULT_PATH

Operation specified by the context

Enum Items :
  • UVM_FRONTDOOR
  • UVM_BACKDOOR
  • UVM_PREDICT
  • UVM_DEFAULT_PATH
uvm_phase_state [source]

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

UVM_PHASE_UNINITIALIZED

The state is uninitialized. This is the default state for phases, and for nodes which have not yet been added to a schedule.

UVM_PHASE_DORMANT

The schedule is not currently operating on the phase node, however it will be scheduled at some point in the future.

UVM_PHASE_SCHEDULED

At least one immediate predecessor has completed. Scheduled phases block until all predecessors complete or until a jump is executed.

UVM_PHASE_SYNCING

All predecessors complete, checking that all synced phases (e.g. across domains) are at or beyond this point

UVM_PHASE_STARTED

phase ready to execute, running phase_started() callback

UVM_PHASE_EXECUTING

An executing phase is one where the phase callbacks are being executed. Its process is tracked by the phaser.

UVM_PHASE_READY_TO_END

no objections remain in this phase or in any predecessors of its successors or in any sync'd phases. This state indicates an opportunity for any phase that needs extra
time for a clean exit to raise an objection, thereby causing a return to UVM_PHASE_EXECUTING. If no objection is raised, state will transition to UVM_PHASE_ENDED after a delta cycle. (An example of predecessors of successors: The successor to phase 'run' is 'extract', whose predecessors are 'run' and 'post_shutdown'. Therefore, 'run' will go to this state when both its objections and those of 'post_shutdown' are all dropped.

UVM_PHASE_ENDED

phase completed execution, now running phase_ended() callback

UVM_PHASE_JUMPING

all processes related to phase are being killed and all predecessors are forced into the DONE state.

UVM_PHASE_CLEANUP

all processes related to phase are being killed

UVM_PHASE_DONE

A phase is done after it terminated execution. Becoming done may enable a waiting successor phase to execute.

The state transitions occur as follows:
UNINITIALIZED -> DORMANT -> SCHED -> SYNC -> START -> EXEC -> READY -> END -+-> CLEAN -> DONE
                    ^                                                       |
                    |                      <-- jump_to                      |
                    +-------------------------------------------- JUMPING< -+
Enum Items :
  • UVM_PHASE_UNINITIALIZED = 0
  • UVM_PHASE_DORMANT = 1
  • UVM_PHASE_SCHEDULED = 2
  • UVM_PHASE_SYNCING = 4
  • UVM_PHASE_STARTED = 8
  • UVM_PHASE_EXECUTING = 16
  • UVM_PHASE_READY_TO_END = 32
  • UVM_PHASE_ENDED = 64
  • UVM_PHASE_CLEANUP = 128
  • UVM_PHASE_DONE = 256
  • UVM_PHASE_JUMPING = 512
uvm_phase_type [source]

This is an attribute of a uvm_phase object which defines the phase type.

UVM_PHASE_IMP

The phase object is used to traverse the component hierarchy and call the component phase method as well as the phase_started and phase_ended callbacks. These nodes are created by the phase macros, uvm_builtin_task_phase, uvm_builtin_topdown_phase, and uvm_builtin_bottomupphase. These nodes represent the phase type, i.e. uvm_runphase, uvm_main_phase.

UVM_PHASE_NODE

The object represents a simple node instance in the graph. These nodes will contain a reference to their corresponding IMP object.

UVM_PHASE_SCHEDULE

The object represents a portion of the phasing graph, typically consisting of several NODE types, in series, parallel, or both.

UVM_PHASE_TERMINAL

This internal object serves as the termination NODE for a SCHEDULE phase object.

UVM_PHASE_DOMAIN

This object represents an entire graph segment that executes in parallel with the 'run' phase. Domains may define any network of NODEs and SCHEDULEs. The built-in domain, uvm , consists of a single schedule of all the run-time phases, starting with pre_reset and ending with post_shutdown .

Enum Items :
  • UVM_PHASE_IMP
  • UVM_PHASE_NODE
  • UVM_PHASE_TERMINAL
  • UVM_PHASE_SCHEDULE
  • UVM_PHASE_DOMAIN
  • UVM_PHASE_GLOBAL
uvm_port_type_e [source]

Specifies the type of port

UVM_PORT

The port requires the interface that is its type parameter.

UVM_EXPORT

The port provides the interface that is its type parameter via a connection to some other export or implementation.

UVM_IMPLEMENTATION

The port provides the interface that is its type parameter, and it is bound to the component that implements the interface.

Enum Items :
  • UVM_PORT
  • UVM_EXPORT
  • UVM_IMPLEMENTATION
uvm_predict_e [source]

How the mirror is to be updated

UVM_PREDICT_DIRECT

Predicted value is as-is

UVM_PREDICT_READ

Predict based on the specified value having been read

UVM_PREDICT_WRITE

Predict based on the specified value having been written

Enum Items :
  • UVM_PREDICT_DIRECT
  • UVM_PREDICT_READ
  • UVM_PREDICT_WRITE
uvm_radix_enum [source]

Specifies the radix to print or record in.

UVM_BIN

Selects binary (%b) format

UVM_DEC

Selects decimal (%d) format

UVM_UNSIGNED

Selects unsigned decimal (%u) format

UVM_UNFORMAT2

Selects unformatted 2 value data (%u) format

UVM_UNFORMAT4

Selects unformatted 4 value data (%z) format

UVM_OCT

Selects octal (%o) format

UVM_HEX

Selects hexadecimal (%h) format

UVM_STRING

Selects string (%s) format

UVM_TIME

Selects time (%t) format

UVM_ENUM

Selects enumeration value (name) format

UVM_REAL

Selects real (%g) in exponential or decimal format, whichever format results in the shorter printed output

UVM_REAL_DEC

Selects real (%f) in decimal format

UVM_REAL_EXP

Selects real (%e) in exponential format

Enum Items :
  • UVM_BIN = 'h1000000
  • UVM_DEC = 'h2000000
  • UVM_UNSIGNED = 'h3000000
  • UVM_UNFORMAT2 = 'h4000000
  • UVM_UNFORMAT4 = 'h5000000
  • UVM_OCT = 'h6000000
  • UVM_HEX = 'h7000000
  • UVM_STRING = 'h8000000
  • UVM_TIME = 'h9000000
  • UVM_ENUM = 'ha000000
  • UVM_REAL = 'hb000000
  • UVM_REAL_DEC = 'hc000000
  • UVM_REAL_EXP = 'hd000000
  • UVM_NORADIX = 0
uvm_recursion_policy_enum [source]

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.

Enum Items :
  • UVM_DEFAULT_POLICY = 0
  • UVM_DEEP = 'h400
  • UVM_SHALLOW = 'h800
  • UVM_REFERENCE = 'h1000
uvm_reg_mem_tests_e [source]

Select which pre-defined test sequence to execute.

Multiple test sequences may be selected by bitwise OR'ing their respective symbolic values.

UVM_DO_REG_HW_RESET

Run uvm_reg_hw_reset_seq

UVM_DO_REG_BIT_BASH

Run uvm_reg_bit_bash_seq

UVM_DO_REG_ACCESS

Run uvm_reg_access_seq

UVM_DO_MEM_ACCESS

Run uvm_mem_access_seq

UVM_DO_SHARED_ACCESS

Run uvm_reg_mem_shared_access_seq

UVM_DO_MEM_WALK

Run uvm_mem_walk_seq

UVM_DO_ALL_REG_MEM_TESTS

Run all of the above

Test sequences, when selected, are executed in the order in which they are specified above.

Enum Items :
  • UVM_DO_REG_HW_RESET = 64'h0000_0000_0000_0001
  • UVM_DO_REG_BIT_BASH = 64'h0000_0000_0000_0002
  • UVM_DO_REG_ACCESS = 64'h0000_0000_0000_0004
  • UVM_DO_MEM_ACCESS = 64'h0000_0000_0000_0008
  • UVM_DO_SHARED_ACCESS = 64'h0000_0000_0000_0010
  • UVM_DO_MEM_WALK = 64'h0000_0000_0000_0020
  • UVM_DO_ALL_REG_MEM_TESTS = 64'hffff_ffff_ffff_ffff
uvm_sequence_lib_mode [source]

Specifies the random selection mode of a sequence library

UVM_SEQ_LIB_RAND

Random sequence selection

UVM_SEQ_LIB_RANDC

Random cyclic sequence selection

UVM_SEQ_LIB_ITEM

Emit only items, no sequence execution

UVM_SEQ_LIB_USER

Apply a user-defined random-selection algorithm

Enum Items :
  • UVM_SEQ_LIB_RAND
  • UVM_SEQ_LIB_RANDC
  • UVM_SEQ_LIB_ITEM
  • UVM_SEQ_LIB_USER
uvm_sequence_state [source]

Enum

uvm_sequence_state_enum

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.

Enum Items :
  • UVM_CREATED = 1
  • UVM_PRE_START = 2
  • UVM_PRE_BODY = 4
  • UVM_BODY = 8
  • UVM_POST_BODY = 16
  • UVM_POST_START = 32
  • UVM_ENDED = 64
  • UVM_STOPPED = 128
  • UVM_FINISHED = 256
uvm_sequencer_arb_mode [source]
Enum Items :
  • UVM_SEQ_ARB_FIFO
  • UVM_SEQ_ARB_WEIGHTED
  • UVM_SEQ_ARB_RANDOM
  • UVM_SEQ_ARB_STRICT_FIFO
  • UVM_SEQ_ARB_STRICT_RANDOM
  • UVM_SEQ_ARB_USER
uvm_severity [source]

Defines all possible values for report severity.

UVM_INFO

Informative message.

UVM_WARNING

Indicates a potential problem.

UVM_ERROR

Indicates a real problem. Simulation continues subject to the configured message action.

UVM_FATAL

Indicates a problem from which simulation cannot recover. Simulation exits via $finish after a #0 delay.

Enum Items :
  • UVM_INFO
  • UVM_WARNING
  • UVM_ERROR
  • UVM_FATAL
uvm_status_e [source]

Return status for register operations

UVM_IS_OK

Operation completed successfully

UVM_NOT_OK

Operation completed with error

UVM_HAS_X

Operation completed successfully bit had unknown bits.

Enum Items :
  • UVM_IS_OK
  • UVM_NOT_OK
  • UVM_HAS_X
uvm_tlm_command_e [source]

Command attribute type definition

UVM_TLM_READ_COMMAND

Bus read operation

UVM_TLM_WRITE_COMMAND

Bus write operation

UVM_TLM_IGNORE_COMMAND

No bus operation.

Enum Items :
  • UVM_TLM_READ_COMMAND
  • UVM_TLM_WRITE_COMMAND
  • UVM_TLM_IGNORE_COMMAND
uvm_tlm_phase_e [source]

Nonblocking transport synchronization state values between an initiator and a target.

UNINITIALIZED_PHASE

Defaults for constructor

BEGIN_REQ

Beginning of request phase

END_REQ

End of request phase

BEGIN_RESP

Beginning of response phase

END_RESP

End of response phase

Enum Items :
  • UNINITIALIZED_PHASE
  • BEGIN_REQ
  • END_REQ
  • BEGIN_RESP
  • END_RESP
uvm_tlm_response_status_e [source]

Response status attribute type definition

UVM_TLM_OK_RESPONSE

Bus operation completed successfully

UVM_TLM_INCOMPLETE_RESPONSE

Transaction was not delivered to target

UVM_TLM_GENERIC_ERROR_RESPONSE

Bus operation had an error

UVM_TLM_ADDRESS_ERROR_RESPONSE

Invalid address specified

UVM_TLM_COMMAND_ERROR_RESPONSE

Invalid command specified

UVM_TLM_BURST_ERROR_RESPONSE

Invalid burst specified

UVM_TLM_BYTE_ENABLE_ERROR_RESPONSE

Invalid byte enabling specified

Enum Items :
  • UVM_TLM_OK_RESPONSE = 1
  • UVM_TLM_INCOMPLETE_RESPONSE = 0
  • UVM_TLM_GENERIC_ERROR_RESPONSE = -1
  • UVM_TLM_ADDRESS_ERROR_RESPONSE = -2
  • UVM_TLM_COMMAND_ERROR_RESPONSE = -3
  • UVM_TLM_BURST_ERROR_RESPONSE = -4
  • UVM_TLM_BYTE_ENABLE_ERROR_RESPONSE = -5
uvm_tlm_sync_e [source]

Pre-defined phase state values for the nonblocking transport Base Protocol between an initiator and a target.

UVM_TLM_ACCEPTED

Transaction has been accepted

UVM_TLM_UPDATED

Transaction has been modified

UVM_TLM_COMPLETED

Execution of transaction is complete

Enum Items :
  • UVM_TLM_ACCEPTED
  • UVM_TLM_UPDATED
  • UVM_TLM_COMPLETED
uvm_verbosity [source]

Defines standard verbosity levels for reports.

UVM_NONE

Report is always printed. Verbosity level setting cannot disable it.

UVM_LOW

Report is issued if configured verbosity is set to UVM_LOW or above.

UVM_MEDIUM

Report is issued if configured verbosity is set to UVM_MEDIUM or above.

UVM_HIGH

Report is issued if configured verbosity is set to UVM_HIGH or above.

UVM_FULL

Report is issued if configured verbosity is set to UVM_FULL or above.

Enum Items :
  • UVM_NONE = 0
  • UVM_LOW = 100
  • UVM_MEDIUM = 200
  • UVM_HIGH = 300
  • UVM_FULL = 400
  • UVM_DEBUG = 500
uvm_wait_op [source]

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

Enum Items :
  • UVM_LT
  • UVM_LTE
  • UVM_NE
  • UVM_EQ
  • UVM_GT
  • UVM_GTE

Structs

typedef struct uvm_hdl_path_slice [source]

Slice of an HDL path

Struct that specifies the HDL variable that corresponds to all or a portion of a register.

path

Path to the HDL variable.

offset

Offset of the LSB in the register that this variable implements

size

Number of bits (toward the MSB) that this variable implements

If the HDL variable implements all of the register, offset and size are specified as -1. For example: |

r1.add_hdl_path('{ '{"r1", -1, -1} });
typedef struct uvm_printer_row_info [source]
typedef struct uvm_reg_bus_op [source]

Struct that defines a generic bus transaction for register and memory accesses, having kind (read or write), address , data , and byte enable information. If the bus is narrower than the register or memory location being accessed, there will be multiple of these bus operations for every abstract uvm_reg_item transaction. In this case, data represents the portion of uvm_reg_item::value being transferred during this bus cycle. If the bus is wide enough to perform the register or memory operation in a single cycle, data will be the same as uvm_reg_item::value.

typedef struct uvm_reg_map_addr_range [source]

Functions

function void global_stop_request ( ) [source]

Method- global_stop_request - DEPRECATED

Convenience function for uvm_test_done.stop_request(). See uvm_test_done_objection::stop_request for more information.

function void set_config_int ( string inst_name, string field_name, uvm_bitstream_t value ) [source]

Function- set_config_int

This is the global version of set_config_int in uvm_component. This function places the configuration setting for an integral field in a global override table, which has highest precedence over any component-level setting. See uvm_component::set_config_int for details on setting configuration.

function void set_config_object ( string inst_name, string field_name, uvm_object value, bit clone ) [source]

Function- set_config_object

This is the global version of set_config_object in uvm_component. This function places the configuration setting for an object field in a global override table, which has highest precedence over any component-level setting. See uvm_component::set_config_object for details on setting configuration.

function void set_config_string ( string inst_name, string field_name, string value ) [source]

Function- set_config_string

This is the global version of set_config_string in uvm_component. This function places the configuration setting for an string field in a global override table, which has highest precedence over any component-level setting. See uvm_component::set_config_string for details on setting configuration.

function void set_global_stop_timeout ( time timeout ) [source]

Function- set_global_stop_timeout - DEPRECATED

Convenience function for uvm_test_done.stop_timeout = timeout. See <uvm_uvm_test_done::stop_timeout> for more information.

function void set_global_timeout ( time timeout, bit overridable ) [source]
function string uvm_bits_to_string ( logic[UVM_LARGE_STRING:0] str ) [source]

Converts an input bit-vector to its string equivalent. Max bit-vector length is approximately 14000 characters.

function string uvm_bitstream_to_string ( uvm_bitstream_t value, int size, uvm_radix_enum radix, string radix_str ) [source]

Function- uvm_bitstream_to_string

function int unsigned uvm_create_random_seed ( string type_id, string inst_id ) [source]

Function- uvm_create_random_seed

Creates a random seed and updates the seed map so that if the same string is used again, a new value will be generated. The inst_id is used to hash by instance name and get a map of type name hashes which the type_id uses for its lookup.

function string uvm_dpi_get_next_arg ( int init ) [source]
function string uvm_dpi_get_tool_name ( ) [source]
function string uvm_dpi_get_tool_version ( ) [source]
function int uvm_get_array_index_int ( string arg, bit is_wildcard ) [source]

Function- uvm_get_array_index_int

The following functions check to see if a string is representing an array index, and if so, what the index is.

function string uvm_get_array_index_string ( string arg, bit is_wildcard ) [source]

Function- uvm_get_array_index_string

function uvm_report_object uvm_get_report_object ( ) [source]

Returns the nearest uvm_report_object when called.
For the global version, it returns uvm_root.

function bit uvm_has_wildcard ( string arg ) [source]

Function- uvm_has_wildcard

function string uvm_hdl_concat2string ( uvm_hdl_path_concat concat ) [source]

concat2string

function string uvm_instance_scope ( ) [source]

Function- uvm_instance_scope

A function that returns the scope that the UVM library lives in, either an instance, a module, or a package.

function string uvm_integral_to_string ( uvm_integral_t value, int size, uvm_radix_enum radix, string radix_str ) [source]

Function- uvm_integral_to_string

function bit uvm_is_array ( string arg ) [source]

Function- uvm_is_array

function bit uvm_is_match ( string expr, string str ) [source]

Returns 1 if the two strings match, 0 otherwise.

The first string, expr , is a string that may contain '*' and '?' characters. A * matches zero or more characters, and ? matches any single character. The 2nd argument, str , is the string begin matched against. It must not contain any wildcards.

function string uvm_leaf_scope ( string full_name, byte scope_separator ) [source]

Function- uvm_leaf_scope

function string uvm_object_value_str ( uvm_object v ) [source]

Function- uvm_object_value_str

function int unsigned uvm_oneway_hash ( string string_in, int unsigned seed ) [source]
function void uvm_process_report_message ( uvm_report_message report_message ) [source]

This method, defined in package scope, is a convenience function that delegate to the corresponding component method in uvm_top . It can be used in module-based code to use the same reporting mechanism as class-based components. See uvm_report_object for details on the reporting mechanism.

function string uvm_radix_to_string ( uvm_radix_enum radix ) [source]

Function- uvm_radix_to_string

function void uvm_report ( uvm_severity severity, string id, string message, int verbosity, string filename, int line, string context_name, bit report_enabled_checked ) [source]
function int uvm_report_enabled ( int verbosity, uvm_severity severity, string id ) [source]

Returns 1 if the configured verbosity in uvm_top for this severity/id is greater than or equal to verbosity else returns 0.

See also uvm_report_object::uvm_report_enabled.

Static methods of an extension of uvm_report_object, e.g. uvm_component-based objects, cannot call uvm_report_enabled because the call will resolve to the uvm_report_object::uvm_report_enabled, which is non-static. Static methods cannot call non-static methods of the same class.

function void uvm_report_error ( string id, string message, int verbosity, string filename, int line, string context_name, bit report_enabled_checked ) [source]
function void uvm_report_fatal ( string id, string message, int verbosity, string filename, int line, string context_name, bit report_enabled_checked ) [source]

These methods, defined in package scope, are convenience functions that delegate to the corresponding component methods in uvm_top . They can be used in module-based code to use the same reporting mechanism as class-based components. See uvm_report_object for details on the reporting mechanism.

Note: Verbosity is ignored for warnings, errors, and fatals to ensure users do not inadvertently filter them out. It remains in the methods for backward compatibility.

function void uvm_report_info ( string id, string message, int verbosity, string filename, int line, string context_name, bit report_enabled_checked ) [source]
function void uvm_report_warning ( string id, string message, int verbosity, string filename, int line, string context_name, bit report_enabled_checked ) [source]
function string uvm_revision_string ( ) [source]
function void uvm_split_string ( string str, byte sep, string values ) [source]

Returns a queue of strings, values , that is the result of the str split based on the sep . For example:

uvm_split_string(&quot;1,on,false&quot;, &quot;,&quot;, splits);

Results in the 'splits' queue containing the three elements: 1, on and false.

function bit uvm_string_to_action ( string action_str, uvm_action action ) [source]
function logic[UVM_LARGE_STRING:0] uvm_string_to_bits ( string str ) [source]

Converts an input string to its bit-vector equivalent. Max bit-vector length is approximately 14000 characters.

function bit uvm_string_to_severity ( string sev_str, uvm_severity sev ) [source]

TODO merge with uvm_enum_wrapper#(uvm_severity)

function string uvm_vector_to_string ( uvm_bitstream_t value, int size, uvm_radix_enum radix, string radix_str ) [source]

Backwards compat

DPI Import Functions

import function string uvm_dpi_get_next_arg_c ( int init ) [source]
import function string uvm_dpi_get_tool_name_c ( ) [source]
import function string uvm_dpi_get_tool_version_c ( ) [source]
import function chandle uvm_dpi_regcomp ( string regex ) [source]
import function int uvm_dpi_regexec ( chandle preg, string str ) [source]
import function void uvm_dpi_regfree ( chandle preg ) [source]
import function void uvm_dump_re_cache ( ) [source]
import function string uvm_glob_to_re ( string glob ) [source]
import function int uvm_hdl_check_path ( string path ) [source]

Checks that the given HDL path exists. Returns 0 if NOT found, 1 otherwise.

import function int uvm_hdl_deposit ( string path, uvm_hdl_data_t value ) [source]

Sets the given HDL path to the specified value . Returns 1 if the call succeeded, 0 otherwise.

import function int uvm_hdl_force ( string path, uvm_hdl_data_t value ) [source]

Forces the value on the given path . Returns 1 if the call succeeded, 0 otherwise.

import function int uvm_hdl_read ( string path, uvm_hdl_data_t value ) [source]

Function

uvm_hdl_read()

Gets the value at the given path . Returns 1 if the call succeeded, 0 otherwise.

import function int uvm_hdl_release ( string path ) [source]

Releases a value previously set with uvm_hdl_force. Returns 1 if the call succeeded, 0 otherwise.

import function int uvm_hdl_release_and_read ( string path, uvm_hdl_data_t value ) [source]

Releases a value previously set with uvm_hdl_force. Returns 1 if the call succeeded, 0 otherwise. value is set to the HDL value after the release. For 'reg', the value will still be the forced value until it has been procedurally reassigned. For 'wire', the value will change immediately to the resolved value of its continuous drivers, if any. If none, its value remains as forced until the next direct assignment.

import function int uvm_re_match ( string re, string str ) [source]

Tasks

function run_test ( string test_name ) [source]

Convenience function for uvm_top.run_test(). See uvm_root for more information.

function uvm_hdl_force_time ( string path, uvm_hdl_data_t value, time force_time ) [source]

Forces the value on the given path for the specified amount of force_time . If force_time is 0, uvm_hdl_deposit is called. Returns 1 if the call succeeded, 0 otherwise.

function uvm_wait_for_nba_region ( ) [source]

Callers of this task will not return until the NBA region, thus allowing other processes any number of delta cycles (#0) to settle out before continuing. See uvm_sequencer_base::wait_for_sequences for example usage.