46 template<
class T>
class sc_in;
47 template<
class T>
class sc_inout;
48 template<
class T>
class sc_out;
93 const char*
gen_unique_name(
const char* basename_,
bool preserve_first );
95 virtual const char*
kind()
const
96 {
return "sc_module"; }
307 bool m_end_module_called;
308 std::vector<sc_port_base*>* m_port_vec;
387 #define SC_NEW(x) ::sc_core::sc_module_dynalloc(new x);
394 #define SC_MODULE(user_module_name) \
395 struct user_module_name : ::sc_core::sc_module
397 #define SC_CTOR(user_module_name) \
398 typedef user_module_name SC_CURRENT_USER_MODULE; \
399 user_module_name( ::sc_core::sc_module_name )
402 #define SC_HAS_PROCESS(user_module_name) \
403 typedef user_module_name SC_CURRENT_USER_MODULE
414 #define declare_method_process(handle, name, host_tag, func) \
416 ::sc_core::sc_process_handle handle = \
417 sc_core::sc_get_curr_simcontext()->create_method_process( \
418 name, false, SC_MAKE_FUNC_PTR( host_tag, func ), \
420 this->sensitive << handle; \
421 this->sensitive_pos << handle; \
422 this->sensitive_neg << handle; \
425 #define declare_thread_process(handle, name, host_tag, func) \
427 ::sc_core::sc_process_handle handle = \
428 sc_core::sc_get_curr_simcontext()->create_thread_process( \
430 SC_MAKE_FUNC_PTR( host_tag, func ), this, 0 ); \
431 this->sensitive << handle; \
432 this->sensitive_pos << handle; \
433 this->sensitive_neg << handle; \
436 #define declare_cthread_process(handle, name, host_tag, func, edge) \
438 ::sc_core::sc_process_handle handle = \
439 sc_core::sc_get_curr_simcontext()->create_cthread_process( \
441 SC_MAKE_FUNC_PTR( host_tag, func ), this, 0 ); \
442 this->sensitive.operator() ( handle, edge );\
445 #define SC_CTHREAD(func, edge) \
446 declare_cthread_process( func ## _handle, \
448 SC_CURRENT_USER_MODULE, \
452 #define SC_METHOD(func) \
453 declare_method_process( func ## _handle, \
455 SC_CURRENT_USER_MODULE, \
458 #define SC_THREAD(func) \
459 declare_thread_process( func ## _handle, \
461 SC_CURRENT_USER_MODULE, \
void at_negedge(const sc_signal_in_if< bool > &, sc_simcontext *=sc_get_curr_simcontext())
void at_negedge(const sc_signal_in_if< bool > &s)
void wait(int, sc_simcontext *)
const char * gen_unique_name(const char *basename_, bool preserve_first)
void at_posedge(const sc_signal_in_if< bool > &, sc_simcontext *=sc_get_curr_simcontext())
void positional_bind(sc_interface &)
void wait(const sc_time &t)
virtual void start_of_simulation()
void async_reset_signal_is(const sc_in< bool > &port, bool level)
void next_trigger(double v, sc_time_unit tu, const sc_event_and_list &el)
void halt(sc_simcontext *)
void next_trigger(const sc_event &e)
void next_trigger(double v, sc_time_unit tu, const sc_event_or_list &el)
void wait(const sc_time &t, const sc_event_or_list &el)
sc_module * sc_module_dynalloc(sc_module *)
void next_trigger(const sc_event_and_list &el)
void at_posedge(const sc_signal_in_if< bool > &s)
void wait(const sc_event_and_list &el)
virtual const char * kind() const
operand is not sc_logic object already exists internal maximum number of processes per module module construction not properly hierarchical name as shown may be incorrect due to previous errors incorrect use of sc_module_name set time resolution failed default time unit changed to time resolution next_trigger() is only allowed in SC_METHODs" ) SC_DEFINE_MESSAGE(SC_ID_IMMEDIATE_NOTIFICATION_
void wait(double v, sc_time_unit tu)
void reset_signal_is(const sc_in< bool > &port, bool level)
sc_module & operator,(sc_interface &interface_)
const sc_bind_proxy SC_BIND_PROXY_NIL
sc_simcontext * sc_get_curr_simcontext()
void next_trigger(const sc_time &t, const sc_event_or_list &el)
void wait(const sc_time &t, const sc_event_and_list &el)
sc_sensitive_neg sensitive_neg
void elaboration_done(bool &)
virtual void end_of_elaboration()
void at_negedge(const sc_signal_in_if< sc_dt::sc_logic > &s)
void wait(const sc_event_or_list &el)
void wait(double v, sc_time_unit tu, const sc_event_and_list &el)
virtual void end_of_simulation()
bool timed_out(sc_simcontext *)
virtual void before_end_of_elaboration()
sc_sensitive_pos sensitive_pos
void next_trigger(const sc_time &t, const sc_event &e)
void operator()(const sc_bind_proxy &p001, const sc_bind_proxy &p002=SC_BIND_PROXY_NIL, const sc_bind_proxy &p003=SC_BIND_PROXY_NIL, const sc_bind_proxy &p004=SC_BIND_PROXY_NIL, const sc_bind_proxy &p005=SC_BIND_PROXY_NIL, const sc_bind_proxy &p006=SC_BIND_PROXY_NIL, const sc_bind_proxy &p007=SC_BIND_PROXY_NIL, const sc_bind_proxy &p008=SC_BIND_PROXY_NIL, const sc_bind_proxy &p009=SC_BIND_PROXY_NIL, const sc_bind_proxy &p010=SC_BIND_PROXY_NIL, const sc_bind_proxy &p011=SC_BIND_PROXY_NIL, const sc_bind_proxy &p012=SC_BIND_PROXY_NIL, const sc_bind_proxy &p013=SC_BIND_PROXY_NIL, const sc_bind_proxy &p014=SC_BIND_PROXY_NIL, const sc_bind_proxy &p015=SC_BIND_PROXY_NIL, const sc_bind_proxy &p016=SC_BIND_PROXY_NIL, const sc_bind_proxy &p017=SC_BIND_PROXY_NIL, const sc_bind_proxy &p018=SC_BIND_PROXY_NIL, const sc_bind_proxy &p019=SC_BIND_PROXY_NIL, const sc_bind_proxy &p020=SC_BIND_PROXY_NIL, const sc_bind_proxy &p021=SC_BIND_PROXY_NIL, const sc_bind_proxy &p022=SC_BIND_PROXY_NIL, const sc_bind_proxy &p023=SC_BIND_PROXY_NIL, const sc_bind_proxy &p024=SC_BIND_PROXY_NIL, const sc_bind_proxy &p025=SC_BIND_PROXY_NIL, const sc_bind_proxy &p026=SC_BIND_PROXY_NIL, const sc_bind_proxy &p027=SC_BIND_PROXY_NIL, const sc_bind_proxy &p028=SC_BIND_PROXY_NIL, const sc_bind_proxy &p029=SC_BIND_PROXY_NIL, const sc_bind_proxy &p030=SC_BIND_PROXY_NIL, const sc_bind_proxy &p031=SC_BIND_PROXY_NIL, const sc_bind_proxy &p032=SC_BIND_PROXY_NIL, const sc_bind_proxy &p033=SC_BIND_PROXY_NIL, const sc_bind_proxy &p034=SC_BIND_PROXY_NIL, const sc_bind_proxy &p035=SC_BIND_PROXY_NIL, const sc_bind_proxy &p036=SC_BIND_PROXY_NIL, const sc_bind_proxy &p037=SC_BIND_PROXY_NIL, const sc_bind_proxy &p038=SC_BIND_PROXY_NIL, const sc_bind_proxy &p039=SC_BIND_PROXY_NIL, const sc_bind_proxy &p040=SC_BIND_PROXY_NIL, const sc_bind_proxy &p041=SC_BIND_PROXY_NIL, const sc_bind_proxy &p042=SC_BIND_PROXY_NIL, const sc_bind_proxy &p043=SC_BIND_PROXY_NIL, const sc_bind_proxy &p044=SC_BIND_PROXY_NIL, const sc_bind_proxy &p045=SC_BIND_PROXY_NIL, const sc_bind_proxy &p046=SC_BIND_PROXY_NIL, const sc_bind_proxy &p047=SC_BIND_PROXY_NIL, const sc_bind_proxy &p048=SC_BIND_PROXY_NIL, const sc_bind_proxy &p049=SC_BIND_PROXY_NIL, const sc_bind_proxy &p050=SC_BIND_PROXY_NIL, const sc_bind_proxy &p051=SC_BIND_PROXY_NIL, const sc_bind_proxy &p052=SC_BIND_PROXY_NIL, const sc_bind_proxy &p053=SC_BIND_PROXY_NIL, const sc_bind_proxy &p054=SC_BIND_PROXY_NIL, const sc_bind_proxy &p055=SC_BIND_PROXY_NIL, const sc_bind_proxy &p056=SC_BIND_PROXY_NIL, const sc_bind_proxy &p057=SC_BIND_PROXY_NIL, const sc_bind_proxy &p058=SC_BIND_PROXY_NIL, const sc_bind_proxy &p059=SC_BIND_PROXY_NIL, const sc_bind_proxy &p060=SC_BIND_PROXY_NIL, const sc_bind_proxy &p061=SC_BIND_PROXY_NIL, const sc_bind_proxy &p062=SC_BIND_PROXY_NIL, const sc_bind_proxy &p063=SC_BIND_PROXY_NIL, const sc_bind_proxy &p064=SC_BIND_PROXY_NIL)
void wait(double v, sc_time_unit tu, const sc_event_or_list &el)
#define SC_REPORT_ERROR(msg_type, msg)
int append_port(sc_port_base *)
void next_trigger(const sc_event_or_list &el)
sc_simcontext * simcontext() const
void at_posedge(const sc_signal_in_if< sc_dt::sc_logic > &s)
void wait(double v, sc_time_unit tu, const sc_event &e)
const ::std::vector< sc_object * > & get_child_objects() const
void wait(const sc_time &t, const sc_event &e)
void next_trigger(const sc_time &t)
void next_trigger(const sc_time &t, const sc_event_and_list &el)
void wait(const sc_event &e)
sc_module & operator<<(sc_interface &)
void set_stack_size(std::size_t)
void next_trigger(double v, sc_time_unit tu)
void next_trigger(double v, sc_time_unit tu, const sc_event &e)