source: sources/src/signal_dependency.h @ 28

Last change on this file since 28 was 1, checked in by buchmann, 17 years ago

Initial import from CVS repository

File size: 1.8 KB
Line 
1/*------------------------------------------------------------\
2|                                                             |
3| Tool    :                  systemcass                       |
4|                                                             |
5| File    :                  signal_dependancy.h              |
6|                                                             |
7| Author  :                 Buchmann Richard                  |
8|                                                             |
9| Date    :                   09_07_2004                      |
10|                                                             |
11\------------------------------------------------------------*/
12#ifndef SIGNAL_DEPENDENCY_H
13#define SIGNAL_DEPENDENCY_H
14
15#include <set>
16#include "sc_fwd.h"
17#include "entity.h" // equi_t
18#include "graph.h"
19//#include "sc_port.h"
20#include "port_dependency.h"
21
22namespace sc_core {
23
24// Signal Dependency Graph
25struct SignalDependency {
26        const method_process_t *method;
27        const equi_t           *source;
28        const equi_t           *destination;
29        bool operator < (const SignalDependency &a) const;
30//      friend int operator < (const SignalDependency &a, const SignalDependency &b);
31};
32
33typedef std::set<SignalDependency> SignalDependencyGraph;
34
35// Convert Port Dependency Graph to Signal Dependency Graph
36extern SignalDependencyGraph* MakeSignalDependencyGraph (const PortDependencyGraph& = get_port_dependency_graph ());
37
38// Checking
39extern bool Check (const SignalDependencyGraph&);
40extern bool Check (const method_process_list_t&, const SignalDependencyGraph&);
41
42// Dump
43extern bool SignalDependencyGraph2dot (const char *name, const SignalDependencyGraph&);
44extern bool SignalDependencyOrder2txt (const char *name, const strong_component_list_t&);
45
46} // end of sc_core namespace
47
48#endif
49
Note: See TracBrowser for help on using the repository browser.