Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/Makefile	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: Load_Store_pointer_unit_library_clean
 
+local_clean			:
+
 include                         $(DIR_COMPONENT)/Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/src/main.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/src/main.cpp	(revision 88)
@@ -51,5 +51,5 @@
     }
 
-  uint32_t    _nb_load_store_queue              = atoi(argv[x++]);
+  uint32_t    _nb_load_store_queue              = fromString<uint32_t>(argv[x++]);
   
   if (argc != static_cast<int>(2+NB_PARAMS+_nb_front_end+2*_nb_load_store_queue+nb_thread))
@@ -86,5 +86,7 @@
 	 _link_load_store_unit_with_thread,
 	 _nb_inst_insert                  ,
-	 _nb_inst_retire                  );
+	 _nb_inst_retire                  ,
+         true //is_toplevel
+         );
       
       msg(_("%s"),param->print(1).c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/src/test.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/SelfTest/src/test.cpp	(revision 88)
@@ -50,4 +50,14 @@
 #endif
 
+  Tusage_t _usage = USE_ALL;
+
+//   _usage = usage_unset(_usage,USE_SYSTEMC              );
+//   _usage = usage_unset(_usage,USE_VHDL                 );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//   _usage = usage_unset(_usage,USE_POSITION             );
+   _usage = usage_unset(_usage,USE_STATISTICS           );
+//   _usage = usage_unset(_usage,USE_INFORMATION          );
+
   Load_Store_pointer_unit * _Load_Store_pointer_unit = new Load_Store_pointer_unit 
     (name.c_str(),
@@ -56,5 +66,5 @@
 #endif
      _param,
-     USE_ALL);
+     _usage);
   
 #ifdef SYSTEMC
@@ -79,6 +89,8 @@
   ALLOC1_SC_SIGNAL( in_RETIRE_FRONT_END_ID         ," in_RETIRE_FRONT_END_ID         ",Tcontext_t  ,_param->_nb_inst_retire);
   ALLOC1_SC_SIGNAL( in_RETIRE_CONTEXT_ID           ," in_RETIRE_CONTEXT_ID           ",Tcontext_t  ,_param->_nb_inst_retire);
-  ALLOC1_SC_SIGNAL( in_RETIRE_TYPE                 ," in_RETIRE_TYPE                 ",Ttype_t     ,_param->_nb_inst_retire);
-  ALLOC1_SC_SIGNAL( in_RETIRE_OPERATION            ," in_RETIRE_OPERATION            ",Toperation_t,_param->_nb_inst_retire);
+//   ALLOC1_SC_SIGNAL( in_RETIRE_TYPE                 ," in_RETIRE_TYPE                 ",Ttype_t     ,_param->_nb_inst_retire);
+//   ALLOC1_SC_SIGNAL( in_RETIRE_OPERATION            ," in_RETIRE_OPERATION            ",Toperation_t,_param->_nb_inst_retire);
+  ALLOC1_SC_SIGNAL( in_RETIRE_USE_STORE_QUEUE      ," in_RETIRE_USE_STORE_QUEUE      ",Tcontrol_t  ,_param->_nb_inst_retire);
+  ALLOC1_SC_SIGNAL( in_RETIRE_USE_LOAD_QUEUE       ," in_RETIRE_USE_LOAD_QUEUE       ",Tcontrol_t  ,_param->_nb_inst_retire);
   ALLOC1_SC_SIGNAL( in_RETIRE_STORE_QUEUE_PTR_WRITE," in_RETIRE_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t  ,_param->_nb_inst_retire);
   ALLOC1_SC_SIGNAL( in_RETIRE_LOAD_QUEUE_PTR_WRITE ," in_RETIRE_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t  ,_param->_nb_inst_retire);
@@ -111,6 +123,8 @@
   if (_param->_have_port_context_id)
   INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_CONTEXT_ID           ,_param->_nb_inst_retire);
-  INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_TYPE                 ,_param->_nb_inst_retire);
-  INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_OPERATION            ,_param->_nb_inst_retire);
+//   INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_TYPE                 ,_param->_nb_inst_retire);
+//   INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_OPERATION            ,_param->_nb_inst_retire);
+  INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_USE_STORE_QUEUE      ,_param->_nb_inst_retire);
+  INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_USE_LOAD_QUEUE       ,_param->_nb_inst_retire);
   INSTANCE1_SC_SIGNAL(_Load_Store_pointer_unit, in_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire);
   if (_param->_have_port_load_queue_ptr)
