Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/VERSION	(revision 74)
+++ 	(revision )
@@ -1,1 +1,0 @@
-v0.2
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h	(revision 75)
@@ -27,6 +27,4 @@
 #include "Behavioural/include/Component.h"
 
-using namespace std;
-
 namespace morpheo {
 namespace behavioural {
@@ -41,10 +39,10 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string     _name;
+  protected : const std::string     _name;
 
   protected : const Parameters _param;
 
 #ifdef STATISTICS
-  private   : Stat                           * _stat;
+  public    : Stat                           * _stat;
 #endif
 
@@ -75,5 +73,5 @@
   public  :          Counter              (sc_module_name                              name,
 #else					       
-  public  :          Counter              (string                                      name,
+  public  :          Counter              (std::string                                 name,
 #endif					       
 #ifdef STATISTICS
@@ -96,5 +94,4 @@
 #ifdef STATISTICS
   public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
-  public  : string   statistics_print          (uint32_t depth);
 #endif
 					       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h	(revision 75)
@@ -32,9 +32,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::counter::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::generic::counter::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp	(revision 75)
@@ -17,6 +17,4 @@
   void Counter::allocation (void)
   {
-    string rename;
-
     log_printf(FUNC,Counter,"allocation","Begin");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp	(revision 75)
@@ -20,5 +20,5 @@
     log_printf(FUNC,Counter,FUNCTION,"Begin");
 
-    _stat = new Stat (static_cast<string>(_name),
+    _stat = new Stat (static_cast<std::string>(_name),
 		      "Counter",
 		      param_statistics);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,34 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Counter.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-#undef  FUNCTION
-#define FUNCTION "Counter::statistics_print"
-  string Counter::statistics_print (uint32_t depth)
-  {
-    log_printf(FUNC,Counter,FUNCTION,"Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,Counter,FUNCTION,"End");
-
-    return txt;
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_body.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_body.cpp	(revision 75)
@@ -21,5 +21,5 @@
     for (uint32_t i=0; i<_param._nb_port; i++)
       {
-	string counter_inc, counter_dec;
+	std::string counter_inc, counter_dec;
 
 	if (_param._size_data > 1)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,5 +9,4 @@
 #include "Behavioural/Generic/Counter/include/Types.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -17,9 +16,9 @@
 
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,Counter,"msg_error","Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     if (_size_data < 1)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Generic/Counter/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -16,5 +15,5 @@
 
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,Counter,"print","Begin");
@@ -36,6 +35,6 @@
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::counter::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::counter::Parameters & x)
   {
     output_stream << x.print(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/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/Generic/Queue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Parameters.h	(revision 75)
@@ -32,9 +32,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::generic::queue::Parameters & x);
+  public :        std::string   print      (uint32_t depth);
+  public : friend std::ostream& operator<< (std::ostream& output_stream,
+					    morpheo::behavioural::generic::queue::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Queue.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Queue.h	(revision 75)
@@ -22,5 +22,5 @@
 #include "Behavioural/Generic/Queue/include/Parameters.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/Queue/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #include "Behavioural/include/Component.h"
@@ -29,7 +29,4 @@
 #endif
 #include "Behavioural/include/Usage.h"
-
-using namespace std;
-using namespace morpheo::behavioural::generic::queue_control;
 
 namespace morpheo {
@@ -46,5 +43,5 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string       _name;
+  protected : const std::string       _name;
   protected : const Parameters * _param;
   private   : const Tusage_t     _usage;
@@ -55,5 +52,5 @@
 
 #ifdef STATISTICS
-  private   : Statistics                     * _stat;
+  public    : Stat                           * _stat;
 #endif
 
@@ -99,5 +96,5 @@
    sc_module_name                                name,
 #else					       
-   string                                        name,
+   std::string                                   name,
 #endif					       
 #ifdef STATISTICS
@@ -116,6 +113,7 @@
   public  : void     genMoore                  (void);
 #endif					       
+
 #ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
+  public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
 #endif
 					       
@@ -125,7 +123,7 @@
   private : void     vhdl_body                 (Vhdl * & vhdl);
 #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/Generic/Queue/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,55 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_queue_Statistics_h
-#define morpheo_behavioural_generic_queue_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/Generic/Queue/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-  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 queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,6 +9,4 @@
 #include "Behavioural/Generic/Queue/include/Parameters.h"
 #include <sstream>
-using namespace std;
-
 namespace morpheo                    {
 namespace behavioural {
@@ -19,9 +17,9 @@
 #undef  FUNCTION
 #define FUNCTION "Queue::msg_error"
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     return msg;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Generic/Queue/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -18,5 +17,5 @@
 #undef  FUNCTION
 #define FUNCTION "Queue::print"
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,Queue,FUNCTION,"Begin");
@@ -36,6 +35,6 @@
 #undef  FUNCTION
 #define FUNCTION "Queue::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::queue::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::queue::Parameters & x)
   {
     log_printf(FUNC,Queue,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 75)
@@ -32,7 +32,4 @@
     ,_param            (param)
     ,_usage            (usage)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,Queue,FUNCTION,"Begin");
@@ -46,8 +43,5 @@
 	log_printf(INFO,Queue,FUNCTION,"Allocation of statistics");
 	
-	// Allocation of statistics
-	_stat = new Statistics (static_cast<string>(_name),
-				param_statistics          ,
-				param);
+	statistics_declaration(param_statistics);
       }
 #endif
@@ -102,5 +96,4 @@
 	log_printf(INFO,Queue,FUNCTION,"Generate Statistics file");
 	
-	_stat->generate_file(statistics(0));
 	delete _stat;
       }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 75)
@@ -19,6 +19,4 @@
   void Queue::allocation (void)
   {
-    string rename;
-
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_end_cycle.cpp	(revision 75)
@@ -0,0 +1,40 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Queue/include/Queue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace queue {
+
+#undef  FUNCTION
+#define FUNCTION "Queue::end_cycle"
+  void Queue::end_cycle ()
+  {
+    log_printf(FUNC,Queue,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,Queue,FUNCTION,"End");
+  };
+
+}; // end namespace queue
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,35 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Queue/include/Queue.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Queue::statistics"
-  string Queue::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,Queue,FUNCTION,"End");
-
-    return txt;
-  };
-
-}; // end namespace queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,34 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Queue/include/Queue.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace queue {
+
+#undef  FUNCTION
+#define FUNCTION "Queue::statistics_declaration"
+  void Queue::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Queue,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+                      "Queue",
+                      param_statistics);
+    
+    log_printf(FUNC,Queue,FUNCTION,"End");
+  };
+
+}; // end namespace queue
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_transition.cpp	(revision 75)
@@ -53,10 +53,6 @@
       }
 
-#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/Generic/Queue/src/Queue_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Queue/include/Queue.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Queue::vhdl_testbench_transition"
-  void Queue::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,Queue,FUNCTION,"End");
-  };
-
-}; // end namespace queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,44 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Queue/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Queue::Statistics"
-  Statistics::Statistics (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-    log_printf(FUNC,Queue,FUNCTION,"End");
-  };
-  
-#undef  FUNCTION
-#define FUNCTION "Queue::~Statistics"
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-    log_printf(FUNC,Queue,FUNCTION,"End");
-  };
-
-}; // end namespace queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Queue/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Queue::add"
-  void Statistics::add ()
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-    log_printf(FUNC,Queue,FUNCTION,"End");
-  };
-
-}; // end namespace queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,57 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Queue/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Queue::print"
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<queue name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</queue>" << endl;
-    
-    log_printf(FUNC,Queue,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-#undef  FUNCTION
-#define FUNCTION "Queue::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::queue::Statistics & x)
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-
-    output_stream << x.print(0);
-
-    log_printf(FUNC,Queue,FUNCTION,"End");
-
-    return output_stream;
-  };
-
-}; // end namespace queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Queue/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace queue {
-
-
-#undef  FUNCTION
-#define FUNCTION "Queue::print_body"
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,Queue,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-}; // end namespace queue
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/include/Queue_Control.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/include/Queue_Control.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/include/Queue_Control.h	(revision 75)
@@ -16,6 +16,4 @@
 #include "Common/include/Debug.h"
 
