source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp @ 123

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

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

  • Property svn:keywords set to Id
File size: 2.6 KB
Line 
1/*
2 * $Id: Register_unit.cpp 123 2009-06-08 20:43:30Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace register_unit {
16
17
18#undef  FUNCTION
19#define FUNCTION "Register_unit::Register_unit"
20  Register_unit::Register_unit
21  (
22#ifdef SYSTEMC
23   sc_module_name name,
24#else
25   string name,
26#endif
27#ifdef STATISTICS
28   morpheo::behavioural::Parameters_Statistics * param_statistics,
29#endif
30   morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Parameters * param,
31   morpheo::behavioural::Tusage_t usage
32   ):
33    _name              (name)
34    ,_param            (param)
35    ,_usage            (usage)
36  {
37    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
38
39// #if DEBUG_Register_unit == true
40//     log_printf(INFO,Register_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
41
42//     std::cout << *param << std::endl;
43// #endif   
44
45    log_printf(INFO,Register_unit,FUNCTION,"Allocation");
46    allocation (
47#ifdef STATISTICS
48                param_statistics
49#endif
50                );
51
52#ifdef STATISTICS
53    if (usage_is_set(_usage,USE_STATISTICS))
54      { 
55        log_printf(INFO,Register_unit,FUNCTION,_("<%s> : Allocation of statistics"),_name.c_str());
56
57        statistics_declaration(param_statistics);
58      }
59#endif
60
61#ifdef VHDL
62    if (usage_is_set(_usage,USE_VHDL))
63      {
64        // generate the vhdl
65        log_printf(INFO,Register_unit,FUNCTION,"Generate the vhdl");
66       
67        vhdl();
68      }
69#endif
70
71#ifdef SYSTEMC
72    if (usage_is_set(_usage,USE_SYSTEMC))
73      {
74//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
75    log_printf(INFO,Register_unit,FUNCTION,"Method - transition");
76
77    SC_METHOD (transition);
78    dont_initialize ();
79    sensitive_pos << *(in_CLOCK);
80//#endif
81
82#ifdef SYSTEMCASS_SPECIFIC
83    // List dependency information
84#endif   
85      }
86#endif
87    log_printf(FUNC,Register_unit,FUNCTION,"End");
88  };
89 
90#undef  FUNCTION
91#define FUNCTION "Register_unit::~Register_unit"
92  Register_unit::~Register_unit (void)
93  {
94    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
95
96#ifdef STATISTICS
97    if (usage_is_set(_usage,USE_STATISTICS))
98      { 
99        log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file");
100        delete _stat;
101      }
102#endif
103
104    log_printf(INFO,Register_unit,FUNCTION,"Deallocation");
105    deallocation ();
106
107    log_printf(FUNC,Register_unit,FUNCTION,"End");
108  };
109
110}; // end namespace register_unit
111}; // end namespace execute_loop
112}; // end namespace multi_execute_loop
113}; // end namespace core
114
115}; // end namespace behavioural
116}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.