Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.deps	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.deps	(revision 75)
@@ -42,5 +42,5 @@
 #-----[ Rules ]--------------------------------------------
 
-#.NOTPARALLEL			: Register_unit_library Register_unit_library_clean	
+.NOTPARALLEL			: Register_unit_library Register_unit_library_clean	
 
 Register_unit_library		: $(Register_unit_DEPENDENCIES)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/VERSION	(revision 74)
+++ 	(revision )
@@ -1,4 +1,0 @@
-v0.6
-
-0.5 modif vhdl_port et vhdl_testbench_port -> ajout d'une macro
-0.6 ajout de la documentation
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h	(revision 75)
@@ -50,9 +50,9 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
+  public :        std::string   msg_error  (void);
 
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters & x);
+  public :        std::string   print      (uint32_t depth);
+  public : friend std::ostream& operator<< (std::ostream& output_stream,
+					    morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 75)
@@ -20,5 +20,5 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h"
 #ifdef STATISTICS
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #include "Behavioural/include/Component.h"
@@ -27,6 +27,4 @@
 #endif
 #include "Behavioural/include/Usage.h"
-
-using namespace std;
 
 namespace morpheo {
@@ -47,14 +45,10 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string       _name;
+  protected : const std::string       _name;
   protected : const Parameters * _param;
   private   : const Tusage_t     _usage;
 
-//#ifdef STATISTICS
-//  protected : const morpheo::behavioural::Parameters_Statistics * _param_statistics;
-//#endif
-
-#ifdef STATISTICS
-  private   : Statistics                     * _stat;
+#ifdef STATISTICS
+  public    : Stat                           * _stat;
 #endif
 
@@ -169,5 +163,5 @@
    sc_module_name                                name,
 #else					       
-   string                                        name,
+   std::string                                        name,
 #endif					       
 #ifdef STATISTICS
@@ -183,5 +177,4 @@
 					       
 #ifdef SYSTEMC				       
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void     transition                      (void);
   public  : void     genMealy_gpr_read               (void);
@@ -199,9 +192,8 @@
   public  : void     genMealy_insert                 (void);
   public  : void     genMealy_retire                 (void);
-
-//#endif
 #endif					       
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
+
+#ifdef STATISTICS
+  public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
 #endif
 					       
@@ -212,6 +204,6 @@
 #endif					       
 					       
-#ifdef VHDL_TESTBENCH			       
-  private : void     vhdl_testbench_transition (void);
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+  private : void     end_cycle                 (void);
 #endif
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,61 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_register_unit_register_unit_glue_Statistics_h
-#define morpheo_behavioural_core_multi_execute_loop_execute_loop_register_unit_register_unit_glue_Statistics_h
-
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Common/include/Debug.h"
-#include "Behavioural/include/Statistics.h"
-#include "Behavioural/include/Parameters_Statistics.h"
-//#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-  class Statistics : public morpheo::behavioural::Statistics
-  {
-    // -----[ fields ]----------------------------------------------------
-  private  : const Parameters                                 * _parameters;
-
-    // -----[ methods ]---------------------------------------------------
-  public   : Statistics  (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  );
-//public   : Statistics  (Statistics & stat);
-  public   : ~Statistics () ;
-    
-  public   : string   print_body (uint32_t depth);
-  public   : string   print      (uint32_t depth);
-  public   : void     add        ();
-
-  public   : friend ostream& operator<< (ostream& output_stream,
-					 const Statistics & x);
-
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,5 +9,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -22,9 +21,9 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit_Glue::msg_error"
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     return msg;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -21,5 +20,5 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit_Glue::print"
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
@@ -56,6 +55,6 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit_Glue::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters & x)
   {
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 75)
@@ -24,5 +24,5 @@
    sc_module_name name,
 #else
-   string name,
+   std::string name,
 #endif
 #ifdef STATISTICS
@@ -35,7 +35,4 @@
     ,_param            (param)
     ,_usage            (usage)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
@@ -48,7 +45,5 @@
 
     // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -549,5 +544,4 @@
     log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
 
-    _stat->generate_file(statistics(0));
     delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 75)