-using namespace std;
-
 namespace morpheo {
 namespace behavioural {
@@ -27,5 +25,5 @@
   private : const uint32_t     _nb_elt_max;
   private : uint32_t           _nb_elt;
-  private : vector<uint32_t> * _tab;
+  private : std::vector<uint32_t> * _tab;
     
   public  :          Queue_Control  (uint32_t nb_elt_max);
@@ -45,5 +43,5 @@
     
   public : uint32_t operator[] (uint32_t);
-  public : ostream& operator<< (ostream& output_stream);
+  public : std::ostream& operator<< (std::ostream& output_stream);
   };
   
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/src/Queue_Control.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/src/Queue_Control.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/src/Queue_Control.cpp	(revision 75)
@@ -13,5 +13,5 @@
     log_printf(FUNC,Queue_Control,FUNCTION,"Begin");
 	
-    _tab = new vector<uint32_t>;
+    _tab = new std::vector<uint32_t>;
 
     log_printf(FUNC,Queue_Control,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/src/Queue_Control_operator.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/src/Queue_Control_operator.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/src/Queue_Control_operator.cpp	(revision 75)
@@ -8,5 +8,5 @@
 #undef  FUNCTION
 #define FUNCTION "Queue_Control::operator<<"
-  ostream& Queue_Control::operator<< (ostream& output_stream)
+  std::ostream& Queue_Control::operator<< (std::ostream& output_stream)
   {
     log_printf(FUNC,Queue_Control,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h	(revision 75)
@@ -37,9 +37,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::registerfile::registerfile_monolithic::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::generic::registerfile::registerfile_monolithic::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 75)
@@ -16,5 +16,4 @@
 #include "Common/include/ToString.h"
 #include <iostream>
-using namespace std;
 
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
@@ -28,6 +27,4 @@
 #endif
 #include "Behavioural/include/Usage.h"
-
-using namespace std;
 
 namespace morpheo                    {
@@ -46,10 +43,10 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string       _name;
+  protected : const std::string       _name;
   protected : const Parameters * _param;
   private   : const Tusage_t     _usage;
 
 #ifdef STATISTICS
-  private   : Stat                           * _stat;
+  public    : Stat                           * _stat;
     
   private   : counter_t                      * _stat_nb_read;
@@ -106,5 +103,5 @@
    sc_module_name                              name
 #else					       
-   string                                      name
+   std::string                                      name
 #endif					       
 #ifdef STATISTICS
@@ -128,5 +125,4 @@
 #ifdef STATISTICS
   public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
-  public  : string   statistics_print          (uint32_t depth);
 #endif					       
 
@@ -137,6 +133,7 @@
 #endif					       
 					       
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   private : void     end_cycle                 (void);
-
+#endif
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp	(revision 75)
@@ -10,5 +10,4 @@
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -18,7 +17,7 @@
 namespace registerfile_monolithic    {
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
-    string msg = "";
+    std::string msg = "";
 
     if ((8*sizeof(Tdata_t)) < _size_word)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp	(revision 75)
@@ -8,6 +8,5 @@
 #include <stdint.h>
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
-#include <sstream>
-using namespace std;
+#include "Behavioural/include/XML.h"
 
 namespace morpheo                    {
@@ -17,21 +16,21 @@
 namespace registerfile_monolithic    {
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
-    string tab = string(depth,'\t');
-    ostringstream msg;
-    msg << tab << "<registerfile_monolithic>" << endl
-	<< tab << "\t<nb_port_read       value=\"" << _nb_port_read       << "\" />" << endl
-	<< tab << "\t<nb_port_write      value=\"" << _nb_port_write      << "\" />" << endl
-	<< tab << "\t<nb_port_read_write value=\"" << _nb_port_read_write << "\" />" << endl
-	<< tab << "\t<nb_word            value=\"" << _nb_word            << "\" />" << endl
-	<< tab << "\t<size_word          value=\"" << _size_word          << "\" />" << endl
-	<< tab << "</registerfile_monolithic>" << endl;
-    
-    return msg.str();
+    XML xml ("registerfile_monolithic");
+
+    xml.balise_open("registerfile_monolithic");
+    xml.singleton_begin("nb_port_read      "); xml.attribut("value",toString(_nb_port_read      )); xml.singleton_end();
+    xml.singleton_begin("nb_port_write     "); xml.attribut("value",toString(_nb_port_write     )); xml.singleton_end();
+    xml.singleton_begin("nb_port_read_write"); xml.attribut("value",toString(_nb_port_read_write)); xml.singleton_end();
+    xml.singleton_begin("nb_word           "); xml.attribut("value",toString(_nb_word           )); xml.singleton_end();
+    xml.singleton_begin("size_word         "); xml.attribut("value",toString(_size_word         )); xml.singleton_end();
+    xml.balise_close();
+
+    return xml.get_body(depth);
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters & x)
   {
     output_stream << x.print(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 75)
@@ -19,5 +19,5 @@
    sc_module_name name,
 #else
-   string name        ,
+   std::string name        ,
 #endif
 #ifdef STATISTICS
@@ -37,5 +37,6 @@
 
 #ifdef STATISTICS
-    statistics_declaration(param_statistics);
+    if (_usage & USE_STATISTICS)
+      statistics_declaration(param_statistics);
 #endif
 
@@ -102,7 +103,5 @@
 #ifdef STATISTICS
     if (_usage & USE_STATISTICS)
-      {
-	delete _stat;
-      }
+      delete _stat;
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp	(revision 75)
@@ -124,5 +124,5 @@
     for (uint32_t i=0; i<_param->_nb_word; i++)
       {
-	string rename = "reg_DATA["  + toString(i) + "]";
+	std::string rename = "reg_DATA["  + toString(i) + "]";
 	reg_DATA [i]  = new SC_REGISTER (Tdata_t) (rename.c_str());
       }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp	(revision 75)
@@ -1,2 +1,3 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 /*
  * $Id$
@@ -37,2 +38,3 @@
 }; // end namespace behavioural          
 }; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics_declaration.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics_declaration.cpp	(revision 75)
@@ -17,5 +17,5 @@
   void RegisterFile_Monolithic::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
   {
-    _stat = new Stat (static_cast<string>(_name),
+    _stat = new Stat (static_cast<std::string>(_name),
 		      "RegisterFile_Monolithic",
 		      param_statistics);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,27 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-namespace registerfile_monolithic    {
-
-  string RegisterFile_Monolithic::statistics_print (uint32_t depth)
-  {
-    return _stat->print(depth);
-  };
-
-}; // end namespace registerfile_monolithic
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 75)
@@ -79,6 +79,7 @@
 #endif    
 
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     end_cycle();
-
+#endif
     log_printf(FUNC,RegisterFile,"transition","End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp	(revision 75)
@@ -38,5 +38,5 @@
     for (uint32_t i = 0; i < _param->_nb_port_read; i++)
       {
-	string str_address;
+	std::string str_address;
 	if (_param->_have_port_address)
 	  str_address = "conv_integer(in_READ_"+toString(i)+"_ADDRESS)";
@@ -48,5 +48,5 @@
     for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
       {
-	string str_address;
+	std::string str_address;
 	if (_param->_have_port_address)
 	  str_address = "conv_integer(in_READ_WRITE_"+toString(i)+"_ADDRESS)";
@@ -68,5 +68,5 @@
     for (uint32_t i = 0; i < _param->_nb_port_write; i++)
       {
-	string str_address;
+	std::string str_address;
 	if (_param->_have_port_address)
 	  str_address = "conv_integer(in_WRITE_"+toString(i)+"_ADDRESS)";
@@ -80,5 +80,5 @@
     for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
       {
-	string str_address;
+	std::string str_address;
 	if (_param->_have_port_address)
 	  str_address = "conv_integer(in_READ_WRITE_"+toString(i)+"_ADDRESS)";
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/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/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 75)
@@ -10,5 +10,4 @@
 
 #include "Common/include/Debug.h"
-#include "Common/include/FromString.h"
 #include "Behavioural/include/Parameters.h"
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h"
@@ -16,31 +15,4 @@
 
 namespace morpheo {
-  typedef enum {PARTIAL_CROSSBAR,
-		FULL_CROSSBAR   } Tcrossbar_t;
-
-  template<> inline Tcrossbar_t fromString<Tcrossbar_t> (const std::string& x)
-  {
-    if ( (x.compare("0")                == 0) or
-	 (x.compare("PARTIAL_CROSSBAR") == 0))
-      return PARTIAL_CROSSBAR;
-    if ( (x.compare("1")                == 0) or
-	 (x.compare("FULL_CROSSBAR"   ) == 0))
-      return FULL_CROSSBAR;
-
-    throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
-  };
-  
-  template<> inline std::string toString<Tcrossbar_t>   (const Tcrossbar_t& x)
-  {
-    ostringstream out;
-
-    if (x == PARTIAL_CROSSBAR)
-      out << "PARTIAL_CROSSBAR";
-    if (x == FULL_CROSSBAR)
-      out << "FULL_CROSSBAR";
-
-    return out.str();
-  };
-
 namespace behavioural {
 namespace generic {
@@ -92,9 +64,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::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::generic::registerfile::registerfile_multi_banked::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h	(revision 75)
@@ -20,5 +20,5 @@
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #include "Behavioural/include/Component.h"
@@ -26,6 +26,4 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
-
-using namespace std;
 
 namespace morpheo {
@@ -43,13 +41,10 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string       _name;
+  protected : const std::string       _name;
 
   protected : const Parameters * _param;
-//#ifdef STATISTICS
-//  protected : const morpheo::behavioural::Parameters_Statistics _param_statistics;
-//#endif
 
 #ifdef STATISTICS
-  private   : Statistics                     * _stat;
+  public    : Stat                           * _stat;
 #endif
 
@@ -100,5 +95,5 @@
 					      sc_module_name                                name,
 #else					       
-					      string                                        name,
+					      std::string                                   name,
 #endif					       
 #ifdef STATISTICS
@@ -113,6 +108,4 @@
   private : void     deallocation              (void);
 					       
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-
   private : Taddress_t address_bank                 (Taddress_t address);
   private : Taddress_t address_num_reg              (Taddress_t address);
@@ -129,10 +122,5 @@
   public  : void     partial_crossbar_genMealy_read (void);
   public  : void     partial_crossbar_genMealy_write(void);
-
-//#endif
 #endif					       
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
-#endif
 					       
 #if VHDL				       
@@ -142,6 +130,9 @@
 #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
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,57 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Statistics_h
-#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_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/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  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 registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h	(revision 75)
@@ -10,5 +10,6 @@
 
 #include "Behavioural/include/Types.h"
-
+#include "Common/include/ToString.h"
+#include "Common/include/FromString.h"
 namespace morpheo                    {
 namespace behavioural {
@@ -23,6 +24,34 @@
 }; // end namespace registerfile
 }; // end namespace generic
+}; // end namespace behavioural
 
-}; // end namespace behavioural
+  typedef enum {PARTIAL_CROSSBAR,
+		FULL_CROSSBAR   } Tcrossbar_t;
+
+  template<> inline Tcrossbar_t fromString<Tcrossbar_t> (const std::string& x)
+  {
+    if ( (x.compare("0")                == 0) or
+	 (x.compare("PARTIAL_CROSSBAR") == 0))
+      return PARTIAL_CROSSBAR;
+    if ( (x.compare("1")                == 0) or
+	 (x.compare("FULL_CROSSBAR"   ) == 0))
+      return FULL_CROSSBAR;
+
+    throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
+  };
+  
+  template<> inline std::string toString<Tcrossbar_t>   (const Tcrossbar_t& x)
+  {
+    std::ostringstream out;
+
+    if (x == PARTIAL_CROSSBAR)
+      out << "PARTIAL_CROSSBAR";
+    if (x == FULL_CROSSBAR)
+      out << "FULL_CROSSBAR";
+
+    return out.str();
+  };
+
+
 }; // end namespace morpheo              
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp	(revision 75)
@@ -7,7 +7,4 @@
 
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h"
-#include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -18,9 +15,9 @@
 
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,RegisterFile_Multi_Banked,"msg_error","Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     if (_nb_port_read < _nb_port_read_by_bank)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -17,5 +16,5 @@
 
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,RegisterFile_Multi_Banked,"print","Begin");
@@ -46,6 +45,6 @@
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x)
   {
     output_stream << x.print(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 75)
@@ -26,7 +26,4 @@
 			      _name              (name)
 			      ,_param            (param)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Begin");
@@ -42,7 +39,5 @@
 
     // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -142,6 +137,4 @@
 #ifdef STATISTICS
     log_printf(INFO,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Generate Statistics file");
-
-    _stat->generate_file(statistics(0));
     
     delete _stat;
@@ -160,5 +153,4 @@
 }; // end namespace registerfile
 }; // end namespace generic
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 75)
@@ -18,6 +18,4 @@
   void RegisterFile_Multi_Banked::allocation (void)
   {
-    string rename;
-
     log_printf(FUNC,RegisterFile_Multi_Banked,"allocation","Begin");
 
@@ -27,5 +25,5 @@
 					      ,"RegisterFile_Multi_Banked"
 #ifdef POSITION
-					      ,Register 
+					      ,REGISTER 
 #endif
 					      );
@@ -106,5 +104,5 @@
 	for (uint32_t j=0; j<_param->_nb_word; j++)
 	  {
-	    string rename = "reg_DATA_"  + toString(i) + "_"  + toString(j);
+	    std::string rename = "reg_DATA_"  + toString(i) + "_"  + toString(j);
 	    reg_DATA [i][j]  = new SC_REGISTER (Tdata_t) (rename.c_str());
 	  }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp	(revision 75)
@@ -0,0 +1,43 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace registerfile {
+namespace registerfile_multi_banked {
+
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::end_cycle"
+void RegisterFile_Multi_Banked::end_cycle ()
+  {
+    log_printf(FUNC,RegisterFile_Multi_Banked,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,RegisterFile_Multi_Banked,FUNCTION,"End");
+  };
+
+}; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,35 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  string RegisterFile_Multi_Banked::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"statistics","Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,RegisterFile_Multi_Banked,"statistics","End");
-
-    return txt;
-  };
-
-}; // end namespace registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,36 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace registerfile {
+namespace registerfile_multi_banked {
+
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::statistics_declaration"
+  void RegisterFile_Multi_Banked::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "RegisterFile_Multi_Banked",
+		      param_statistics);
+    
+    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"End");
+  };
+
+}; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp	(revision 75)
@@ -35,10 +35,6 @@
       }
 
-#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/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp	(revision 75)
@@ -39,5 +39,5 @@
        ,_param->_size_word);
     
-    string bank_name = _name + "_bank";
+    std::string bank_name = _name + "_bank";
     bank = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic 
       (bank_name.c_str()
@@ -106,8 +106,8 @@
 			 (nb_select_port_4 != nb_select_port_1) );
 
-    string select_name1;
-    string select_name2;
-    string select_name3;
-    string select_name4;
+    std::string select_name1;
+    std::string select_name2;
+    std::string select_name3;
+    std::string select_name4;
     
     if (have_select1)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp	(revision 75)
@@ -85,6 +85,6 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_read_by_bank*k+j);
-		string   separator = ((k==0)?" ":",");
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   separator = ((k==0)?" ":",");
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 
 		vhdl->set_body("\t"+separator+" in_VAL_"+toString(k)+"     \t=>\tinternal_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL");
@@ -104,6 +104,6 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_write_by_bank*k+j);
-		string   separator = ((k==0)?" ":",");
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   separator = ((k==0)?" ":",");
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 		
 		vhdl->set_body("\t"+separator+" in_VAL_"+toString(k)+"     \t=>\tinternal_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL");
@@ -130,5 +130,5 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_read_by_bank*k+j);
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 		vhdl->set_body("\tor internal_SELECT_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL");
 	      }
@@ -143,5 +143,5 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_write_by_bank*k+j);
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 
 		vhdl->set_body("\tor internal_SELECT_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL");
@@ -168,5 +168,5 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_read_by_bank*k+j);
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 				
 		vhdl->set_body("\tin_READ_"+toString(num_port)+"_ADDRESS"+std_logic_range(_param->_size_address_by_bank)+"  when internal_SELECT_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL ='1' else");
@@ -183,5 +183,5 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_write_by_bank*k+j);
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 
 		vhdl->set_body("\tin_WRITE_"+toString(num_port)+"_ADDRESS"+std_logic_range(_param->_size_address_by_bank)+" when internal_SELECT_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL='1' else");
@@ -207,5 +207,5 @@
 	      {
 		uint32_t num_port  = (_param->_crossbar == FULL_CROSSBAR)?k:(_param->_nb_port_write_by_bank*k+j);
-		string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
+		std::string   index     = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):"";
 		vhdl->set_body("\tin_WRITE_"+toString(num_port)+"_DATA when internal_SELECT_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL='1' else");
 	      }
@@ -225,5 +225,5 @@
 	for (uint32_t j=0; j<_param->_nb_port_read; j ++)
 	  {
-	    string str_address;
+	    std::string str_address;
 
 	    if (_param->_have_bank_port_address == true)
@@ -236,5 +236,5 @@
 	for (uint32_t j=0; j<_param->_nb_port_write; j ++)
 	  {
-	    string str_address;
+	    std::string str_address;
 
 	    if (_param->_have_port_address == true)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  void RegisterFile_Multi_Banked::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"vhdl_testbench_transition","Begin");
-
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,RegisterFile_Multi_Banked,"vhdl_testbench_transition","End");
-  };
-
-}; // end namespace registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  Statistics::Statistics (string                                      name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"Statistics","Begin");
-    log_printf(FUNC,RegisterFile_Multi_Banked,"Statistics","End");
-  };
-  
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"~Statistics","Begin");
-    log_printf(FUNC,RegisterFile_Multi_Banked,"~Statistics","End");
-  };
-
-}; // end namespace registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  void Statistics::add ()
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"add","Begin");
-    log_printf(FUNC,RegisterFile_Multi_Banked,"add","End");
-  };
-
-}; // end namespace registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,51 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"print","Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<registerfile_multi_banked name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</registerfile_multi_banked>" << endl;
-    
-    log_printf(FUNC,RegisterFile_Multi_Banked,"print","End");
-
-    return msg.str();
-  };
-
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Statistics & x)
-  {
-    output_stream << x.print(0);
-
-    return output_stream;
-  };
-
-}; // end namespace registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-namespace registerfile_multi_banked {
-
-
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"print_body","Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,RegisterFile_Multi_Banked,"print_body","End");
-
-    return msg.str();
-  };
-
-}; // end namespace registerfile_multi_banked
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/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/Generic/RegisterFile/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h	(revision 75)
@@ -43,8 +43,7 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
+  public :        std::string   msg_error  (void);
+  public :        std::string   print      (uint32_t depth);
+  public : friend std::ostream& operator<< (std::ostream& output_stream,
 				       morpheo::behavioural::generic::registerfile::Parameters & x);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/RegisterFile.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/RegisterFile.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/RegisterFile.h	(revision 75)
@@ -23,5 +23,5 @@
 #include "Behavioural/Generic/RegisterFile/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #include "Behavioural/include/Component.h"
@@ -29,6 +29,4 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
-
-using namespace std;
 
 namespace morpheo {
@@ -45,9 +43,10 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string       _name;
+  protected : const std::string       _name;
 
   protected : const Parameters * _param;
+
 #ifdef STATISTICS
-  protected : morpheo::behavioural::Parameters_Statistics * _param_statistics;
+  public    : Stat                           * _stat;
 #endif
 
@@ -89,23 +88,25 @@
   public  :          RegisterFile              (
 #ifdef SYSTEMC
-					      sc_module_name                              name,
+						sc_module_name                              name,
 #else					       
-					      string                                      name,
+						std::string                                      name,
 #endif					       
 #ifdef STATISTICS
-					      morpheo::behavioural::Parameters_Statistics * param_statistics,
+						morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-					      Parameters                                  * param );
-					       
+						Parameters                                  * param );
+    
   public  :          ~RegisterFile             (void);
 					       
 #ifdef SYSTEMC				       
-  private : void     allocation                (void);
+  private : void     allocation                (
+#ifdef STATISTICS
+						morpheo::behavioural::Parameters_Statistics * param_statistics
+#else
+						void
+#endif
+						);
   private : void     deallocation              (void);
 #endif					       
-
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
-#endif
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,55 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_registerfile_Statistics_h
-#define morpheo_behavioural_generic_registerfile_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/Generic/RegisterFile/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-
-
-  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 registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,5 +9,4 @@
 #include "Behavioural/Generic/RegisterFile/include/Types.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -17,5 +16,5 @@
 
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,RegisterFile,"msg_error","Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Generic/RegisterFile/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -16,9 +15,9 @@
 
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,RegisterFile,"print","Begin");
 
-    string _return;
+    std::string _return;
 
     if (_instance == instance_RegisterFile_Monolithic)
@@ -32,11 +31,8 @@
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::registerfile::Parameters & x)
   {
-    if (x._instance == instance_RegisterFile_Monolithic)
-      output_stream << x._param_registerfile_monolithic  ->print(0);
-    else
-      output_stream << x._param_registerfile_multi_banked->print(0);
+    output_stream << x.print(0);
     
     return output_stream;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile.cpp	(revision 75)
@@ -25,7 +25,4 @@
 			      _name              (name)
 			      ,_param            (param)
-#ifdef STATISTICS
-			      ,_param_statistics (param_statistics)
-#endif
   {
     log_printf(FUNC,RegisterFile,"RegisterFile","Begin");
@@ -34,5 +31,16 @@
     log_printf(INFO,RegisterFile,"RegisterFile","Allocation");
 
-    allocation ();
+    allocation (
+# ifdef STATISTICS
+		param_statistics
+# endif
+		);
+#endif
+
+#ifdef STATISTICS
+    if (_param->_instance == instance_RegisterFile_Monolithic)
+      _stat = component_RegisterFile_Monolithic  ->_stat;
+    else
+      _stat = component_RegisterFile_Multi_Banked->_stat;
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp	(revision 75)
@@ -15,7 +15,13 @@
 
 
-  void RegisterFile::allocation (void)
+  void RegisterFile::allocation (
+#ifdef STATISTICS
+				 morpheo::behavioural::Parameters_Statistics * param_statistics
+#else
+				 void
+#endif
+				 )
   {
-    string rename;
+    std::string rename;
 
     log_printf(FUNC,RegisterFile,"allocation","Begin");
@@ -78,5 +84,5 @@
 	component_RegisterFile_Monolithic  = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   (_name.c_str()
 #ifdef STATISTICS
-																					       ,_param_statistics
+																					       ,param_statistics
 #endif
 																					       ,_param->_param_registerfile_monolithic
@@ -89,5 +95,5 @@
 	component_RegisterFile_Multi_Banked = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked (_name.c_str()
 #ifdef STATISTICS
-																						,_param_statistics
+																						,param_statistics
 #endif
 																						,_param->_param_registerfile_multi_banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,38 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace registerfile {
-
-
-  string RegisterFile::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,RegisterFile,"statistics","Begin");
-    
-    string txt;
-
-    if (_param->_instance == instance_RegisterFile_Monolithic)
-      txt = component_RegisterFile_Monolithic  ->statistics(depth);
-    else
-      txt = component_RegisterFile_Multi_Banked->statistics(depth);
-    
-    log_printf(FUNC,RegisterFile,"statistics","End");
-
-    return txt;
-  };
-
-}; // end namespace registerfile
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/VERSION	(revision 74)
+++ 	(revision )
@@ -1,3 +1,0 @@
-v0.5
-
-0.5 modif vhdl_port et vhdl_testbench_port -> ajout d'une macro
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h	(revision 75)
@@ -34,9 +34,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::select::select_priority_fixed::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::generic::select::select_priority_fixed::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h	(revision 75)
@@ -20,5 +20,5 @@
 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/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 {
@@ -44,5 +42,5 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string     _name;
+  protected : const std::string     _name;
   protected : const Parameters * _param;
   private   : const Tusage_t     _usage;
@@ -52,5 +50,5 @@
 
 #ifdef STATISTICS
-  private   : Statistics                     * _stat;
+  public    : Stat                           * _stat;
 #endif
 
@@ -87,5 +85,5 @@
    sc_module_name                              name,
 #else					       
-   string                                      name,
+   std::string                                 name,
 #endif					       
 #ifdef STATISTICS
@@ -101,12 +99,9 @@
   private : void     deallocation              (void);
 					       
-#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void     transition                (void);
-#endif
+# endif
   public  : void     genMealy_entity           (void);
 #endif					       
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
-#endif
 					       
 #if VHDL				       
@@ -116,6 +111,9 @@
 #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
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,57 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_select_select_priority_fixed_Statistics_h
-#define morpheo_behavioural_generic_select_select_priority_fixed_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/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  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 select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,5 +9,4 @@
 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -18,9 +17,9 @@
 
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,Select_Priority_Fixed,"msg_error","Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     if ((_encoding_one_hot or _encoding_compact) == false)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -16,5 +15,5 @@
 namespace select_priority_fixed {
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,Select_Priority_Fixed,"print","Begin");
@@ -33,6 +32,6 @@
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::select::select_priority_fixed::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::select::select_priority_fixed::Parameters & x)
   {
     output_stream << x.print(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 75)
@@ -30,7 +30,4 @@
     _param            (param),
     _usage            (usage)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","Begin");
@@ -44,8 +41,5 @@
 	log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation of statistics");
 	
-	// Allocation of statistics
-	_stat = new Statistics (static_cast<string>(_name),
-				param_statistics          ,
-				param);
+	statistics_declaration(param_statistics);
       }
 #endif
@@ -106,5 +100,4 @@
 	log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Generate Statistics file");
 	
-	_stat->generate_file(statistics(0));
 	delete _stat;
       }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_end_cycle.cpp	(revision 75)
@@ -0,0 +1,42 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace select {
+namespace select_priority_fixed {
+
+#undef  FUNCTION
+#define FUNCTION "Select_Priority_Fixed::end_cycle"
+void Select_Priority_Fixed::end_cycle ()
+  {
+    log_printf(FUNC,Select_Priority_Fixed,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,Select_Priority_Fixed,FUNCTION,"End");
+  };
+
+}; // end namespace select_priority_fixed
+}; // end namespace select
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,35 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  string Select_Priority_Fixed::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"statistics","Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,Select_Priority_Fixed,"statistics","End");
-
-    return txt;
-  };
-
-}; // end namespace select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,36 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace select {
+namespace select_priority_fixed {
+
+#undef  FUNCTION
+#define FUNCTION "Select_Priority_Fixed::statistics_declaration"
+  void Select_Priority_Fixed::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Select_Priority_Fixed,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "Select_Priority_Fixed",
+		      param_statistics);
+    
+    log_printf(FUNC,Select_Priority_Fixed,FUNCTION,"End");
+  };
+
+}; // end namespace select_priority_fixed
+}; // end namespace select
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp	(revision 75)
@@ -21,10 +21,6 @@
     log_printf(FUNC,Select_Priority_Fixed,"transition","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/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp	(revision 75)
@@ -38,5 +38,5 @@
     if (_param->_encoding_compact)
       {
-	string range = ((_param->_size_entity-1)==0)?"(0)":std_logic_range(_param->_size_entity-1,0);
+	std::string range = ((_param->_size_entity-1)==0)?"(0)":std_logic_range(_param->_size_entity-1,0);
 
 	vhdl->set_body ("out_ENTITY     <=     internal_entity"+range+";");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  void Select_Priority_Fixed::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_transition","Begin");
-
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_transition","End");
-  };
-
-}; // end namespace select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  Statistics::Statistics (string                                      name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"Statistics","Begin");
-    log_printf(FUNC,Select_Priority_Fixed,"Statistics","End");
-  };
-  
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,Select_Priority_Fixed,"~Statistics","Begin");
-    log_printf(FUNC,Select_Priority_Fixed,"~Statistics","End");
-  };
-
-}; // end namespace select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  void Statistics::add ()
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"add","Begin");
-    log_printf(FUNC,Select_Priority_Fixed,"add","End");
-  };
-
-}; // end namespace select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,51 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"print","Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<select_priority_fixed name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</select_priority_fixed>" << endl;
-    
-    log_printf(FUNC,Select_Priority_Fixed,"print","End");
-
-    return msg.str();
-  };
-
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::select::select_priority_fixed::Statistics & x)
-  {
-    output_stream << x.print(0);
-
-    return output_stream;
-  };
-
-}; // end namespace select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace select {
-namespace select_priority_fixed {
-
-
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"print_body","Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,Select_Priority_Fixed,"print_body","End");
-
-    return msg.str();
-  };
-
-}; // end namespace select_priority_fixed
-}; // end namespace select
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/include/test.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/include/test.h	(revision 75)
@@ -20,5 +20,4 @@
 using namespace morpheo::behavioural;
 using namespace morpheo::behavioural::generic;
-
 using namespace morpheo::behavioural::generic::shifter;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp	(revision 75)
@@ -33,9 +33,13 @@
       exit (EXIT_FAILURE);
     }
+
+#ifdef STATISTICS
+  morpheo::behavioural::Parameters_Statistics * param_stat = new morpheo::behavioural::Parameters_Statistics(5,50);
+#endif
   Shifter * _Shifter = new Shifter (name.c_str(),
 #ifdef STATISTICS
-					     morpheo::behavioural::Parameters_Statistics(5,50),
-#endif
-					     param);
+				    param_stat,
+#endif
+				    param);
   
 #ifdef SYSTEMC
@@ -48,5 +52,5 @@
   sc_signal <Tshift_t    >                 SHIFTER_SHIFT     [param._nb_port];
   sc_signal <Tdirection_t>                 SHIFTER_DIRECTION [param._nb_port];
-  sc_signal <Ttype_t     >                 SHIFTER_TYPE      [param._nb_port];
+  sc_signal <morpheo::behavioural::generic::shifter::Ttype_t     >                 SHIFTER_TYPE      [param._nb_port];
   sc_signal <Tcarry_t    >                 SHIFTER_CARRY     [param._nb_port];
   sc_signal <Tcontrol_t  >                 SHIFTER_CARRY_IN  [param._nb_port];
@@ -96,5 +100,5 @@
 
   Tdirection_t   direction       ;
-  Ttype_t        type            ;
+  morpheo::behavioural::generic::shifter::Ttype_t        type            ;
   Tcarry_t       carry           ; 
   const Tdata_t  data_max        = (1<<param._size_data);
@@ -271,11 +275,11 @@
 		       << hex
 		       << data_in[i] << op
-		       << dec 
+		       << std::dec 
 		       << shift      << " = " 
-		       << hex
+		       << std::hex
 		       << SHIFTER_DATA_OUT [i].read()
 		       << " - completion : "
 		       << data_completion [i]
-		       << dec ;
+		       << std::dec ;
 		  
 		  TEST(Tdata_t,SHIFTER_DATA_OUT [i].read(),data_out[i]);
@@ -298,3 +302,7 @@
 
   delete _Shifter;
+
+#ifdef STATISTICS
+  delete param_stat;
+#endif
 }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h	(revision 75)
@@ -48,38 +48,4 @@
   public : const bool        _have_direction_right         ;
 
-    string toString_rotate    (rotate_t x)
-    {
-      switch (x)
-	{
-	case without_rotate            : return "without_rotate" ;
-	case internal_rotate           : return "internal_rotate";
-	case external_rotate           : return "external_rotate";     
-	default                        : return "";
-	}
-    };
-    
-    string toString_direction (direction_t x) 
-    {
-      switch (x)
-	{
-	case internal_right_shift      : return "internal_right_shift";
-	case internal_left_shift       : return "internal_left_shift" ;
-	case external_direction        : return "external_direction"  ;
-	default                        : return "";
-	}
-    };
-    
-    string toString_carry (carry_t x)
-    {
-      switch (x)
-	{
-	case internal_logic            : return "internal_logic"       ;
-	case internal_arithmetic       : return "internal_arithmetic"  ;
-	case external_carry            : return "external_carry"       ;
-	case external_completion       : return "external_completion"  ;
-	default                        : return "";
-	}
-    };
-    
     //-----[ methods ]-----------------------------------------------------------
   public : Parameters  (uint32_t    size_data           ,
@@ -93,9 +59,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::shifter::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::generic::shifter::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Shifter.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Shifter.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Shifter.h	(revision 75)
@@ -19,5 +19,5 @@
 #include "Behavioural/Generic/Shifter/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/Shifter/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #ifdef VHDL
@@ -25,6 +25,4 @@
 #endif
 #include "Behavioural/include/Component.h"
-
-using namespace std;
 
 namespace morpheo                    {
@@ -41,9 +39,9 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string     _name;
+  protected : const std::string     _name;
 
   protected : const Parameters _param;
 #ifdef STATISTICS
-  private   : Statistics                     * _stat;
+  public    : Stat                           * _stat;
 #endif
 
@@ -79,12 +77,12 @@
   public  :          Shifter              (
 #ifdef SYSTEMC
-					   sc_module_name                              name,
+					   sc_module_name                                name,
 #else					       
-					   string                                      name,
+					   std::string                                   name,
 #endif					       
 #ifdef STATISTICS
-					   morpheo::behavioural::Parameters_Statistics param_statistics,
+					   morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-					   Parameters                                  param );
+					   Parameters                                    param );
     
   public  :          Shifter              (Parameters param );
@@ -106,12 +104,11 @@
   private : void     vhdl_body                 (Vhdl * & vhdl);
 #endif					       
+
 #ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
+  public  : void        statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
 #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/Generic/Shifter/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,54 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_shifter_Statistics_h
-#define morpheo_behavioural_generic_shifter_Statistics_h
-
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/include/Statistics.h"
-#include "Behavioural/include/Parameters_Statistics.h"
-//#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/Shifter/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-
-  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 shifter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Types.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Types.h	(revision 75)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 #ifndef morpheo_behavioural_generic_shifter_Type_h
 #define morpheo_behavioural_generic_shifter_Type_h
@@ -10,5 +9,6 @@
  */
 
-#include "Common/include/Types.h"
+#include "Behavioural/include/Types.h"
+#include "Common/include/ToString.h"
 
 namespace morpheo {
@@ -49,6 +49,41 @@
 }; // end namespace generic
 }; // end namespace behavioural
+
+  template<> inline std::string toString<morpheo::behavioural::generic::shifter::rotate_t>(const morpheo::behavioural::generic::shifter::rotate_t& x)
+    {
+      switch (x)
+	{
+	case morpheo::behavioural::generic::shifter::without_rotate            : return "without_rotate" ;
+	case morpheo::behavioural::generic::shifter::internal_rotate           : return "internal_rotate";
+	case morpheo::behavioural::generic::shifter::external_rotate           : return "external_rotate";     
+	default                        : return "";
+	}
+    };
+  
+  template<> inline std::string toString<morpheo::behavioural::generic::shifter::direction_t>(const morpheo::behavioural::generic::shifter::direction_t& x) 
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::generic::shifter::internal_right_shift      : return "internal_right_shift";
+      case morpheo::behavioural::generic::shifter::internal_left_shift       : return "internal_left_shift" ;
+      case morpheo::behavioural::generic::shifter::external_direction        : return "external_direction"  ;
+      default                        : return "";
+      }
+  };
+  
+  template<> inline std::string toString<morpheo::behavioural::generic::shifter::carry_t>(const morpheo::behavioural::generic::shifter::carry_t& x)
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::generic::shifter::internal_logic            : return "internal_logic"       ;
+      case morpheo::behavioural::generic::shifter::internal_arithmetic       : return "internal_arithmetic"  ;
+      case morpheo::behavioural::generic::shifter::external_carry            : return "external_carry"       ;
+      case morpheo::behavioural::generic::shifter::external_completion       : return "external_completion"  ;
+      default                        : return "";
+      }
+  };
+    
+
 }; // end namespace morpheo              
 
 #endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,5 +9,4 @@
 #include "Behavioural/Generic/Shifter/include/Types.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo {
@@ -16,7 +15,7 @@
 namespace shifter {
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
-    string msg = "";
+    std::string msg = "";
 
     if (_size_data < 2)
@@ -42,6 +41,6 @@
       {
 	msg += "  - Incompatible parameters : internal_rotate have never carry (must be set at \"internal_logic\"\n";
-        msg += "    * rotate                          : " + toString_rotate(_rotate) + "\n";
-        msg += "    * carry                           : " + toString_carry (_carry ) + "\n";
+        msg += "    * rotate                          : " + toString(_rotate) + "\n";
+        msg += "    * carry                           : " + toString(_carry ) + "\n";
       }    
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters_print.cpp	(revision 75)
@@ -7,6 +7,5 @@
 
 #include "Behavioural/Generic/Shifter/include/Parameters.h"
-#include <sstream>
-using namespace std;
+#include "Behavioural/include/XML.h"
 
 namespace morpheo                    {
@@ -16,23 +15,21 @@
 
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
-    string tab = string(depth,'\t');
-    ostringstream msg;
-    msg << tab << "<shifter>" << endl
-	<< tab << "\t<size_data   value=\"" << _size_data   << "\" />" << endl
-	<< tab << "\t<nb_port     value=\"" << _nb_port     << "\" />" << endl
-	<< tab << "\t<shift_value value=\"" << _shift_value << "\" />" << endl
-	<< tab << "\t<rotate      value=\"" << toString_rotate    (_rotate   ) << "\" />" << endl
-	<< tab << "\t<direction   value=\"" << toString_direction (_direction) << "\" />" << endl
-	<< tab << "\t<carry       value=\"" << toString_carry     (_carry    ) << "\" />" << endl
-	<< tab << "\t<!-- port_completion is type bool : " << toString(_type_completion_bool) << " -->" << endl
-      	<< tab << "</shifter>" << endl;
+    XML xml ("shifter");
+
+    xml.balise_open("shifter");
+    xml.singleton_begin("size_data  "); xml.attribut("value",toString(_size_data  )); xml.singleton_end();
+    xml.singleton_begin("nb_port    "); xml.attribut("value",toString(_nb_port    )); xml.singleton_end();
+    xml.singleton_begin("shift_value"); xml.attribut("value",toString(_shift_value)); xml.singleton_end();
+    xml.singleton_begin("rotate     "); xml.attribut("value",toString(_rotate     )); xml.singleton_end();
+    xml.singleton_begin("direction  "); xml.attribut("value",toString(_direction  )); xml.singleton_end();
+    xml.singleton_begin("carry      "); xml.attribut("value",toString(_carry      )); xml.singleton_end();
     
-    return msg.str();
+    return xml.get_body(depth);
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::shifter::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::shifter::Parameters & x)
   {
     output_stream << x.print(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp	(revision 75)
@@ -20,5 +20,5 @@
 #endif
 #ifdef STATISTICS
-		    ,morpheo::behavioural::Parameters_Statistics             param_statistics
+		    ,morpheo::behavioural::Parameters_Statistics * param_statistics
 #endif
 		    ,morpheo::behavioural::generic::shifter::Parameters param ):
@@ -32,7 +32,5 @@
 #ifdef STATISTICS
     // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -101,6 +99,4 @@
 
 #ifdef STATISTICS
-    _stat->generate_file(statistics(0));
-    
     delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_end_cycle.cpp	(revision 75)
@@ -0,0 +1,41 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Shifter/include/Shifter.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace shifter {
+
+#undef  FUNCTION
+#define FUNCTION "Shifter::end_cycle"
+void Shifter::end_cycle ()
+  {
+    log_printf(FUNC,Shifter,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,Shifter,FUNCTION,"End");
+  };
+
+
+}; // end namespace shifter
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_genMealy_shift.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_genMealy_shift.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_genMealy_shift.cpp	(revision 75)
@@ -11,5 +11,4 @@
 #include <bitset>
 
-using namespace std;
 namespace morpheo {
 namespace behavioural {
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,27 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Shifter/include/Shifter.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-
-  string Shifter::statistics (uint32_t depth)
-  {
-    return _stat->print(depth);
-  };
-
-}; // end namespace shifter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,34 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Shifter/include/Shifter.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace shifter {
+
+#undef  FUNCTION
+#define FUNCTION "Shifter::statistics_declaration"
+  void Shifter::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Shifter,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "Shifter",
+		      param_statistics);
+    
+    log_printf(FUNC,Shifter,FUNCTION,"End");
+  };
+
+}; // end namespace shifter
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_transition.cpp	(revision 75)
@@ -18,10 +18,6 @@
   void Shifter::transition (void)
   {
-#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/Generic/Shifter/src/Shifter_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_vhdl_body.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_vhdl_body.cpp	(revision 75)
@@ -50,5 +50,5 @@
 	for (uint32_t i=0; i<_param._nb_port; i++)
 	  {
-	    string print_shifter_completion;
+	    std::string print_shifter_completion;
 	    
 	    if (_param._type_completion_bool == true)
@@ -83,5 +83,5 @@
       {
 	vhdl->set_body ("out_SHIFTER_"+toString(i)+"_DATA       <=");
-	string print_else = "    ";
+	std::string print_else = "    ";
 
 	//-----[ Shift arithmetic Left ]---------------------------------------
@@ -89,6 +89,6 @@
 	  {
 	    bool   have_when  = false;
-	    string print_when = "";
-	    string print_and  = "";
+	    std::string print_when = "";
+	    std::string print_and  = "";
 	    
 	    if (_param._direction   == external_direction)
@@ -120,6 +120,6 @@
 	  {
 	    bool   have_when  = false;
-	    string print_when = "";
-	    string print_and  = "";
+	    std::string print_when = "";
+	    std::string print_and  = "";
 	    
 	    if (_param._direction   == external_direction)
@@ -151,6 +151,6 @@
 	  {
 	    bool   have_when  = false;
-	    string print_when = "";
-	    string print_and  = "";
+	    std::string print_when = "";
+	    std::string print_and  = "";
 	    
 	    if (_param._direction   == external_direction)
@@ -175,5 +175,5 @@
 	      print_when = "when " + print_when;
 
-	    string print_expr_completion;
+	    std::string print_expr_completion;
 
 	    if (_param._size_data_completion == 0)
@@ -189,6 +189,6 @@
 	  {
 	    bool   have_when  = false;
-	    string print_when = "";
-	    string print_and  = "";
+	    std::string print_when = "";
+	    std::string print_and  = "";
 	    
 	    if (_param._direction   == external_direction)
@@ -213,5 +213,5 @@
 	      print_when = "when " + print_when;
 
-	    string print_expr_completion;
+	    std::string print_expr_completion;
 
 	    if (_param._size_data_completion == 0)
@@ -227,6 +227,6 @@
 	  {
 	    bool   have_when  = false;
-	    string print_when = "";
-	    string print_and  = "";
+	    std::string print_when = "";
+	    std::string print_and  = "";
 	    
 	    if (_param._direction   == external_direction)
@@ -253,6 +253,6 @@
 	  {
 	    bool   have_when  = false;
-	    string print_when = "";
-	    string print_and  = "";
+	    std::string print_when = "";
+	    std::string print_and  = "";
 	    
 	    if (_param._direction   == external_direction)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Shifter/include/Shifter.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-
-  void Shifter::vhdl_testbench_transition (void)
-  {
-//     sc_start(0);
-
-    _interfaces->testbench();
-  };
-
-}; // end namespace shifter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Shifter/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-
-  Statistics::Statistics (string                                      name                       ,
-			  morpheo::behavioural::Parameters_Statistics parameters_statistics      ,
-			  Parameters                                  parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-  };
-  
-  Statistics::~Statistics () 
-  { 
-  };
-
-}; // end namespace shifter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Shifter/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-
-  void Statistics::add ()
-  {
-  };
-
-}; // end namespace shifter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,43 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Shifter/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-  string Statistics::print (uint32_t depth)
-  {
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<shifter name=\"" << _name << "\" >" << endl
-	<< print_body (depth+1)
-	<< tab << "</shifter>" << endl;
-    
-    return msg.str();
-  };
-
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::shifter::Statistics & x)
-  {
-    output_stream << x.print(0);
-
-    return output_stream;
-  };
-
-}; // end namespace shifter
-}; // end namespace generic
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Shifter/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace shifter {
-
-  string Statistics::print_body (uint32_t depth)
-  {
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    return msg.str();
-  };
-
-}; // end namespace shifter
-}; // end namespace generic
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps	(revision 75)
@@ -13,15 +13,10 @@
 include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
 endif
-ifndef Group
-include 			$(DIR_MORPHEO)/Behavioural/Generic/Group/Makefile.deps
-endif
 
 #-----[ Library ]------------------------------------------
 Victim_Pseudo_LRU_LIBRARY		= 	-lVictim_Pseudo_LRU		\
-						$(Group_LIBRARY)		\
 						$(Behavioural_LIBRARY)	
 
 Victim_Pseudo_LRU_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU/lib	\
-						$(Group_DIR_LIBRARY)							\
 						$(Behavioural_DIR_LIBRARY)	
 
@@ -31,10 +26,8 @@
 				@\
 				$(MAKE)  Behavioural_library; \
-				$(MAKE)  Group_library; \
 				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU --makefile=Makefile;
-				
+
 Victim_Pseudo_LRU_library_clean	:
 				@\
 				$(MAKE)  Behavioural_library_clean; \
-				$(MAKE)  Group_library_clean; \
 				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU --makefile=Makefile clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp	(revision 75)
@@ -36,9 +36,14 @@
       exit (EXIT_FAILURE);
     }
+
+#ifdef STATISTICS
+  morpheo::behavioural::Parameters_Statistics * param_stat = new morpheo::behavioural::Parameters_Statistics(5,50);
+#endif
+
   Victim_Pseudo_LRU * _Victim_Pseudo_LRU = new Victim_Pseudo_LRU (name.c_str(),
 #ifdef STATISTICS
-					     morpheo::behavioural::Parameters_Statistics(5,50),
-#endif
-					     param);
+								  param_stat,
+#endif
+								  param);
   
 #ifdef SYSTEMC
@@ -207,3 +212,8 @@
 
   delete _Victim_Pseudo_LRU;
+
+#ifdef STATISTICS
+  delete param_stat;
+#endif
+
 }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h	(revision 75)
