urm_message_defines.svh

Go to the documentation of this file.
00001 // $Id: urm__message__defines_8svh-source.html,v 1.1 2008/10/07 21:54:25 alex.marin Exp $
00002 //----------------------------------------------------------------------
00003 //   Copyright 2007-2008 Mentor Graphics Corporation
00004 //   Copyright 2007-2008 Cadence Design Systems, Inc.
00005 //   All Rights Reserved Worldwide
00006 //
00007 //   Licensed under the Apache License, Version 2.0 (the
00008 //   "License"); you may not use this file except in
00009 //   compliance with the License.  You may obtain a copy of
00010 //   the License at
00011 //
00012 //       http://www.apache.org/licenses/LICENSE-2.0
00013 //
00014 //   Unless required by applicable law or agreed to in
00015 //   writing, software distributed under the License is
00016 //   distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
00017 //   CONDITIONS OF ANY KIND, either express or implied.  See
00018 //   the License for the specific language governing
00019 //   permissions and limitations under the License.
00020 //----------------------------------------------------------------------
00021 
00022 `ifndef OVM_URM_MESSAGE_DEFINES_SVH
00023 `define OVM_URM_MESSAGE_DEFINES_SVH
00024 
00025 
00026 //------------------------------------------------------------------------------
00027 //
00028 // COMPONENT MACROS: the main user-level macros for messaging
00029 //
00030 //------------------------------------------------------------------------------
00031 
00032 
00033 `ifdef OVM_URM_PLI
00034 `define urm_file $psprintf("%0s",$urm_file)
00035 `define urm_line $urm_line
00036 `else
00037 `define urm_file "<UNKNOWN>"
00038 `define urm_line 0
00039 `endif
00040 
00041 `ifdef OVM_PKG_SV
00042 `define ovm_urm_message ovm_pkg::ovm_urm_message
00043 `define ovm_urm_report_server ovm_pkg::ovm_urm_report_server
00044 `define ovm_global_reporter ovm_pkg::_global_reporter
00045 `define ovm_urm_tmp_str ovm_pkg::ovm_urm_tmp_str
00046 `define ovm_global_urm_report_server ovm_pkg::ovm_global_urm_report_server
00047 `else
00048 `define ovm_urm_message ovm_urm_message
00049 `define ovm_urm_report_server ovm_urm_report_server
00050 `define ovm_global_reporter _global_reporter
00051 `define ovm_urm_tmp_str ovm_urm_tmp_str
00052 `define ovm_global_urm_report_server ovm_global_urm_report_server
00053 `endif
00054 
00055 `ifdef INCA
00056 `define OVM_AVOID_SFORMATF 1
00057 `endif
00058 
00059 `ifdef OVM_AVOID_SFORMATF
00060 
00061 `define urm_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
00062   $swrite(ovm_urm_tmp_str,"%m"); \
00063   begin \
00064     ovm_urm_message message; \
00065     message = new( \
00066       ID, "", TYPE, SEVERITY, VERBOSITY, HIERARCHY, CLIENT, \
00067       `urm_file, `urm_line, ovm_urm_tmp_str \
00068     ); \
00069     if ( ovm_urm_report_server::m_message_header(message) ) begin \
00070       if ( ovm_urm_report_server::m_message_subheader(message) ) $display MESSAGE; \
00071       ovm_urm_report_server::m_message_footer(message); \
00072     end \
00073   end \
00074 end
00075 
00076 `define urm_pkg_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
00077   $swrite(`ovm_urm_tmp_str,"%m"); \
00078   begin \
00079     `ovm_urm_message message; \
00080     message = new( \
00081       ID, "", TYPE, SEVERITY, VERBOSITY, HIERARCHY, CLIENT, \
00082       `urm_file, `urm_line, `ovm_urm_tmp_str \
00083     ); \
00084     if ( `ovm_urm_report_server::m_message_header(message) ) begin \
00085       if ( `ovm_urm_report_server::m_message_subheader(message) ) $display MESSAGE; \
00086       `ovm_urm_report_server::m_message_footer(message); \
00087     end \
00088   end \
00089 end
00090 
00091 `else
00092 
00093 `define urm_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
00094   $swrite(ovm_urm_tmp_str,"%m"); \
00095   begin \
00096     string image; \
00097     ovm_report_object client; \
00098     client = CLIENT; \
00099     ovm_urm_report_server::m_set_report_hier(HIERARCHY); \
00100     ovm_urm_report_server::m_set_report_scope(ovm_urm_tmp_str); \
00101     ovm_urm_report_server::m_set_report_type(TYPE); \
00102     image = $psprintf MESSAGE; \
00103     ovm_global_urm_report_server.report( \
00104       SEVERITY, client.get_full_name(), ID, image, \
00105       VERBOSITY, `urm_file, `urm_line, client \
00106     ); \
00107     ovm_urm_report_server::m_reset_report_flags(); \
00108   end \
00109 end
00110 
00111 `define urm_pkg_msg_imp(ID,MESSAGE,TYPE,SEVERITY,VERBOSITY,HIERARCHY,CLIENT) begin \
00112   $swrite(`ovm_urm_tmp_str,"%m"); \
00113   begin \
00114     string image; \
00115     ovm_report_object client; \
00116     client = CLIENT; \
00117     `ovm_urm_report_server::m_set_report_hier(`ovm_urm_tmp_str); \
00118     `ovm_urm_report_server::m_set_report_scope(`ovm_urm_tmp_str); \
00119     `ovm_urm_report_server::m_set_report_type(TYPE); \
00120     image = $psprintf MESSAGE; \
00121     ovm_global_urm_report_server.report( \
00122       SEVERITY, client.get_full_name(), ID, image, \
00123       VERBOSITY, `urm_file, `urm_line, client \
00124     ); \
00125     `ovm_urm_report_server::m_reset_report_flags(); \
00126   end \
00127 end
00128 
00129 `endif
00130 
00131 
00132 // module-based msg macros
00133 // -----------------------
00134 
00135 
00136 `ifdef OVM_PKG_SV
00137 
00138 `define MESSAGE(VERBOSITY,MESSAGE) \
00139   do `urm_pkg_msg_imp("DEBUG",MESSAGE,ovm_pkg::OVM_URM_MSG_DEBUG,ovm_pkg::OVM_INFO,VERBOSITY,"",`ovm_global_reporter) \
00140   while (0)
00141 
00142 `define DUT_ERROR(MESSAGE) \
00143   do `urm_pkg_msg_imp("DUT",MESSAGE,ovm_pkg::OVM_URM_MSG_DUT,ovm_pkg::OVM_ERROR,ovm_pkg::OVM_NONE,"",`ovm_global_reporter) \
00144   while (0)
00145 
00146 `else 
00147 
00148 `define MESSAGE(VERBOSITY,MESSAGE) \
00149   do `urm_pkg_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,VERBOSITY,"",`ovm_global_reporter) \
00150   while (0)
00151 
00152 `define DUT_ERROR(MESSAGE) \
00153   do `urm_pkg_msg_imp("DUT",MESSAGE,OVM_URM_MSG_DUT,OVM_ERROR,OVM_NONE,"",`ovm_global_reporter) \
00154   while (0)
00155 
00156 `endif
00157 
00158 // static msg macros
00159 // -----------------
00160 
00161 `define static_message(VERBOSITY,MESSAGE) \
00162   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,VERBOSITY,"",_global_reporter)
00163 
00164 `define static_dut_error(MESSAGE) \
00165   `urm_msg_imp("DUT",MESSAGE,OVM_URM_MSG_DUT,OVM_ERROR,OVM_NONE,"",_global_reporter)
00166 
00167 `define urm_static_data_debug(MESSAGE) \
00168   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,80000,"",_global_reporter)
00169 
00170 `define urm_static_flow_debug(MESSAGE) \
00171   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,80000,"",_global_reporter)
00172 
00173 `define urm_static_code_debug(MESSAGE) \
00174   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,90000,"",_global_reporter)
00175 
00176 `define urm_static_debug(MESSAGE) \
00177   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,70000,"",_global_reporter)
00178 
00179 `define urm_static_info4(MESSAGE) \
00180   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_FULL,"",_global_reporter)
00181 
00182 `define urm_static_info3(MESSAGE) \
00183   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_HIGH,"",_global_reporter)
00184 
00185 `define urm_static_info2(MESSAGE) \
00186   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_MEDIUM,"",_global_reporter)
00187 
00188 `define urm_static_info1(MESSAGE) \
00189   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_LOW,"",_global_reporter)
00190 
00191 `define urm_static_info0(D,MESSAGE) \
00192   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,int'(D),"",_global_reporter)
00193 
00194 `define urm_static_info(MESSAGE) \
00195   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,"",_global_reporter)
00196 
00197 `define urm_static_warning(MESSAGE) \
00198   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,"",_global_reporter)
00199 
00200 `define urm_static_error(MESSAGE) \
00201   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,"",_global_reporter)
00202 
00203 `define urm_static_fatal(MESSAGE) \
00204   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,"",_global_reporter)
00205 
00206 `define urm_static_info_id(ID,MESSAGE) \
00207   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,"",_global_reporter)
00208 
00209 `define urm_static_warning_id(ID,MESSAGE) \
00210   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,"",_global_reporter)
00211 
00212 `define urm_static_error_id(ID,MESSAGE) \
00213   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,"",_global_reporter)
00214 
00215 `define urm_static_fatal_id(ID,MESSAGE) \
00216   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,"",_global_reporter)
00217 
00218 
00219 // non-static msg macros
00220 // ---------------------
00221 
00222 `define message(VERBOSITY,MESSAGE) \
00223   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,VERBOSITY,get_full_name(),m_get_report_object())
00224 
00225 `define dut_error(MESSAGE) \
00226   `urm_msg_imp("DUT",MESSAGE,OVM_URM_MSG_DUT,OVM_ERROR,OVM_NONE,get_full_name(),m_get_report_object())
00227 
00228 `define urm_data_debug(MESSAGE) \
00229   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,80000,get_full_name(),m_get_report_object())
00230 
00231 `define urm_flow_debug(MESSAGE) \
00232   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,80000,get_full_name(),m_get_report_object())
00233 
00234 `define urm_code_debug(MESSAGE) \
00235   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,90000,get_full_name(),m_get_report_object())
00236 
00237 `define urm_debug(MESSAGE) \
00238   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,70000,get_full_name(),m_get_report_object())
00239 
00240 `define urm_info4(MESSAGE) \
00241   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_FULL,get_full_name(),m_get_report_object())
00242 
00243 `define urm_info3(MESSAGE) \
00244   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_HIGH,get_full_name(),m_get_report_object())
00245 
00246 `define urm_info2(MESSAGE) \
00247   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_MEDIUM,get_full_name(),m_get_report_object())
00248 
00249 `define urm_info1(MESSAGE) \
00250   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,OVM_LOW,get_full_name(),m_get_report_object())
00251 
00252 `define urm_info0(D,MESSAGE) \
00253   `urm_msg_imp("DEBUG",MESSAGE,OVM_URM_MSG_DEBUG,OVM_INFO,int'(D),get_full_name(),m_get_report_object())
00254 
00255 `define urm_info(MESSAGE) \
00256   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,get_full_name(),m_get_report_object())
00257 
00258 `define urm_warning(MESSAGE) \
00259   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,get_full_name(),m_get_report_object())
00260 
00261 `define urm_error(MESSAGE) \
00262   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,get_full_name(),m_get_report_object())
00263 
00264 `define urm_fatal(MESSAGE) \
00265   `urm_msg_imp("URM",MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,get_full_name(),m_get_report_object())
00266 
00267 `define urm_info_id(ID,MESSAGE) \
00268   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_INFO,OVM_NONE,get_full_name(),m_get_report_object())
00269 
00270 `define urm_warning_id(ID,MESSAGE) \
00271   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_WARNING,OVM_NONE,get_full_name(),m_get_report_object())
00272 
00273 `define urm_error_id(ID,MESSAGE) \
00274   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_ERROR,OVM_NONE,get_full_name(),m_get_report_object())
00275 
00276 `define urm_fatal_id(ID,MESSAGE) \
00277   `urm_msg_imp(ID,MESSAGE,OVM_URM_MSG_TOOL,OVM_FATAL,OVM_NONE,get_full_name(),m_get_report_object())
00278 
00279 
00280 // may not remain visible
00281 // ----------------------
00282 
00283 `define urm_msg_detail(DETAIL) \
00284   (m_rh.m_max_verbosity_level >= (DETAIL))
00285 
00286 `define urm_static_msg_detail(DETAIL) \
00287   (`ovm_urm_report_server::get_global_verbosity() >= (DETAIL))
00288 
00289 
00290 //------------------------------------------------------------------------------
00291 // ANSI Escape Sequences
00292 //
00293 // ESC [ <parameters> m
00294 // 
00295 //     ESC = \033
00296 //     leave no spaces in sequence 
00297 // 
00298 //     Set Graphics Mode: Calls the graphics functions specified by the
00299 //     following values. These specified functions remain active until the next
00300 //     occurrence of this escape sequence. Graphics mode changes the colors and
00301 //     attributes of text (such as bold and underline) displayed on the
00302 //     screen.
00303 //------------------------------------------------------------------------------
00304 
00305 `define ANSI_RESET      "\033[0m"
00306 `define ANSI_BRIGHT     "\033[1m"
00307 `define ANSI_DIM        "\033[2m"
00308 `define ANSI_UNDERSCORE "\033[4m"
00309 `define ANSI_BOLD       "\033[5m"
00310 `define ANSI_REVERSE    "\033[7m"
00311 
00312 `define ANSI_FG_BLACK   "\033[30m"
00313 `define ANSI_FG_RED     "\033[31m"
00314 `define ANSI_FG_GREEN   "\033[32m"
00315 `define ANSI_FG_YELLOW  "\033[33m"
00316 `define ANSI_FG_BLUE    "\033[34m"
00317 `define ANSI_FG_MAGENTA "\033[35m"
00318 `define ANSI_FG_CYAN    "\033[36m"
00319 `define ANSI_FG_WHITE   "\033[37m"
00320 
00321 `define ANSI_BG_BLACK   "\033[40m"
00322 `define ANSI_BG_RED     "\033[41m"
00323 `define ANSI_BG_GREEN   "\033[42m"
00324 `define ANSI_BG_YELLOW  "\033[43m"
00325 `define ANSI_BG_BLUE    "\033[44m"
00326 `define ANSI_BG_MAGENTA "\033[45m"
00327 `define ANSI_BG_CYAN    "\033[46m"
00328 `define ANSI_BG_WHITE   "\033[47m"
00329 
00330 `endif // OVM_URM_MESSAGE_DEFINES_SVH

Intelligent Design Verification
Intelligent Design Verification
Project: OVM, Revision: 1.1.0
Copyright (c) 2008 Intelligent Design Verification.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included here:
http://www.intelligentdv.com/licenses/fdl.txt
doxygen
Doxygen Version: 1.4.6
Mon Sep 29 14:23:30 2008
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV