Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp	(revision 88)
@@ -39,9 +39,15 @@
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
 
+#if DEBUG_Execute_queue == true
+    log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,Execute_queue,FUNCTION,"Allocation");
     allocation ();
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {	
 	log_printf(INFO,Execute_queue,FUNCTION,"Allocation of statistics");
@@ -52,5 +58,5 @@
 
 #ifdef VHDL
-    if (_usage & USE_VHDL)
+    if (usage_is_set(_usage,USE_VHDL))
       {
 	// generate the vhdl
@@ -62,5 +68,5 @@
 
 #ifdef SYSTEMC
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	log_printf(INFO,Execute_queue,FUNCTION,"Method - transition");
@@ -96,5 +102,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {
 	log_printf(INFO,Execute_queue,FUNCTION,"Generate Statistics file");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp	(revision 88)
@@ -17,6 +17,4 @@
 namespace write_unit {
 namespace execute_queue {
-
-
 
 #undef  FUNCTION
@@ -62,6 +60,6 @@
        if(_param->_have_port_ooo_engine_id)
        ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id    );
-       if(_param->_have_port_packet_id)
-       ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID    ,"packet_id"    ,Tpacket_t         ,_param->_size_packet_id        );
+       if(_param->_have_port_rob_ptr)
+       ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID    ,"packet_id"    ,Tpacket_t         ,_param->_size_rob_ptr        );
 //     ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
 //     ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type             );
@@ -70,4 +68,5 @@
        ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ,"no_sequence"  ,Tcontrol_t        ,1                              );
        ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_ADDRESS      ,"address"      ,Tgeneral_data_t   ,_param->_size_general_data     );
+       ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data     );
      }
 
@@ -84,6 +83,6 @@
        if(_param->_have_port_ooo_engine_id)
        ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t     ,_param->_size_ooo_engine_id);
-       if(_param->_have_port_packet_id)
-       ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_PACKET_ID    ,"packet_id"    ,Tpacket_t      ,_param->_size_packet_id    );
+       if(_param->_have_port_rob_ptr)
+       ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_PACKET_ID    ,"packet_id"    ,Tpacket_t      ,_param->_size_rob_ptr    );
 //     ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
 //     ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
@@ -92,4 +91,5 @@
        ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ,"no_sequence"  ,Tcontrol_t     ,1                          );
        ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_general_data );
+       ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_DATA         ,"data"         ,Tgeneral_data_t,_param->_size_general_data );
      }
 
@@ -99,5 +99,6 @@
 
 #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_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp	(revision 88)
@@ -24,5 +24,5 @@
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
 
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	delete    in_CLOCK ;
@@ -38,5 +38,5 @@
 	if (_param->_have_port_ooo_engine_id)
 	delete      in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;
-        if (_param->_have_port_packet_id)
+        if (_param->_have_port_rob_ptr)
 	delete      in_EXECUTE_QUEUE_IN_PACKET_ID    ;
 //      delete      in_EXECUTE_QUEUE_IN_OPERATION    ;
@@ -46,4 +46,5 @@
         delete      in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ;
         delete      in_EXECUTE_QUEUE_IN_ADDRESS      ;
+        delete      in_EXECUTE_QUEUE_IN_DATA         ;
 
 	// -----[ Interface "execute_queue_out" ]-------------------------------    
@@ -56,5 +57,5 @@
         if (_param->_have_port_ooo_engine_id)
 	delete     out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;
-        if (_param->_have_port_packet_id)
+        if (_param->_have_port_rob_ptr)
 	delete     out_EXECUTE_QUEUE_OUT_PACKET_ID    ;
 //      delete     out_EXECUTE_QUEUE_OUT_OPERATION    ;
@@ -64,4 +65,5 @@
         delete     out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ;
         delete     out_EXECUTE_QUEUE_OUT_ADDRESS      ;
+        delete     out_EXECUTE_QUEUE_OUT_DATA         ;
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_end_cycle.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_end_cycle.cpp	(revision 88)
@@ -26,5 +26,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -32,5 +33,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_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_genMoore.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_genMoore.cpp	(revision 88)
@@ -47,5 +47,5 @@
 	  if (_param->_have_port_ooo_engine_id)
       	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID, _queue->front()->_ooo_engine_id);
-	  if (_param->_have_port_packet_id)
+	  if (_param->_have_port_rob_ptr)
       	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_PACKET_ID    , _queue->front()->_packet_id    );
 //    	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
@@ -55,4 +55,5 @@
       	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  , _queue->front()->_no_sequence  );
       	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_ADDRESS      , _queue->front()->_address      );
+      	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_DATA         , _queue->front()->_data         );
 	}
     }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_transition.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_transition.cpp	(revision 88)
@@ -44,5 +44,5 @@
 	       (_param->_have_port_front_end_id )?PORT_READ(in_EXECUTE_QUEUE_IN_FRONT_END_ID ):0,
 	       (_param->_have_port_ooo_engine_id)?PORT_READ(in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID):0,
-	       (_param->_have_port_packet_id    )?PORT_READ(in_EXECUTE_QUEUE_IN_PACKET_ID    ):0,
+	       (_param->_have_port_rob_ptr      )?PORT_READ(in_EXECUTE_QUEUE_IN_PACKET_ID    ):0,
 	     //PORT_READ(in_EXECUTE_QUEUE_IN_OPERATION    ),
 	     //PORT_READ(in_EXECUTE_QUEUE_IN_TYPE         ),
@@ -50,5 +50,6 @@
 	       PORT_READ(in_EXECUTE_QUEUE_IN_EXCEPTION    ),
 	       PORT_READ(in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ),
-	       PORT_READ(in_EXECUTE_QUEUE_IN_ADDRESS      ));
+	       PORT_READ(in_EXECUTE_QUEUE_IN_ADDRESS      ),
+	       PORT_READ(in_EXECUTE_QUEUE_IN_DATA         ));
 	    
 	    _queue->push(entry);
@@ -64,5 +65,6 @@
 
 #ifdef STATISTICS
-    *(_stat_use_queue) += _queue->size();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      *(_stat_use_queue) += _queue->size();
 #endif
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp	(revision 88)
@@ -26,57 +26,74 @@
 			  uint32_t nb_packet          ,
 			  uint32_t size_general_data  ,
-			  uint32_t size_special_data  ):
-    _size_queue              (size_queue         ),
-    _nb_context              (nb_context         ),
-    _nb_front_end            (nb_front_end       ),
-    _nb_ooo_engine           (nb_ooo_engine      ),
-    _nb_packet               (nb_packet          ),
-    _size_general_data       (size_general_data  ),
-    _size_special_data       (size_special_data  ),
-
-    _size_context_id         (log2(_nb_context         )),
-    _size_front_end_id       (log2(_nb_front_end       )),
-    _size_ooo_engine_id      (log2(_nb_ooo_engine      )),
-    _size_packet_id          (log2(_nb_packet          )),
-
-    _have_port_context_id    (_size_context_id    > 0),
-    _have_port_front_end_id  (_size_front_end_id  > 0),
-    _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
-    _have_port_packet_id     (_size_packet_id     > 0)
+			  uint32_t size_special_data  ,
+                          bool     is_toplevel        )
   {
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
+
+    _size_queue              = size_queue         ;
+    _nb_context              = nb_context         ;
+    _nb_front_end            = nb_front_end       ;
+    _nb_ooo_engine           = nb_ooo_engine      ;
+    _nb_packet               = nb_packet          ;
+
     test();
+
+    if (is_toplevel)
+      {
+        _size_context_id         = log2(_nb_context   );
+        _size_front_end_id       = log2(_nb_front_end );
+        _size_ooo_engine_id      = log2(_nb_ooo_engine);
+        _size_rob_ptr            = log2(_nb_packet    );
+        _size_general_data       = size_general_data;
+        _size_special_data       = size_special_data;
+        
+        _have_port_context_id    = _size_context_id    > 0;
+        _have_port_front_end_id  = _size_front_end_id  > 0;
+        _have_port_ooo_engine_id = _size_ooo_engine_id > 0;
+        _have_port_rob_ptr       = _size_rob_ptr       > 0;
+
+        copy();
+      }
+
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
   };
   
+// #undef  FUNCTION
+// #define FUNCTION "Execute_queue::Parameters (copy)"
+//   Parameters::Parameters (Parameters & param):
+//     _size_queue              (param._size_queue             ),
+//     _nb_context              (param._nb_context             ),
+//     _nb_front_end            (param._nb_front_end           ),
+//     _nb_ooo_engine           (param._nb_ooo_engine          ),
+//     _nb_packet               (param._nb_packet              ),
+//     _size_general_data       (param._size_general_data      ),
+//     _size_special_data       (param._size_special_data      ),
+
+//     _size_context_id         (param._size_context_id        ),
+//     _size_front_end_id       (param._size_front_end_id      ),
+//     _size_ooo_engine_id      (param._size_ooo_engine_id     ),
+//     _size_packet_id          (param._size_packet_id         ),
+
+//     _have_port_context_id    (param._have_port_context_id   ),
+//     _have_port_front_end_id  (param._have_port_front_end_id ),
+//     _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
+//     _have_port_packet_id     (param._have_port_packet_id    )
+//   {
+//     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
+//     test();
+//     log_printf(FUNC,Execute_queue,FUNCTION,"End");
+//   };
+
 #undef  FUNCTION
-#define FUNCTION "Execute_queue::Parameters (copy)"
-  Parameters::Parameters (Parameters & param):
-    _size_queue              (param._size_queue             ),
-    _nb_context              (param._nb_context             ),
-    _nb_front_end            (param._nb_front_end           ),
-    _nb_ooo_engine           (param._nb_ooo_engine          ),
-    _nb_packet               (param._nb_packet              ),
-    _size_general_data       (param._size_general_data      ),
-    _size_special_data       (param._size_special_data      ),
-
-    _size_context_id         (param._size_context_id        ),
-    _size_front_end_id       (param._size_front_end_id      ),
-    _size_ooo_engine_id      (param._size_ooo_engine_id     ),
-    _size_packet_id          (param._size_packet_id         ),
-
-    _have_port_context_id    (param._have_port_context_id   ),
-    _have_port_front_end_id  (param._have_port_front_end_id ),
-    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
-    _have_port_packet_id     (param._have_port_packet_id    )
+#define FUNCTION "Execute_queue::~Parameters"
+  Parameters::~Parameters (void)
   {
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
-    test();
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
   };
 
 #undef  FUNCTION
-#define FUNCTION "Execute_queue::~Parameters"
-  Parameters::~Parameters () 
+#define FUNCTION "Execute_queue::copy"
+  void Parameters::copy (void)
   {
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
