Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/configuration.cfg	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/configuration.cfg	(revision 82)
@@ -3,5 +3,5 @@
 1	1	+1	# nb_front_end       
 2	2	+1	# nb_ooo_engine      
-1024	1024	+1	# nb_packet          
+256 	256 	+1	# nb_packet          
 32	32	+1	# size_general_data  
 32	32	+1	# nb_general_register
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/src/test.cpp	(revision 82)
@@ -7,37 +7,9 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (1024*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/include/test.h"
 #include "Common/include/Test.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (1024*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
 class execute_transaction
@@ -121,7 +93,8 @@
   Functionnal_unit * _Functionnal_unit = new Functionnal_unit (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+							       _parameters_statistics,
 #endif
-					     _param);
+							       _param,
+							       USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h	(revision 82)
@@ -148,5 +148,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :             ~Functionnal_unit         (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/test.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/test.h	(revision 82)
@@ -7,4 +7,5 @@
  */
 
+#define CYCLE_MAX     1024
 
 #include "Common/include/Time.h"
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp	(revision 82)
@@ -7,33 +7,8 @@
  */
 
+  /*
+
 #include <queue>
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/test.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (1024*NB_ITERATION)
-
-#define LABEL(str)							\
-  {									\
-    cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
-  } while(0)
-
-#define SC_START(cycle_offset)						\
-  do									\
-    {									\
-      /*cout << "SC_START (begin)" << endl;*/				\
-									\
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time()); \
-      if (cycle_offset != 0)						\
-	{								\
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								\
-									\
-      if (cycle_current > CYCLE_MAX)					\
-	{								\
-	  TEST_KO("Maximal cycles Reached");				\
-	}								\
-      sc_start(cycle_offset);						\
-      /*cout << "SC_START (end  )" << endl;*/				\
-    } while(0)
 
 
@@ -55,7 +30,5 @@
   
 #ifdef SYSTEMC
-  /*********************************************************************
-   * Déclarations des signaux
-   *********************************************************************/
+
   string rename = "";
 
@@ -129,7 +102,5 @@
     }
   
-  /********************************************************
-   * Instanciation
-   ********************************************************/
+  // Instanciation
   
   cout << "<" << name << "> Instanciation of _Load_store_unit" << endl;
@@ -215,7 +186,5 @@
   Time * _time = new Time();
 
-  /********************************************************
-   * Simulation - Begin
-   ********************************************************/
+  // Simulation - Begin
 
   // Initialisation
@@ -656,5 +625,5 @@
 		}
 
-	      LABEL("DCACHE_RSP : "+toString(in_DCACHE_RSP_VAL->read())+" - "+toString(out_DCACHE_RSP_ACK ->read()));
+		LABEL("DCACHE_RSP : "+toString(in_DCACHE_RSP_VAL->read())+" - "+toString(out_DCACHE_RSP_ACK ->read()));
 	      if (in_DCACHE_RSP_VAL->read() and out_DCACHE_RSP_ACK->read())
 		{
@@ -677,7 +646,5 @@
 
   
-  /********************************************************
-   * Simulation - End
-   ********************************************************/
+  // Simulation - End
 
   TEST_OK ("End of Simulation");
@@ -755,2 +722,3 @@
 #endif
 }
+  */
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp	(revision 82)
@@ -9,31 +9,4 @@
 #include <queue>
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/test.h"
-
-#define CYCLE_MAX     1024
-
-#define LABEL(str)							\
-  {									\
-    cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
-  } while(0)
-
-#define SC_START(cycle_offset)						\
-  do									\
-    {									\
-      /*cout << "SC_START (begin)" << endl;*/				\
-									\
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time()); \
-      if (cycle_offset != 0)						\
-	{								\
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								\
-									\
-      if (cycle_current > CYCLE_MAX)					\
-	{								\
-	  TEST_KO("Maximal cycles Reached");				\
-	}								\
-      sc_start(cycle_offset);						\
-      /*cout << "SC_START (end  )" << endl;*/				\
-    } while(0)
-
 
 //===================================================================={test}
@@ -71,5 +44,6 @@
 							    _parameters_statistics,
 #endif
-							    _param);
+							    _param,
+							    USE_ALL);
   
 #ifdef SYSTEMC
@@ -487,10 +461,10 @@
 	      SC_START(0);
 
-	      LABEL("MEMORY_IN  : "+toString(in_MEMORY_IN_VAL ->read())+" - "+toString(out_MEMORY_IN_ACK ->read()));
+	      LABEL("MEMORY_IN  : %d - %d",in_MEMORY_IN_VAL ->read(),out_MEMORY_IN_ACK ->read());
 	      if ( in_MEMORY_IN_VAL ->read() and out_MEMORY_IN_ACK ->read())
 		{
 		  Tpacket_t  packet_id = in_MEMORY_IN_PACKET_ID->read();
 
-		  LABEL(" * Accepted MEMORY_IN  : " + toString(packet_id));
+		  LABEL(" * Accepted MEMORY_IN  : %d",packet_id);
 		  cout << fifo_request.top();
 
@@ -509,10 +483,10 @@
 		}
 
-	      LABEL("MEMORY_OUT : "+toString(out_MEMORY_OUT_VAL->read())+" - "+toString(in_MEMORY_OUT_ACK ->read()));
+	      LABEL("MEMORY_OUT : %d - %d",out_MEMORY_OUT_VAL->read(),in_MEMORY_OUT_ACK ->read());
 	      if (out_MEMORY_OUT_VAL->read() and  in_MEMORY_OUT_ACK->read())
 		{
 		  Tpacket_t  packet_id = out_MEMORY_OUT_PACKET_ID->read();
 
-		  LABEL(" * Accepted MEMORY_OUT : " + toString(packet_id));
+		  LABEL(" * Accepted MEMORY_OUT : %d",packet_id);
 
 		  if (is_operation_memory_store(tab_request[packet_id]._operation))
@@ -650,5 +624,5 @@
 		}
 
-	      LABEL("DCACHE_REQ : "+toString(out_DCACHE_REQ_VAL->read())+" - "+toString(in_DCACHE_REQ_ACK ->read()));
+	      LABEL("DCACHE_REQ : %d - %d",out_DCACHE_REQ_VAL->read(),in_DCACHE_REQ_ACK ->read());
 	      if (out_DCACHE_REQ_VAL->read() and  in_DCACHE_REQ_ACK->read())
 		{
@@ -665,5 +639,5 @@
 		  packet_id  = (out_DCACHE_REQ_PACKET_ID ->read())>>1;
 	      
-		  LABEL(" * Accepted DCACHE_REQ : " + toString(packet_id));
+		  LABEL(" * Accepted DCACHE_REQ : %d",packet_id);
 
 		  if (address >= size_memory)
@@ -676,5 +650,5 @@
 		    {
 		      rdata = _memory->access (context_id, address, out_DCACHE_REQ_TYPE->read(), out_DCACHE_REQ_WDATA->read());
-		      LABEL("   * rdata : " + toString(rdata));
+		      LABEL("   * rdata : 0x%x",rdata);
 		    }
 
@@ -699,5 +673,5 @@
 		}
 
-	      LABEL("DCACHE_RSP : "+toString(in_DCACHE_RSP_VAL->read())+" - "+toString(out_DCACHE_RSP_ACK ->read()));
+	      LABEL("DCACHE_RSP : %d - %d",in_DCACHE_RSP_VAL->read(),out_DCACHE_RSP_ACK ->read());
 	      if (in_DCACHE_RSP_VAL->read() and out_DCACHE_RSP_ACK->read())
 		{
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h	(revision 82)
@@ -30,4 +30,5 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
+#include "Behavioural/include/Usage.h"
 
 namespace morpheo {
@@ -48,7 +49,7 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const std::string       _name;
-
+  protected : const std::string  _name;
   protected : const Parameters * _param;
+  private   : const Tusage_t     _usage;
 
 #ifdef STATISTICS
@@ -202,5 +203,6 @@
    morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-   Parameters                                  * param );
+   Parameters                                  * param,
+   morpheo::behavioural::Tusage_t                usage );
   public  :          ~Load_store_unit             (void);
 					       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp	(revision 82)
@@ -20,15 +20,20 @@
 #undef  FUNCTION
 #define FUNCTION "Load_store_unit::Load_store_unit"