@@ -35,9 +35,8 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
-
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::victim::victim_pseudo_lru::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::generic::victim::victim_pseudo_lru::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h	(revision 74)
+++ 	(revision )
@@ -1,59 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Statistics_h
-#define morpheo_behavioural_generic_victim_victim_pseudo_lru_Statistics_h
-
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/include/Statistics.h"
-#include "Behavioural/include/Parameters_Statistics.h"
-#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
-
-using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-
-  class Statistics : public morpheo::behavioural::Statistics
-  {
-    // -----[ fields ]----------------------------------------------------
-  private  : const Parameters                                   _parameters;
-  private  : morpheo::behavioural::generic::group::Statistics * _stat_port_access;
-  private  : morpheo::behavioural::generic::group::Statistics * _stat_port_update;
-
-    // -----[ 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        (uint32_t nb_access ,
-				  uint32_t nb_update );
-    
-  public   : friend ostream& operator<< (ostream& output_stream,
-					 const Statistics & x);
-
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h	(revision 75)
@@ -9,5 +9,5 @@
  */
 
-#include "Common/include/Types.h"
+#include "Behavioural/include/Types.h"
 
 namespace morpheo {
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 75)
@@ -35,16 +35,10 @@
 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #ifdef VHDL
 #include "Behavioural/include/Vhdl.h"
 #endif