@@ -197,6 +211,8 @@
 	      in_RETIRE_FRONT_END_ID          [i]->write(it->_front_end_id         );
 	      in_RETIRE_CONTEXT_ID            [i]->write(it->_context_id           );
-	      in_RETIRE_TYPE                  [i]->write(it->_type                 );
-	      in_RETIRE_OPERATION             [i]->write(it->_operation            );
+// 	      in_RETIRE_TYPE                  [i]->write(it->_type                 );
+// 	      in_RETIRE_OPERATION             [i]->write(it->_operation            );
+ 	      in_RETIRE_USE_STORE_QUEUE       [i]->write((it->_type == TYPE_MEMORY) and     is_operation_memory_store(it->_operation));
+ 	      in_RETIRE_USE_LOAD_QUEUE        [i]->write((it->_type == TYPE_MEMORY) and not is_operation_memory_store(it->_operation));
 	      in_RETIRE_STORE_QUEUE_PTR_WRITE [i]->write(it->_store_queue_ptr_write);
 	      in_RETIRE_LOAD_QUEUE_PTR_WRITE  [i]->write(it->_load_queue_ptr_write );
@@ -214,5 +230,6 @@
 	  if (in_RETIRE_VAL[i]->read())
 	    {
-	      if (in_RETIRE_TYPE [i]->read() != TYPE_MEMORY)
+	      if (not (in_RETIRE_USE_STORE_QUEUE [i]->read() or
+		       in_RETIRE_USE_LOAD_QUEUE  [i]->read()))
 		TEST(Tcontrol_t, out_RETIRE_ACK[i]->read(),true);
 	      
@@ -366,6 +383,8 @@
   delete []  in_RETIRE_FRONT_END_ID         ;
   delete []  in_RETIRE_CONTEXT_ID           ;
-  delete []  in_RETIRE_TYPE                 ;
-  delete []  in_RETIRE_OPERATION            ;
+//   delete []  in_RETIRE_TYPE                 ;
+//   delete []  in_RETIRE_OPERATION            ;
+  delete []  in_RETIRE_USE_STORE_QUEUE      ;
+  delete []  in_RETIRE_USE_LOAD_QUEUE       ;
   delete []  in_RETIRE_STORE_QUEUE_PTR_WRITE;
   delete []  in_RETIRE_LOAD_QUEUE_PTR_WRITE ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h	(revision 88)
@@ -77,6 +77,8 @@
   public    : SC_IN (Tcontext_t     )      **  in_RETIRE_FRONT_END_ID         ; // [nb_inst_retire]
   public    : SC_IN (Tcontext_t     )      **  in_RETIRE_CONTEXT_ID           ; // [nb_inst_retire]
-  public    : SC_IN (Ttype_t        )      **  in_RETIRE_TYPE                 ; // [nb_inst_retire]
-  public    : SC_IN (Toperation_t   )      **  in_RETIRE_OPERATION            ; // [nb_inst_retire]
+//public    : SC_IN (Ttype_t        )      **  in_RETIRE_TYPE                 ; // [nb_inst_retire]
+//public    : SC_IN (Toperation_t   )      **  in_RETIRE_OPERATION            ; // [nb_inst_retire]
+  public    : SC_IN (Tcontrol_t     )      **  in_RETIRE_USE_STORE_QUEUE      ; // [nb_inst_retire]
+  public    : SC_IN (Tcontrol_t     )      **  in_RETIRE_USE_LOAD_QUEUE       ; // [nb_inst_retire]
   public    : SC_IN (Tlsq_ptr_t     )      **  in_RETIRE_STORE_QUEUE_PTR_WRITE; // [nb_inst_retire]
   public    : SC_IN (Tlsq_ptr_t     )      **  in_RETIRE_LOAD_QUEUE_PTR_WRITE ; // [nb_inst_retire]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Parameters.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Parameters.h	(revision 88)
@@ -33,16 +33,18 @@
   public : uint32_t    _nb_inst_retire                  ;
 
-  public : uint32_t    _size_front_end_id               ;
-  public : uint32_t    _size_context_id                 ;    
-  public : uint32_t    _size_store_queue_ptr            ;
-  public : uint32_t    _size_load_queue_ptr             ;
+//public : uint32_t    _size_front_end_id               ;
+//public : uint32_t    _size_context_id                 ;    
+//public : uint32_t    _size_store_queue_ptr            ;
+//public : uint32_t    _size_load_queue_ptr             ;
 
-  public : uint32_t    _have_port_front_end_id          ;
-  public : uint32_t    _have_port_context_id            ;
-  public : uint32_t    _have_port_load_queue_ptr        ;
+//public : uint32_t    _have_port_front_end_id          ;
+//public : uint32_t    _have_port_context_id            ;
+//public : uint32_t    _have_port_load_queue_ptr        ;
 
     //-----[ methods ]-----------------------------------------------------------
   public : Parameters  (uint32_t    nb_front_end                    ,
 			uint32_t  * nb_context                      ,
+//                      uint32_t    size_front_end_id               ,
+//                      uint32_t    size_context_id                 ,
 			uint32_t    nb_load_store_queue             ,
 			uint32_t  * size_store_queue                ,
@@ -50,8 +52,12 @@
 			uint32_t ** link_load_store_unit_with_thread,
 			uint32_t    nb_inst_insert                  ,
-			uint32_t    nb_inst_retire                  );
+			uint32_t    nb_inst_retire                  ,
+                        bool        is_toplevel=false
+                        );
 
 //   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