@@ -22,6 +22,4 @@
   void Register_unit_Glue::allocation (void)
   {
-    string rename;
-
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_end_cycle.cpp	(revision 75)
@@ -0,0 +1,46 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace register_unit {
+namespace register_unit_glue {
+
+#undef  FUNCTION
+#define FUNCTION "Register_unit_Glue::end_cycle"
+void Register_unit_Glue::end_cycle ()
+  {
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
+
+#ifdef STATISTICS
+    _stat->end_cycle();
+#endif    
+
+#ifdef VHDL_TESTBENCH
+    // Evaluation before read the ouput signal
+//  sc_start(0);
+    _interfaces->testbench();
+#endif
+
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
+  };
+
+}; // end namespace register_unit_glue
+}; // end namespace register_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::statistics"
-  string Register_unit_Glue::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-
-    return txt;
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,40 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace register_unit {
+namespace register_unit_glue {
+
+#undef  FUNCTION
+#define FUNCTION "Register_unit_Glue::statistics_declaration"
+  void Register_unit_Glue::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+                      "Register_unit_Glue",
+                      param_statistics);
+    
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
+  };
+
+}; // end namespace register_unit_glue
+}; // end namespace register_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_transition.cpp	(revision 75)
@@ -1,4 +1,3 @@
 #ifdef SYSTEMC
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 /*
  * $Id$
@@ -25,10 +24,6 @@
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
 
-#ifdef STATISTICS
-    _stat->add();
-#endif    
-
-#ifdef VHDL_TESTBENCH
-    vhdl_testbench_transition ();
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    end_cycle();
 #endif
 
@@ -45,3 +40,2 @@
 }; // end namespace morpheo              
 #endif
-//#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::vhdl_testbench_transition"
-  void Register_unit_Glue::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,50 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::Statistics"
-  Statistics::Statistics (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-  };
-  
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::~Statistics"
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::add"
-  void Statistics::add ()
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,63 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::print"
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<register_unit_glue name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</register_unit_glue>" << endl;
-    
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Statistics & x)
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-
-    output_stream << x.print(0);
-
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-
-    return output_stream;
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,47 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-namespace register_unit_glue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit_Glue::print_body"
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-}; // end namespace register_unit_glue
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/VERSION	(revision 74)
+++ 	(revision )
@@ -1,4 +1,0 @@
-v0.6
-
-0.5 modif vhdl_port et vhdl_testbench_port -> ajout d'une macro
-0.6 ajout de la documentation
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h	(revision 75)
@@ -79,9 +79,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Parameters & x);
+  public :        std::string   msg_error  (void);
+  public :        std::string   print      (uint32_t depth);
+  public : friend std::ostream& operator<< (std::ostream& output_stream,
+					    morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 75)
@@ -24,5 +24,5 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h"
 #ifdef STATISTICS
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #include "Behavioural/include/Component.h"
@@ -32,9 +32,6 @@
 #include "Behavioural/include/Usage.h"
 
-using namespace std;
-
 namespace morpheo {
 namespace behavioural {
-
 namespace core {
 namespace multi_execute_loop {
@@ -50,14 +47,10 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string       _name;
+  protected : const std::string       _name;
   protected : const Parameters * _param;
   private   : const Tusage_t     _usage;
 
 #ifdef STATISTICS
-  protected : morpheo::behavioural::Parameters_Statistics * _param_statistics;
-#endif
-
-#ifdef STATISTICS
-  private   : Statistics                     * _stat;
+  public    : Stat                           * _stat;
 #endif
 
@@ -143,5 +136,5 @@
    sc_module_name                                name,
 #else					       
-   string                                        name,
+   std::string                                        name,
 #endif					       
 #ifdef STATISTICS
@@ -153,5 +146,11 @@
   public  :          ~Register_unit             (void);
 					       
-  private : void     allocation                (void);
+  private : void     allocation                (
+#ifdef STATISTICS
+						morpheo::behavioural::Parameters_Statistics * param_statistics
+#else
+						void
+#endif
+						);
   private : void     deallocation              (void);
 					       
@@ -161,7 +160,4 @@
 //#endif
 #endif					       
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
-#endif
 					       
 #if VHDL				       
@@ -171,8 +167,12 @@
 #endif					       
 					       
-#ifdef VHDL_TESTBENCH			       
-  private : void     vhdl_testbench_transition (void);
+#ifdef STATISTICS
+  public  : void        statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
+#endif
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+  private : void        end_cycle                 (void);
 #endif
   };
+
 
 }; // end namespace register_unit
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,59 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_register_unit_Statistics_h
-#define morpheo_behavioural_core_multi_execute_loop_execute_loop_register_unit_Statistics_h
-
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Common/include/Debug.h"
-#include "Behavioural/include/Statistics.h"
-#include "Behavioural/include/Parameters_Statistics.h"
-//#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-  class Statistics : public morpheo::behavioural::Statistics
-  {
-    // -----[ fields ]----------------------------------------------------
-  private  : const Parameters                                 * _parameters;
-
-    // -----[ methods ]---------------------------------------------------
-  public   : Statistics  (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  );
-//public   : Statistics  (Statistics & stat);
-  public   : ~Statistics () ;
-    
-  public   : string   print_body (uint32_t depth);
-  public   : string   print      (uint32_t depth);
-  public   : void     add        ();
-
-  public   : friend ostream& operator<< (ostream& output_stream,
-					 const Statistics & x);
-
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_msg_error.cpp	(revision 75)
@@ -6,8 +6,5 @@
  */
 