-#ifdef POSITION
 #include "Behavioural/include/Component.h"
-#else
-#include "Behavioural/include/Interfaces.h"
-#endif
-
-using namespace std;
 
 namespace morpheo {
@@ -157,7 +151,7 @@
     }
 
-  public : string print ()
-    {
-      string res = "";
+  public : std::string print ()
+    {
+      std::string res = "";
 
       for (int32_t i=static_cast<int32_t>(_size)-1; i>=0; i--)
@@ -170,14 +164,12 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const string     _name;
+  protected : const std::string     _name;
 
   protected : const Parameters _param;
 #ifdef STATISTICS
-  private   : Statistics                     * _stat;
-#endif
-
-#ifdef POSITION
-  private   : Component                      * _component;
-#endif
+  public    : Stat                           * _stat;
+#endif
+
+  public    : Component                      * _component;
   private   : Interfaces                     * _interfaces;
 
@@ -215,12 +207,12 @@
   public  :          Victim_Pseudo_LRU              (
 #ifdef SYSTEMC
-					      sc_module_name                              name,
+					      sc_module_name                                name,
 #else					       
-					      string                                      name,
+					      std::string                                   name,
 #endif					       
 #ifdef STATISTICS
-					      morpheo::behavioural::Parameters_Statistics param_statistics,
-#endif
-					      Parameters                                  param );
+					      morpheo::behavioural::Parameters_Statistics * param_statistics,
+#endif
+					      Parameters                                    param );
 					       
   public  :          Victim_Pseudo_LRU              (Parameters param );
@@ -233,7 +225,4 @@
   public  : void     transition                (void);
   public  : void     genMealy_access           (void);
-#endif					       
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
 #endif
 					       
@@ -244,8 +233,11 @@
 #endif					       
 					       
-#ifdef VHDL_TESTBENCH			       
-  private : void     vhdl_testbench_transition (void);
-#endif
-
+#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
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp	(revision 75)
@@ -9,5 +9,4 @@
 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo {
@@ -17,7 +16,7 @@
 namespace victim_pseudo_lru {
 
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
-    string msg = "";
+    std::string msg = "";
 
     if (_nb_entity < 2)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp	(revision 75)
@@ -2,11 +2,11 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
+#include "Behavioural/include/XML.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo {
@@ -16,20 +16,20 @@
 namespace victim_pseudo_lru {
 
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
-    string tab = string(depth,'\t');
-    ostringstream msg;
-    msg << tab << "<victim_pseudo_lru>" << endl
-	<< tab << "\t<nb_entity  value=\"" << _nb_entity  << "\" />" << endl
-	<< tab << "\t<nb_access  value=\"" << _nb_access  << "\" />" << endl
-	<< tab << "\t<nb_update  value=\"" << _nb_update  << "\" />" << endl
-	<< tab << "\t<size_table value=\"" << _size_table << "\" />" << endl
-	<< tab << "</victim_pseudo_lru>" << endl;
-    
-    return msg.str();
+    XML xml ("victim_pseudo_lru");
+
+    xml.balise_open("victim_pseudo_lru");
+    xml.singleton_begin("nb_entity "); xml.attribut("value",toString(_nb_entity )); xml.singleton_end();
+    xml.singleton_begin("nb_access "); xml.attribut("value",toString(_nb_access )); xml.singleton_end();
+    xml.singleton_begin("nb_update "); xml.attribut("value",toString(_nb_update )); xml.singleton_end();
+    xml.singleton_begin("size_table"); xml.attribut("value",toString(_size_table)); xml.singleton_end();
+    xml.balise_close();
+
+    return xml.get_body(depth);
   };
 
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters & x)
   {
     output_stream << x.print(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,46 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-
-  Statistics::Statistics (string                                      name                       ,
-			  morpheo::behavioural::Parameters_Statistics parameters_statistics      ,
-			  Parameters                                  parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    _stat_port_access = new morpheo::behavioural::generic::group::Statistics (name + "_port_access" ,
-									      parameters_statistics ,
-									      morpheo::behavioural::generic::group::Parameters(_parameters._nb_access));
-    _stat_port_update = new morpheo::behavioural::generic::group::Statistics (name + "_port_update"   ,
-									      parameters_statistics ,
-									      morpheo::behavioural::generic::group::Parameters(_parameters._nb_update));
-  };
-  
-  Statistics::~Statistics () 
-  { 
-    delete _stat_port_access;
-    delete _stat_port_update;
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_add.cpp	(revision 74)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-  void Statistics::add (uint32_t nb_access,
-			uint32_t nb_update)
-  {
-    _stat_port_access->add(nb_access);
-    _stat_port_update->add(nb_update);
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print.cpp	(revision 74)
+++ 	(revision )
@@ -1,47 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-
-  string Statistics::print (uint32_t depth)
-  {
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<victim_pseudo_lru name=\"" << _name << "\" >" << endl
-	<< print_body (depth+1)
-	<< tab << "</victim_pseudo_lru>" << endl;
-    
-    return msg.str();
-  };
-
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::victim::victim_pseudo_lru::Statistics & x)
-  {
-    output_stream << x.print(0);
-
-    return output_stream;
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print_body.cpp	(revision 74)
+++ 	(revision )
@@ -1,38 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-
-  string Statistics::print_body (uint32_t depth)
-  {
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << _stat_port_access->print(depth+1);
-    msg << _stat_port_update->print(depth+1);
-    
-    return msg.str();
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 75)
@@ -17,8 +17,8 @@
   Victim_Pseudo_LRU::Victim_Pseudo_LRU (sc_module_name name,
 #else
-  Victim_Pseudo_LRU::Victim_Pseudo_LRU (string name,
+  Victim_Pseudo_LRU::Victim_Pseudo_LRU (std::string name,
 #endif
 #ifdef STATISTICS
-			  morpheo::behavioural::Parameters_Statistics             param_statistics,
+			  morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
 			  morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param ):
@@ -37,7 +37,5 @@
     
     // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -93,6 +91,4 @@
 
 #ifdef STATISTICS
-    _stat->generate_file(statistics(0));
-    
     delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 75)
@@ -17,19 +17,22 @@
   void Victim_Pseudo_LRU::allocation (void)
   {
-#ifdef POSITION
     _component   = new Component ();
 
-    Entity * entity = _component->set_entity (_name                  ,
-					     "Select_Priority_Fixed",
-					     COMBINATORY            );
+    Entity * entity = _component->set_entity (_name                  
+					      ,"Select_Priority_Fixed"
+#ifdef POSITION
+					      ,COMBINATORY           
+#endif
+					      );
     
     _interfaces = entity->set_interfaces();
-#else
-    _interfaces = new Interfaces();
-#endif
 
     // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      Interface_fifo * interface = _interfaces->set_interface("", IN  ,WEST, "Generalist interface");
+      Interface_fifo * interface = _interfaces->set_interface(""
+#ifdef POSITION
+							      , IN  ,WEST, "Generalist interface"
+#endif
+							      );
       
       in_CLOCK        = interface->set_signal_clk              ("clock" ,1);
@@ -47,5 +50,9 @@
       for (uint32_t i=0; i<_param._nb_access; i++)
 	{
-	  Interface_fifo * interface = _interfaces->set_interface("access_"+toString(i), IN  ,WEST, "Access");
+	  Interface_fifo * interface = _interfaces->set_interface("access_"+toString(i)
+#ifdef POSITION
+								  , IN  ,WEST, "Access"
+#endif
+								  );
 
 	   in_ACCESS_VAL     [i] = interface->set_signal_valack_in        ("val"    , VAL);
@@ -69,5 +76,9 @@
       for (uint32_t i=0; i<_param._nb_update; i++)
 	{
-	  Interface_fifo * interface = _interfaces->set_interface("update_"+toString(i), IN  ,EAST, "Update");
+	  Interface_fifo * interface = _interfaces->set_interface("update_"+toString(i)
+#ifdef POSITION
+								  , IN  ,EAST, "Update"
+#endif
+								  );
 
  	  in_UPDATE_VAL     [i] = interface->set_signal_valack_in        ("val"    , VAL);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_end_cycle.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_end_cycle.cpp	(revision 75)
@@ -0,0 +1,41 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace victim {
+namespace victim_pseudo_lru {
+
+#undef  FUNCTION
+#define FUNCTION "Victim_Pseudo_LRU::end_cycle"
+void Victim_Pseudo_LRU::end_cycle ()
+  {
+    log_printf(FUNC,Victim_Pseudo_LRU,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,Victim_Pseudo_LRU,FUNCTION,"End");
+  };
+
+}; // end namespace victim_pseudo_lru
+}; // end namespace victim
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics.cpp	(revision 74)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-  
-  string Victim_Pseudo_LRU::statistics (uint32_t depth)
-  {
-    return _stat->print(depth);
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,35 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace victim {
+namespace victim_pseudo_lru {
+
+#undef  FUNCTION
+#define FUNCTION "Victim_Pseudo_LRU::statistics_declaration"
+  void Victim_Pseudo_LRU::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Victim_Pseudo_LRU,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "Victim_Pseudo_LRU",
+		      param_statistics);
+    
+    log_printf(FUNC,Victim_Pseudo_LRU,FUNCTION,"End");
+  };
+
+}; // end namespace victim_pseudo_lru
+}; // end namespace victim
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp	(revision 75)
@@ -61,11 +61,6 @@
       }//end for i
 
-#ifdef STATISTICS
-    _stat->add(_stat_nb_access,
-	       _stat_nb_update);
-#endif    
-    
-#ifdef VHDL_TESTBENCH
-    vhdl_testbench_transition ();
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    end_cycle ();
 #endif
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp	(revision 74)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp	(revision 75)
@@ -40,5 +40,5 @@
 	// Read the table
 	
-	string access_address;
+	std::string access_address;
 
 	if (_param._size_table>1)
@@ -58,5 +58,5 @@
 	    for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param._nb_entity-1); k+=(1<<(j+1)))
 	      {
-		string cond = "";
+		std::string cond = "";
 		
 		// Create the condition
@@ -70,5 +70,5 @@
 		  }
 		
-		string print_else = (k==(1<<j)-1)?"     ":"else ";
+		std::string print_else = (k==(1<<j)-1)?"     ":"else ";
 
 		vhdl->set_body ("\t"+print_else+"access_entry_"+toString(i)+"("+toString(k)+") "+cond);
@@ -93,5 +93,5 @@
 	    {
 	      bool   have_cond = false;
-	      string cond      = "";
+	      std::string cond      = "";
 	      
 	      // condition to change the bit
@@ -126,5 +126,5 @@
 	    {
 	      bool   have_cond = false;
-	      string cond      = "";
+	      std::string cond      = "";
 	      
 	      // condition to change the bit
@@ -144,5 +144,5 @@
 	      if (have_cond == true)
 		{
-		  string update_address;
+		  std::string update_address;
 
 		  if (_param._size_table>1)
@@ -170,5 +170,5 @@
     for (uint32_t i=0; i<_param._nb_access; i++)
       {
-	string access_address;
+	std::string access_address;
 
 	if (_param._size_table>1)
@@ -185,5 +185,5 @@
     for (uint32_t i=0; i<_param._nb_update; i++)
       {
-	string update_address;
+	std::string update_address;
 
 	if (_param._size_table>1)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_transition.cpp	(revision 74)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-
-  void Victim_Pseudo_LRU::vhdl_testbench_transition (void)
-  {
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
