#include <hierarchical_channel.h>
Public Types | |
typedef std::set< std::pair < std::list< SgVariableSymbol * > , std::list< SgVariableSymbol * > > > | PathMappingType |
enum | Type { CThreadType, ChannelType, ChannelInstanceType, ClassType, DefinitionType, EventType, FunctionType, HierarchicalChannelType, HierarchicalChannelInstanceType, InOutPortType, InPortType, InstanceType, InterfaceType, MethodType, ModuleType, ModuleInstanceType, ObjectType, OutPortType, PortType, PrimitiveChannelType, PrimitiveChannelInstanceType, ThreadType, VariableType, SocketType, InitiatorSocketType, TargetSocketType } |
We are using these enums to identify type type of and instance or definition during traversal. More... | |
Public Member Functions | |
HierarchicalChannel (SgClassDefinition *ast_node) | |
Default constructor. More... | |
void | print_hierarchical_channel_definition () |
std::list< Interface * > | get_interfaces () |
Returns all implemented interfaces. More... | |
virtual void | initialize_functions () |
This function searches for all functions, SC_THREADS, SC_CTHREADS, and SC_METHODS in the module definition. The corresponding variable vectors will be used. More... | |
void | initialize_socket_registration () |
This function searches for b_transport registration or dmi registration in the module definition. The registered function definition will be stored in corresponding Socket. More... | |
void | print_module_definition () |
Prints the complete module design into the terminal. More... | |
void | print_hierarchy (unsigned indent_level=0) |
Prints the hierarchy. Roots is this definition. More... | |
std::string | get_qualified_type_name () |
This function returns the qualified type name of the module. More... | |
std::string | get_mangled_type_name () |
This function returns the manged type name of the module. More... | |
void | initialize_variables () |
This function searches for all variable declarations in the module definition. The corresponding variable vectors will be used. More... | |
SgFunctionDefinition * | get_before_end_of_elaboration_definition () |
This function return a pointer to the definition of the function before_end_of_elaboration. More... | |
Variable * | find_variable (SgVariableDefinition *var_def) |
Find a port by it's ast variable definition. More... | |
Port * | find_port (SgVariableDefinition *var_def) |
Find a port by it's ast variable definition. More... | |
Event * | find_event (SgVariableDefinition *var_def) |
Find an event by it's ast variable definition. More... | |
EventAndList * | find_event_and_list (SgVariableDefinition *var_def) |
Find an event by it's ast variable definition. More... | |
EventOrList * | find_event_or_list (SgVariableDefinition *var_def) |
Find an event by it's ast variable definition. More... | |
ModuleInstance * | find_module (SgVariableDefinition *var_def) |
Find an module by it's ast variable definition. More... | |
PrimitiveChannelInstance * | find_prim_channel (SgVariableDefinition *var_def) |
find a prim channel by it's ast variable definition More... | |
HierarchicalChannelInstance * | find_hier_channel (SgVariableDefinition *var_def) |
find a hier channel by it's ast variable definition More... | |
Instance * | find_instance (SgVariableDefinition *var_def) |
find a hier channel/module/ prim channel by it's ast variable definition More... | |
Socket * | find_socket (SgVariableDefinition *var_def) |
TargetSocket * | find_target_socket (SgVariableDefinition *var_def) |
find a target socket by it's ast variable definition More... | |
InitiatorSocket * | find_initiator_socket (SgVariableDefinition *var_def) |
find an initiator socket by it's ast variable definition More... | |
SgClassDefinition * | get_ast_node () |
Returns the ast definition of the class. More... | |
std::string | get_name () |
returns the name of the module definition More... | |
virtual std::string | get_ast_type_name () |
Returns the name of the module type. More... | |
void | initialize_mapping () |
This function analyzes the mapping between a module/channel definition and its children. More... | |
void | analyze_port_mapping (Module *parent_module, ModuleInstance *sub_module_instance, Port *port) |
This is a helper function for internal use only. More... | |
void | analyze_port_mapping_style3 (Module *parent_module, ModuleInstance *sub_module_instance, Port *port) |
This is a helper function for internal use only. More... | |
void | analyze_socket_mapping (Module *parent_module, ModuleInstance *sub_module_instance, Socket *socket) |
This is a helper function for internal use only. More... | |
void | analyze_general_mapping () |
This is a helper function for internal use only. More... | |
bool | has_module_pointers () |
This functions returns true if the class has module member which is declared as a pointer. More... | |
bool | has_channel_pointers () |
This functions returns true if the class has channel member which is declared as a pointer. More... | |
virtual SgType * | get_ast_type () |
Returns the type of the ast node. More... | |
bool | has_source_location () |
Determines if a ast node has an associated ast node. More... | |
std::string | get_file_name () |
Get the name of the file where the declaration is located. More... | |
int | get_line_number () |
Get the line number of the instance. More... | |
int | get_position_in_line () |
Get the position of the in declaration in the corresponding line In other words the column in the line. More... | |
Public Attributes | |
int | instance_counter_ |
This variable counts how many instances of this given type exsist in the desgin. More... | |
ThreadVector | threads_ |
Vector of threads which are defined in this module. More... | |
CThreadVector | cthreads_ |
Vector of cthreads which are defined in this module. More... | |
MethodVector | methods_ |
Vector of methods which are defined in this module. More... | |
ResetSignalVector | reset_signals_ |
Vector of reset signals which are registered in this module. More... | |
ResetSignalVector | async_reset_signals_ |
Vector of async reset signals which are registered in this module. More... | |
std::list< Instance * > | instances_ |
EventVector | events_ |
Vector of events which are defined in this module. More... | |
EventAndListVector | event_and_lists_ |
Vector of event and lists which are defined in this module. More... | |
EventOrListVector | event_or_lists_ |
Vector of event or lists which are defined in this module. More... | |
VariableVector | variables_ |
Vector of C++ builtin variables that are declared in the module. More... | |
InPortVector | inports_ |
Vector of inports which are defined in this module. More... | |
InOutPortVector | inoutports_ |
Vector of inoutports which are defined in this module. More... | |
OutPortVector | outports_ |
Vector of outports which are defined in this module. More... | |
InitiatorSocketVector | initiatorsockets_ |
Vector of initiator sockets which are defined in this module. More... | |
TargetSocketVector | targetsockets_ |
Vector of targets sockets which are defined in this module. More... | |
PrimitiveChannelInstanceVector | sub_prim_channel_ |
Vector of primitive channel instances which are declared in this module. More... | |
HierarchicalChannelInstanceVector | sub_hier_channel_ |
Vector of hierarchical channel instances which are declared in this module. More... | |
ModuleInstanceVector | sub_modules_ |
Vector of module instances which are declared in this module. More... | |
FunctionVector | functions_ |
Vector of functions which are defined in this module. More... | |
PathMappingType | path_mappings |
bool | is_used_ |
Type | type_ |
SgNode * | ast_node_ |
SgType * | ast_type_pointer_ |
Private Member Functions | |
HierarchicalChannel (const HierarchicalChannel &hcd) | |
Disabled copy constructor. More... | |
|
inherited |
|
inherited |
We are using these enums to identify type type of and instance or definition during traversal.
|
explicit |
Default constructor.
|
private |
Disabled copy constructor.
|
inherited |
This is a helper function for internal use only.
|
inherited |
This is a helper function for internal use only.
|
inherited |
This is a helper function for internal use only.
|
inherited |
This is a helper function for internal use only.
|
inherited |
Find an event by it's ast variable definition.
|
inherited |
Find an event by it's ast variable definition.
|
inherited |
Find an event by it's ast variable definition.
|
inherited |
find a hier channel by it's ast variable definition
|
inherited |
find an initiator socket by it's ast variable definition
|
inherited |
find a hier channel/module/ prim channel by it's ast variable definition
|
inherited |
Find an module by it's ast variable definition.
|
inherited |
Find a port by it's ast variable definition.
|
inherited |
find a prim channel by it's ast variable definition
|
inherited |
|
inherited |
find a target socket by it's ast variable definition
|
inherited |
Find a port by it's ast variable definition.
|
virtualinherited |
Returns the ast definition of the class.
Reimplemented from risc::Definition.
|
virtualinherited |
Returns the type of the ast node.
|
virtualinherited |
Returns the name of the module type.
Reimplemented from risc::Definition.
Reimplemented in risc::Interface.
|
inherited |
This function return a pointer to the definition of the function before_end_of_elaboration.
|
inherited |
Get the name of the file where the declaration is located.
std::list< risc::Interface * > risc::HierarchicalChannel::get_interfaces | ( | ) |
Returns all implemented interfaces.
|
inherited |
Get the line number of the instance.
|
inherited |
This function returns the manged type name of the module.
|
virtualinherited |
returns the name of the module definition
Reimplemented from risc::Definition.
|
inherited |
Get the position of the in declaration in the corresponding line In other words the column in the line.
|
inherited |
This function returns the qualified type name of the module.
|
inherited |
This functions returns true if the class has channel member which is declared as a pointer.
|
inherited |
This functions returns true if the class has module member which is declared as a pointer.
|
inherited |
Determines if a ast node has an associated ast node.
|
virtualinherited |
This function searches for all functions, SC_THREADS, SC_CTHREADS, and SC_METHODS in the module definition. The corresponding variable vectors will be used.
Reimplemented from risc::Class.
|
inherited |
This function analyzes the mapping between a module/channel definition and its children.
|
inherited |
This function searches for b_transport registration or dmi registration in the module definition. The registered function definition will be stored in corresponding Socket.
|
inherited |
This function searches for all variable declarations in the module definition. The corresponding variable vectors will be used.
void risc::HierarchicalChannel::print_hierarchical_channel_definition | ( | ) |
|
inherited |
Prints the hierarchy. Roots is this definition.
|
inherited |
Prints the complete module design into the terminal.
|
inherited |
|
inherited |
|
inherited |
Vector of async reset signals which are registered in this module.
|
inherited |
Vector of cthreads which are defined in this module.
|
inherited |
Vector of event and lists which are defined in this module.
|
inherited |
Vector of event or lists which are defined in this module.
|
inherited |
Vector of events which are defined in this module.
|
inherited |
Vector of functions which are defined in this module.
|
inherited |
Vector of initiator sockets which are defined in this module.
|
inherited |
Vector of inoutports which are defined in this module.
|
inherited |
Vector of inports which are defined in this module.
int risc::HierarchicalChannel::instance_counter_ |
This variable counts how many instances of this given type exsist in the desgin.
|
inherited |
This container stores all instances of the module/hierachical channel instances
|
inherited |
|
inherited |
Vector of methods which are defined in this module.
|
inherited |
Vector of outports which are defined in this module.
|
inherited |
|
inherited |
Vector of reset signals which are registered in this module.
|
inherited |
Vector of hierarchical channel instances which are declared in this module.
|
inherited |
Vector of module instances which are declared in this module.
|
inherited |
Vector of primitive channel instances which are declared in this module.
|
inherited |
Vector of targets sockets which are defined in this module.
|
inherited |
Vector of threads which are defined in this module.
|
inherited |
|
inherited |
Vector of C++ builtin variables that are declared in the module.