source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/src/Multiplier.cpp @ 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: 2.4 KB
Line 
1/*
2 * $Id: Multiplier.cpp 112 2009-03-18 22:36:26Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Generic/Multiplier/include/Multiplier.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace generic {
13namespace multiplier {
14
15
16#undef  FUNCTION
17#define FUNCTION "Multiplier::Multiplier"
18  Multiplier::Multiplier
19  (
20#ifdef SYSTEMC
21   sc_module_name name,
22#else
23   string name,
24#endif
25#ifdef STATISTICS
26   morpheo::behavioural::Parameters_Statistics * param_statistics,
27#endif
28   morpheo::behavioural::generic::multiplier::Parameters * param,
29   morpheo::behavioural::Tusage_t usage
30   ):
31    _name              (name)
32    ,_param            (param)
33    ,_usage            (usage)
34  {
35    log_begin(Multiplier,FUNCTION);
36
37    usage_environment(_usage);
38
39    log_printf(INFO,Multiplier,FUNCTION,_("<%s> : Allocation"),_name.c_str());
40
41    allocation (
42#ifdef STATISTICS
43                param_statistics
44#endif
45                );
46
47#ifdef STATISTICS
48    if (usage_is_set(_usage,USE_STATISTICS))
49      { 
50        log_printf(INFO,Multiplier,FUNCTION,_("<%s> : Allocation of statistics"),_name.c_str());
51
52        statistics_allocation(param_statistics);
53      }
54#endif
55
56#ifdef VHDL
57    if (usage_is_set(_usage,USE_VHDL))
58      {
59        // generate the vhdl
60        log_printf(INFO,Multiplier,FUNCTION,_("<%s> : Generate the vhdl"),_name.c_str());
61       
62        vhdl();
63      }
64#endif
65
66#ifdef SYSTEMC
67    if (usage_is_set(_usage,USE_SYSTEMC))
68      {
69        log_printf(INFO,Multiplier,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
70
71        SC_METHOD (transition);
72        dont_initialize ();
73        sensitive << (*(in_CLOCK)).pos();
74       
75# ifdef SYSTEMCASS_SPECIFIC
76        // List dependency information
77# endif   
78
79//      log_printf(INFO,Multiplier,FUNCTION,_("<%s> : Method - genMoore"),_name.c_str());
80
81//      SC_METHOD (genMoore);
82//      dont_initialize ();
83//      sensitive << (*(in_CLOCK)).neg(); // need internal register
84       
85// # ifdef SYSTEMCASS_SPECIFIC
86//      // List dependency information
87// # endif   
88       
89#endif
90      }
91    log_end(Multiplier,FUNCTION);
92  };
93   
94#undef  FUNCTION
95#define FUNCTION "Multiplier::~Multiplier"
96  Multiplier::~Multiplier (void)
97  {
98    log_begin(Multiplier,FUNCTION);
99
100#ifdef STATISTICS
101    if (usage_is_set(_usage,USE_STATISTICS))
102      {
103        statistics_deallocation();
104      }
105#endif
106
107    log_printf(INFO,Multiplier,FUNCTION,_("<%s> : Deallocation"),_name.c_str());
108    deallocation ();
109
110    log_end(Multiplier,FUNCTION);
111  };
112
113}; // end namespace multiplier
114}; // end namespace generic
115
116}; // end namespace behavioural
117}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.