+
+  public :        void            copy       (void);
 
   public :        Parameters_test msg_error  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp	(revision 88)
@@ -38,4 +38,10 @@
     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
 
+#if DEBUG_Load_Store_pointer_unit == true
+    log_printf(INFO,Load_Store_pointer_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Allocation");
 
@@ -47,5 +53,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {	
 	log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Allocation of statistics");
@@ -56,5 +62,5 @@
 
 #ifdef VHDL
-    if (_usage & USE_VHDL)
+    if (usage_is_set(_usage,USE_VHDL))
       {
 	// generate the vhdl
@@ -66,5 +72,5 @@
 
 #ifdef SYSTEMC
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - transition");
@@ -141,6 +147,8 @@
 	    sensitive << (*(in_RETIRE_LOAD_QUEUE_PTR_WRITE  [i]));
 	    sensitive << (*(in_RETIRE_VAL                   [i]))
-		      << (*(in_RETIRE_TYPE                  [i]))
-		      << (*(in_RETIRE_OPERATION             [i]))
+// 		      << (*(in_RETIRE_TYPE                  [i]))
+// 		      << (*(in_RETIRE_OPERATION             [i]))
+ 		      << (*(in_RETIRE_USE_STORE_QUEUE       [i]))
+ 		      << (*(in_RETIRE_USE_LOAD_QUEUE        [i]))
 		      << (*(in_RETIRE_STORE_QUEUE_PTR_WRITE [i]));;
 	  }
@@ -155,6 +163,8 @@
 	    if (_param->_have_port_context_id)
 	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_CONTEXT_ID            [i]));
-	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_TYPE                  [i]));
-	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_OPERATION             [i]));
+// 	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_TYPE                  [i]));
+// 	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_OPERATION             [i]));
+	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_USE_STORE_QUEUE       [i]));
+	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_USE_LOAD_QUEUE        [i]));
   	    if (_param->_have_port_load_queue_ptr)
 	    (*(out_RETIRE_ACK                   [i])) (*( in_RETIRE_LOAD_QUEUE_PTR_WRITE  [i]));
