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