-#include "Behavioural/include/Types.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h"
-#include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -21,9 +18,9 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit::msg_error"
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     return msg;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -20,5 +19,5 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit::print"
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
@@ -73,6 +72,6 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Parameters & x)
   {
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 75)
@@ -34,12 +34,13 @@
     ,_param            (param)
     ,_usage            (usage)
-#ifdef STATISTICS
-    ,_param_statistics (param_statistics)
-#endif
   {
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
 
     log_printf(INFO,Register_unit,FUNCTION,"Allocation");
-    allocation ();
+    allocation (
+#ifdef STATISTICS
+		param_statistics
+#endif
+		);
 
 #ifdef STATISTICS
@@ -47,7 +48,5 @@
 
     // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -84,6 +83,4 @@
 #ifdef STATISTICS
     log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file");
-
-    _stat->generate_file(statistics(0));
     delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 75)
@@ -19,8 +19,12 @@
 #undef  FUNCTION
 #define FUNCTION "Register_unit::allocation"
-  void Register_unit::allocation (void)
+  void Register_unit::allocation (
+#ifdef STATISTICS
+				  morpheo::behavioural::Parameters_Statistics * param_statistics
+#else
+				  void
+#endif
+				  )
   {
-    string rename, name_component;
-
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
 
@@ -249,5 +253,5 @@
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
-    string name;
+    std::string name;
      
     component_gpr        = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
@@ -263,5 +267,5 @@
 	  (name.c_str()
 #ifdef STATISTICS
-	   ,_param_statistics
+	   ,param_statistics
 #endif
 	   ,_param->_param_gpr [i]
@@ -283,5 +287,5 @@
 	  (name.c_str()
 #ifdef STATISTICS
-	   ,_param_statistics
+	   ,param_statistics
 #endif
 	   ,_param->_param_gpr_status [i]
@@ -303,5 +307,5 @@
 	  (name.c_str()
 #ifdef STATISTICS
-	   ,_param_statistics
+	   ,param_statistics
 #endif
 	   ,_param->_param_spr [i]
@@ -322,5 +326,5 @@
 	  (name.c_str()
 #ifdef STATISTICS
-	   ,_param_statistics
+	   ,param_statistics
 #endif
 	   ,_param->_param_spr_status [i]
@@ -343,5 +347,5 @@
       (name.c_str()
 #ifdef STATISTICS
-       ,_param_statistics
+       ,param_statistics
 #endif
        ,_param->_param_glue
@@ -358,10 +362,11 @@
      
     // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-
+    std::string name_component;
+    
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
       {
 	name_component = _name+"_gpr_"+toString(i);
 	
-	cout << "Instance : " << name_component << endl;
+	std::cout << "Instance : " << name_component << std::endl;
 	
 #ifdef POSITION
@@ -420,5 +425,5 @@
 	  name_component = _name+"_gpr_status_"+toString(i);
 	  
-	  cout << "Instance : " << name_component << endl;
+	  std::cout << "Instance : " << name_component << std::endl;
 	  
 #ifdef POSITION
@@ -544,5 +549,5 @@
 	name_component = _name+"_spr_"+toString(i);
 	
-	cout << "Instance : " << name_component << endl;
+	std::cout << "Instance : " << name_component << std::endl;
 	
 #ifdef POSITION
@@ -601,5 +606,5 @@
 	  name_component = _name+"_spr_status_"+toString(i);
 	  
-	  cout << "Instance : " << name_component << endl;
+	  std::cout << "Instance : " << name_component << std::endl;
 	  
 #ifdef POSITION
@@ -724,5 +729,5 @@
       name_component = _name+"_glue";
      
-      cout << "Instance : " << name_component << endl;
+      std::cout << "Instance : " << name_component << std::endl;
      
 #ifdef POSITION
@@ -1034,5 +1039,5 @@
 #endif
 
-//     cout << *_component << endl;
+//     std::cout << *_component << std::endl;
 
     log_printf(FUNC,Register_unit,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_end_cycle.cpp	(revision 75)
@@ -0,0 +1,44 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace register_unit {
+
+#undef  FUNCTION
+#define FUNCTION "Register_unit::end_cycle"
+void Register_unit::end_cycle ()
+  {
+    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
+
+#ifdef STATISTICS
+    _stat->end_cycle();
+#endif    
+
+#ifdef VHDL_TESTBENCH
+    // Evaluation before read the ouput signal
+//  sc_start(0);
+    _interfaces->testbench();
+#endif
+
+    log_printf(FUNC,Register_unit,FUNCTION,"End");
+  };
+
+}; // end namespace register_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::statistics"
-  string Register_unit::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-
-    return txt;
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,47 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace register_unit {
+
+#undef  FUNCTION
+#define FUNCTION "Register_unit::statistics_declaration"
+  void Register_unit::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "Register_unit",
+		      param_statistics);
+
+    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+      {
+	_stat->add_stat(component_gpr       [i]->_stat);
+	_stat->add_stat(component_gpr_status[i]->_stat);
+	_stat->add_stat(component_spr       [i]->_stat);
+	_stat->add_stat(component_spr_status[i]->_stat);
+      }
+    _stat->add_stat(component_glue->_stat);
+
+    log_printf(FUNC,Register_unit,FUNCTION,"End");
+  };
+
+}; // end namespace register_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_transition.cpp	(revision 75)
@@ -24,10 +24,6 @@
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
 
-#ifdef STATISTICS
-    _stat->add();
-#endif    
-
-#ifdef VHDL_TESTBENCH
-    vhdl_testbench_transition ();
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    end_cycle();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,40 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::vhdl_testbench_transition"
-  void Register_unit::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,48 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::Statistics"
-  Statistics::Statistics (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-  };
-  
-#undef  FUNCTION
-#define FUNCTION "Register_unit::~Statistics"
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,37 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::add"
-  void Statistics::add ()
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,61 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::print"
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<register_unit name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</register_unit>" << endl;
-    
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Statistics & x)
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-
-    output_stream << x.print(0);
-
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-
-    return output_stream;
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,45 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace register_unit {
-
-
-#undef  FUNCTION
-#define FUNCTION "Register_unit::print_body"
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-}; // end namespace register_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
