Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_memory.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_memory.cfg	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_memory.cfg	(revision 75)
@@ -8,6 +8,6 @@
 32	32	+1	# size_general_data  
 2 	2 	+1	# size_special_data  
-256	256	*2	# nb_general_register
-32	32	+1	# nb_special_register
+16 	16 	*2	# nb_general_register
+8 	8 	+1	# nb_special_register
 8	8	+1	# nb_operation       
 4	4	+1	# nb_type            
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_write.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_write.cfg	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_write.cfg	(revision 75)
@@ -8,6 +8,6 @@
 32	32	+1	# size_general_data  
 2 	2 	+1	# size_special_data  
-256	256	*2	# nb_general_register
-32	32	+1	# nb_special_register
+16 	16     	*2	# nb_general_register
+8 	8 	+1	# nb_special_register
 8	8	+1	# nb_operation       
 4	4	+1	# nb_type            
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire2.cfg	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire2.cfg	(revision 75)
@@ -8,6 +8,6 @@
 32	32	+1	# size_general_data  
 2 	2 	+1	# size_special_data  
-256	256	*2	# nb_general_register
-32	32	+1	# nb_special_register
+18   	16 	*2	# nb_general_register
+8 	8 	+1	# nb_special_register
 8	8	+1	# nb_operation       
 4	4	+1	# nb_type            
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire4.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire4.cfg	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire4.cfg	(revision 75)
@@ -8,6 +8,6 @@
 32	32	+1	# size_general_data  
 2 	2 	+1	# size_special_data  
-256	256	*2	# nb_general_register
-32	32	+1	# nb_special_register
+16	16	*2	# nb_general_register
+8 	8	+1	# nb_special_register
 8	8	+1	# nb_operation       
 4	4	+1	# nb_type            
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_write.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_write.cfg	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_write.cfg	(revision 75)
@@ -8,6 +8,6 @@
 32	32	+1	# size_general_data  
 2 	2 	+1	# size_special_data  
-256	256	*2	# nb_general_register
-32	32	+1	# nb_special_register
+16 	16 	*2	# nb_general_register
+8 	8 	+1	# nb_special_register
 8	8	+1	# nb_operation       
 4	4	+1	# nb_type            
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp	(revision 75)
@@ -9,4 +9,5 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/include/test.h"
 #include "Common/include/Test.h"
+#include "Common/include/BitManipulation.h"
 
 #define NB_ITERATION  2
@@ -368,10 +369,10 @@
 	    {
 	      _gpr_val      [i][j] = ((rand()%100) < percent_registerfile_valid);
-	      _gpr          [i][j] = rand()%((1<<_param->_size_general_data)-1);
+	      _gpr          [i][j] = range<Tgeneral_data_t>(rand(),_param->_size_general_data);
 	    }
 	  for (uint32_t i=0; i<_param->_nb_special_register; i++)
 	    {
 	      _spr_val      [i][j] = ((rand()%100) < percent_registerfile_valid);
-	      _spr          [i][j] = rand()%(1<<_param->_size_special_data);
+	      _spr          [i][j] = range<Tspecial_data_t>(rand(),_param->_size_special_data);
 	    }
 	}
@@ -479,5 +480,5 @@
 	      Tcontext_t         ooo_engine = rand()% _param->_nb_ooo_engine;
 	      Tcontrol_t         val     = (_gpr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_registerfile):0;
-	      Tgeneral_data_t    data    = rand()%((1<<_param->_size_general_data)-1);
+	      Tgeneral_data_t    data    = range<Tgeneral_data_t>(rand(),_param->_size_general_data);
 	    
 	      val = (val and can_gpr_use [ooo_engine][num_reg] and need_gpr [ooo_engine][num_reg]);
@@ -505,5 +506,5 @@
 	      Tcontext_t         ooo_engine = rand()% _param->_nb_ooo_engine;
 	      Tcontrol_t         val     = (_spr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_registerfile):0;
-	      Tspecial_data_t    data    = rand()%(1<<_param->_size_special_data);
+	      Tspecial_data_t    data    = range<Tspecial_data_t>(rand(),_param->_size_special_data);
 
 	      val = (val and can_spr_use [ooo_engine][num_reg] and need_spr[ooo_engine][num_reg]);