+  Load_store_unit::Load_store_unit 
+  (
 #ifdef SYSTEMC
-  Load_store_unit::Load_store_unit (sc_module_name name,
+   sc_module_name name,
 #else
-  Load_store_unit::Load_store_unit (string name,
+   std::string name,
 #endif
 #ifdef STATISTICS
-			  morpheo::behavioural::Parameters_Statistics * param_statistics,
+   morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-			  morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Parameters * param ):
-			      _name              (name)
-			      ,_param            (param)
+   morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Parameters * param ,
+   morpheo::behavioural::Tusage_t usage
+   ):
+    _name              (name)
+    ,_param            (param)
+    ,_usage (usage)
   {
     log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_allocation.cpp	(revision 82)
@@ -26,5 +26,5 @@
     log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp	(revision 82)
@@ -7,37 +7,10 @@
  */
 
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h"
-#include "Common/include/Test.h"
-
 #define NB_ITERATION  1
 //64
 #define CYCLE_MAX     (1024*NB_ITERATION)
 
-#define LABEL(str)                                                                       \
-{                                                                                        \
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
-} while(0)
-
-static uint32_t cycle = 0;
-
-#define SC_START(cycle_offset)                                          \
-do                                                                      \
-{                                                                       \
-/*cout << "SC_START (begin)" << endl;*/                                 \
-                                                                        \
-  uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time()); \
-  if (cycle_current != cycle)                                           \
-    {                                                                   \
-      cycle = cycle_current;                                            \
-      cout << "##########[ cycle "<< cycle << " ]" << endl;             \
-    }                                                                   \
-                                                                        \
-  if (cycle_current > CYCLE_MAX)                                        \
-    {                                                                   \
-      TEST_KO("Maximal cycles Reached");                                \
-    }                                                                   \
-  sc_start(cycle_offset);                                               \
-/*cout << "SC_START (end  )" << endl;*/                                 \
-} while(0)
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h"
+#include "Common/include/Test.h"
 
 void test (string name,
@@ -54,5 +27,6 @@
 					     _parameters_statistics,
 #endif
-					     _param);
+					     _param,
+					     USE_ALL);
   
 #ifdef SYSTEMC
@@ -362,5 +336,5 @@
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      LABEL("Iteration "+toString(iteration));
+      LABEL("Iteration %d",iteration);
       int32_t percent_transaction_queue_in     = (rand()%45)+30;
       int32_t percent_transaction_queue_out    = (rand()%45)+30;
@@ -518,12 +492,12 @@
 	  SC_START(0);
 	  
-	  LABEL("Test     READ_QUEUE_IN  : "+toString(READ_QUEUE_IN_VAL->read())+","+toString(READ_QUEUE_IN_ACK->read()));
+	  LABEL("Test     READ_QUEUE_IN  : %d,%d",READ_QUEUE_IN_VAL->read(),READ_QUEUE_IN_ACK->read());
 	  if ((READ_QUEUE_IN_VAL->read() == 1) and
 	      (READ_QUEUE_IN_ACK->read() == 1))
 	    {
-	      LABEL("Accepted READ_QUEUE_IN  ["+toString(request_in)+"]");
+	      LABEL("Accepted READ_QUEUE_IN  [%d]",request_in);
 	      request_in  ++;
 	    }
-	  LABEL("Test     READ_QUEUE_OUT : "+toString(READ_QUEUE_OUT_VAL->read())+","+toString(READ_QUEUE_OUT_ACK->read()));
+	  LABEL("Test     READ_QUEUE_OUT : %d,%d",READ_QUEUE_OUT_VAL->read(),READ_QUEUE_OUT_ACK->read());
 	  if ((READ_QUEUE_OUT_VAL->read() == 1) and
 	      (READ_QUEUE_OUT_ACK->read() == 1))
@@ -535,5 +509,5 @@
 		rob_id = 0;
 	      Tcontext_t ctxt   = _ooo_engine_id [rob_id];
-	      LABEL("Accepted READ_QUEUE_OUT ["+toString(rob_id)+"]");
+	      LABEL("Accepted READ_QUEUE_OUT [%d]",rob_id);
 	      
 	      TEST(uint32_t          , rob_id ,request_out);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h	(revision 82)
@@ -17,7 +17,7 @@
 #include "Common/include/ToString.h"
 #include "Common/include/Debug.h"
-#include "Behavioural/include/Types.h"
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h"
 #ifdef STATISTICS
 #include "Behavioural/include/Stat.h"
