source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Types.h @ 112

Last change on this file since 112 was 112, checked in by rosiere, 15 years ago

1) Stat_list : fix retire old and new register bug
2) Stat_list : remove read_counter and valid flag, because validation of destination is in retire step (not in commit step)
3) Model : add class Model (cf Morpheo.sim)
4) Allocation : alloc_interface_begin and alloc_interface_end to delete temporary array.
5) Script : add distexe.sh
6) Add Comparator, Multiplier, Divider. But this component are not implemented
7) Software : add Dhrystone

  • Property svn:keywords set to Id
File size: 3.3 KB
Line 
1#ifndef morpheo_behavioural_generic_comparator_Types_h
2#define morpheo_behavioural_generic_comparator_Types_h
3
4/*
5 * $Id: Types.h 112 2009-03-18 22:36:26Z rosiere $
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/include/Types.h"
12
13namespace morpheo {
14namespace behavioural {
15namespace generic {
16namespace comparator {
17
18typedef enum
19  {
20    COMPARATOR_EQUAL           ,
21    COMPARATOR_NOT_EQUAL       ,
22    COMPARATOR_GREATER         ,
23    COMPARATOR_GREATER_OR_EQUAL,
24    COMPARATOR_LESS            ,
25    COMPARATOR_LESS_OR_EQUAL
26  } Tcomparator_scheme_t;
27
28  typedef Tgeneral_data_t Tdata_t;
29
30}; // end namespace comparator
31}; // end namespace generic
32}; // end namespace behavioural
33
34  template<> inline std::string toString<morpheo::behavioural::generic::comparator::Tcomparator_scheme_t>(const morpheo::behavioural::generic::comparator::Tcomparator_scheme_t& x)
35  {
36    switch (x)
37      {
38      case morpheo::behavioural::generic::comparator::COMPARATOR_EQUAL            : return "equal"           ; break;
39      case morpheo::behavioural::generic::comparator::COMPARATOR_NOT_EQUAL        : return "not_equal"       ; break;
40      case morpheo::behavioural::generic::comparator::COMPARATOR_GREATER          : return "greater"         ; break;
41      case morpheo::behavioural::generic::comparator::COMPARATOR_GREATER_OR_EQUAL : return "greater_or_equal"; break;
42      case morpheo::behavioural::generic::comparator::COMPARATOR_LESS             : return "less"            ; break;
43      case morpheo::behavioural::generic::comparator::COMPARATOR_LESS_OR_EQUAL    : return "less_or_equal"   ; break;
44      default : return ""; break;
45      }
46  };
47
48  template<> inline morpheo::behavioural::generic::comparator::Tcomparator_scheme_t fromString<morpheo::behavioural::generic::comparator::Tcomparator_scheme_t>(const std::string& x)
49  {
50    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::generic::comparator::COMPARATOR_EQUAL))) == 0) or
51        (x.compare("equal") == 0))
52      return morpheo::behavioural::generic::comparator::COMPARATOR_EQUAL;
53
54    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::generic::comparator::COMPARATOR_NOT_EQUAL))) == 0) or
55        (x.compare("not_equal") == 0))
56      return morpheo::behavioural::generic::comparator::COMPARATOR_NOT_EQUAL;
57
58    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::generic::comparator::COMPARATOR_GREATER))) == 0) or
59        (x.compare("greater") == 0))
60      return morpheo::behavioural::generic::comparator::COMPARATOR_GREATER;
61
62    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::generic::comparator::COMPARATOR_GREATER_OR_EQUAL))) == 0) or
63        (x.compare("greater_or_equal") == 0))
64      return morpheo::behavioural::generic::comparator::COMPARATOR_GREATER_OR_EQUAL;
65
66    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::generic::comparator::COMPARATOR_LESS))) == 0) or
67        (x.compare("less") == 0))
68      return morpheo::behavioural::generic::comparator::COMPARATOR_LESS;
69
70    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::generic::comparator::COMPARATOR_LESS_OR_EQUAL))) == 0) or
71        (x.compare("less_or_equal") == 0))
72      return morpheo::behavioural::generic::comparator::COMPARATOR_LESS_OR_EQUAL;
73
74    throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
75  };
76
77
78}; // end namespace morpheo             
79
80#endif
Note: See TracBrowser for help on using the repository browser.