@@ -534,5 +535,5 @@
 	      Tgeneral_address_t gpr_num_reg = rand()% _param->_nb_general_register;
 	      Tcontrol_t         gpr_val     = (_gpr_val [gpr_num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0;
-	      Tgeneral_data_t    gpr_data    = rand()%((1<<_param->_size_general_data)-1);
+	      Tgeneral_data_t    gpr_data    = range<Tgeneral_data_t>(rand(),_param->_size_general_data);
 	      
 	      gpr_val = (gpr_val and can_gpr_use [ooo_engine][gpr_num_reg] and need_gpr[ooo_engine][gpr_num_reg]);
@@ -554,5 +555,5 @@
 	      Tspecial_address_t spr_num_reg = rand()% _param->_nb_special_register;
 	      Tcontrol_t         spr_val     = (_spr_val [spr_num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0;
-	      Tspecial_data_t    spr_data    = rand()%(1<<_param->_size_special_data);
+	      Tspecial_data_t    spr_data    = range<Tspecial_data_t>(rand(),_param->_size_special_data);
 	      
 	      spr_val = (spr_val and can_spr_use [ooo_engine][spr_num_reg] and need_spr[ooo_engine][spr_num_reg]);
@@ -582,5 +583,5 @@
 	      Tgeneral_address_t num_reg = rand()% _param->_nb_general_register;
 	      Tcontrol_t         val     = (_gpr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0;
-	      Tgeneral_data_t    data    = rand()%((1<<_param->_size_general_data)-1);
+	      Tgeneral_data_t    data    = range<Tgeneral_data_t>(rand(),_param->_size_general_data);
 	      
 	      val = (val and can_gpr_use [ooo_engine][num_reg] and need_gpr [ooo_engine][num_reg]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/VERSION	(revision 71)
+++ 	(revision )
@@ -1,4 +1,0 @@
-v0.6
-
-0.5 modif vhdl_port et vhdl_testbench_port -> ajout d'une macro
-0.6 ajout de la documentation
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h	(revision 75)
@@ -85,9 +85,9 @@
   public : ~Parameters () ;
 
-  public : string msg_error (void);
+  public :        std::string   msg_error  (void);
 
-  public :        string   print      (uint32_t depth);
-  public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters & x);
+  public :        std::string   print      (uint32_t depth);
+  public : friend std::ostream& operator<< (std::ostream& output_stream,
+					    morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h	(revision 75)
@@ -23,5 +23,5 @@
 #include "Behavioural/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h"
+#include "Behavioural/include/Stat.h"
 #endif
 #include "Behavioural/include/Component.h"
@@ -29,7 +29,4 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
-
-using namespace std;
-using namespace morpheo::behavioural::generic::queue_control;
 
 namespace morpheo {
@@ -69,31 +66,31 @@
   public    : Tspecial_address_t _num_reg_re  ;
 
-    friend ostream& operator<< (ostream& output_stream,
+    friend std::ostream& operator<< (std::ostream& output_stream,
 				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Treservation_station_entry_t & x)
     {
-      output_stream << " * _context_id     : " << toString(x._context_id     ) << endl
-		    << " * _front_end_id   : " << toString(x._front_end_id   ) << endl
-		    << " * _ooo_engine_id  : " << toString(x._ooo_engine_id  ) << endl
-		    << " * _rob_id         : " << toString(x._rob_id         ) << endl
-		    << " * _operation      : " << toString(x._operation      ) << endl
-		    << " * _type           : " << toString(x._type           ) << endl
-		    << " * _has_immediat   : " << toString(x._has_immediat   ) << endl
-		    << " * _immediat       : " << toString(x._immediat       ) << endl
-// 		    << " * _read_ra        : " << toString(x._read_ra        ) << endl
-		    << " * _num_reg_ra     : " << toString(x._num_reg_ra     ) << endl
-		    << " * _data_ra_val    : " << toString(x._data_ra_val    ) << endl
-		    << " * _data_ra        : " << toString(x._data_ra        ) << endl
-// 		    << " * _read_rb        : " << toString(x._read_rb        ) << endl
-		    << " * _num_reg_rb     : " << toString(x._num_reg_rb     ) << endl
-		    << " * _data_rb_val    : " << toString(x._data_rb_val    ) << endl
-		    << " * _data_rb        : " << toString(x._data_rb        ) << endl
-// 		    << " * _read_rc        : " << toString(x._read_rc        ) << endl
-		    << " * _num_reg_rc     : " << toString(x._num_reg_rc     ) << endl
-		    << " * _data_rc_val    : " << toString(x._data_rc_val    ) << endl
-		    << " * _data_rc        : " << toString(x._data_rc        ) << endl
-		    << " * _write_rd       : " << toString(x._write_rd       ) << endl
-		    << " * _num_reg_rd     : " << toString(x._num_reg_rd     ) << endl
-		    << " * _write_re       : " << toString(x._write_re       ) << endl
-		    << " * _num_reg_re     : " << toString(x._num_reg_re     ) << endl;
+      output_stream << " * _context_id     : " << toString(x._context_id     ) << std::endl
+		    << " * _front_end_id   : " << toString(x._front_end_id   ) << std::endl
+		    << " * _ooo_engine_id  : " << toString(x._ooo_engine_id  ) << std::endl
+		    << " * _rob_id         : " << toString(x._rob_id         ) << std::endl
+		    << " * _operation      : " << toString(x._operation      ) << std::endl
+		    << " * _type           : " << toString(x._type           ) << std::endl
+		    << " * _has_immediat   : " << toString(x._has_immediat   ) << std::endl
+		    << " * _immediat       : " << toString(x._immediat       ) << std::endl
+// 		    << " * _read_ra        : " << toString(x._read_ra        ) << std::endl
+		    << " * _num_reg_ra     : " << toString(x._num_reg_ra     ) << std::endl
+		    << " * _data_ra_val    : " << toString(x._data_ra_val    ) << std::endl
+		    << " * _data_ra        : " << toString(x._data_ra        ) << std::endl
+// 		    << " * _read_rb        : " << toString(x._read_rb        ) << std::endl
+		    << " * _num_reg_rb     : " << toString(x._num_reg_rb     ) << std::endl
+		    << " * _data_rb_val    : " << toString(x._data_rb_val    ) << std::endl
+		    << " * _data_rb        : " << toString(x._data_rb        ) << std::endl
+// 		    << " * _read_rc        : " << toString(x._read_rc        ) << std::endl
+		    << " * _num_reg_rc     : " << toString(x._num_reg_rc     ) << std::endl
+		    << " * _data_rc_val    : " << toString(x._data_rc_val    ) << std::endl
+		    << " * _data_rc        : " << toString(x._data_rc        ) << std::endl
+		    << " * _write_rd       : " << toString(x._write_rd       ) << std::endl
+		    << " * _num_reg_rd     : " << toString(x._num_reg_rd     ) << std::endl
+		    << " * _write_re       : " << toString(x._write_re       ) << std::endl
+		    << " * _num_reg_re     : " << toString(x._num_reg_re     ) << std::endl;
 
       return output_stream;
@@ -109,13 +106,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;
+
+#ifdef STATISTICS
+  public    : Stat                           * _stat;
 #endif
 
@@ -233,12 +227,12 @@
   public  :          Reservation_station              (
 #ifdef SYSTEMC
-					      sc_module_name                                name,
+						       sc_module_name                                name,
 #else					       
-					      string                                        name,
+						       string                                        name,
 #endif					       
 #ifdef STATISTICS
-					      morpheo::behavioural::Parameters_Statistics * param_statistics,
-#endif
-					      Parameters                                  * param );
+						       morpheo::behavioural::Parameters_Statistics * param_statistics,
+#endif
+						       Parameters                                  * param );
   public  :          ~Reservation_station             (void);
 					       
@@ -250,6 +244,7 @@
   public  : void     genMoore                  (void);
 #endif					       
-#ifdef STATISTICS
-  public  : string   statistics                (uint32_t depth);
+
+#ifdef STATISTICS
+  public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
 #endif
 					       
@@ -260,5 +255,7 @@
 #endif					       
 					       
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   private : void     end_cycle                 (void);
+#endif
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h	(revision 71)
+++ 	(revision )
@@ -1,63 +1,0 @@
-#ifdef STATISTICS
-#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_read_unit_read_unit_reservation_station_Statistics_h
-#define morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_read_unit_read_unit_reservation_station_Statistics_h
-
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Common/include/Debug.h"
-#include "Behavioural/include/Statistics.h"
-#include "Behavioural/include/Parameters_Statistics.h"
-//#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h"
-
-//using namespace morpheo::behavioural::generic::group;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace multi_read_unit {
-namespace read_unit {
-namespace reservation_station {
-
-
-  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 reservation_station
-}; // end namespace read_unit
-}; // end namespace multi_read_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo
-
-#endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_msg_error.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_msg_error.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -22,9 +21,9 @@
 #undef  FUNCTION
 #define FUNCTION "Reservation_station::msg_error"
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
 
-    string msg = "";
+    std::string msg = "";
 
 //     if (_size_queue < 2)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_print.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_print.cpp	(revision 75)
@@ -8,5 +8,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -22,5 +21,5 @@
 #undef  FUNCTION
 #define FUNCTION "Reservation_station::print"
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
@@ -54,6 +53,6 @@
 #undef  FUNCTION
 #define FUNCTION "Reservation_station::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters & x)
   {
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 75)
@@ -31,7 +31,4 @@
 			      _name              (name)
 			      ,_param            (param)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
@@ -46,8 +43,5 @@
     log_printf(INFO,Reservation_station,FUNCTION,"Allocation of statistics");
 
-    // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -95,6 +89,4 @@
     log_printf(INFO,Reservation_station,FUNCTION,"Generate Statistics file");
 
-    _stat->generate_file(statistics(0));
-    
     delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp	(revision 75)
@@ -24,6 +24,4 @@
   void Reservation_station::allocation (void)
   {
-    string rename;
-
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_end_cycle.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_end_cycle.cpp	(revision 75)
@@ -1,2 +1,3 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 /*
  * $Id$
@@ -25,5 +26,5 @@
 
 #ifdef STATISTICS
-    _stat->add();
+    _stat->end_cycle();
 #endif    
 
@@ -45,2 +46,3 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_statistics.cpp	(revision 71)
+++ 	(revision )
@@ -1,43 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace multi_read_unit {
-namespace read_unit {
-namespace reservation_station {
-
-
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::statistics"
-  string Reservation_station::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-
-    return txt;
-  };
-
-}; // end namespace reservation_station
-}; // end namespace read_unit
-}; // end namespace multi_read_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_statistics_declaration.cpp	(revision 75)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_statistics_declaration.cpp	(revision 75)
@@ -0,0 +1,42 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_read_unit {
+namespace read_unit {
+namespace reservation_station {
+
+#undef  FUNCTION
+#define FUNCTION "Reservation_station::statistics_declaration"
+  void Reservation_station::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+                      "Reservation_station",
+                      param_statistics);
+    
+    log_printf(FUNC,Reservation_station,FUNCTION,"End");
+  };
+
+}; // end namespace reservation_station
+}; // end namespace read_unit
+}; // end namespace multi_read_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_vhdl_body.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_vhdl_body.cpp	(revision 75)
@@ -22,5 +22,5 @@
   void Reservation_station::vhdl_body (Vhdl * & vhdl)
   {
-    string range_retire, range_insert;
+    std::string range_retire, range_insert;
 
     if (_param->_size_queue == 1)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics.cpp	(revision 71)
+++ 	(revision )
@@ -1,52 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace multi_read_unit {
-namespace read_unit {
-namespace reservation_station {
-
-
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::Statistics"
-  Statistics::Statistics (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-  };
-  
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::~Statistics"
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-  };
-
-}; // end namespace reservation_station
-}; // end namespace read_unit
-}; // end namespace multi_read_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics_add.cpp	(revision 71)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace multi_read_unit {
-namespace read_unit {
-namespace reservation_station {
-
-
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::add"
-  void Statistics::add ()
-  {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-  };
-
-}; // end namespace reservation_station
-}; // end namespace read_unit
-}; // end namespace multi_read_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics_print.cpp	(revision 71)
+++ 	(revision )
@@ -1,65 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace multi_read_unit {
-namespace read_unit {
-namespace reservation_station {
-
-
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::print"
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<reservation_station name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</reservation_station>" << endl;
-    
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Statistics & x)
-  {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-
-    output_stream << x.print(0);
-
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-
-    return output_stream;
-  };
-
-}; // end namespace reservation_station
-}; // end namespace read_unit
-}; // end namespace multi_read_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Statistics_print_body.cpp	(revision 71)
+++ 	(revision )
@@ -1,49 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace core {
-namespace multi_execute_loop {
-namespace execute_loop {
-namespace multi_read_unit {
-namespace read_unit {
-namespace reservation_station {
-
-
-#undef  FUNCTION
-#define FUNCTION "Reservation_station::print_body"
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-}; // end namespace reservation_station
-}; // end namespace read_unit
-}; // end namespace multi_read_unit
-}; // end namespace execute_loop
-}; // end namespace multi_execute_loop
-}; // end namespace core
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
