Package: adaptations_pkg

Signals

Name Type Description
global_show_msg_for_uvvm_cmd boolean ------------------------------------------------------------------------------------------------------------------------------ UVVM VVC Framework adaptations ------------------------------------------------------------------------------------------------------------------------------

Constants

Name Type Value Description
C_ALERT_FILE_NAME string "_Alert.txt"
C_LOG_FILE_NAME string "_Log.txt"
C_SHOW_UVVM_UTILITY_LIBRARY_INFO boolean true Set this to false when you no longer need the initial info
C_SHOW_UVVM_UTILITY_LIBRARY_RELEASE_INFO boolean true Set this to false when you no longer need the release info
C_UVVM_TIMEOUT time 100 us General timeout for UVVM wait statements
C_LOG_PREFIX string "UVVM: " Note: ': ' is recommended as final characters
C_LOG_PREFIX_WIDTH natural C_LOG_PREFIX'length
C_LOG_MSG_ID_WIDTH natural 24
C_LOG_TIME_WIDTH natural 16 3 chars used for unit eg. " ns"
C_LOG_TIME_BASE time ns Unit in which time is shown in log (ns
C_LOG_TIME_DECIMALS natural 1 Decimals to show for given C_LOG_TIME_BASE
C_LOG_SCOPE_WIDTH natural 30 Maximum scope length
C_LOG_LINE_WIDTH natural 175
C_LOG_INFO_WIDTH natural C_LOG_LINE_WIDTH - C_LOG_PREFIX_WIDTH
C_USE_BACKSLASH_N_AS_LF boolean true If true interprets '\n' as Line feed
C_USE_BACKSLASH_R_AS_LF boolean true If true, inserts an empty line if '\r'
C_SINGLE_LINE_ALERT boolean false If true prints alerts on a single line.
C_SINGLE_LINE_LOG boolean false If true prints log messages on a single line.
C_TB_SCOPE_DEFAULT string "TB seq." Default scope in test sequencer
C_SCOPE string C_TB_SCOPE_DEFAULT & "(uvvm)"
C_VVC_CMD_SCOPE_DEFAULT string C_TB_SCOPE_DEFAULT & "(uvvm)" Default scope in VVC commands
C_LOG_TIME_TRUNC_WARNING boolean true Yields a single TB_WARNING if time stamp truncated. Otherwise none
C_SHOW_LOG_ID boolean true This constant has replaced the global_show_log_id
C_SHOW_LOG_SCOPE boolean true This constant has replaced the global_show_log_scope
C_WARNING_ON_LOG_ALERT_FILE_RUNTIME_RENAME boolean false
C_USE_STD_STOP_ON_ALERT_STOP_LIMIT boolean true true: break using std.env.stop, false: break using failure
C_ENABLE_CHECK_COUNTER boolean False enable/disable check_counter to count number of check calls.
C_TB_MSG_ID_DEFAULT t_msg_id ID_SEQUENCER msg ID used when calling the log method without any msg ID switch.
C_MSG_ID_PANEL_DEFAULT t_msg_id_panel ( ID_NEVER => DISABLED,
ID_UTIL_BURIED => DISABLED,
ID_BITVIS_DEBUG => DISABLED,
ID_COVERAGE_MAKEBIN => DISABLED,
ID_COVERAGE_ADDBIN => DISABLED,
ID_COVERAGE_ICOVER => DISABLED,
others => ENABLED )
Default message Id panel to be used for all message Id panels, except: - VVC message Id panels, see constant C_VVC_MSG_ID_PANEL_DEFAULT
C_MSG_ID_INDENT t_msg_id_indent ( ID_IMMEDIATE_CMD_WAIT => " ..",
ID_CMD_INTERPRETER => " " & NUL & NUL,
ID_CMD_INTERPRETER_WAIT => " ..",
ID_CMD_EXECUTOR => " " & NUL & NUL,
ID_CMD_EXECUTOR_WAIT => " ..",
ID_UVVM_SEND_CMD => "->" & NUL & NUL,
ID_UVVM_CMD_ACK => " ",
ID_NEW_HVVC_CMD_SEQ => " " & NUL & NUL,
ID_AWAIT_COMPLETION_WAIT => ".." & NUL & NUL,
ID_AWAIT_COMPLETION_END => " " & NUL & NUL,
others => "" & NUL & NUL & NUL & NUL )
C_MSG_DELIMITER character '''
C_DEFAULT_ALERT_ATTENTION t_alert_attention (others => REGARD) ------------------------------------------------------------------------------------------------------------------------------ Alert counters ------------------------------------------------------------------------------------------------------------------------------ Default values. These can be overwritten in each sequencer by using set_alert_attention or set_alert_stop_limit (see quick ref).
C_DEFAULT_STOP_LIMIT t_alert_counters (note to manual_check => 0,
others => 1)
0 = Never stop
C_ENABLE_HIERARCHICAL_ALERTS boolean false ------------------------------------------------------------------------------------------------------------------------------ Hierarchical alerts ------------------------------------------------------------------------------------------------------------------------------
C_BASE_HIERARCHY_LEVEL string(1 to 5) "Total"
C_HIERARCHY_NODE_NAME_LENGTH natural C_LOG_SCOPE_WIDTH
C_EMPTY_NODE t_hierarchy_node ((1 to C_HIERARCHY_NODE_NAME_LENGTH => ' '),
(others => (others => 0)),
(others => 0),
(others => true))
C_NUM_SYNC_FLAGS positive 100 Maximum number of sync flags
C_CMD_QUEUE_COUNT_MAX natural 20 (VVC Command queue) May be overwritten for dedicated VVC
C_CMD_QUEUE_COUNT_THRESHOLD_SEVERITY t_alert_level WARNING
C_CMD_QUEUE_COUNT_THRESHOLD natural 18
C_RESULT_QUEUE_COUNT_MAX natural 20 (VVC Result queue) May be overwritten for dedicated VVC
C_RESULT_QUEUE_COUNT_THRESHOLD_SEVERITY t_alert_level WARNING
C_RESULT_QUEUE_COUNT_THRESHOLD natural 18
C_MAX_VVC_INSTANCE_NUM natural 8
C_MAX_NUM_SEQUENCERS natural 10 Max number of sequencers
C_MAX_TB_VVC_NUM natural 20 Max number of VVCs in testbench (including all channels)
C_MAX_VVC_NAME_LENGTH positive 20 Maximum allowed length of VVC names
C_MINIMUM_CHANNEL_SCOPE_WIDTH natural 10 Minimum width of vvc name and channel displayed in scope. These combined + the length of instance + 2 (commas), cannot exceed C_LOG_SCOPE_WIDTH.
C_MINIMUM_VVC_NAME_SCOPE_WIDTH natural 10
C_TOTAL_NUMBER_OF_BITS_IN_DATA_BUFFER natural 2048
C_NUMBER_OF_DATA_BUFFERS natural 10
C_VVC_MSG_ID_PANEL_DEFAULT t_msg_id_panel ( ID_NEVER => DISABLED,
ID_UTIL_BURIED => DISABLED,
ID_CHANNEL_BFM => DISABLED,
ID_CHANNEL_EXECUTOR => DISABLED,
ID_CHANNEL_EXECUTOR_WAIT => DISABLED,
others => ENABLED )
Default message Id panel intended for use in the VVCs
C_NUM_SEMAPHORE_LOCK_TRIES natural 500
C_MAX_QUEUE_INSTANCE_NUM positive 100 Maximum number of generic queue instances
C_SB_TAG_WIDTH positive 128 Number of characters in SB tag
C_SB_SOURCE_WIDTH positive 128 Number of characters in SB source element
C_SB_SLV_WIDTH positive 128 Width of the SLV in the predefined SLV SB
C_SB_MSG_ID_PANEL_DEFAULT t_msg_id_panel ( ID_CTRL => ENABLED,
ID_DATA => DISABLED,
others => DISABLED )
Default message Id panel intended for use in SB
C_SPI_VVC_DATA_ARRAY_WIDTH natural 31 Width of SPI VVC data array for SPI VVC and transaction package defaults.
C_UNUSED_MSG_ID_PANEL t_msg_id_panel ( others => NA ) Message Id panel with all IDs as NA
C_CRC_32_START_VALUE std_logic_vector(31 downto 0) x"FFFFFFFF" ------------------------------------------------------------------------------------------------------------------------------ CRC ------------------------------------------------------------------------------------------------------------------------------ CRC-32 (IEEE 802.3)
C_CRC_32_POLYNOMIAL std_logic_vector(32 downto 0) (32 26
C_CRC_32_RESIDUE std_logic_vector(31 downto 0) x"C704DD7B" using left shifting CRC
C_CMD_IDX_PREFIX string " [" ------------------------------------------------------------------------------------------------------------------------------ * WARNING! The code below is not intended for user modifications! * ------------------------------------------------------------------------------------------------------------------------------
C_CMD_IDX_SUFFIX string "]"
ALL_INSTANCES integer -2
ALL_ENABLED_INSTANCES integer -3
C_VVC_ID_DEFAULT t_vvc_id ( name => (others => NUL),
instance => 0,
channel => NA )
C_VVC_STATE_DEFAULT t_vvc_state ( activity => INACTIVE,
last_cmd_idx_executed => -1,
await_selected_supported => true )
C_DEPRECATE_SETTING t_deprecate_setting DEPRECATE_ONCE These values are used to indicate outdated sub-programs

Types

Name Type Description
t_msg_id ( NO_ID,
-- Used as default prior to setting actual ID when transfering ID as a field in a record ID_UTIL_BURIED,
-- Used for buried log messages where msg and scope cannot be modified from outside ID_BITVIS_DEBUG,
-- Bitvis internal ID used for UVVM debugging ID_UTIL_SETUP,
-- Used for Utility setup ID_LOG_MSG_CTRL,
-- Used inside Utility library only - when enabling/disabling msg IDs. ID_ALERT_CTRL,
-- Used inside Utility library only - when setting IGNORE or REGARD on various alerts. ID_NEVER,
-- Used for avoiding log entry. Cannot be enabled. ID_FINISH_OR_STOP,
-- Used when terminating the complete simulation - independent of why ID_CLOCK_GEN,
-- Used for logging when clock generators are enabled or disabled ID_GEN_PULSE,
-- Used for logging when a gen_pulse procedure starts pulsing a signal ID_BLOCKING,
-- Used for logging when using synchronisation flags ID_WATCHDOG,
-- Used for logging the activity of the watchdog ID_POS_ACK,
-- To write a positive acknowledge on a check ID_LOG_HDR,
-- ONLY allowed in test sequencer,
Log section headers ID_LOG_HDR_LARGE,
-- ONLY allowed in test sequencer,
Large log section headers ID_LOG_HDR_XL,
-- ONLY allowed in test sequencer,
Extra large log section headers ID_SEQUENCER,
-- ONLY allowed in test sequencer,
Normal log (not log headers) ID_SEQUENCER_SUB,
-- ONLY allowed in test sequencer,
Subprograms defined in sequencer ID_BFM,
-- Used inside a BFM (to log BFM access) ID_BFM_WAIT,
-- Used inside a BFM to indicate that it is waiting for something (e.g. for ready) ID_BFM_POLL,
-- Used inside a BFM when polling until reading a given value. I.e. to show all reads until expected value found (e.g. for sbi_poll_until()) ID_BFM_POLL_SUMMARY,
-- Used inside a BFM when showing the summary of data that has been received while waiting for expected data. ID_CHANNEL_BFM,
-- Used inside a BFM when the protocol is split into separate channels ID_TERMINATE_CMD,
-- Typically used inside a loop in a procedure to end the loop (e.g. for sbi_poll_until() or any looped generation of random stimuli ID_SEGMENT_INITIATE,
-- Notify that a segment is about to be transmitted or received ID_SEGMENT_COMPLETE,
-- Notify that a segment has been transmitted or received ID_SEGMENT_HDR,
-- Notify that a segment header has been transmitted or received. It also writes header info ID_SEGMENT_DATA,
-- Notify that a segment data has been transmitted or received. It also writes segment data ID_PACKET_INITIATE,
-- Notify that a packet is about to be transmitted or received ID_PACKET_PREAMBLE,
-- Notify that a packet preamble has been transmitted or received ID_PACKET_COMPLETE,
-- Notify that a packet has been transmitted or received ID_PACKET_HDR,
-- Notify that a packet header has been transmitted or received. It also writes header info ID_PACKET_DATA,
-- Notify that a packet data has been transmitted or received. It also writes packet data ID_PACKET_CHECKSUM,
-- Notify that a packet checksum has been transmitted or received ID_PACKET_GAP,
-- Notify that an interpacket gap is in process ID_PACKET_PAYLOAD,
-- Notify that a packet payload has been transmitted or received ID_FRAME_INITIATE,
-- Notify that a frame is about to be transmitted or received ID_FRAME_COMPLETE,
-- Notify that a frame has been transmitted or received ID_FRAME_HDR,
-- Notify that a frame header has been transmitted or received. It also writes header info ID_FRAME_DATA,
-- Notify that a frame data has been transmitted or received. It also writes frame data ID_COVERAGE_MAKEBIN,
-- Log messages from MakeBin (IllegalBin/GenBin/IgnoreBin) ID_COVERAGE_ADDBIN,
-- Log messages from AddBin/AddCross ID_COVERAGE_ICOVER,
-- ICover logging,
NB: Very low level debugging. Can result in large amount of data. ID_COVERAGE_CONFIG,
-- Logging of configuration in the coverage package ID_COVERAGE_SUMMARY,
-- Report logging : Summary of coverage,
with both covered bins and holes ID_COVERAGE_HOLES,
-- Report logging : Holes only ID_UVVM_SEND_CMD,
-- Logs the commands sent to the VVC ID_UVVM_CMD_ACK,
-- Logs the command's ACKs or timeouts from the VVC ID_UVVM_CMD_RESULT,
-- Logs the fetched results from the VVC ID_CMD_INTERPRETER,
-- Message from VVC interpreter about correctly received and queued/issued command ID_CMD_INTERPRETER_WAIT,
-- Message from VVC interpreter that it is actively waiting for a command ID_IMMEDIATE_CMD,
-- Message from VVC interpreter that an IMMEDIATE command has been executed ID_IMMEDIATE_CMD_WAIT,
-- Message from VVC interpreter that an IMMEDIATE command is waiting for command to complete ID_CMD_EXECUTOR,
-- Message from VVC executor about correctly received command - prior to actual execution ID_CMD_EXECUTOR_WAIT,
-- Message from VVC executor that it is actively waiting for a command ID_CHANNEL_EXECUTOR,
-- Message from a channel specific VVC executor process ID_CHANNEL_EXECUTOR_WAIT,
-- Message from a channel specific VVC executor process that it is actively waiting for a command ID_NEW_HVVC_CMD_SEQ,
-- Message from a lower level VVC which receives a new command sequence from an HVVC ID_INSERTED_DELAY,
-- Message from VVC executor that it is waiting a given delay ID_OLD_AWAIT_COMPLETION,
-- Temporary log messages related to old await_completion mechanism. Will be removed in v3.0 ID_AWAIT_COMPLETION,
-- Used for logging the procedure call waiting for completion ID_AWAIT_COMPLETION_LIST,
-- Used for logging modifications to the list of VVCs waiting for completion ID_AWAIT_COMPLETION_WAIT,
-- Used for logging when the procedure starts waiting for completion ID_AWAIT_COMPLETION_END,
-- Used for logging when the procedure has finished waiting for completion ID_UVVM_DATA_QUEUE,
-- Information about UVVM data FIFO/stack (initialization,
put,
get,
etc) ID_CONSTRUCTOR,
-- Constructor message from VVCs (or other components/process when needed) ID_CONSTRUCTOR_SUB,
-- Constructor message for lower level constructor messages (like Queue-information and other limitations) ID_VVC_ACTIVITY,
ID_MONITOR,
-- General monitor information ID_MONITOR_ERROR,
-- General monitor errors ID_DATA,
-- To write general handling of data ID_CTRL,
-- To write general control/config information ID_FILE_OPEN_CLOSE,
-- Id used when opening / closing file ID_FILE_PARSER,
-- Id used in file parsers ID_SPEC_COV,
-- Messages from the specification coverage methods ALL_MESSAGES -- Applies to ALL message ID apart from ID_NEVER )
------------------------------------------------------------------------------------------------------------------------------ Verbosity control NOTE: Do not enter new IDs without proper evaluation: 1. Is it - or could it be covered by an existing ID 2. Could it be combined with other needs for a more general new ID Feel free to suggest new ID for future versions of UVVM Utility Library (support@bitvis.no) ------------------------------------------------------------------------------------------------------------------------------
t_msg_id_panel
t_msg_id_indent
t_data_source ( NA,
FROM_BUFFER,
RANDOM,
RANDOM_TO_BUFFER )
Deprecated, will be removed.
t_error_injection ( NA,
RANDOM_BIT_ERROR,
RANDOM_DATA_ERROR,
RANDOM_ADDRESS_ERROR )
Deprecated, will be removed.
t_randomisation ( NA,
RANDOM,
RANDOM_FAVOUR_EDGES )
t_channel ( NA,
-- When channel is not relevant ALL_CHANNELS,
-- When command shall be received by all channels RX,
TX )
t_interface (SBI,
GMII)
------------------------------------------------------------------------------------------------------------------------------ Hierarchical-VVCs ------------------------------------------------------------------------------------------------------------------------------ HVVC supported interfaces
t_frame_field ( HEADER,
PAYLOAD,
CHECKSUM )
For frame-based communication
t_vvc_id
t_vvc_state