42 return ( ( a <=
b ) ? a :
b );
50 return ( ( a >=
b ) ? a :
b );
77#define SC_STRINGIFY_HELPER_( Arg ) \
78 SC_STRINGIFY_HELPER_DEFERRED_( Arg )
79#define SC_STRINGIFY_HELPER_DEFERRED_( Arg ) \
80 SC_STRINGIFY_HELPER_MORE_DEFERRED_( Arg )
81#define SC_STRINGIFY_HELPER_MORE_DEFERRED_( Arg ) \
86#define SC_CONCAT_HELPER_( a, b ) \
87 SC_CONCAT_HELPER_DEFERRED_( a, b )
88#define SC_CONCAT_HELPER_DEFERRED_( a, b ) \
89 SC_CONCAT_HELPER_MORE_DEFERRED_( a,b )
90#define SC_CONCAT_HELPER_MORE_DEFERRED_( a, b ) \
92#define SC_CONCAT_UNDERSCORE_( a, b ) \
93 SC_CONCAT_HELPER_( a, SC_CONCAT_HELPER_( _, b ) )
97#define SC_EXPAND_HELPER_(x) x
105 ::sc_core::sc_set_location( __FILE__, __LINE__ ); \
107 ::sc_core::sc_set_location( NULL, 0 )
110 ::sc_core::sc_set_location( __FILE__, __LINE__ ); \
111 ::sc_core::wait(n); \
112 ::sc_core::sc_set_location( NULL, 0 )
114#define SC_WAIT_UNTIL(expr) \
115 do { SC_WAIT(); } while( !(expr) )
120#define SC_NAMED(...) \
121 SC_NAMED_IMPL_(__VA_ARGS__)(__VA_ARGS__)
123# define SC_NAMED_IMPL_ONE_(inst) \
124 inst { SC_STRINGIFY_HELPER_(inst) }
125# define SC_NAMED_IMPL_MORE_(inst, ...) \
126 inst { SC_STRINGIFY_HELPER_(inst), __VA_ARGS__ }
128#define SC_NAMED_IMPL_(...) \
129 SC_CONCAT_HELPER_(SC_NAMED_IMPL_, SC_VARARG_HELPER_EXPAND_(__VA_ARGS__))
131#define SC_VARARG_HELPER_EXPAND_(...) \
132 SC_EXPAND_HELPER_( SC_VARARG_HELPER_EXPAND_SEQ_( \
134 MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,MORE_, \
135 MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,MORE_, \
136 MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,MORE_, \
137 MORE_,MORE_,MORE_,MORE_,MORE_,MORE_,ONE_, FAIL_ ) )
138#define SC_VARARG_HELPER_EXPAND_SEQ_( \
139 _1, _2, _3, _4, _5, _6, _7, _8, \
140 _9,_10,_11,_12,_13,_14,_15,_16, \
141 _17,_18,_19,_20,_21,_22,_23,_24, \
142 _25,_26,_27,_28,_29,_30,_31, N, ...) N
const T sc_min(const T &a, const T &b)
const T sc_abs(const T &a)
const T sc_max(const T &a, const T &b)
uint64 const sc_uint_base int b