source: sources/src/sc_module.h @ 44

Last change on this file since 44 was 35, checked in by buchmann, 15 years ago

Code cleanup.

Add --dynamiclink option to systemcass executable.

File size: 2.4 KB
Line 
1/*------------------------------------------------------------\
2|                                                             |
3| Tool    :                  systemcass                       |
4|                                                             |
5| File    :                   sc_module.h                     |
6|                                                             |
7| Author  :                 Buchmann Richard                  |
8|                           Taktak Sami                       |
9|                                                             |
10| Date    :                   09_07_2004                      |
11|                                                             |
12\------------------------------------------------------------*/
13#ifndef __SC_MODULE_H__
14#define __SC_MODULE_H__
15
16#include <list>
17#include <set>
18#include <stack>
19
20#include "internal.h"
21
22#include "sc_fwd.h"
23#include "sc_module_ext.h"
24#include "sc_object.h"
25#include "sc_sensitive.h"
26
27namespace sc_core {
28
29class sc_port_base;
30class sc_signal_base;
31
32
33//
34// INTERNAL IMPLEMENTATION
35//
36typedef std::list<sc_signal_base* > signal_list_t; 
37
38typedef std::list<sc_module* > instances_list_t; 
39typedef std::set<sc_module* > instances_set_t; 
40extern instances_set_t instances_set;     // ensemble d'instances
41
42typedef std::stack<const sc_module*> modules_stack_t;
43extern modules_stack_t modules_stack;
44extern void check_all_method_process ();
45extern void valid_method_process ();
46
47extern std::ostream& operator << (std::ostream &o, instances_set_t&);
48
49// ----------------------------------------------------------------------------
50//  CLASS : method_process_t
51//
52//  Method process class.
53// ----------------------------------------------------------------------------
54class method_process_t
55{
56  // for debug
57public: const char *name; // function name
58#ifdef DUMP_SCHEDULE_STATS
59  long long int number_of_calls;
60#endif 
61public:
62  // data
63  sc_module          *module;
64  SC_ENTRY_FUNC       func;
65  sensitivity_list_t  sensitivity_list;
66  bool                dont_initialize;
67
68  // constructors
69  method_process_t(const char* nm, SC_ENTRY_FUNC fn, sc_module& mod );
70
71  // methods
72  friend std::ostream& operator << (std::ostream &, const method_process_t &);
73 
74  // accessors
75  bool is_combinational(void); 
76  bool is_transition(void);
77  bool is_genmoore(void);
78};
79
80
81} // end of namespace sc_core
82
83#endif /* __SC_MODULE_H__ */
Note: See TracBrowser for help on using the repository browser.