blob: a09fe60bc139e457d7f0ddacea6ec52da19f34ff [file] [log] [blame]
// $Id: //dvt/vtech/dev/main/ovm/src/compatibility/urm_message_defines.svh#18 $
//----------------------------------------------------------------------
// Copyright 2007-2009 Mentor Graphics Corporation
// Copyright 2007-2009 Cadence Design Systems, Inc.
// 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.
//----------------------------------------------------------------------
`ifndef OVM_URM_MESSAGE_DEFINES_SVH
`define OVM_URM_MESSAGE_DEFINES_SVH
//------------------------------------------------------------------------------
//
// COMPONENT MACROS: the main user-level macros for messaging
//
//------------------------------------------------------------------------------
`ifdef OVM_URM_PLI
`define urm_file $psprintf("%0s",$urm_file)
`define urm_line $urm_line
`else
`define urm_file "<UNKNOWN>"
`define urm_line 0
`endif
`ifdef OVM_PKG_SV
`define ovm_urm_message ovm_pkg::ovm_urm_message
`define ovm_urm_report_server ovm_pkg::ovm_urm_report_server
`define ovm_global_reporter ovm_pkg::_global_reporter
`define ovm_urm_tmp_str ovm_pkg::ovm_urm_tmp_str
`define ovm_global_urm_report_server ovm_pkg::ovm_global_urm_report_server
`else
`define ovm_urm_message ovm_urm_message
`define ovm_urm_report_server ovm_urm_report_server
`define ovm_global_reporter _global_reporter
`define ovm_urm_tmp_str ovm_urm_tmp_str
`define ovm_global_urm_report_server ovm_global_urm_report_server
`endif
`ifdef INCA
`define OVM_AVOID_SFORMATF 1
`endif
`ifdef OVM_AVOID_SFORMATF
`define urm_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
$swrite(ovm_urm_tmp_str,"%m"); \
begin \
ovm_urm_message message; \
message = new( \
ID, "", TYPE, SEVERITY, VERBOSITY, HIERARCHY, CLIENT, \
`urm_file, `urm_line, ovm_urm_tmp_str \
); \
if ( ovm_urm_report_server::m_message_header(message) ) begin \
if ( ovm_urm_report_server::m_message_subheader(message) ) $display MESSAGE; \
ovm_urm_report_server::m_message_footer(message); \
end \
end \
end
`define urm_pkg_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
$swrite(`ovm_urm_tmp_str,"%m"); \
begin \
`ovm_urm_message message; \
message = new( \
ID, "", TYPE, SEVERITY, VERBOSITY, HIERARCHY, CLIENT, \
`urm_file, `urm_line, `ovm_urm_tmp_str \
); \
if ( `ovm_urm_report_server::m_message_header(message) ) begin \
if ( `ovm_urm_report_server::m_message_subheader(message) ) $display MESSAGE; \
`ovm_urm_report_server::m_message_footer(message); \
end \
end \
end
`else
`define urm_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
$swrite(ovm_urm_tmp_str,"%m"); \
begin \
string image; \
ovm_report_object client; \
client = CLIENT; \
ovm_urm_report_server::m_set_report_hier(HIERARCHY); \
ovm_urm_report_server::m_set_report_scope(ovm_urm_tmp_str); \
ovm_urm_report_server::m_set_report_type(TYPE); \
image = $psprintf MESSAGE; \
ovm_global_urm_report_server.report( \
SEVERITY, client.get_full_name(), ID, image, \
VERBOSITY, `urm_file, `urm_line, client \
); \
ovm_urm_report_server::m_reset_report_flags(); \
end \
end
`define urm_pkg_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
$swrite(`ovm_urm_tmp_str,"%m"); \
begin \
string image; \
ovm_report_object client; \
client = CLIENT; \
`ovm_urm_report_server::m_set_report_hier(`ovm_urm_tmp_str); \
`ovm_urm_report_server::m_set_report_scope(`ovm_urm_tmp_str); \
`ovm_urm_report_server::m_set_report_type(TYPE); \
image = $psprintf MESSAGE; \
ovm_global_urm_report_server.report( \
SEVERITY, client.get_full_name(), ID, image, \
VERBOSITY, `urm_file, `urm_line, client \
); \
`ovm_urm_report_server::m_reset_report_flags(); \
end \
end
`endif
// module-based msg macros
// -----------------------
`ifdef OVM_PKG_SV
`define MESSAGE(VERBOSITY,MESSAGE) \
do `urm_pkg_msg_imp("DEBUG",MESSAGE,ovm_pkg::OVM_URM_MSG_DEBUG,ovm_pkg::OVM_INFO,VERBOSITY,"",`ovm_global_reporter) \
while (0)
`define DUT_ERROR(MESSAGE) \
do `urm_pkg_msg_imp("DUT",MESSAGE,ovm_pkg::OVM_URM_MSG_DUT,ovm_pkg::OVM_ERROR,ovm_pkg::OVM_NONE,"",`ovm_global_reporter) \
while (0)
`else
`define MESSAGE(VERBOSITY,MESSAGE) \
do `urm_pkg_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,VERBOSITY,"",`ovm_global_reporter) \
while (0)
`define DUT_ERROR(MESSAGE) \
do `urm_pkg_msg_imp("DUT",MESSAGE,OVM_URM_MSG_DUT,OVM_ERROR,OVM_NONE,"",`ovm_global_reporter) \
while (0)
`endif
// static msg macros
// -----------------
`define static_message(VERBOSITY,MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,VERBOSITY,"",_global_reporter)
`define static_dut_error(MESSAGE) \
`urm_msg_imp("DUT",MESSAGE,OVM_URM_MSG_DUT,OVM_ERROR,OVM_NONE,"",_global_reporter)
`define urm_static_data_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,"",_global_reporter)
`define urm_static_flow_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,"",_global_reporter)
`define urm_static_code_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,"",_global_reporter)
`define urm_static_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,"",_global_reporter)
`define urm_static_info4(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_FULL,"",_global_reporter)
`define urm_static_info3(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_HIGH,"",_global_reporter)
`define urm_static_info2(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_MEDIUM,"",_global_reporter)
`define urm_static_info1(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_LOW,"",_global_reporter)
`define urm_static_info0(D,MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,int'(D),"",_global_reporter)
`define urm_static_info(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,"",_global_reporter)
`define urm_static_warning(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,"",_global_reporter)
`define urm_static_error(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,"",_global_reporter)
`define urm_static_fatal(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,"",_global_reporter)
`define urm_static_info_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,"",_global_reporter)
`define urm_static_warning_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,"",_global_reporter)
`define urm_static_error_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,"",_global_reporter)
`define urm_static_fatal_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,"",_global_reporter)
// non-static msg macros
// ---------------------
`define message(VERBOSITY,MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,VERBOSITY,get_full_name(),m_get_report_object())
`define dut_error(MESSAGE) \
`urm_msg_imp("DUT",MESSAGE,OVM_URM_MSG_DUT,OVM_ERROR,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_data_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,get_full_name(),m_get_report_object())
`define urm_flow_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,get_full_name(),m_get_report_object())
`define urm_code_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,get_full_name(),m_get_report_object())
`define urm_debug(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_DEBUG,get_full_name(),m_get_report_object())
`define urm_info4(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_FULL,get_full_name(),m_get_report_object())
`define urm_info3(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_HIGH,get_full_name(),m_get_report_object())
`define urm_info2(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_MEDIUM,get_full_name(),m_get_report_object())
`define urm_info1(MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_LOW,get_full_name(),m_get_report_object())
`define urm_info0(D,MESSAGE) \
`urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,int'(D),get_full_name(),m_get_report_object())
`define urm_info(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_warning(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_error(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_fatal(MESSAGE) \
`urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_info_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_warning_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_error_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,get_full_name(),m_get_report_object())
`define urm_fatal_id(ID,MESSAGE) \
`urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,get_full_name(),m_get_report_object())
// may not remain visible
// ----------------------
`define urm_msg_detail(DETAIL) \
(ovm_verbosity'(m_rh.m_max_verbosity_level) >= (DETAIL))
`define urm_static_msg_detail(DETAIL) \
(`ovm_urm_report_server::get_global_verbosity() >= (DETAIL))
//------------------------------------------------------------------------------
// ANSI Escape Sequences
//
// ESC [ <parameters> m
//
// ESC = \033
// leave no spaces in sequence
//
// Set Graphics Mode: Calls the graphics functions specified by the
// following values. These specified functions remain active until the next
// occurrence of this escape sequence. Graphics mode changes the colors and
// attributes of text (such as bold and underline) displayed on the
// screen.
//------------------------------------------------------------------------------
`define ANSI_RESET "\033[0m"
`define ANSI_BRIGHT "\033[1m"
`define ANSI_DIM "\033[2m"
`define ANSI_UNDERSCORE "\033[4m"
`define ANSI_BOLD "\033[5m"
`define ANSI_REVERSE "\033[7m"
`define ANSI_FG_BLACK "\033[30m"
`define ANSI_FG_RED "\033[31m"
`define ANSI_FG_GREEN "\033[32m"
`define ANSI_FG_YELLOW "\033[33m"
`define ANSI_FG_BLUE "\033[34m"
`define ANSI_FG_MAGENTA "\033[35m"
`define ANSI_FG_CYAN "\033[36m"
`define ANSI_FG_WHITE "\033[37m"
`define ANSI_BG_BLACK "\033[40m"
`define ANSI_BG_RED "\033[41m"
`define ANSI_BG_GREEN "\033[42m"
`define ANSI_BG_YELLOW "\033[43m"
`define ANSI_BG_BLUE "\033[44m"
`define ANSI_BG_MAGENTA "\033[45m"
`define ANSI_BG_CYAN "\033[46m"
`define ANSI_BG_WHITE "\033[47m"
`endif // OVM_URM_MESSAGE_DEFINES_SVH