@@ -175,5 +185,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {
 	log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Generate Statistics file");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_allocation.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_allocation.cpp	(revision 88)
@@ -78,11 +78,14 @@
       ALLOC1_SIGNAL_IN ( in_RETIRE_FRONT_END_ID         ,"front_end_id"         ,Tcontext_t  ,_param->_size_front_end_id   );
       ALLOC1_SIGNAL_IN ( in_RETIRE_CONTEXT_ID           ,"context_id"           ,Tcontext_t  ,_param->_size_context_id     );
-      ALLOC1_SIGNAL_IN ( in_RETIRE_TYPE                 ,"type"                 ,Ttype_t     ,_param->_size_type           );
-      ALLOC1_SIGNAL_IN ( in_RETIRE_OPERATION            ,"operation"            ,Toperation_t,_param->_size_operation      );
+//       ALLOC1_SIGNAL_IN ( in_RETIRE_TYPE                 ,"type"                 ,Ttype_t     ,_param->_size_type           );
+//       ALLOC1_SIGNAL_IN ( in_RETIRE_OPERATION            ,"operation"            ,Toperation_t,_param->_size_operation      );
+      ALLOC1_SIGNAL_IN ( in_RETIRE_USE_STORE_QUEUE      ,"use_store_queue"      ,Tcontrol_t  ,_param->_size_operation      );
+      ALLOC1_SIGNAL_IN ( in_RETIRE_USE_LOAD_QUEUE       ,"use_load_queue"       ,Tcontrol_t  ,_param->_size_operation      );
       ALLOC1_SIGNAL_IN ( in_RETIRE_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t  ,_param->_size_store_queue_ptr);
       ALLOC1_SIGNAL_IN ( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t  ,_param->_size_load_queue_ptr );
     }
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
     reg_STORE_QUEUE_PTR_WRITE     = new Tlsq_ptr_t      [_param->_nb_load_store_queue];
     reg_STORE_QUEUE_USE           = new bool *          [_param->_nb_load_store_queue];
@@ -106,7 +109,10 @@
     internal_RETIRE_LSQ           = new uint32_t        [_param->_nb_inst_retire];
     internal_RETIRE_PTR           = new Tlsq_ptr_t      [_param->_nb_inst_retire];
+      }
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_deallocation.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_deallocation.cpp	(revision 88)
@@ -23,5 +23,5 @@
     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
 
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	delete    in_CLOCK ;
@@ -48,25 +48,26 @@
 	if (_param->_have_port_context_id)
 	delete []  in_RETIRE_CONTEXT_ID           ;
-	delete []  in_RETIRE_TYPE                 ;
-	delete []  in_RETIRE_OPERATION            ;
+// 	delete []  in_RETIRE_TYPE                 ;
+// 	delete []  in_RETIRE_OPERATION            ;
+ 	delete []  in_RETIRE_USE_STORE_QUEUE      ;
+ 	delete []  in_RETIRE_USE_LOAD_QUEUE       ;
 	delete []  in_RETIRE_STORE_QUEUE_PTR_WRITE;
 	if (_param->_have_port_load_queue_ptr)
 	delete []  in_RETIRE_LOAD_QUEUE_PTR_WRITE ;
 
+        delete [] reg_STORE_QUEUE_PTR_WRITE    ;
+        delete [] reg_STORE_QUEUE_USE          ;
+        delete [] reg_STORE_QUEUE_NB_USE       ;
+        delete [] reg_LOAD_QUEUE_PTR_WRITE     ;
+        delete [] reg_LOAD_QUEUE_USE           ;
+        delete [] internal_INSERT_ACK          ;
+        delete [] internal_INSERT_OPERATION_USE;
+        delete [] internal_INSERT_LSQ          ;
+        delete [] internal_INSERT_PTR          ;
+        delete [] internal_RETIRE_ACK          ;
+        delete [] internal_RETIRE_OPERATION_USE;
+        delete [] internal_RETIRE_LSQ          ;
+        delete [] internal_RETIRE_PTR          ;
       }