@@ -27,4 +27,5 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
+#include "Behavioural/include/Usage.h"
 
 namespace morpheo {
@@ -36,166 +37,4 @@
 namespace read_unit {
 namespace read_queue {
-  
-  class Tread_queue_entry_t
-  {
-  public    : Tcontext_t         _context_id   ;
-  public    : Tcontext_t         _front_end_id ;
-  public    : Tcontext_t         _ooo_engine_id;
-  public    : Tpacket_t          _rob_id       ;
-  public    : Toperation_t       _operation    ;
-  public    : Ttype_t            _type         ;
-  public    : Tlsq_ptr_t         _store_queue_ptr_write;
-  public    : Tlsq_ptr_t         _load_queue_ptr_write;
-  public    : Tcontrol_t         _has_immediat ;
-  public    : Tgeneral_data_t    _immediat     ;
-  public    : Tcontrol_t         _read_ra      ;
-  public    : Tgeneral_address_t _num_reg_ra   ;
-  public    : Tcontrol_t         _read_rb      ;
-  public    : Tgeneral_address_t _num_reg_rb   ;
-  public    : Tcontrol_t         _read_rc      ;
-  public    : Tspecial_address_t _num_reg_rc   ;
-  public    : Tcontrol_t         _write_rd     ;
-  public    : Tgeneral_address_t _num_reg_rd   ;
-  public    : Tcontrol_t         _write_re     ;
-  public    : Tspecial_address_t _num_reg_re   ;
-
-    friend std::ostream& operator<< (std::ostream& output_stream,
-				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x)
-    {
-      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
-		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
-		    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << 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
-		    << " * _read_rb               : " << toString(x._read_rb      ) << std::endl
-		    << " * _num_reg_rb            : " << toString(x._num_reg_rb   ) << std::endl
-		    << " * _read_rc               : " << toString(x._read_rc      ) << std::endl
-		    << " * _num_reg_rc            : " << toString(x._num_reg_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;
-    }
-
-  };
-
-  class Tread_queue_head_entry_t
-  {
-  public    : Tcontext_t         _context_id   ;
-  public    : Tcontext_t         _front_end_id ;
-  public    : Tcontext_t         _ooo_engine_id;
-  public    : Tpacket_t          _rob_id       ;
-  public    : Toperation_t       _operation    ;
-  public    : Ttype_t            _type         ;
-  public    : Tlsq_ptr_t         _store_queue_ptr_write;
-  public    : Tlsq_ptr_t         _load_queue_ptr_write;
-  public    : Tcontrol_t         _has_immediat ;
-  public    : Tgeneral_data_t    _immediat     ;
-  public    : Tcontrol_t         _read_ra      ;
-  public    : Tcontrol_t         _read_ra_val  ; // 1 : must access at the registerFile (after access, is set at 0)
-  public    : Tgeneral_address_t _num_reg_ra   ;
-  public    : Tcontrol_t         _data_ra_val  ; // 1 : the read of registerFile is valid
-  public    : Tgeneral_data_t    _data_ra      ;
-  public    : Tcontrol_t         _read_rb      ;
-  public    : Tcontrol_t         _read_rb_val  ;
-  public    : Tgeneral_address_t _num_reg_rb   ;
-  public    : Tcontrol_t         _data_rb_val  ;
-  public    : Tgeneral_data_t    _data_rb      ;
-  public    : Tcontrol_t         _read_rc      ;
-  public    : Tcontrol_t         _read_rc_val  ;
-  public    : Tspecial_address_t _num_reg_rc   ;
-  public    : Tcontrol_t         _data_rc_val  ;
-  public    : Tspecial_data_t    _data_rc      ;
-  public    : Tcontrol_t         _write_rd     ;
-  public    : Tgeneral_address_t _num_reg_rd   ;
-  public    : Tcontrol_t         _write_re     ;
-  public    : Tspecial_address_t _num_reg_re   ;
-
-#undef  FUNCTION 
-#define FUNCTION "Tread_queue_head_entry_t::operator="
-  public    : Tread_queue_head_entry_t& operator=(Tread_queue_entry_t x)
-    {
-      log_printf(FUNC,Read_queue,FUNCTION,"Begin");
-	  
-      _context_id   = x._context_id   ;
-      _front_end_id = x._front_end_id ;
-      _ooo_engine_id= x._ooo_engine_id;
-      _rob_id       = x._rob_id       ;
-      _operation    = x._operation    ;
-      _type         = x._type         ;
-      _store_queue_ptr_write = x._store_queue_ptr_write;
-      _load_queue_ptr_write  = x._load_queue_ptr_write ;
-      _has_immediat = x._has_immediat ;
-      _immediat     = x._immediat     ;
-      _read_ra      = x._read_ra      ;
-      _read_ra_val  = x._read_ra == 1 ; //if not must read, the registerFile is already access
-      _num_reg_ra   = x._num_reg_ra   ;
-      _data_ra_val  = x._read_ra == 0 ; //if not must read, the data is already valid
-      _data_ra      = 0               ;
-      _read_rb      = x._read_rb      ;
-      _read_rb_val  = x._read_rb == 1 ;
-      _num_reg_rb   = x._num_reg_rb   ;
-      _data_rb_val  = x._read_rb == 0 ;
-      _data_rb      = 0               ;
-      _read_rc      = x._read_rc      ;
-      _read_rc_val  = x._read_rc == 1 ;
-      _num_reg_rc   = x._num_reg_rc   ;
-      _data_rc_val  = x._read_rc == 0 ;
-      _data_rc      = 0               ;
-      _write_rd     = x._write_rd     ;
-      _num_reg_rd   = x._num_reg_rd   ;
-      _write_re     = x._write_re     ;
-      _num_reg_re   = x._num_reg_re   ;
-
-      log_printf(FUNC,Read_queue,FUNCTION,"End");
-
-      return *this;
-    }
-
-    friend std::ostream& operator<< (std::ostream& output_stream,
-				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x)
-    {
-      output_stream << " * _context_id            : " << x._context_id   << std::endl
-		    << " * _front_end_id          : " << x._front_end_id << std::endl
-		    << " * _ooo_engine_id         : " << x._ooo_engine_id<< std::endl
-		    << " * _rob_id                : " << x._rob_id       << std::endl
-		    << " * _operation             : " << x._operation    << std::endl
-		    << " * _type                  : " << x._type         << std::endl
-		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
-		    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << std::endl
-		    << " * _has_immediat          : " << x._has_immediat << std::endl
-		    << " * _immediat              : " << x._immediat     << std::endl
-		    << " * _read_ra               : " << x._read_ra      << std::endl
-		    << " * _read_ra_val           : " << x._read_ra_val  << std::endl 
-		    << " * _num_reg_ra            : " << x._num_reg_ra   << std::endl
-		    << " * _data_ra_val           : " << x._data_ra_val  << std::endl
-		    << " * _data_ra               : " << x._data_ra      << std::endl
-		    << " * _read_rb               : " << x._read_rb      << std::endl
-		    << " * _read_rb_val           : " << x._read_rb_val  << std::endl
-		    << " * _num_reg_rb            : " << x._num_reg_rb   << std::endl
-		    << " * _data_rb_val           : " << x._data_rb_val  << std::endl
-		    << " * _data_rb               : " << x._data_rb      << std::endl
-		    << " * _read_rc               : " << x._read_rc      << std::endl
-		    << " * _read_rc_val           : " << x._read_rc_val  << std::endl
-		    << " * _num_reg_rc            : " << x._num_reg_rc   << std::endl
-		    << " * _data_rc_val           : " << x._data_rc_val  << std::endl
-		    << " * _data_rc               : " << x._data_rc      << std::endl
-		    << " * _write_rd              : " << x._write_rd     << std::endl
-		    << " * _num_reg_rd            : " << x._num_reg_rd   << std::endl
-		    << " * _write_re              : " << x._write_re     << std::endl
-		    << " * _num_reg_re            : " << x._num_reg_re   << std::endl;
-
-      return output_stream;
-    }
-  };
 
   class Read_queue 
@@ -206,6 +45,7 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const std::string                _name;
-  protected : const Parameters               * _param;
+  protected : const std::string  _name;
+  protected : const Parameters * _param;
+  private   : const Tusage_t     _usage;
 
 #ifdef STATISTICS
@@ -345,5 +185,6 @@
 					      morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-					      Parameters                                  * param );
+					      Parameters                                  * param,
+					      morpheo::behavioural::Tusage_t                usage);
 					       
   public  :          Read_queue              (Parameters * param );
@@ -381,5 +222,4 @@
 }; // end namespace multi_execute_loop
 }; // end namespace core
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h	(revision 82)
@@ -0,0 +1,194 @@
+#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_read_unit_read_unit_read_queue_Types_h
+#define morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_read_unit_read_unit_read_queue_Types_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Types.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_read_unit {
+namespace read_unit {
+namespace read_queue {
+  
+  class Tread_queue_entry_t
+  {
+  public    : Tcontext_t         _context_id   ;
+  public    : Tcontext_t         _front_end_id ;
+  public    : Tcontext_t         _ooo_engine_id;
+  public    : Tpacket_t          _rob_id       ;
+  public    : Toperation_t       _operation    ;
+  public    : Ttype_t            _type         ;
+  public    : Tlsq_ptr_t         _store_queue_ptr_write;
+  public    : Tlsq_ptr_t         _load_queue_ptr_write;
+  public    : Tcontrol_t         _has_immediat ;
+  public    : Tgeneral_data_t    _immediat     ;
+  public    : Tcontrol_t         _read_ra      ;
+  public    : Tgeneral_address_t _num_reg_ra   ;
+  public    : Tcontrol_t         _read_rb      ;
+  public    : Tgeneral_address_t _num_reg_rb   ;
+  public    : Tcontrol_t         _read_rc      ;
+  public    : Tspecial_address_t _num_reg_rc   ;
+  public    : Tcontrol_t         _write_rd     ;
+  public    : Tgeneral_address_t _num_reg_rd   ;
+  public    : Tcontrol_t         _write_re     ;
+  public    : Tspecial_address_t _num_reg_re   ;
+
+    friend std::ostream& operator<< (std::ostream& output_stream,
+				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x)
+    {
+      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
+		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
+		    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << 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
+		    << " * _read_rb               : " << toString(x._read_rb      ) << std::endl
+		    << " * _num_reg_rb            : " << toString(x._num_reg_rb   ) << std::endl
+		    << " * _read_rc               : " << toString(x._read_rc      ) << std::endl
+		    << " * _num_reg_rc            : " << toString(x._num_reg_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;
+    }
+
+  };
+
+  class Tread_queue_head_entry_t
+  {
+  public    : Tcontext_t         _context_id   ;
+  public    : Tcontext_t         _front_end_id ;
+  public    : Tcontext_t         _ooo_engine_id;
+  public    : Tpacket_t          _rob_id       ;
+  public    : Toperation_t       _operation    ;
+  public    : Ttype_t            _type         ;
+  public    : Tlsq_ptr_t         _store_queue_ptr_write;
+  public    : Tlsq_ptr_t         _load_queue_ptr_write;
+  public    : Tcontrol_t         _has_immediat ;
+  public    : Tgeneral_data_t    _immediat     ;
+  public    : Tcontrol_t         _read_ra      ;
+  public    : Tcontrol_t         _read_ra_val  ; // 1 : must access at the registerFile (after access, is set at 0)
+  public    : Tgeneral_address_t _num_reg_ra   ;
+  public    : Tcontrol_t         _data_ra_val  ; // 1 : the read of registerFile is valid
+  public    : Tgeneral_data_t    _data_ra      ;
+  public    : Tcontrol_t         _read_rb      ;
+  public    : Tcontrol_t         _read_rb_val  ;
+  public    : Tgeneral_address_t _num_reg_rb   ;
+  public    : Tcontrol_t         _data_rb_val  ;
+  public    : Tgeneral_data_t    _data_rb      ;
+  public    : Tcontrol_t         _read_rc      ;
+  public    : Tcontrol_t         _read_rc_val  ;
+  public    : Tspecial_address_t _num_reg_rc   ;
+  public    : Tcontrol_t         _data_rc_val  ;
+  public    : Tspecial_data_t    _data_rc      ;
+  public    : Tcontrol_t         _write_rd     ;
+  public    : Tgeneral_address_t _num_reg_rd   ;
+  public    : Tcontrol_t         _write_re     ;
+  public    : Tspecial_address_t _num_reg_re   ;
+
+#undef  FUNCTION 
+#define FUNCTION "Tread_queue_head_entry_t::operator="
+  public    : Tread_queue_head_entry_t& operator=(Tread_queue_entry_t x)
+    {
+      log_printf(FUNC,Read_queue,FUNCTION,"Begin");
+	  
+      _context_id   = x._context_id   ;
+      _front_end_id = x._front_end_id ;
+      _ooo_engine_id= x._ooo_engine_id;
+      _rob_id       = x._rob_id       ;
+      _operation    = x._operation    ;
+      _type         = x._type         ;
+      _store_queue_ptr_write = x._store_queue_ptr_write;
+      _load_queue_ptr_write  = x._load_queue_ptr_write ;
+      _has_immediat = x._has_immediat ;
+      _immediat     = x._immediat     ;
+      _read_ra      = x._read_ra      ;
+      _read_ra_val  = x._read_ra == 1 ; //if not must read, the registerFile is already access
+      _num_reg_ra   = x._num_reg_ra   ;
+      _data_ra_val  = x._read_ra == 0 ; //if not must read, the data is already valid
+      _data_ra      = 0               ;
+      _read_rb      = x._read_rb      ;
+      _read_rb_val  = x._read_rb == 1 ;
+      _num_reg_rb   = x._num_reg_rb   ;
+      _data_rb_val  = x._read_rb == 0 ;
+      _data_rb      = 0               ;
+      _read_rc      = x._read_rc      ;
+      _read_rc_val  = x._read_rc == 1 ;
+      _num_reg_rc   = x._num_reg_rc   ;
+      _data_rc_val  = x._read_rc == 0 ;
+      _data_rc      = 0               ;
+      _write_rd     = x._write_rd     ;
+      _num_reg_rd   = x._num_reg_rd   ;
+      _write_re     = x._write_re     ;
+      _num_reg_re   = x._num_reg_re   ;
+
+      log_printf(FUNC,Read_queue,FUNCTION,"End");
+
+      return *this;
+    }
+
+    friend std::ostream& operator<< (std::ostream& output_stream,
+				morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x)
+    {
+      output_stream << " * _context_id            : " << x._context_id   << std::endl
+		    << " * _front_end_id          : " << x._front_end_id << std::endl
+		    << " * _ooo_engine_id         : " << x._ooo_engine_id<< std::endl
+		    << " * _rob_id                : " << x._rob_id       << std::endl
+		    << " * _operation             : " << x._operation    << std::endl
+		    << " * _type                  : " << x._type         << std::endl
+		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
+		    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << std::endl
+		    << " * _has_immediat          : " << x._has_immediat << std::endl
+		    << " * _immediat              : " << x._immediat     << std::endl
+		    << " * _read_ra               : " << x._read_ra      << std::endl
+		    << " * _read_ra_val           : " << x._read_ra_val  << std::endl 
+		    << " * _num_reg_ra            : " << x._num_reg_ra   << std::endl
+		    << " * _data_ra_val           : " << x._data_ra_val  << std::endl
+		    << " * _data_ra               : " << x._data_ra      << std::endl
+		    << " * _read_rb               : " << x._read_rb      << std::endl
+		    << " * _read_rb_val           : " << x._read_rb_val  << std::endl
+		    << " * _num_reg_rb            : " << x._num_reg_rb   << std::endl
+		    << " * _data_rb_val           : " << x._data_rb_val  << std::endl
+		    << " * _data_rb               : " << x._data_rb      << std::endl
+		    << " * _read_rc               : " << x._read_rc      << std::endl
+		    << " * _read_rc_val           : " << x._read_rc_val  << std::endl
+		    << " * _num_reg_rc            : " << x._num_reg_rc   << std::endl
+		    << " * _data_rc_val           : " << x._data_rc_val  << std::endl
+		    << " * _data_rc               : " << x._data_rc      << std::endl
+		    << " * _write_rd              : " << x._write_rd     << std::endl
+		    << " * _num_reg_rd            : " << x._num_reg_rd   << std::endl
+		    << " * _write_re              : " << x._write_re     << std::endl
+		    << " * _num_reg_re            : " << x._num_reg_re   << std::endl;
+
+      return output_stream;
+    }
+  };
+
+}; // end namespace read_queue
+}; // 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/Read_queue/src/Read_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 82)
@@ -18,15 +18,19 @@
 
 
-#ifdef SYSTEMC
-  Read_queue::Read_queue (sc_module_name name,
+  Read_queue::Read_queue 
+  (
+#ifdef SYSTEMC
+   sc_module_name name,
 #else
-  Read_queue::Read_queue (string name,
+   std::string name,
 #endif
 #ifdef STATISTICS
-			      morpheo::behavioural::Parameters_Statistics            * param_statistics,
-#endif
-			      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Parameters * param ):
-			      _name              (name)
-			      ,_param            (param)
+   morpheo::behavioural::Parameters_Statistics            * param_statistics,
+#endif
+   morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Parameters * param,
+   morpheo::behavioural::Tusage_t usage ):
+    _name              (name)
+    ,_param            (param)
+    ,_usage (usage)
   {
     log_printf(FUNC,Read_queue,"Read_queue","Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp	(revision 82)
@@ -23,5 +23,5 @@
     log_printf(FUNC,Read_queue,"allocation","Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
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 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp	(revision 82)
@@ -6,38 +6,10 @@
  * Test
  */
+#define NB_ITERATION  2
+#define CYCLE_MAX     (2048*NB_ITERATION)
 
 #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
-#define CYCLE_MAX     (2048*NB_ITERATION)
-
-#define LABEL(str)                                                                       \
-{                                                                                        \
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
-} while(0)
-
-static uint32_t cycle = 0;
-
-#define SC_START(cycle_offset)                                          \
-do                                                                      \
-{                                                                       \
-/*cout << "SC_START (begin)" << endl;*/                                 \
-                                                                        \
-  uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time()); \
-  sc_start(cycle_offset);                                               \
-  if (cycle_current != cycle)                                           \
-    {                                                                   \
-      cycle = cycle_current;                                            \
-      cout << "##########[ cycle "<< cycle << " ]" << endl;             \
-    }                                                                   \
-                                                                        \
-  if (cycle_current > CYCLE_MAX)                                        \
-    {                                                                   \
-      TEST_KO("Maximal cycles Reached");                                \
-    }                                                                   \
-/*cout << "SC_START (end  )" << endl;*/                                 \
-} while(0)
 
 void test (string name,
@@ -50,9 +22,11 @@
 #endif
 
-  Reservation_station * _Reservation_station = new Reservation_station (name.c_str(),
+  Reservation_station * _Reservation_station = new Reservation_station 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
@@ -354,5 +328,5 @@
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      LABEL("Iteration "+toString(iteration));
+      LABEL("Iteration %d",iteration);
 
       int32_t percent_transaction_queue_in     = (rand()%50)+25;
@@ -507,5 +481,5 @@
 	      if (val)
 		{
-		  LABEL(" * GPR_WRITE     ["+toString(i)+"] - gpr["+toString(num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(data));
+		  LABEL(" * GPR_WRITE     [%d] - gpr[%d][%d] <- 0x%x",i,num_reg,ooo_engine,data);
 		  can_gpr_use [ooo_engine][num_reg] = false;
 		  need_gpr [ooo_engine][num_reg]    = false;
@@ -533,5 +507,6 @@
 	      if (val == 1)
 		{
-		  LABEL(" * SPR_WRITE     ["+toString(i)+"] - spr["+toString(num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(data));
+		  LABEL(" * SPR_WRITE     [%d] - spr[%d][%d] <- 0x%x",i,num_reg,ooo_engine,data);
+
 		  can_spr_use [ooo_engine][num_reg] = false;
 		  need_spr[ooo_engine][num_reg]     = false;
@@ -560,5 +535,5 @@
 	      if (gpr_val)
 		{
-		  LABEL(" * BYPASS_WRITE  ["+toString(i)+"] - gpr["+toString(gpr_num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(gpr_data));
+		  LABEL(" * BYPASS_WRITE  [%d] - gpr[%d][%d] <- 0x%x",i,gpr_num_reg,ooo_engine,gpr_data);
 		  can_gpr_use [ooo_engine][gpr_num_reg] = false;
 		  need_gpr[ooo_engine][gpr_num_reg]     = false;
@@ -580,5 +555,6 @@
 	      if (spr_val)
 		{
-		  LABEL(" * BYPASS_WRITE  ["+toString(i)+"] - spr["+toString(spr_num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(spr_data));
+		  LABEL(" * BYPASS_WRITE  [%d] - spr[%d][%d] <- 0x%x",i,spr_num_reg,ooo_engine,spr_data);
+
 		  can_spr_use [ooo_engine][spr_num_reg] = false;
 		  need_spr[ooo_engine][spr_num_reg]     = false;
@@ -608,5 +584,6 @@
 	      if (val)
 		{
-		  LABEL(" * BYPASS_MEMORY ["+toString(i)+"] - gpr["+toString(num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(data));
+		  LABEL(" * BYPASS_MEMORY [%d] - spr[%d][%d] <- 0x%x",i,num_reg,ooo_engine,data);
+
 		  can_gpr_use [ooo_engine][num_reg] = false;
 		  need_gpr [ooo_engine][num_reg] = false;
@@ -622,5 +599,5 @@
 	      (out_INSERT_ACK->read() == 1))
 	    {
-	      LABEL("Accepted INSERT  number : "+toString(request_in));
+	      LABEL("Accepted INSERT  number : %d",request_in);
 	      request_in  ++;
 	    }
@@ -628,5 +605,5 @@
 	  for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
 	    {
- 	      LABEL("Test     RETIRE "+toString(i)+" : "+toString(out_RETIRE_VAL[i]->read())+","+toString(in_RETIRE_ACK[i]->read()));
+ 	      LABEL("Test     RETIRE %d : %d,%d",i,out_RETIRE_VAL[i]->read(),in_RETIRE_ACK[i]->read());
 	      if ((out_RETIRE_VAL [i]->read() == 1) and
 		  ( in_RETIRE_ACK [i]->read() == 1))
@@ -637,5 +614,5 @@
 		  else
 		    rob_id = 0;
-		  LABEL("Accepted RETIRE ["+toString(i)+"] number : "+toString(rob_id)+", request number : "+toString(request_out));
+		  LABEL("Accepted RETIRE [%d] number : %d, request number : %d",i,rob_id,request_out);
 		  TEST(bool, request_out_wait [rob_id] , true);
 
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 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h	(revision 82)
@@ -21,5 +21,5 @@
 #endif
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h"
-#include "Behavioural/include/Types.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h"
 #ifdef STATISTICS
 #include "Behavioural/include/Stat.h"
@@ -29,4 +29,5 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
+#include "Behavioural/include/Usage.h"
 
 namespace morpheo {
@@ -39,67 +40,4 @@
 namespace reservation_station {
 
-  class Treservation_station_entry_t
-  {
-  public    : Tcontext_t         _context_id     ;
-  public    : Tcontext_t         _front_end_id   ;
-  public    : Tcontext_t         _ooo_engine_id  ;
-  public    : Tpacket_t          _rob_id         ;
-  public    : Toperation_t       _operation   ;
-  public    : Ttype_t            _type        ;
-  public    : Tlsq_ptr_t         _store_queue_ptr_write;
-  public    : Tlsq_ptr_t         _load_queue_ptr_write ;
-  public    : Tcontrol_t         _has_immediat;
-  public    : Tgeneral_data_t    _immediat    ;
-//public    : Tcontrol_t         _read_ra     ;
-  public    : Tgeneral_address_t _num_reg_ra  ;
-  public    : Tcontrol_t         _data_ra_val ;
-  public    : Tgeneral_data_t    _data_ra     ;
-//public    : Tcontrol_t         _read_rb     ;
-  public    : Tgeneral_address_t _num_reg_rb  ;
-  public    : Tcontrol_t         _data_rb_val ;
-  public    : Tgeneral_data_t    _data_rb     ;
-//public    : Tcontrol_t         _read_rc     ;
-  public    : Tspecial_address_t _num_reg_rc  ;
-  public    : Tcontrol_t         _data_rc_val ;
-  public    : Tspecial_data_t    _data_rc     ;
-  public    : Tcontrol_t         _write_rd    ;
-  public    : Tgeneral_address_t _num_reg_rd  ;
-  public    : Tcontrol_t         _write_re    ;
-  public    : Tspecial_address_t _num_reg_re  ;
-
-    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     ) << 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
-		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
-		    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << 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;
-    }
-  };
-
   class Reservation_station 
 #if SYSTEMC
@@ -109,7 +47,7 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const std::string       _name;
-
+  protected : const std::string  _name;
   protected : const Parameters * _param;
+  private   : const Tusage_t     _usage;
 
 #ifdef STATISTICS
@@ -241,5 +179,7 @@
 						       morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-						       Parameters                                  * param );
+						       Parameters                                  * param,
+						       morpheo::behavioural::Tusage_t                usage );
+
   public  :          ~Reservation_station             (void);
 					       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h	(revision 82)
@@ -0,0 +1,95 @@
+#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_read_unit_read_unit_reservation_station_Types_h
+#define morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_read_unit_read_unit_reservation_station_Types_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Types.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_read_unit {
+namespace read_unit {
+namespace reservation_station {
+
+  class Treservation_station_entry_t
+  {
+  public    : Tcontext_t         _context_id     ;
+  public    : Tcontext_t         _front_end_id   ;
+  public    : Tcontext_t         _ooo_engine_id  ;
+  public    : Tpacket_t          _rob_id         ;
+  public    : Toperation_t       _operation   ;
+  public    : Ttype_t            _type        ;
+  public    : Tlsq_ptr_t         _store_queue_ptr_write;
+  public    : Tlsq_ptr_t         _load_queue_ptr_write ;
+  public    : Tcontrol_t         _has_immediat;
+  public    : Tgeneral_data_t    _immediat    ;
+//public    : Tcontrol_t         _read_ra     ;
+  public    : Tgeneral_address_t _num_reg_ra  ;
+  public    : Tcontrol_t         _data_ra_val ;
+  public    : Tgeneral_data_t    _data_ra     ;
+//public    : Tcontrol_t         _read_rb     ;
+  public    : Tgeneral_address_t _num_reg_rb  ;
+  public    : Tcontrol_t         _data_rb_val ;
+  public    : Tgeneral_data_t    _data_rb     ;
+//public    : Tcontrol_t         _read_rc     ;
+  public    : Tspecial_address_t _num_reg_rc  ;
+  public    : Tcontrol_t         _data_rc_val ;
+  public    : Tspecial_data_t    _data_rc     ;
+  public    : Tcontrol_t         _write_rd    ;
+  public    : Tgeneral_address_t _num_reg_rd  ;
+  public    : Tcontrol_t         _write_re    ;
+  public    : Tspecial_address_t _num_reg_re  ;
+
+    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     ) << 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
+		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
+		    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << 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;
+    }
+  };
+
+}; // 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.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 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 82)
@@ -20,15 +20,20 @@
 #undef  FUNCTION
 #define FUNCTION "Reservation_station::Reservation_station"
+
+  Reservation_station::Reservation_station 
+  (
 #ifdef SYSTEMC
-  Reservation_station::Reservation_station (sc_module_name name,
+   sc_module_name name,
 #else
-  Reservation_station::Reservation_station (string name,
+   std::string name,
 #endif
 #ifdef STATISTICS
-			  morpheo::behavioural::Parameters_Statistics * param_statistics,
+   morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-			  morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters * param ):
-			      _name              (name)
-			      ,_param            (param)
+   morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters * param,
+   morpheo::behavioural::Tusage_t                usage ):
+    _name   (name)
+    ,_param (param)
+    ,_usage (usage)
   {
     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_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 81)
+++ 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 82)
@@ -26,5 +26,5 @@
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/SelfTest/src/test.cpp	(revision 82)
@@ -7,38 +7,10 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/SelfTest/include/test.h"
 #include "Common/include/Test.h"
 #include "Behavioural/include/Allocation.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
 void test (string name,
@@ -51,9 +23,11 @@
 #endif
 
-  Read_unit * _Read_unit = new Read_unit (name.c_str(),
+  Read_unit * _Read_unit = new Read_unit 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
-#endif
-					     _param);
+     _parameters_statistics,
+#endif
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Read_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Read_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Read_unit.h	(revision 82)
@@ -178,5 +178,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Read_unit             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_allocation.cpp	(revision 82)
@@ -184,9 +184,11 @@
        name = _name+"_read_queue";
        
-       _component_read_queue  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Read_queue (name.c_str()
+       _component_read_queue  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Read_queue
+	 (name.c_str()
 #ifdef STATISTICS
-																		      ,param_statistics
-#endif
-																		      ,_param->_param_read_queue);
+	  ,param_statistics
+#endif
+	  ,_param->_param_read_queue
+	  ,_usage);
        
        _component->set_component (_component_read_queue->_component
@@ -199,9 +201,11 @@
        name = _name+"_reservation_station";
        
-       _component_reservation_station  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Reservation_station (name.c_str()
+       _component_reservation_station  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Reservation_station 
+	 (name.c_str()
 #ifdef STATISTICS
-																						 ,param_statistics
-#endif
-																						 ,_param->_param_reservation_station);
+	  ,param_statistics
+#endif
+	  ,_param->_param_reservation_station
+	  ,_usage);
        
        _component->set_component (_component_reservation_station->_component
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/test.cpp	(revision 82)
@@ -7,39 +7,11 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/test.h"
 #include "Common/include/Test.h"
 #include "Behavioural/include/Allocation.h"
 #include "Common/include/BitManipulation.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
   class entry_t
@@ -109,9 +81,11 @@
 #endif
 
-  Execute_queue * _Execute_queue = new Execute_queue (name.c_str(),
+  Execute_queue * _Execute_queue = new Execute_queue 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h	(revision 82)
@@ -17,7 +17,7 @@
 #include "Common/include/ToString.h"
 #include "Common/include/Debug.h"
-#include "Behavioural/include/Types.h"
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h"
 #ifdef STATISTICS
 #include "Behavioural/include/Stat.h"
@@ -31,5 +31,4 @@
 namespace morpheo {
 namespace behavioural {
-
 namespace core {
 namespace multi_execute_loop {
@@ -38,43 +37,4 @@
 namespace write_unit {
 namespace execute_queue {
-
-
-  class execute_queue_entry_t
-  {
-  public  : Tcontext_t         _context_id   ;
-  public  : Tcontext_t         _front_end_id ;
-  public  : Tcontext_t         _ooo_engine_id;
-  public  : Tpacket_t          _packet_id    ;
-//public  : Toperation_t       _operation    ;
-//public  : Ttype_t            _type         ;
-  public  : Tspecial_data_t    _flags        ;
-  public  : Texception_t       _exception    ;
-  public  : Tcontrol_t         _no_sequence  ;
-  public  : Tgeneral_data_t    _address      ;
-    
-  public  : execute_queue_entry_t (Tcontext_t         context_id   ,
-				   Tcontext_t         front_end_id ,
-				   Tcontext_t         ooo_engine_id,
-				   Tpacket_t          packet_id    ,
-			         //Toperation_t       operation    ,
-			         //Ttype_t            type         ,
-				   Tspecial_data_t    flags        ,
-				   Texception_t       exception    ,
-				   Tcontrol_t         no_sequence  ,
-				   Tgeneral_data_t    address      )
-    {
-      _context_id    = context_id   ;
-      _front_end_id  = front_end_id ;
-      _ooo_engine_id = ooo_engine_id;
-      _packet_id     = packet_id    ;
-    //_operation     = operation    ;
-    //_type          = type         ;
-      _flags         = flags        ;
-      _exception     = exception    ;
-      _no_sequence   = no_sequence  ;
-      _address       = address      ;
-    };
-  };
-
 
   class Execute_queue 
@@ -159,5 +119,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Execute_queue             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h	(revision 82)
@@ -0,0 +1,69 @@
+#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_write_unit_write_unit_execute_queue_Types_h
+#define morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_write_unit_write_unit_execute_queue_Types_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Types.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_write_unit {
+namespace write_unit {
+namespace execute_queue {
+
+  class execute_queue_entry_t
+  {
+  public  : Tcontext_t         _context_id   ;
+  public  : Tcontext_t         _front_end_id ;
+  public  : Tcontext_t         _ooo_engine_id;
+  public  : Tpacket_t          _packet_id    ;
+//public  : Toperation_t       _operation    ;
+//public  : Ttype_t            _type         ;
+  public  : Tspecial_data_t    _flags        ;
+  public  : Texception_t       _exception    ;
+  public  : Tcontrol_t         _no_sequence  ;
+  public  : Tgeneral_data_t    _address      ;
+    
+  public  : execute_queue_entry_t (Tcontext_t         context_id   ,
+				   Tcontext_t         front_end_id ,
+				   Tcontext_t         ooo_engine_id,
+				   Tpacket_t          packet_id    ,
+			         //Toperation_t       operation    ,
+			         //Ttype_t            type         ,
+				   Tspecial_data_t    flags        ,
+				   Texception_t       exception    ,
+				   Tcontrol_t         no_sequence  ,
+				   Tgeneral_data_t    address      )
+    {
+      _context_id    = context_id   ;
+      _front_end_id  = front_end_id ;
+      _ooo_engine_id = ooo_engine_id;
+      _packet_id     = packet_id    ;
+    //_operation     = operation    ;
+    //_type          = type         ;
+      _flags         = flags        ;
+      _exception     = exception    ;
+      _no_sequence   = no_sequence  ;
+      _address       = address      ;
+    };
+  };
+
+}; // end namespace execute_queue
+}; // end namespace write_unit
+}; // end namespace multi_write_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_Write_unit/Write_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/test.cpp	(revision 82)
@@ -7,39 +7,11 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/test.h"
 #include "Common/include/Test.h"
 #include "Common/include/BitManipulation.h"
 #include "Behavioural/include/Allocation.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
   class entry_t
@@ -127,9 +99,11 @@
 #endif
 
-  Write_unit * _Write_unit = new Write_unit (name.c_str(),
+  Write_unit * _Write_unit = new Write_unit 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/test.cpp	(revision 82)
@@ -7,39 +7,11 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/test.h"
 #include "Common/include/Test.h"
 #include "Common/include/BitManipulation.h"
 #include "Behavioural/include/Allocation.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
   class entry_t
@@ -127,9 +99,11 @@
 
 
-  Write_queue * _Write_queue = new Write_queue (name.c_str(),
+  Write_queue * _Write_queue = new Write_queue 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h	(revision 82)
@@ -0,0 +1,84 @@
+#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_write_unit_write_unit_write_queue_Types_h
+#define morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_write_unit_write_unit_write_queue_Types_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Types.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_write_unit {
+namespace write_unit {
+namespace write_queue {
+
+  class write_queue_entry_t
+  {
+  public  : Tcontext_t         _context_id   ;
+  public  : Tcontext_t         _front_end_id ;
+  public  : Tcontext_t         _ooo_engine_id;
+  public  : Tpacket_t          _packet_id    ;
+//public  : Toperation_t       _operation    ;
+  public  : Ttype_t            _type         ;
+  public  : Tcontrol_t         _write_rd     ;
+  public  : Tgeneral_address_t _num_reg_rd   ;
+  public  : Tgeneral_data_t    _data_rd      ;
+  public  : Tcontrol_t         _write_re     ;
+  public  : Tspecial_address_t _num_reg_re   ;
+  public  : Tspecial_data_t    _data_re      ;
+  public  : Texception_t       _exception    ;
+  public  : Tcontrol_t         _no_sequence  ;
+  public  : Tgeneral_data_t    _address      ;
+    
+  public  : write_queue_entry_t (Tcontext_t         context_id   ,
+				 Tcontext_t         front_end_id ,
+				 Tcontext_t         ooo_engine_id,
+				 Tpacket_t          packet_id    ,
+			       //Toperation_t       operation    ,
+				 Ttype_t            type         ,
+				 Tcontrol_t         write_rd     ,
+				 Tgeneral_address_t num_reg_rd   ,
+				 Tgeneral_data_t    data_rd      ,
+				 Tcontrol_t         write_re     ,
+				 Tspecial_address_t num_reg_re   ,
+				 Tspecial_data_t    data_re      ,
+				 Texception_t       exception    ,
+				 Tcontrol_t         no_sequence  ,
+				 Tgeneral_data_t    address      )
+    {
+      _context_id    = context_id   ;
+      _front_end_id  = front_end_id ;
+      _ooo_engine_id = ooo_engine_id;
+      _packet_id     = packet_id    ;
+    //_operation     = operation    ;
+      _type          = type         ;
+      _write_rd      = write_rd     ;
+      _num_reg_rd    = num_reg_rd   ;
+      _data_rd       = data_rd      ;
+      _write_re      = write_re     ;
+      _num_reg_re    = num_reg_re   ;
+      _data_re       = data_re      ;
+      _exception     = exception    ;
+      _no_sequence   = no_sequence  ;
+      _address       = address      ;
+    };
+  };
+
+}; // end namespace write_queue
+}; // end namespace write_unit
+}; // end namespace multi_write_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_Write_unit/Write_unit/Write_queue/include/Write_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h	(revision 82)
@@ -17,7 +17,8 @@
 #include "Common/include/ToString.h"
 #include "Common/include/Debug.h"
-#include "Behavioural/include/Types.h"
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h"
+
 #ifdef STATISTICS
 #include "Behavioural/include/Stat.h"
@@ -37,57 +38,4 @@
 namespace write_unit {
 namespace write_queue {
-
-  class write_queue_entry_t
-  {
-  public  : Tcontext_t         _context_id   ;
-  public  : Tcontext_t         _front_end_id ;
-  public  : Tcontext_t         _ooo_engine_id;
-  public  : Tpacket_t          _packet_id    ;
-//public  : Toperation_t       _operation    ;
-  public  : Ttype_t            _type         ;
-  public  : Tcontrol_t         _write_rd     ;
-  public  : Tgeneral_address_t _num_reg_rd   ;
-  public  : Tgeneral_data_t    _data_rd      ;
-  public  : Tcontrol_t         _write_re     ;
-  public  : Tspecial_address_t _num_reg_re   ;
-  public  : Tspecial_data_t    _data_re      ;
-  public  : Texception_t       _exception    ;
-  public  : Tcontrol_t         _no_sequence  ;
-  public  : Tgeneral_data_t    _address      ;
-    
-  public  : write_queue_entry_t (Tcontext_t         context_id   ,
-				 Tcontext_t         front_end_id ,
-				 Tcontext_t         ooo_engine_id,
-				 Tpacket_t          packet_id    ,
-			       //Toperation_t       operation    ,
-				 Ttype_t            type         ,
-				 Tcontrol_t         write_rd     ,
-				 Tgeneral_address_t num_reg_rd   ,
-				 Tgeneral_data_t    data_rd      ,
-				 Tcontrol_t         write_re     ,
-				 Tspecial_address_t num_reg_re   ,
-				 Tspecial_data_t    data_re      ,
-				 Texception_t       exception    ,
-				 Tcontrol_t         no_sequence  ,
-				 Tgeneral_data_t    address      )
-    {
-      _context_id    = context_id   ;
-      _front_end_id  = front_end_id ;
-      _ooo_engine_id = ooo_engine_id;
-      _packet_id     = packet_id    ;
-    //_operation     = operation    ;
-      _type          = type         ;
-      _write_rd      = write_rd     ;
-      _num_reg_rd    = num_reg_rd   ;
-      _data_rd       = data_rd      ;
-      _write_re      = write_re     ;
-      _num_reg_re    = num_reg_re   ;
-      _data_re       = data_re      ;
-      _exception     = exception    ;
-      _no_sequence   = no_sequence  ;
-      _address       = address      ;
-    };
-  };
-
 
   class Write_queue 
@@ -204,5 +152,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Write_queue             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h	(revision 82)
@@ -145,5 +145,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Write_unit             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp	(revision 82)
@@ -139,9 +139,11 @@
        name = _name+"_write_queue";
        
-       component_write_queue  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Write_queue (name.c_str()
+       component_write_queue  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Write_queue 
+	 (name.c_str()
 #ifdef STATISTICS
-																			  ,param_statistics
-#endif
-																			  ,_param->_param_write_queue);
+	  ,param_statistics
+#endif
+	  ,_param->_param_write_queue
+	  ,_usage);
        
        _component->set_component (component_write_queue->_component
@@ -156,9 +158,11 @@
        name = _name+"_execute_queue";
        
-       component_execute_queue  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Execute_queue (name.c_str()
+       component_execute_queue  = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Execute_queue 
+	 (name.c_str()
 #ifdef STATISTICS
-																				,param_statistics
-#endif
-																				,_param->_param_execute_queue);
+	  ,param_statistics
+#endif
+	  ,_param->_param_execute_queue
+	  ,_usage);
        
        _component->set_component (component_execute_queue->_component
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/SelfTest/src/test.cpp	(revision 82)
@@ -7,4 +7,7 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/SelfTest/include/test.h"
 #include "Common/include/Test.h"
@@ -12,35 +15,4 @@
 #include "Behavioural/include/Allocation.h"
 #include <set>
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
 
@@ -106,9 +78,11 @@
 #endif
 
-  Execution_unit_to_Write_unit * _Execution_unit_to_Write_unit = new Execution_unit_to_Write_unit (name.c_str(),
+  Execution_unit_to_Write_unit * _Execution_unit_to_Write_unit = new Execution_unit_to_Write_unit 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/include/Execution_unit_to_Write_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/include/Execution_unit_to_Write_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/include/Execution_unit_to_Write_unit.h	(revision 82)
@@ -126,5 +126,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Execution_unit_to_Write_unit             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/SelfTest/src/test.cpp	(revision 82)
@@ -7,4 +7,7 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/SelfTest/include/test.h"
 #include "Common/include/Test.h"
@@ -13,36 +16,4 @@
 #include <list>
 #include <set>
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
-
 
 class entry_t 
@@ -113,9 +84,11 @@
 #endif
 
-  Read_unit_to_Execution_unit * _Read_unit_to_Execution_unit = new Read_unit_to_Execution_unit (name.c_str(),
+  Read_unit_to_Execution_unit * _Read_unit_to_Execution_unit = new Read_unit_to_Execution_unit 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/include/Read_unit_to_Execution_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/include/Read_unit_to_Execution_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/include/Read_unit_to_Execution_unit.h	(revision 82)
@@ -130,5 +130,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Read_unit_to_Execution_unit             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp	(revision 82)
@@ -7,36 +7,9 @@
  */
 
+#define NB_ITERATION  128
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/include/test.h"
 #include "Common/include/Test.h"
-
-#define NB_ITERATION  128
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str)                                                                       \
-{                                                                                        \
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
-} while(0)
-
-static uint32_t cycle = 0;
-
-#define SC_START(cycle_offset)                                          \
-do                                                                      \
-{                                                                       \
-/*cout << "SC_START (begin)" << endl;*/                                 \
-                                                                        \
-  uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time()); \
-  if (cycle_current != cycle)                                           \
-    {                                                                   \
-      cycle = cycle_current;                                            \
-      cout << "##########[ cycle "<< cycle << " ]" << endl;             \
-    }                                                                   \
-                                                                        \
-  if (cycle_current > CYCLE_MAX)                                        \
-    {                                                                   \
-      TEST_KO("Maximal cycles Reached");                                \
-    }                                                                   \
-  sc_start(cycle_offset);                                               \
-/*cout << "SC_START (end  )" << endl;*/                                 \
-} while(0)
 
 void test (string name,
@@ -49,9 +22,11 @@
 #endif
 
-  Register_unit_Glue * _Register_unit_Glue = new Register_unit_Glue (name.c_str(),
+  Register_unit_Glue * _Register_unit_Glue = new Register_unit_Glue 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
@@ -575,5 +550,5 @@
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      LABEL("Iteration "+toString(iteration));
+      LABEL("Iteration %d",iteration);
 
       if (test_read == true)
@@ -584,5 +559,5 @@
 	      Tcontrol_t      val = (rand()%100)<=percent_transaction;
 	      
-	      LABEL("GPR_READ  ["+toString(j)+"] : "+toString(val)+" - " +toString(static_cast<uint32_t>(context)));
+	      LABEL("GPR_READ  [%d] : %d - %d",j,val,context);
 	      
 	      in_GPR_READ_VAL           [j] ->write(val);
@@ -623,5 +598,5 @@
 	      Tcontrol_t      val = (rand()%100)<=percent_transaction;
 	      
-	      LABEL("SPR_READ  ["+toString(j)+"] : "+toString(val)+" - " +toString(static_cast<uint32_t>(context)));
+	      LABEL("SPR_READ  [%d] : %d - %d",j,val,context);
 	      
 	      in_SPR_READ_VAL           [j] ->write(val);
@@ -666,6 +641,6 @@
 	      Tcontrol_t      val = (rand()%100)<=percent_transaction;
 	      
-	      LABEL("GPR_WRITE ["+toString(j)+"] : "+toString(val)+" - " +toString(static_cast<uint32_t>(context)));
-	      
+	      LABEL("GPR_WRITE [%d] : %d - %d",j,val,context);
+
 	      in_GPR_WRITE_VAL           [j] ->write(val);
 	      in_GPR_WRITE_OOO_ENGINE_ID [j] ->write(context);
@@ -701,5 +676,5 @@
 	      Tcontrol_t      val = (rand()%100)<=percent_transaction;
 	      
-	      LABEL("SPR_WRITE ["+toString(j)+"] : "+toString(val)+" - " +toString(static_cast<uint32_t>(context)));
+	      LABEL("SPR_WRITE [%d] : %d - %d",j,val,context);
 	      
 	      in_SPR_WRITE_VAL           [j] ->write(val);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 82)
@@ -169,5 +169,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Register_unit_Glue             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 82)
@@ -24,5 +24,5 @@
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp	(revision 82)
@@ -7,36 +7,9 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (10240*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h"
 #include "Common/include/Test.h"
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (10240*NB_ITERATION)
-
-#define LABEL(str)                                                                       \
-{                                                                                        \
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
-} while(0)
-
-static uint32_t cycle = 0;
-
-#define SC_START(cycle_offset)                                          \
-do                                                                      \
-{                                                                       \
-/*cout << "SC_START (begin)" << endl;*/                                 \
-                                                                        \
-  uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time()); \
-  if (cycle_current != cycle)                                           \
-    {                                                                   \
-      cycle = cycle_current;                                            \
-      cout << "##########[ cycle "<< cycle << " ]" << endl;             \
-    }                                                                   \
-                                                                        \
-  if (cycle_current > CYCLE_MAX)                                        \
-    {                                                                   \
-      TEST_KO("Maximal cycles Reached");                                \
-    }                                                                   \
-  sc_start(cycle_offset);                                               \
-/*cout << "SC_START (end  )" << endl;*/                                 \
-} while(0)
 
 void test (string name,
@@ -49,9 +22,11 @@
 #endif
 
-  Register_unit * _Register_unit = new Register_unit (name.c_str(),
+  Register_unit * _Register_unit = new Register_unit 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
@@ -406,5 +381,5 @@
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      LABEL("Iteration "+toString(iteration));
+      LABEL("Iteration %d",iteration);
 
       LABEL("(GPR) Write default value");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 82)
@@ -142,5 +142,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Register_unit             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 82)
@@ -29,5 +29,5 @@
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
@@ -270,4 +270,5 @@
 #endif
 	   ,_param->_param_gpr [i]
+	   ,_usage
 	   );
 	 
@@ -290,4 +291,5 @@
 #endif
 	   ,_param->_param_gpr_status [i]
+	   ,_usage
 	   );
 
@@ -310,4 +312,5 @@
 #endif
 	   ,_param->_param_spr [i]
+	   ,_usage
 	   );
 
@@ -329,4 +332,5 @@
 #endif
 	   ,_param->_param_spr_status [i]
+	   ,_usage
 	   );
 
@@ -350,4 +354,5 @@
 #endif
        ,_param->_param_glue
+       ,_usage
        );
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp	(revision 82)
@@ -7,38 +7,11 @@
  */
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h"
 #include "Common/include/Test.h"
 #include "Behavioural/include/Allocation.h"
 
-#define NB_ITERATION  1
-#define CYCLE_MAX     (128*NB_ITERATION)
-
-#define LABEL(str...)							\
-  {									\
-    msg (_("{%d} "),static_cast<uint32_t>(sc_simulation_time()));	\
-    msg (str);								\
-    msg (_("\n"));							\
-  } while(0)
-
-#define SC_START(cycle_offset)                                                       \
-  do									             \
-    {									             \
-      /*cout << "SC_START (begin)" << endl;*/				             \
-									             \
-      uint32_t cycle_current = static_cast<uint32_t>(sc_simulation_time());          \
-      if (cycle_offset != 0)						             \
-	{								             \
-	  cout << "##########[ cycle "<< cycle_current+cycle_offset << " ]" << endl; \
-	}								             \
-									             \
-      if (cycle_current > CYCLE_MAX)					             \
-	{								             \
-	  TEST_KO("Maximal cycles Reached");				             \
-	}								             \
-									             \
-      sc_start(cycle_offset);						             \
-									             \
-      /*cout << "SC_START (end  )" << endl;*/				             \
-    } while(0)
 
 void test (string name,
@@ -51,9 +24,11 @@
 #endif
 
-  Execute_loop * _Execute_loop = new Execute_loop (name.c_str(),
+  Execute_loop * _Execute_loop = new Execute_loop 
+    (name.c_str(),
 #ifdef STATISTICS
-					     _parameters_statistics,
+     _parameters_statistics,
 #endif
-					     _param);
+     _param,
+     USE_ALL);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h	(revision 82)
@@ -176,5 +176,5 @@
 #endif
    Parameters                                  * param,
-   morpheo::behavioural::Tusage_t                usage=USE_ALL
+   morpheo::behavioural::Tusage_t                usage
    );
   public  :          ~Execute_loop             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_allocation.cpp	(revision 82)
@@ -164,5 +164,6 @@
 	    ,param_statistics
 #endif
-	    ,_param->_param_read_unit[i]);
+	    ,_param->_param_read_unit[i]
+	    ,_usage);
 
 	 _component->set_component (_component_read_unit [i]->_component
@@ -184,5 +185,6 @@
 	    ,param_statistics
 #endif
-	    ,_param->_param_functionnal_unit[i]);
+	    ,_param->_param_functionnal_unit[i]
+	    ,_usage);
 
 	 _component->set_component (_component_functionnal_unit [i]->_component
@@ -204,5 +206,6 @@
 	    ,param_statistics
 #endif
-	    ,_param->_param_load_store_unit[i]);
+	    ,_param->_param_load_store_unit[i]
+	    ,_usage);
 
 	 _component->set_component (_component_load_store_unit [i]->_component
@@ -224,5 +227,6 @@
 	    ,param_statistics
 #endif
-	    ,_param->_param_write_unit[i]);
+	    ,_param->_param_write_unit[i]
+	    ,_usage);
 
 	 _component->set_component (_component_write_unit [i]->_component
@@ -242,5 +246,6 @@
 	  ,param_statistics
 #endif
-	  ,_param->_param_read_unit_to_execution_unit);
+	  ,_param->_param_read_unit_to_execution_unit
+	  ,_usage);
        
        _component->set_component (_component_read_unit_to_execution_unit->_component
@@ -260,5 +265,6 @@
 	  ,param_statistics
 #endif
-	  ,_param->_param_execution_unit_to_write_unit);
+	  ,_param->_param_execution_unit_to_write_unit
+	  ,_usage);
        
        _component->set_component (_component_execution_unit_to_write_unit->_component
@@ -278,5 +284,6 @@
 	  ,param_statistics
 #endif
-	  ,_param->_param_register_unit);
+	  ,_param->_param_register_unit
+	  ,_usage);
        
        _component->set_component (_component_register_unit->_component
