/*------------------------------------------------------------\ | | | Tool : systemcass | | | | File : sc_module.h | | | | Author : Buchmann Richard | | Taktak Sami | | | | Date : 09_07_2004 | | | \------------------------------------------------------------*/ #ifndef __SC_MODULE_H__ #define __SC_MODULE_H__ #include "sc_module_ext.h" #include #include #include #include "sc_fwd.h" #include "internal.h" #include "sc_object.h" #include "sc_sensitive.h" namespace sc_core { class sc_port_base; class sc_signal_base; // // INTERNAL IMPLEMENTATION // typedef std::list signal_list_t; typedef std::list instances_list_t; typedef std::set instances_set_t; extern instances_set_t instances_set; // ensemble d'instances typedef std::stack modules_stack_t; extern modules_stack_t modules_stack; extern void check_all_method_process (); extern void valid_method_process (); extern std::ostream& operator << (std::ostream &o, instances_set_t&); // ---------------------------------------------------------------------------- // CLASS : method_process_t // // Method process class. // ---------------------------------------------------------------------------- class method_process_t { // for debug public: const char *name; // function name #ifdef DUMP_SCHEDULE_STATS long long int number_of_calls; #endif public: // data sc_module *module; SC_ENTRY_FUNC func; sensitivity_list_t sensitivity_list; bool dont_initialize; // constructors method_process_t(const char* nm, SC_ENTRY_FUNC fn, sc_module& mod ); // methods friend std::ostream& operator << (std::ostream &, const method_process_t &); // accessors bool is_combinational(void); bool is_transition(void); bool is_genmoore(void); }; } // end of namespace sc_core #endif /* __SC_MODULE_H__ */