1 #ifndef MODULE_H_INCLUDED_
2 #define MODULE_H_INCLUDED_
15 class HierarchicalChannelInstance;
21 class PrimitiveChannel;
22 class PrimitiveChannelInstance;
24 class VariableInstance;
26 typedef std::pair<Port*, SgBoolValExp*>
ResetSignal;
59 explicit Module(SgClassDefinition *ast_node);
67 explicit Module(SgClassDefinition *ast_node,
Type type);
std::pair< Port *, SgBoolValExp * > ResetSignal
Definition: cthread.h:15
std::vector< PrimitiveChannel * > PrimitiveChannelVector
Definition: design.h:44
std::vector< Module * > ModuleVector
Definition: design.h:42
ThreadVector threads_
Vector of threads which are defined in this module.
Definition: module.h:111
Module(SgClassDefinition *ast_node)
Creates an empty module definition. All the lists of instances and sub definitions are empty...
Definition: module.cpp:47
ResetSignalVector async_reset_signals_
Vector of async reset signals which are registered in this module.
Definition: module.h:131
CThreadVector cthreads_
Vector of cthreads which are defined in this module.
Definition: module.h:116
std::string get_mangled_type_name()
This function returns the manged type name of the module.
Definition: module.cpp:1264
std::vector< Function * > FunctionVector
Definition: class.h:37
std::vector< ModuleInstance * > ModuleInstanceVector
Definition: class.h:42
std::vector< Module * >::const_iterator ModuleVectorConstIter
Definition: module.h:33
MethodVector methods_
Vector of methods which are defined in this module.
Definition: module.h:121
std::vector< CThread * > CThreadVector
Definition: cthread.h:54
std::list< Instance * > instances_
Definition: module.h:155
virtual void initialize_functions()
This function searches for all functions, SC_THREADS, SC_CTHREADS, and SC_METHODS in the module defin...
Definition: module.cpp:290
std::vector< Thread * > ThreadVector
Definition: module.h:39
std::vector< Method * > MethodVector
Definition: method.h:43
std::vector< PrimitiveChannelInstance * > PrimitiveChannelInstanceVector
Definition: class.h:45
void print_module_definition()
Prints the complete module design into the terminal.
Definition: module.cpp:797
This class represents instances.
Definition: module.h:49
~Module()
Definition: module.cpp:66
std::vector< ResetSignal * > ResetSignalVector
Definition: cthread.h:22
std::vector< Module * >::iterator ModuleVectorIter
Definition: module.h:34
int instance_counter_
This variable counts how many instances of this given type exists in the design.
Definition: module.h:137
ResetSignalVector reset_signals_
Vector of reset signals which are registered in this module.
Definition: module.h:126
std::vector< HierarchicalChannelInstance * > HierarchicalChannelInstanceVector
Definition: class.h:39
std::string get_qualified_type_name()
This function returns the qualified type name of the module.
Definition: module.cpp:1256
Type
We are using these enums to identify type type of and instance or definition during traversal...
Definition: definition.h:20
std::vector< VariableInstance * > VariableInstanceVector
Definition: module.h:40
void initialize_socket_registration()
This function searches for b_transport registration or dmi registration in the module definition...
Definition: module.cpp:111
void print_hierarchy(unsigned indent_level=0)
Prints the hierarchy. Roots is this definition.
Definition: module.cpp:1178