00001 00008 /***************************************************************************** 00009 00010 The following code is derived, directly or indirectly, from the SystemC 00011 source code Copyright (c) 1996-2005 by all Contributors. 00012 All Rights reserved. 00013 00014 The contents of this file are subject to the restrictions and limitations 00015 set forth in the SystemC Open Source License Version 2.4 (the "License"); 00016 You may not use this file except in compliance with such restrictions and 00017 limitations. You may obtain instructions on how to receive a copy of the 00018 License at http://www.systemc.org/. Software distributed by Contributors 00019 under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 00020 ANY KIND, either express or implied. See the License for the specific 00021 language governing rights and limitations under the License. 00022 00023 *****************************************************************************/ 00024 00025 /***************************************************************************** 00026 00027 systemc.h - Top-level include file for the SystemC library with usings. 00028 00029 Original Author: Stan Y. Liao, Synopsys, Inc. 00030 00031 *****************************************************************************/ 00032 00033 /***************************************************************************** 00034 00035 MODIFICATION LOG - modifiers, enter your name, affiliation, date and 00036 changes you are making here. 00037 00038 Name, Affiliation, Date: Andy Goodrich, Forte Design Systems, 31 Mar 2005 00039 Description of Modification: Changes for namespace support. 00040 00041 *****************************************************************************/ 00042 00043 #ifndef SYSTEMC_H 00044 #define SYSTEMC_H 00045 00046 #include "systemc" 00047 00048 // USINGS FOR THE sc_dt NAMESPACE: 00049 00050 using sc_dt::sc_bit; 00051 using sc_dt::sc_logic; 00052 using sc_dt::sc_bv_base; 00053 using sc_dt::sc_bv; 00054 using sc_dt::sc_lv_base; 00055 using sc_dt::sc_lv; 00056 using sc_dt::int64; 00057 using sc_dt::uint64; 00058 00059 using sc_dt::sc_numrep; 00060 using sc_dt::SC_NOBASE; 00061 using sc_dt::SC_BIN; 00062 using sc_dt::SC_OCT; 00063 using sc_dt::SC_DEC; 00064 using sc_dt::SC_HEX; 00065 using sc_dt::SC_BIN_US; 00066 using sc_dt::SC_BIN_SM; 00067 using sc_dt::SC_OCT_US; 00068 using sc_dt::SC_OCT_SM; 00069 using sc_dt::SC_HEX_US; 00070 using sc_dt::SC_HEX_SM; 00071 using sc_dt::SC_CSD; 00072 using sc_dt::sc_io_show_base; 00073 using sc_dt::sc_string_old; 00074 00075 using sc_dt::SC_LOGIC_0; 00076 using sc_dt::SC_LOGIC_1; 00077 using sc_dt::SC_LOGIC_Z; 00078 using sc_dt::SC_LOGIC_X; 00079 00080 using sc_dt::sc_length_param; 00081 using sc_dt::sc_length_context; 00082 using sc_dt::sc_signed; 00083 using sc_dt::sc_bigint; 00084 using sc_dt::sc_unsigned; 00085 using sc_dt::sc_biguint; 00086 using sc_dt::sc_int_base; 00087 using sc_dt::sc_int; 00088 using sc_dt::sc_uint_base; 00089 using sc_dt::sc_uint; 00090 00091 // #ifdef SC_DT_DEPRECATED 00092 using sc_dt::sc_logic_0; 00093 using sc_dt::sc_logic_1; 00094 using sc_dt::sc_logic_Z; 00095 using sc_dt::sc_logic_X; 00096 // #endif 00097 00098 #ifdef SC_INCLUDE_FX 00099 using sc_dt::sc_fxnum; 00100 using sc_dt::sc_fxnum_bitref; 00101 using sc_dt::sc_fxnum_fast; 00102 using sc_dt::sc_fix; 00103 using sc_dt::sc_fix_fast; 00104 using sc_dt::sc_ufix; 00105 using sc_dt::sc_ufix_fast; 00106 using sc_dt::sc_fixed; 00107 using sc_dt::sc_fixed_fast; 00108 using sc_dt::sc_ufixed; 00109 using sc_dt::sc_ufixed_fast; 00110 using sc_dt::sc_fxval; 00111 using sc_dt::sc_fxval_fast; 00112 using sc_dt::sc_fxcast_switch; 00113 using sc_dt::sc_fxcast_context; 00114 using sc_dt::sc_fxtype_params; 00115 using sc_dt::sc_fxtype_context; 00116 using sc_dt::sc_q_mode; 00117 using sc_dt::SC_RND; 00118 using sc_dt::SC_RND_ZERO; 00119 using sc_dt::SC_RND_MIN_INF; 00120 using sc_dt::SC_RND_INF; 00121 using sc_dt::SC_RND_CONV; 00122 using sc_dt::SC_TRN; 00123 using sc_dt::SC_TRN_ZERO; 00124 using sc_dt::sc_o_mode; 00125 using sc_dt::SC_SAT; 00126 using sc_dt::SC_SAT_ZERO; 00127 using sc_dt::SC_SAT_SYM; 00128 using sc_dt::SC_WRAP; 00129 using sc_dt::SC_WRAP_SM; 00130 using sc_dt::sc_switch; 00131 using sc_dt::SC_OFF; 00132 using sc_dt::SC_ON; 00133 using sc_dt::sc_fmt; 00134 using sc_dt::SC_F; 00135 using sc_dt::SC_E; 00136 using sc_dt::sc_context_begin; 00137 using sc_dt::SC_NOW; 00138 using sc_dt::SC_LATER; 00139 00140 #endif // SC_INCLUDE_FX 00141 00142 #if defined( _MSC_VER ) 00143 using sc_dt::equal; 00144 using sc_dt::not_equal; 00145 using sc_dt::b_not; 00146 using sc_dt::b_and; 00147 using sc_dt::b_or; 00148 using sc_dt::b_xor; 00149 using sc_dt::lrotate; 00150 using sc_dt::rrotate; 00151 using sc_dt::reverse; 00152 using sc_dt::concat; 00153 using sc_dt::and_reduce; 00154 using sc_dt::or_reduce; 00155 using sc_dt::xor_reduce; 00156 using sc_dt::nand_reduce; 00157 using sc_dt::nor_reduce; 00158 using sc_dt::xnor_reduce; 00159 00160 #endif // defined( _MSC_VER ) 00161 00162 00163 // USINGS FOR sc_core: 00164 // 00165 // The explicit using for ::sc_core::wait is to remove an ambiguity with 00166 // the constructor for the system's union wait on Unix and Linux. This 00167 // causes problems with aCC, so users of aCC should explicitly select 00168 // the SystemC wait functions using ::sc_core::wait(...). This is actually 00169 // a good idea for SystemC programmers in general. 00170 00171 using namespace sc_core; 00172 #if !defined( __HP_aCC ) 00173 using ::sc_core::wait; 00174 #endif // !defined( __HP_aCC ) 00175 00176 00177 // USINGS FOR I/O STREAM SUPPORT: 00178 00179 #if !defined( _MSC_VER ) && !defined( __BORLANDC__ ) 00180 # if defined(__GNUC__) && (__GNUC__ == 2) // Maintain compatibility for 2.95.x 00181 using std::strstream; 00182 using std::strstreambuf; 00183 using std::istrstream; 00184 using std::ostrstream; 00185 # endif 00186 00187 using std::ios; 00188 using std::streambuf; 00189 using std::streampos; 00190 using std::streamsize; 00191 using std::iostream; 00192 using std::istream; 00193 using std::ostream; 00194 using std::cin; 00195 using std::cout; 00196 using std::cerr; 00197 using std::endl; 00198 using std::flush; 00199 using std::dec; 00200 using std::hex; 00201 using std::oct; 00202 # if defined(linux) 00203 using std::noshowbase; 00204 using std::showbase; 00205 # endif // defined(linux) 00206 00207 00208 using std::fstream; 00209 using std::ifstream; 00210 using std::ofstream; 00211 00212 using std::size_t; 00213 00214 using std::memchr; 00215 using std::memcmp; 00216 using std::memcpy; 00217 using std::memmove; 00218 using std::memset; 00219 using std::strcat; 00220 using std::strncat; 00221 using std::strchr; 00222 using std::strrchr; 00223 using std::strcmp; 00224 using std::strncmp; 00225 using std::strcpy; 00226 using std::strncpy; 00227 using std::strcspn; 00228 using std::strspn; 00229 using std::strlen; 00230 using std::strpbrk; 00231 using std::strstr; 00232 using std::strtok; 00233 00234 #else 00235 #if defined( _MSC_VER ) 00236 // VC++6 with standard library 00237 00238 using std::ios; 00239 using std::streambuf; 00240 using std::streampos; 00241 using std::streamsize; 00242 using std::iostream; 00243 using std::istream; 00244 using std::ostream; 00245 using std::strstream; 00246 using std::strstreambuf; 00247 using std::istrstream; 00248 using std::ostrstream; 00249 using std::cin; 00250 using std::cout; 00251 using std::cerr; 00252 using std::endl; 00253 using std::flush; 00254 using std::dec; 00255 using std::hex; 00256 using std::oct; 00257 00258 using std::fstream; 00259 using std::ifstream; 00260 using std::ofstream; 00261 00262 #endif // MSC 00263 #endif // Everyone else 00264 00265 // ##PINAPA Integration: BEGIN 00266 #include "pinapa/pinapa-bypass.h" 00267 // ##PINAPA Integration: END 00268 00269 #endif