-
-    delete [] reg_STORE_QUEUE_PTR_WRITE    ;
-    delete [] reg_STORE_QUEUE_USE          ;
-    delete [] reg_STORE_QUEUE_NB_USE       ;
-    delete [] reg_LOAD_QUEUE_PTR_WRITE     ;
-    delete [] reg_LOAD_QUEUE_USE           ;
-    delete [] internal_INSERT_ACK          ;
-    delete [] internal_INSERT_OPERATION_USE;
-    delete [] internal_INSERT_LSQ          ;
-    delete [] internal_INSERT_PTR          ;
-    delete [] internal_RETIRE_ACK          ;
-    delete [] internal_RETIRE_OPERATION_USE;
-    delete [] internal_RETIRE_LSQ          ;
-    delete [] internal_RETIRE_PTR          ;
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_end_cycle.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_end_cycle.cpp	(revision 88)
@@ -25,5 +25,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -31,5 +32,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_retire.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_retire.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_retire.cpp	(revision 88)
@@ -31,7 +31,8 @@
       {
 	Tcontrol_t ack = false;
-
-	if ( (PORT_READ(in_RETIRE_VAL  [i]) == true       ) and
-	     (PORT_READ(in_RETIRE_TYPE [i]) == TYPE_MEMORY))
+	Tcontrol_t use_sq  = PORT_READ(in_RETIRE_USE_STORE_QUEUE [i]);
+	Tcontrol_t use_lq  = PORT_READ(in_RETIRE_USE_LOAD_QUEUE  [i]);
+	if ( (PORT_READ(in_RETIRE_VAL  [i]) == true) and (use_sq or use_lq))
+// 	     (PORT_READ(in_RETIRE_TYPE [i]) == TYPE_MEMORY))
 	  {
 	    Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0;
@@ -49,5 +50,6 @@
 		
 		// operation became of decod_stage. Also operation is != store_head_ok and store_head_ko
-		if (is_operation_memory_store(PORT_READ(in_RETIRE_OPERATION [i])))
+// 		if (is_operation_memory_store(PORT_READ(in_RETIRE_OPERATION [i])))
+		if (use_sq)
 		  {
 		    internal_RETIRE_OPERATION_USE [i] = OPERATION_USE_STORE_QUEUE;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters.cpp	(revision 88)
@@ -22,4 +22,6 @@
   Parameters::Parameters (uint32_t    nb_front_end                    ,
 			  uint32_t  * nb_context                      ,
+//                           uint32_t    size_front_end_id               ,
+//                           uint32_t    size_context_id                 ,
 			  uint32_t    nb_load_store_queue             ,
 			  uint32_t  * size_store_queue                ,
@@ -27,5 +29,7 @@
 			  uint32_t ** link_load_store_unit_with_thread,
 			  uint32_t    nb_inst_insert                  ,
-			  uint32_t    nb_inst_retire                  )
+			  uint32_t    nb_inst_retire                  ,
+                          bool        is_toplevel
+                          )
   {
     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
@@ -40,17 +44,20 @@
     _nb_inst_retire                   = nb_inst_retire                  ;
     
-    uint32_t max_nb_context       = max<uint32_t>(nb_context,       nb_front_end);
-    uint32_t max_size_store_queue = max<uint32_t>(size_store_queue, nb_load_store_queue);
-    uint32_t max_size_load_queue  = max<uint32_t>(size_load_queue,  nb_load_store_queue);
+    test();
 
-    _size_front_end_id                = log2(nb_front_end        );
-    _size_context_id                  = log2(max_nb_context      );
-    _size_store_queue_ptr             = log2(max_size_store_queue);
-    _size_load_queue_ptr              = log2(max_size_load_queue );
-    _have_port_front_end_id           = (_size_front_end_id   > 0);
-    _have_port_context_id             = (_size_context_id     > 0);
-    _have_port_load_queue_ptr         = (_size_load_queue_ptr > 0);
+    if (is_toplevel)
+      {
+        _size_front_end_id                = log2(_nb_front_end);
+        _size_context_id                  = log2(max<uint32_t>(_nb_context,_nb_front_end));
+        _size_store_queue_ptr             = log2(max<uint32_t>(size_store_queue, nb_load_store_queue));
+        _size_load_queue_ptr              = log2(max<uint32_t>(size_load_queue,  nb_load_store_queue));
+
+        _have_port_front_end_id           = (_size_front_end_id   > 0);
+        _have_port_context_id             = (_size_context_id     > 0);
+        _have_port_load_queue_ptr         = (_size_load_queue_ptr > 0);
     
-    test();
+        copy();
+      }
+
     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
   };
@@ -67,5 +74,13 @@
 #undef  FUNCTION
 #define FUNCTION "Load_Store_pointer_unit::~Parameters"
-  Parameters::~Parameters () 
+  Parameters::~Parameters (void) 
+  {
+    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
+  };
+
+#undef  FUNCTION
+#define FUNCTION "Load_Store_pointer_unit::copy"
+  void Parameters::copy (void) 
   {
     log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters_msg_error.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Parameters_msg_error.cpp	(revision 88)
@@ -49,7 +49,7 @@
 	test.error(toString(_("The load store unit [%d] is not linked with a thread.\n"),i));
     
+    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
+
     return test;
-
-    log_printf(FUNC,Load_Store_pointer_unit,FUNCTION,"End");
   };
 
