source: sources/src/sc_module.h @ 60

Last change on this file since 60 was 60, checked in by meunier, 8 years ago
  • Intégration des modifications de Clément, qui a intégré la version parallélisée de systemcass faite par Manuel.
File size: 2.6 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
14#ifndef __SC_MODULE_H__
15#define __SC_MODULE_H__
16
17#include <list>
18#include <set>
19#include <stack>
20
21#include "internal.h"
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// ----------------------------------------------------------------------------
51//  CLASS : method_process_t
52//
53//  Method process class.
54// ----------------------------------------------------------------------------
55
56class method_process_t {
57
58
59    public:
60    const char * name; // function name
61
62#ifdef DUMP_SCHEDULE_STATS
63    long long int number_of_calls;
64#endif
65
66    public:
67    // data
68    sc_module * module;
69    SC_ENTRY_FUNC func;
70    sensitivity_list_t sensitivity_list;
71    bool dont_initialize;
72    int omp_threadnum;
73
74    // constructors
75    method_process_t(const char * nm, SC_ENTRY_FUNC fn, sc_module & mod);
76
77    // methods
78    friend std::ostream& operator << (std::ostream &, const method_process_t &);
79
80    // accessors
81    bool is_combinational(void); 
82    bool is_transition(void);
83    bool is_genmoore(void);
84
85};
86
87
88} // end of namespace sc_core
89
90#endif /* __SC_MODULE_H__ */
91
92/*
93# Local Variables:
94# tab-width: 4;
95# c-basic-offset: 4;
96# c-file-offsets:((innamespace . 0)(inline-open . 0));
97# indent-tabs-mode: nil;
98# End:
99#
100# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
101*/
102
Note: See TracBrowser for help on using the repository browser.