source: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Usage.cpp @ 88

Last change on this file since 88 was 88, checked in by rosiere, 16 years ago

Almost complete design
with Test and test platform

File size: 3.8 KB
Line 
1#include "Behavioural/include/Usage.h"
2#include "Common/include/Debug.h"
3#include "Common/include/ErrorMorpheo.h"
4
5namespace morpheo {
6namespace behavioural {
7
8  Tusage_t usage_set         (Tusage_t usage, Tusage_t flag)
9  {
10    return  ( usage | flag);
11  }
12
13  Tusage_t usage_unset       (Tusage_t usage, Tusage_t flag)
14  {
15    return ~(~usage | flag);
16  } 
17
18  bool     usage_is_set      (Tusage_t usage, Tusage_t flag)
19  {
20    return ((usage & flag) != 0);
21  }
22#undef  FUNCTION
23#define FUNCTION "usage_environment"
24  void     usage_environment (Tusage_t usage)
25  {
26#ifndef SYSTEMC
27    if (usage_is_set(usage,USE_SYSTEMC))
28      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_SYSTEMC\", but the macro's compiler \"SYSTEMC\" is unset.\n"));
29#endif
30#ifndef VHDL
31    if (usage_is_set(usage,USE_VHDL))
32      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_VHDL\", but the macro's compiler \"VHDL\" is unset.\n"));
33#endif
34#ifndef VHDL_TESTBENCH
35    if (usage_is_set(usage,USE_VHDL_TESTBENCH))
36      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_VHDL_TESTBENCH\", but the macro's compiler \"VHDL_TESTBENCH\" is unset.\n"));
37#endif
38#ifndef VHDL_TESTBENCH_ASSERT
39    if (usage_is_set(usage,USE_VHDL_TESTBENCH_ASSERT))
40      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_VHDL_TESTBENCH_ASSERT\", but the macro's compiler \"VHDL_TESTBENCH_ASSERT\" is unset.\n"));
41#endif
42#ifndef POSITION
43    if (usage_is_set(usage,USE_POSITION))
44      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_POSITION\", but the macro's compiler \"POSITION\" is unset.\n"));
45#endif
46#ifndef STATISTICS
47    if (usage_is_set(usage,USE_STATISTICS))
48      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_STATISTICS\", but the macro's compiler \"STATISTICS\" is unset.\n"));
49#endif
50#ifndef INFORMATION
51    if (usage_is_set(usage,USE_INFORMATION))
52      throw ERRORMORPHEO(FUNCTION,_("Component use the flag \"USE_INFORMATION\", but the macro's compiler \"INFORMATION\" is unset.\n"));
53#endif
54
55#ifndef DEBUG
56#endif
57
58    if (usage_is_set(usage,USE_STATISTICS) and not usage_is_set(usage,USE_SYSTEMC))
59      throw ERRORMORPHEO(FUNCTION,_("Usage flags conflit : to use the statistics, you must set flag USE_SYSTEMC\n"));
60   
61    if (usage_is_set(usage,USE_INFORMATION) and not usage_is_set(usage,USE_STATISTICS))
62      throw ERRORMORPHEO(FUNCTION,_("Usage flags conflit : to use the information, you must set flag USE_STATISTICS\n"));
63   
64    if (usage_is_set(usage,USE_VHDL_TESTBENCH) and not usage_is_set(usage,USE_SYSTEMC))
65      throw ERRORMORPHEO(FUNCTION,_("Usage flags conflit : to use the vhdl's test bench, you must set flag USE_SYSTEMC\n"));
66   
67    if (usage_is_set(usage,USE_VHDL_TESTBENCH) and not usage_is_set(usage,USE_VHDL))
68      throw ERRORMORPHEO(FUNCTION,_("Usage flags conflit : to use the vhdl's test bench, you must set flag USE_VHDL\n"));
69   
70    if (usage_is_set(usage,USE_VHDL_TESTBENCH_ASSERT) and not usage_is_set(usage,USE_VHDL_TESTBENCH))
71      throw ERRORMORPHEO(FUNCTION,_("Usage flags conflit : to use an assert in vhdl's test bench, you must set flag USE_VHDL_TESTBENCH\n"));
72  }
73
74  Tusage_t usage_all (void)
75  {
76    Tusage_t usage = USE_NONE;
77
78#ifdef SYSTEMC
79    usage = usage_set(usage,USE_SYSTEMC);
80#endif
81#ifdef VHDL
82    usage = usage_set(usage,USE_VHDL);
83#endif
84#ifdef VHDL_TESTBENCH
85    usage = usage_set(usage,USE_VHDL_TESTBENCH);
86#endif
87#ifdef VHDL_TESTBENCH_ASSERT
88    usage = usage_set(usage,USE_VHDL_TESTBENCH_ASSERT);
89#endif
90#ifdef POSITION
91    usage = usage_set(usage,USE_POSITION);
92#endif
93#ifdef STATISTICS
94    usage = usage_set(usage,USE_STATISTICS);
95#endif
96#ifdef INFORMATION
97    usage = usage_set(usage,USE_INFORMATION);
98#endif
99    usage = usage_set(usage,USE_HEADER);
100#ifdef DEBUG
101#endif
102   
103    return usage;
104  }
105
106
107}; // end namespace behavioural
108}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.