source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit.cpp @ 138

Last change on this file since 138 was 138, checked in by rosiere, 14 years ago

1) add counters_t type for interface
2) fix in check load in load_store_unit
3) add parameters (but not yet implemented)
4) change environment and add script (distcc_env.sh ...)
5) add warning if an unser change rename flag with l.mtspr instruction
6) ...

  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1/*
2 * $Id: Ifetch_unit.cpp 138 2010-05-12 17:34:01Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/include/Ifetch_unit.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_front_end {
14namespace front_end {
15namespace ifetch_unit {
16
17
18#undef  FUNCTION
19#define FUNCTION "Ifetch_unit::Ifetch_unit"
20  Ifetch_unit::Ifetch_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::ifetch_unit::Parameters * param,
31   morpheo::behavioural::Tusage_t usage
32   ):
33    _name              (name)
34    ,_param            (param)
35    ,_usage            (usage)
36  {
37    log_printf(FUNC,Ifetch_unit,FUNCTION,"Begin");
38
39// #if DEBUG_Ifetch_unit == true
40//     log_printf(INFO,Ifetch_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
41
42//     std::cout << *param << std::endl;
43// #endif   
44
45    log_printf(INFO,Ifetch_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,Ifetch_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,Ifetch_unit,FUNCTION,"Generate the vhdl");
67       
68        vhdl();
69      }
70#endif
71
72#if defined(SYSTEMC) and (defined(STATISTICS) or defined(VHDL_TESTBENCH))
73    if (usage_is_set(_usage,USE_SYSTEMC))
74      {
75        log_printf(INFO,Ifetch_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    log_printf(FUNC,Ifetch_unit,FUNCTION,"End");
87  };
88   
89#undef  FUNCTION
90#define FUNCTION "Ifetch_unit::~Ifetch_unit"
91  Ifetch_unit::~Ifetch_unit (void)
92  {
93    log_printf(FUNC,Ifetch_unit,FUNCTION,"Begin");
94
95#ifdef STATISTICS
96    if (usage_is_set(_usage,USE_STATISTICS))
97      {
98        statistics_deallocation();
99      }
100#endif
101
102    log_printf(INFO,Ifetch_unit,FUNCTION,"Deallocation");
103    deallocation ();
104
105    log_printf(FUNC,Ifetch_unit,FUNCTION,"End");
106  };
107
108}; // end namespace ifetch_unit
109}; // end namespace front_end
110}; // end namespace multi_front_end
111}; // end namespace core
112
113}; // end namespace behavioural
114}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.