Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Execute_loop_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Execute_loop_Glue.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Execute_loop_Glue.h	(revision 136)
@@ -102,4 +102,14 @@
   public    : SC_OUT(Tspecial_address_t)   ** out_SPR_WRITE_READ_UNIT_NUM_REG            ;
   public    : SC_OUT(Tspecial_data_t   )   ** out_SPR_WRITE_READ_UNIT_DATA               ;
+
+    // -----[ Interface "issue" ]-----------------------------------------
+  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_VAL                              ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_ACK                              ;
+
+  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_READ_UNIT_VAL                    ;
+  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_READ_UNIT_ACK                    ;
+
+  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_REGISTER_UNIT_VAL                ;
+  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_REGISTER_UNIT_ACK                ;
     
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
@@ -144,4 +154,5 @@
   public  : void        genMealy_gpr_write        (void);
   public  : void        genMealy_spr_write        (void);
+  public  : void        genMealy_issue            (void);
 #endif					       
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Parameters.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Parameters.h	(revision 136)
@@ -25,4 +25,5 @@
   public : uint32_t _nb_gpr_write           ;
   public : uint32_t _nb_spr_write           ;
+  public : uint32_t _nb_inst_issue          ;
 //public : uint32_t _size_ooo_engine_id     ;
 //public : uint32_t _size_general_register  ;
@@ -36,4 +37,5 @@
   public : Parameters  (uint32_t nb_gpr_write           ,
 			uint32_t nb_spr_write           ,
+			uint32_t nb_inst_issue          ,
 			uint32_t size_ooo_engine_id     ,
 			uint32_t size_general_register  ,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue.cpp	(revision 136)
@@ -166,4 +166,18 @@
       }
 # endif    
+
+	log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> : Method - genMealy_issue"),_name.c_str());
+
+	SC_METHOD (genMealy_issue);
+	dont_initialize ();
+// 	sensitive << (*(in_CLOCK)).neg();// don't need internal register
+	for (uint32_t i=0; i<_param->_nb_inst_issue; ++i)
+	  sensitive << (*(in_ISSUE_VAL               [i]))
+		    << (*(in_ISSUE_READ_UNIT_ACK     [i]))
+		    << (*(in_ISSUE_REGISTER_UNIT_ACK [i]));
+
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
 	
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_allocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_allocation.cpp	(revision 136)
@@ -132,4 +132,18 @@
     }
 
+    // -----[ Interface "issue" ]-----------------------------------------
+    {
+      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST, _("Issue"), _param->_nb_inst_issue);
+
+      ALLOC1_SIGNAL_IN ( in_ISSUE_VAL              ,"val"              ,Tcontrol_t,1);
+      ALLOC1_SIGNAL_OUT(out_ISSUE_ACK              ,"ack"              ,Tcontrol_t,1);
+      ALLOC1_SIGNAL_OUT(out_ISSUE_READ_UNIT_VAL    ,"read_unit_val"    ,Tcontrol_t,1);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_READ_UNIT_ACK    ,"read_unit_ack"    ,Tcontrol_t,1);
+      ALLOC1_SIGNAL_OUT(out_ISSUE_REGISTER_UNIT_VAL,"register_unit_val",Tcontrol_t,1);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_REGISTER_UNIT_ACK,"register_unit_ack",Tcontrol_t,1);
+
+      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
+    }
+
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_issue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_issue.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_issue.cpp	(revision 136)
@@ -0,0 +1,75 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Execute_loop_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace execute_loop_glue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Execute_loop_Glue::genMealy_issue"
+  void Execute_loop_Glue::genMealy_issue (void)
+  {
+    log_begin(Execute_loop_Glue,FUNCTION);
+
+    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
+      {
+	Tcontrol_t ack              ;
+	Tcontrol_t read_unit_val    ;
+	Tcontrol_t register_unit_val;
+	
+	if (PORT_READ(in_NRESET))
+	  {
+	    Tcontrol_t val               = PORT_READ(in_ISSUE_VAL               [i]);
+	    Tcontrol_t read_unit_ack     = PORT_READ(in_ISSUE_READ_UNIT_ACK     [i]);
+	    Tcontrol_t register_unit_ack = PORT_READ(in_ISSUE_REGISTER_UNIT_ACK [i]);
+
+	    ack               = (
+// 				 val               and
+				 read_unit_ack     and
+				 register_unit_ack
+				 );
+	    read_unit_val     = (
+				 val               and
+// 				 read_unit_ack     and
+				 register_unit_ack
+				 );
+	    register_unit_val = (
+				 val               and
+				 read_unit_ack     // and
+// 				 register_unit_ack
+				 );
+	  }
+	else
+	  {
+	    ack               = false;
+	    read_unit_val     = false;
+	    register_unit_val = false;
+	  }
+
+	PORT_WRITE(out_ISSUE_ACK               [i],ack              );
+	PORT_WRITE(out_ISSUE_READ_UNIT_VAL     [i],read_unit_val    );
+	PORT_WRITE(out_ISSUE_REGISTER_UNIT_VAL [i],register_unit_val);
+      }
+    
+    log_end(Execute_loop_Glue,FUNCTION);
+  };
+
+}; // end namespace execute_loop_glue
+}; // 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/Execute_loop_Glue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters.cpp	(revision 136)
@@ -20,4 +20,5 @@
   Parameters::Parameters (uint32_t nb_gpr_write           ,
 			  uint32_t nb_spr_write           ,
+			  uint32_t nb_inst_issue          ,
 			  uint32_t size_ooo_engine_id     ,
 			  uint32_t size_general_register  ,
@@ -31,4 +32,5 @@
     _nb_gpr_write            = nb_gpr_write           ;
     _nb_spr_write            = nb_spr_write           ;
+    _nb_inst_issue           = nb_inst_issue          ;
 //  _size_ooo_engine_id      = size_ooo_engine_id     ;
 //  _size_general_register   = size_general_register  ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters_print.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Parameters_print.cpp	(revision 136)
@@ -28,4 +28,5 @@
     xml.singleton_begin("nb_gpr_write         "); xml.attribut("value",toString(_nb_gpr_write         )); xml.singleton_end();
     xml.singleton_begin("nb_spr_write         "); xml.attribut("value",toString(_nb_spr_write         )); xml.singleton_end();
+    xml.singleton_begin("nb_inst_issue        "); xml.attribut("value",toString(_nb_inst_issue        )); xml.singleton_end();
     xml.singleton_begin("size_ooo_engine_id   "); xml.attribut("value",toString(_size_ooo_engine_id   )); xml.singleton_end();
     xml.singleton_begin("size_general_register"); xml.attribut("value",toString(_size_general_register)); xml.singleton_end();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h	(revision 136)
@@ -52,4 +52,5 @@
     Toperation_t       _operation   ;
     Ttype_t            _type        ;
+    Tcontrol_t         _cancel      ;
     Tcontrol_t         _has_immediat;
     Tgeneral_data_t    _immediat    ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h	(revision 136)
@@ -84,4 +84,5 @@
   public    : SC_IN (Toperation_t      )    *  in_EXECUTE_IN_OPERATION      ;
   public    : SC_IN (Ttype_t           )    *  in_EXECUTE_IN_TYPE           ;
+  public    : SC_IN (Tcontrol_t        )    *  in_EXECUTE_IN_CANCEL         ;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_EXECUTE_IN_STORE_QUEUE_PTR_READ ;
@@ -107,4 +108,5 @@
 //public    : SC_OUT(Toperation_t      )    * out_EXECUTE_OUT_OPERATION      ;
 //public    : SC_OUT(Ttype_t           )    * out_EXECUTE_OUT_TYPE           ;
+  public    : SC_OUT(Tcontrol_t        )    * out_EXECUTE_OUT_CANCEL         ;
   public    : SC_OUT(Tcontrol_t        )    * out_EXECUTE_OUT_WRITE_RD       ;
   public    : SC_OUT(Tgeneral_address_t)    * out_EXECUTE_OUT_NUM_REG_RD     ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp	(revision 136)
@@ -62,4 +62,5 @@
       ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_OPERATION             ,"operation"            ,Toperation_t      , _param->_size_operation    );
       ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_TYPE                  ,"type"                 ,Ttype_t           , _param->_size_type         );
+      ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_CANCEL                ,"cancel"               ,Tcontrol_t        , 1);
       ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE ,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
       ALLOC0_SIGNAL_IN ( in_EXECUTE_IN_STORE_QUEUE_PTR_READ  ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
@@ -90,4 +91,5 @@
      //ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_OPERATION      ,"operation"    ,Toperation_t      ,_param->_size_operation    );
      //ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_TYPE           ,"type"         ,Ttype_t           ,_param->_size_type         );
+       ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_CANCEL         ,"cancel"       ,Tcontrol_t        ,1);
        ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_WRITE_RD       ,"write_rd"     ,Tcontrol_t        ,1);
        ALLOC0_SIGNAL_OUT(out_EXECUTE_OUT_NUM_REG_RD     ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp	(revision 136)
@@ -38,4 +38,5 @@
         DELETE0_SIGNAL( in_EXECUTE_IN_OPERATION             ,_param->_size_operation    );
         DELETE0_SIGNAL( in_EXECUTE_IN_TYPE                  ,_param->_size_type         );
+        DELETE0_SIGNAL( in_EXECUTE_IN_CANCEL                ,1);
         DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE ,_param->_size_store_queue_ptr);
         DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_READ  ,_param->_size_store_queue_ptr);
@@ -60,4 +61,5 @@
       //DELETE0_SIGNAL(out_EXECUTE_OUT_OPERATION      ,_param->_size_operation    );
       //DELETE0_SIGNAL(out_EXECUTE_OUT_TYPE           ,_param->_size_type         );
+        DELETE0_SIGNAL(out_EXECUTE_OUT_CANCEL         ,1);
         DELETE0_SIGNAL(out_EXECUTE_OUT_WRITE_RD       ,1);
         DELETE0_SIGNAL(out_EXECUTE_OUT_NUM_REG_RD     ,_param->_size_general_register);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMoore.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMoore.cpp	(revision 136)
@@ -38,4 +38,5 @@
   //  PORT_WRITE(out_EXECUTE_OUT_OPERATION    ,_execute_operation_out->_operation    );
   //  PORT_WRITE(out_EXECUTE_OUT_TYPE         ,_execute_operation_out->_type         );
+      PORT_WRITE(out_EXECUTE_OUT_CANCEL       ,_execute_operation_out->_cancel       );
       PORT_WRITE(out_EXECUTE_OUT_WRITE_RD     ,_execute_operation_out->_write_rd     );
       PORT_WRITE(out_EXECUTE_OUT_NUM_REG_RD   ,_execute_operation_out->_num_reg_rd   );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp	(revision 136)
@@ -55,4 +55,5 @@
   //    _execute_operation_out->_operation     = 0; // not necessary
   //    _execute_operation_out->_type          = 0; // not necessary
+        _execute_operation_out->_cancel        = 0; // not necessary
         _execute_operation_out->_write_rd      = 0; // not necessary
         _execute_operation_out->_num_reg_rd    = 0; // not necessary
@@ -88,4 +89,5 @@
 	    _execute_operation_out->_operation     = _execute_operation_in->_operation    ;
 	    _execute_operation_out->_type          = _execute_operation_in->_type         ;
+	    _execute_operation_out->_cancel        = _execute_operation_in->_cancel       ;
 	    _execute_operation_out->_has_immediat  = _execute_operation_in->_has_immediat ;
 	    _execute_operation_out->_immediat      = _execute_operation_in->_immediat     ;
@@ -130,4 +132,5 @@
 	    Toperation_t operation     = PORT_READ(in_EXECUTE_IN_OPERATION);
 	    Ttype_t      type          = PORT_READ(in_EXECUTE_IN_TYPE);
+            Tcontrol_t   cancel        = PORT_READ(in_EXECUTE_IN_CANCEL);
 
 	    execute_operation->_context_id    = context_id   ;
@@ -137,4 +140,5 @@
 	    execute_operation->_operation     = operation    ;
 	    execute_operation->_type          = type         ;
+	    execute_operation->_cancel        = cancel       ;
 	    execute_operation->_has_immediat  = PORT_READ(in_EXECUTE_IN_HAS_IMMEDIAT);
 	    execute_operation->_immediat      = PORT_READ(in_EXECUTE_IN_IMMEDIAT    );
@@ -158,4 +162,5 @@
             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * operation     : %d",execute_operation->_operation    );
             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * type          : %s",toString(execute_operation->_type).c_str());
+            log_printf(TRACE,Functionnal_unit,FUNCTION,"    * cancel        : %d",execute_operation->_cancel       );
             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * has_immediat  : %d",execute_operation->_has_immediat );
             log_printf(TRACE,Functionnal_unit,FUNCTION,"    * immediat      : %.8x",execute_operation->_immediat     );
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 135)
+++ 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 136)
@@ -104,4 +104,5 @@
   public    : SC_IN (Toperation_t      )   **  in_MEMORY_IN_OPERATION            ;//[nb_inst_memory]
   public    : SC_IN (Ttype_t           )   **  in_MEMORY_IN_TYPE                 ;//[nb_inst_memory]
+  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_CANCEL               ;//[nb_inst_memory]
   public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;//[nb_inst_memory]
   public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_READ ;//[nb_inst_memory]
@@ -127,4 +128,5 @@
 //public    : SC_OUT(Toperation_t      )   ** out_MEMORY_OUT_OPERATION           ;//[nb_inst_memory]
 //public    : SC_OUT(Ttype_t           )   ** out_MEMORY_OUT_TYPE                ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_CANCEL              ;//[nb_inst_memory]
   public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_WRITE_RD            ;//[nb_inst_memory] // = (operation==load)
   public    : SC_OUT(Tgeneral_address_t)   ** out_MEMORY_OUT_NUM_REG_RD          ;//[nb_inst_memory] // destination (load)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Types.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Types.h	(revision 136)
@@ -67,4 +67,5 @@
   public    : Tpacket_t            _packet_id           ;
   public    : Toperation_t         _operation           ;
+  public    : Tcontrol_t           _cancel              ;
   public    : Tlsq_ptr_t           _load_queue_ptr_write;
   public    : Tdcache_address_t    _address             ;
@@ -80,5 +81,5 @@
 		<< "   * packet                            : " << toString(x._packet_id) << std::endl
 		<< "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
-		<< "   * operation                         : " << toString(x._operation) << std::endl
+		<< "   * operation, cancel                 : " << toString(x._operation) << " - " << toString(x._cancel) << std::endl
 		<< "   * load_ptr                          : " << toString(x._load_queue_ptr_write) << std::endl
 		<< "   * exception                         : " << toString(x._exception) << std::endl
@@ -111,4 +112,5 @@
   public    : Tpacket_t                          _packet_id            ;
   public    : Toperation_t                       _operation            ;
+  public    : Tcontrol_t                         _cancel               ;
   public    : Tlsq_ptr_t                         _load_queue_ptr_write ;
   public    : Tlsq_ptr_t                         _store_queue_ptr_write;
@@ -125,5 +127,5 @@
 		<< "   * packet                            : " << toString(x._packet_id) << std::endl
 		<< "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
-		<< "   * operation                         : " << toString(x._operation) << std::endl
+		<< "   * operation, cancel                 : " << toString(x._operation) << " - " << toString(x._cancel) << std::endl
 		<< "   * load, store ptr_(write/read) empty: " << toString(x._load_queue_ptr_write) << " - " << toString(x._store_queue_ptr_write) << " - " << toString(x._store_queue_ptr_read) << " - " << toString(x._store_queue_empty) << std::endl
 		<< "   * exception                         : " << toString(x._exception) << std::endl
@@ -168,4 +170,5 @@
   public    : Tpacket_t            _packet_id        ;
   public    : Toperation_t         _operation        ;
+  public    : Tcontrol_t           _cancel           ;
   public    : Tlsq_ptr_t           _store_queue_ptr_write;
   public    : Tlsq_ptr_t           _store_queue_ptr_read ;
@@ -187,5 +190,5 @@
 		<< "   * packet                            : " << toString(x._packet_id) << std::endl
 		<< "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
-		<< "   * operation                         : " << toString(x._operation) << std::endl
+		<< "   * operation, cancel                 : " << toString(x._operation) << " - " << toString(x._cancel) << std::endl
 		<< "   * store_queue ptr_(write,read) empty: " << toString(x._store_queue_ptr_write) << " - " << toString(x._store_queue_ptr_read) << " - " << toString(x._store_queue_empty) <<std::endl
 		<< "   * exception                         : " << toString(x._exception) << std::endl
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 135)
+++ 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 136)
@@ -65,4 +65,5 @@
       ALLOC1_SIGNAL_IN ( in_MEMORY_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation            );
       ALLOC1_SIGNAL_IN ( in_MEMORY_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type                 );
+      ALLOC1_SIGNAL_IN ( in_MEMORY_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1                                  );
       ALLOC1_SIGNAL_IN ( in_MEMORY_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr      );
       ALLOC1_SIGNAL_IN ( in_MEMORY_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr      );
@@ -94,4 +95,5 @@
 //    ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_OPERATION    ,"operation"     ,Toperation_t      ,_param->_size_operation        );
 //    ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_TYPE         ,"type"          ,Ttype_t           ,_param->_size_type             );
+      ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_CANCEL       ,"cancel"        ,Tcontrol_t        ,1                              );
       ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_WRITE_RD     ,"write_rd"      ,Tcontrol_t        ,1                              );
       ALLOC1_SIGNAL_OUT(out_MEMORY_OUT_NUM_REG_RD   ,"num_reg_rd"    ,Tgeneral_address_t,_param->_size_general_register );
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_deallocation.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_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_deallocation.cpp	(revision 136)
@@ -44,4 +44,5 @@
     DELETE1_SIGNAL( in_MEMORY_IN_OPERATION            ,_param->_nb_inst_memory,_param->_size_operation            );
     DELETE1_SIGNAL( in_MEMORY_IN_TYPE                 ,_param->_nb_inst_memory,_param->_size_type                 );
+    DELETE1_SIGNAL( in_MEMORY_IN_CANCEL               ,_param->_nb_inst_memory,1);
     DELETE1_SIGNAL( in_MEMORY_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_memory,_param->_size_store_queue_ptr      );
     DELETE1_SIGNAL( in_MEMORY_IN_STORE_QUEUE_PTR_READ ,_param->_nb_inst_memory,_param->_size_store_queue_ptr      );
@@ -66,4 +67,5 @@
 //  DELETE1_SIGNAL(out_MEMORY_OUT_OPERATION    ,_param->_nb_inst_memory,_param->_size_operation        );
 //  DELETE1_SIGNAL(out_MEMORY_OUT_TYPE         ,_param->_nb_inst_memory,_param->_size_type             );
+    DELETE1_SIGNAL(out_MEMORY_OUT_CANCEL       ,_param->_nb_inst_memory,1                              );
     DELETE1_SIGNAL(out_MEMORY_OUT_WRITE_RD     ,_param->_nb_inst_memory,1                              );
     DELETE1_SIGNAL(out_MEMORY_OUT_NUM_REG_RD   ,_param->_nb_inst_memory,_param->_size_general_register );
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_function_speculative_load_commit_genMoore.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_function_speculative_load_commit_genMoore.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_genMoore.cpp	(revision 136)
@@ -35,4 +35,5 @@
     Tcontext_t         memory_out_ooo_engine_id = 0;
     Tpacket_t          memory_out_packet_id     = 0;
+    Tcontrol_t         memory_out_cancel        = 0;
     Tcontrol_t         memory_out_write_rd      = 0;
     Tgeneral_address_t memory_out_num_reg_rd    = 0;
@@ -67,4 +68,5 @@
 	    memory_out_ooo_engine_id = _load_queue [internal_MEMORY_OUT_PTR]._ooo_engine_id;
 	    memory_out_packet_id     = _load_queue [internal_MEMORY_OUT_PTR]._packet_id ;
+	    memory_out_cancel        = _load_queue [internal_MEMORY_OUT_PTR]._cancel    ;
 	    memory_out_write_rd      = _load_queue [internal_MEMORY_OUT_PTR]._write_rd  ;
 	    memory_out_num_reg_rd    = _load_queue [internal_MEMORY_OUT_PTR]._num_reg_rd;
@@ -130,4 +132,5 @@
 		memory_out_ooo_engine_id = _store_queue [internal_MEMORY_OUT_PTR]._ooo_engine_id;
 		memory_out_packet_id     = _store_queue [internal_MEMORY_OUT_PTR]._packet_id ;
+		memory_out_cancel        = _store_queue [internal_MEMORY_OUT_PTR]._cancel;
 //              memory_out_write_rd  	 
 //              memory_out_num_reg_rd	 
@@ -152,4 +155,5 @@
 //  PORT_WRITE(out_MEMORY_OUT_OPERATION    [0], memory_out_operation    );
 //  PORT_WRITE(out_MEMORY_OUT_TYPE         [0], TYPE_MEMORY             );
+    PORT_WRITE(out_MEMORY_OUT_CANCEL       [0], memory_out_cancel       );
     PORT_WRITE(out_MEMORY_OUT_WRITE_RD     [0], memory_out_write_rd     );
     PORT_WRITE(out_MEMORY_OUT_NUM_REG_RD   [0], memory_out_num_reg_rd   );
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_function_speculative_load_commit_transition.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_function_speculative_load_commit_transition.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_transition.cpp	(revision 136)
@@ -251,4 +251,5 @@
   	    _store_queue              [i]._packet_id             = 0; // not necessary
   	    _store_queue              [i]._operation             = 0; // not necessary
+  	    _store_queue              [i]._cancel                = 0; // not necessary
   	    _store_queue              [i]._load_queue_ptr_write  = 0; // not necessary
   	    _store_queue              [i]._address               = 0; // not necessary
@@ -268,4 +269,5 @@
             _load_queue               [i]._packet_id             = 0; // not necessary
             _load_queue               [i]._operation             = 0; // not necessary
+            _load_queue               [i]._cancel                = 0; // not necessary
             _load_queue               [i]._store_queue_ptr_write = 0; // not necessary
             _load_queue               [i]._store_queue_ptr_read  = 0; // not necessary
@@ -291,4 +293,5 @@
             _speculative_access_queue [i]._packet_id             = 0; // not necessary
             _speculative_access_queue [i]._operation             = 0; // not necessary
+            _speculative_access_queue [i]._cancel                = 0; // not necessary
             _speculative_access_queue [i]._load_queue_ptr_write  = 0; // not necessary
             _speculative_access_queue [i]._store_queue_ptr_write = 0; // not necessary
@@ -815,4 +818,5 @@
 #endif
 	    Toperation_t    operation            = PORT_READ(in_MEMORY_IN_OPERATION[internal_MEMORY_IN_PORT]);
+	    Tcontrol_t      cancel               = PORT_READ(in_MEMORY_IN_CANCEL   [internal_MEMORY_IN_PORT]);
 	    Tgeneral_data_t address              = (PORT_READ(in_MEMORY_IN_IMMEDIAT[internal_MEMORY_IN_PORT]) +
 						    PORT_READ(in_MEMORY_IN_DATA_RA [internal_MEMORY_IN_PORT]));
@@ -925,4 +929,5 @@
 		    _store_queue [index]._packet_id            = (not _param->_have_port_rob_ptr      )?0:PORT_READ(in_MEMORY_IN_PACKET_ID    [internal_MEMORY_IN_PORT]);
 		    _store_queue [index]._operation            = operation;
+		    _store_queue [index]._cancel               = cancel   ;
 		    _store_queue [index]._load_queue_ptr_write = (not _param->_have_port_load_queue_ptr)?0:PORT_READ(in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
 		    _store_queue [index]._address              = address;
@@ -965,4 +970,5 @@
 
 		_speculative_access_queue [index]._operation            = operation;
+		_speculative_access_queue [index]._cancel               = cancel   ;
 		_speculative_access_queue [index]._load_queue_ptr_write = (not _param->_have_port_load_queue_ptr)?0:PORT_READ(in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
 		_speculative_access_queue [index]._store_queue_ptr_write= PORT_READ(in_MEMORY_IN_STORE_QUEUE_PTR_WRITE[internal_MEMORY_IN_PORT]);
@@ -1094,4 +1100,5 @@
 	    _load_queue [ptr_write]._packet_id             = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._packet_id;
 	    _load_queue [ptr_write]._operation             = operation;
+	    _load_queue [ptr_write]._cancel                = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._cancel;
 	    _load_queue [ptr_write]._store_queue_ptr_write = store_queue_ptr_write;
 	    _load_queue [ptr_write]._store_queue_ptr_read  = store_queue_ptr_read ;
@@ -1286,5 +1293,5 @@
 	    uint32_t j = (reg_STORE_QUEUE_PTR_READ+i)%_param->_size_store_queue;
 
-            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d, %.8x %.8x, %.2d %.1d, %.2d %s",
+            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d, %.8x %.8x, %.2d %.1d, %.2d %s",
                        j,
                        _store_queue[j]._context_id          ,
@@ -1293,4 +1300,5 @@
                        _store_queue[j]._packet_id           ,
                        _store_queue[j]._operation           ,
+                       _store_queue[j]._cancel              ,
                        _store_queue[j]._load_queue_ptr_write,
                        _store_queue[j]._address             ,
@@ -1311,5 +1319,5 @@
 	    uint32_t j = (*_speculative_access_queue_control)[i];
 
-            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d %.4d %.4d %.1d, %.8x, %.1d %.4d, %.2d, %s",
+            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d %.4d %.4d %.1d, %.8x, %.1d %.4d, %.2d, %s",
                        j,
                        _speculative_access_queue[j]._context_id          ,
@@ -1318,4 +1326,5 @@
                        _speculative_access_queue[j]._packet_id           ,
                        _speculative_access_queue[j]._operation           ,
+                       _speculative_access_queue[j]._cancel              ,
                        _speculative_access_queue[j]._load_queue_ptr_write,
                        _speculative_access_queue[j]._store_queue_ptr_write,
@@ -1337,5 +1346,5 @@
 	    uint32_t j = i;
 
-            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d, %.4d %.4d %.1d, %.8x %.1x %.1d %.2d %.1d %.2d, %.8x, %.1d %.4d, %.2d, %s",
+            log_printf(TRACE,Load_store_unit,FUNCTION,"    [%.4d] %.4d %.4d %.4d, %.4d, %.4d %.1d, %.4d %.4d %.1d, %.8x %.1x %.1d %.2d %.1d %.2d, %.8x, %.1d %.4d, %.2d, %s",
                        j,
                        _load_queue[j]._context_id          ,
@@ -1344,4 +1353,5 @@
                        _load_queue[j]._packet_id           ,
                        _load_queue[j]._operation           ,
+                       _load_queue[j]._cancel              ,
                        _load_queue[j]._store_queue_ptr_write,
                        _load_queue[j]._store_queue_ptr_read ,
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h	(revision 136)
@@ -72,4 +72,5 @@
   public    : SC_IN (Toperation_t      )    *  in_READ_QUEUE_IN_OPERATION            ;
   public    : SC_IN (Ttype_t           )    *  in_READ_QUEUE_IN_TYPE                 ;
+  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_CANCEL               ;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ ;
@@ -99,4 +100,5 @@
   public    : SC_OUT(Toperation_t      )    * out_READ_QUEUE_OUT_OPERATION            ;
   public    : SC_OUT(Ttype_t           )    * out_READ_QUEUE_OUT_TYPE                 ;
+  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_CANCEL               ;
   public    : SC_OUT(Tlsq_ptr_t        )    * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
   public    : SC_OUT(Tlsq_ptr_t        )    * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ ;
@@ -105,13 +107,13 @@
   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_HAS_IMMEDIAT         ;
   public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_IMMEDIAT             ;
-//   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RA              ;
+//public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RA              ;
   public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RA           ;
   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RA_VAL          ;
   public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RA              ;
-//   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RB              ;
+//public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RB              ;
   public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RB           ;
   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RB_VAL          ;
   public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RB              ;
-//   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RC              ;
+//public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RC              ;
   public    : SC_OUT(Tspecial_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RC           ;
   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RC_VAL          ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h	(revision 136)
@@ -28,4 +28,5 @@
   public    : Toperation_t       _operation    ;
   public    : Ttype_t            _type         ;
+  public    : Tcontrol_t         _cancel       ;
   public    : Tlsq_ptr_t         _store_queue_ptr_write;
   public    : Tlsq_ptr_t         _store_queue_ptr_read ;
@@ -54,4 +55,5 @@
 		    << " * _operation             : " << toString(x._operation    ) << std::endl
 		    << " * _type                  : " << toString(x._type         ) << std::endl
+		    << " * _cancel                : " << toString(x._cancel       ) << std::endl
 		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
 		    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
@@ -84,4 +86,5 @@
   public    : Toperation_t       _operation    ;
   public    : Ttype_t            _type         ;
+  public    : Tcontrol_t         _cancel       ;
   public    : Tlsq_ptr_t         _store_queue_ptr_write;
   public    : Tlsq_ptr_t         _store_queue_ptr_read ;
@@ -122,4 +125,5 @@
       _operation             = x._operation    ;
       _type                  = x._type         ;
+      _cancel                = x._cancel       ;
       _store_queue_ptr_write = x._store_queue_ptr_write;
       _store_queue_ptr_read  = x._store_queue_ptr_read ;
@@ -164,4 +168,5 @@
 		    << " * _operation             : " << x._operation    << std::endl
 		    << " * _type                  : " << x._type         << std::endl
+		    << " * _cancel                : " << x._cancel       << std::endl
 		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
 		    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 136)
@@ -18,4 +18,6 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "Read_queue::Read_queue"
   Read_queue::Read_queue 
   (
@@ -34,5 +36,5 @@
     ,_usage (usage)
   {
-    log_printf(FUNC,Read_queue,"Read_queue","Begin");
+    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Read_queue == true
@@ -43,5 +45,5 @@
 
 #ifdef SYSTEMC
-    log_printf(INFO,Read_queue,"Read_queue","Allocation");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation ();
@@ -51,5 +53,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-        log_printf(INFO,Read_queue,FUNCTION,"Allocation of statistics");
+        log_printf(INFO,Read_queue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
         
         statistics_declaration(param_statistics);
@@ -61,5 +63,5 @@
       {	
         // generate the vhdl
-        log_printf(INFO,Read_queue,"Read_queue","Generate the vhdl");
+        log_printf(INFO,Read_queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
         
         vhdl();
@@ -70,5 +72,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {	
-    log_printf(INFO,Read_queue,"Read_queue","Method - transition");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
     SC_METHOD (transition);
@@ -76,5 +78,5 @@
     sensitive << (*(in_CLOCK)).pos();
 
-    log_printf(INFO,Read_queue,"Read_queue","Method - genMoore");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
 
     SC_METHOD (genMoore);
@@ -82,5 +84,5 @@
     sensitive << (*(in_CLOCK)).neg();
 
-    log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_val");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMealy_read_queue_out_val"),_name.c_str());
 
     SC_METHOD (genMealy_read_queue_out_val);
@@ -130,5 +132,5 @@
 #endif    
     
-    log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_gpr");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMealy_read_queue_out_gpr"),_name.c_str());
 
     SC_METHOD (genMealy_read_queue_out_gpr);
@@ -183,5 +185,5 @@
 #endif    
 
-    log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_spr");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Method - genMealy_read_queue_out_spr"),_name.c_str());
 
     SC_METHOD (genMealy_read_queue_out_spr);
@@ -225,15 +227,17 @@
       }
 #endif
-    log_printf(FUNC,Read_queue,"Read_queue","End");
+    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> End"),_name.c_str());
   };
-  
+
+#undef  FUNCTION
+#define FUNCTION "Read_queue::~Read_queue"
   Read_queue::~Read_queue (void)
   {
-    log_printf(FUNC,Read_queue,"~Read_queue","Begin");
+    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-        log_printf(INFO,Read_queue,"~Read_queue","Generate Statistics file");
+        log_printf(INFO,Read_queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
         
         delete _stat;
@@ -242,10 +246,10 @@
 
 #ifdef SYSTEMC
-    log_printf(INFO,Read_queue,"~Read_queue","Deallocation");
+    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
 
     deallocation ();
 #endif
 
-    log_printf(FUNC,Read_queue,"~Read_queue","End");
+    log_printf(FUNC,Read_queue,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
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 135)
+++ 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 136)
@@ -61,4 +61,5 @@
       ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
       ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
+      ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
       ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
       ALLOC0_SIGNAL_IN ( in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
@@ -93,4 +94,5 @@
       ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_OPERATION             ,"operation"            ,Toperation_t      ,_param->_size_operation        );
       ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_TYPE                  ,"type"                 ,Ttype_t           ,_param->_size_type             );
+      ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_CANCEL                ,"cancel"               ,Tcontrol_t        ,1);
       ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE ,"store_queue_ptr_write",Tlsq_ptr_t        , _param->_size_store_queue_ptr );
       ALLOC0_SIGNAL_OUT(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ  ,"store_queue_ptr_read" ,Tlsq_ptr_t        , _param->_size_store_queue_ptr );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp	(revision 136)
@@ -37,4 +37,5 @@
         DELETE0_SIGNAL( in_READ_QUEUE_IN_OPERATION             ,_param->_size_operation       );
         DELETE0_SIGNAL( in_READ_QUEUE_IN_TYPE                  ,_param->_size_type            );
+        DELETE0_SIGNAL( in_READ_QUEUE_IN_CANCEL                ,1                             );
         DELETE0_SIGNAL( in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE ,_param->_size_store_queue_ptr );
         DELETE0_SIGNAL( in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ  ,_param->_size_store_queue_ptr );
@@ -62,4 +63,5 @@
         DELETE0_SIGNAL(out_READ_QUEUE_OUT_OPERATION            ,_param->_size_operation        );
         DELETE0_SIGNAL(out_READ_QUEUE_OUT_TYPE                 ,_param->_size_type             );
+        DELETE0_SIGNAL(out_READ_QUEUE_OUT_CANCEL               ,1                              );
         DELETE0_SIGNAL(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr  );
         DELETE0_SIGNAL(out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr  );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp	(revision 136)
@@ -27,4 +27,7 @@
     if (PORT_READ(in_NRESET))
       {
+
+    // Tcontrol_t cancel = _queue_head->_cancel;
+
     internal_READ_QUEUE_OUT_DATA_RA_VAL = (// Previous value
 					   _queue_head->_data_ra_val or
@@ -36,4 +39,5 @@
 
     log_printf(TRACE,Read_queue,FUNCTION,"  * internal_READ_QUEUE_OUT_DATA_RA_VAL   : %d",internal_READ_QUEUE_OUT_DATA_RA_VAL);
+    log_printf(TRACE,Read_queue,FUNCTION,"    * _queue_head->_cancel                : %d",_queue_head->_cancel     );
     log_printf(TRACE,Read_queue,FUNCTION,"    * _queue_head->_data_ra_val           : %d",_queue_head->_data_ra_val);
     log_printf(TRACE,Read_queue,FUNCTION,"    * _queue_head->_read_ra_val           : %d",_queue_head->_read_ra_val);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp	(revision 136)
@@ -37,13 +37,14 @@
     
     if(_param->_have_port_context_id   )
-      PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID   , _queue_head->_context_id  );
+    PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID   , _queue_head->_context_id  );
     if(_param->_have_port_front_end_id )
-      PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id);
+    PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id);
     if(_param->_have_port_ooo_engine_id)
-      PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id);
+    PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id);
     if(_param->_have_port_rob_ptr      )
-      PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID      , _queue_head->_rob_id      );
+    PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID      , _queue_head->_rob_id      );
     PORT_WRITE (out_READ_QUEUE_OUT_OPERATION   , _queue_head->_operation   );
     PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
+    PORT_WRITE (out_READ_QUEUE_OUT_CANCEL      , _queue_head->_cancel      );
     PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE, _queue_head->_store_queue_ptr_write);
     PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ , _queue_head->_store_queue_ptr_read );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp	(revision 136)
@@ -49,4 +49,5 @@
         _queue_head->_operation             = 0;// not necessary
         _queue_head->_type                  = 0;// not necessary
+        _queue_head->_cancel                = 0;// not necessary
         _queue_head->_store_queue_ptr_write = 0;// not necessary
         _queue_head->_store_queue_ptr_read  = 0;// not necessary
@@ -102,4 +103,5 @@
 	    entry->_operation             = PORT_READ(in_READ_QUEUE_IN_OPERATION   );
 	    entry->_type                  = PORT_READ(in_READ_QUEUE_IN_TYPE        );
+	    entry->_cancel                = PORT_READ(in_READ_QUEUE_IN_CANCEL      );
 	    entry->_store_queue_ptr_write = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE);
 	    entry->_store_queue_ptr_read  = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ );
@@ -181,5 +183,5 @@
         if (_queue->size()>0)
           {
-            log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)",
+            log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.8x, %.1d %.1d %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)",
                        0,
 
@@ -191,4 +193,5 @@
                        _queue_head->_type                 ,
                        _queue_head->_operation            ,
+                       _queue_head->_cancel               ,
 
                        _queue_head->_store_queue_ptr_write,
@@ -233,5 +236,5 @@
             for (;it!=_queue->end(); ++it)
               {
-                log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d   %.4d           , %.1d   %.4d           , %.1d   %.4d     , %.1d %.4d, %.1d %.4d (%s)",
+                log_printf(TRACE,Read_queue,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.1d   %.4d           , %.1d   %.4d           , %.1d   %.4d     , %.1d %.4d, %.1d %.4d (%s)",
                            i,
                            
@@ -243,4 +246,5 @@
                            (*it)->_type                 ,
                            (*it)->_operation            ,
+                           (*it)->_cancel               ,
                            
                            (*it)->_store_queue_ptr_write,
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h	(revision 136)
@@ -73,4 +73,5 @@
   public    : SC_IN (Toperation_t      )    *  in_INSERT_OPERATION      ;
   public    : SC_IN (Ttype_t           )    *  in_INSERT_TYPE           ;
+  public    : SC_IN (Tcontrol_t        )    *  in_INSERT_CANCEL         ;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_WRITE;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_READ ;
@@ -105,4 +106,5 @@
   public    : SC_OUT(Toperation_t      )   ** out_RETIRE_OPERATION      ;
   public    : SC_OUT(Ttype_t           )   ** out_RETIRE_TYPE           ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_CANCEL         ;
   public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_WRITE;
   public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_READ ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h	(revision 136)
@@ -28,4 +28,5 @@
   public    : Toperation_t       _operation   ;
   public    : Ttype_t            _type        ;
+  public    : Tcontrol_t         _cancel      ;
   public    : Tlsq_ptr_t         _store_queue_ptr_write;
   public    : Tlsq_ptr_t         _store_queue_ptr_read ;
@@ -60,4 +61,5 @@
 		    << " * _operation             : " << toString(x._operation      ) << std::endl
 		    << " * _type                  : " << toString(x._type           ) << std::endl
+		    << " * _cancel                : " << toString(x._cancel         ) << std::endl
 		    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
 		    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 136)
@@ -37,5 +37,5 @@
     ,_usage (usage)
   {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
+    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Reservation_station == true
@@ -46,5 +46,5 @@
 
 #ifdef SYSTEMC
-    log_printf(INFO,Reservation_station,FUNCTION,"Allocation");
+    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation ();
@@ -54,5 +54,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-        log_printf(INFO,Reservation_station,FUNCTION,"Allocation of statistics");
+        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
         
         statistics_declaration(param_statistics);
@@ -64,5 +64,5 @@
       {	
         // generate the vhdl
-        log_printf(INFO,Reservation_station,FUNCTION,"Generate the vhdl");
+        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
         
         vhdl();
@@ -74,5 +74,5 @@
       {	
 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    log_printf(INFO,Reservation_station,FUNCTION,"Method - transition");
+    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
     SC_METHOD (transition);
@@ -85,5 +85,5 @@
 #endif    
 
-    log_printf(INFO,Reservation_station,FUNCTION,"Method - genMoore");
+    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
 
     SC_METHOD (genMoore);
@@ -96,5 +96,5 @@
       }
 #endif
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
+    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> End"),_name.c_str());
   };
   
@@ -103,10 +103,10 @@
   Reservation_station::~Reservation_station (void)
   {
-    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
+    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-        log_printf(INFO,Reservation_station,FUNCTION,"Generate Statistics file");
+        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
         
         delete _stat;
@@ -115,10 +115,10 @@
 
 #ifdef SYSTEMC
-    log_printf(INFO,Reservation_station,FUNCTION,"Deallocation");
+    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Deallocation"),_name.c_str());
 
     deallocation ();
 #endif
 
-    log_printf(FUNC,Reservation_station,FUNCTION,"End");
+    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
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 135)
+++ 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 136)
@@ -63,4 +63,5 @@
        ALLOC0_SIGNAL_IN ( in_INSERT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
        ALLOC0_SIGNAL_IN ( in_INSERT_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
+       ALLOC0_SIGNAL_IN ( in_INSERT_CANCEL               ,"cancel"               ,Tcontrol_t        ,1                             );
        ALLOC0_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr );
        ALLOC0_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr );
@@ -101,4 +102,5 @@
        ALLOC1_SIGNAL_OUT(out_RETIRE_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation);
        ALLOC1_SIGNAL_OUT(out_RETIRE_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type);
+       ALLOC1_SIGNAL_OUT(out_RETIRE_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
        ALLOC1_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
        ALLOC1_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp	(revision 136)
@@ -42,4 +42,5 @@
         DELETE0_SIGNAL( in_INSERT_OPERATION            ,_param->_size_operation       );
         DELETE0_SIGNAL( in_INSERT_TYPE                 ,_param->_size_type            );
+        DELETE0_SIGNAL( in_INSERT_CANCEL               ,1                             );
         DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr );
         DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr );
@@ -73,4 +74,5 @@
         DELETE1_SIGNAL(out_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation);
         DELETE1_SIGNAL(out_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type);
+        DELETE1_SIGNAL(out_RETIRE_CANCEL               ,_param->_nb_inst_retire,1);
         DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
         DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_READ ,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp	(revision 136)
@@ -112,4 +112,5 @@
 	    PORT_WRITE(out_RETIRE_OPERATION     [i],_queue[index_find]._operation);
 	    PORT_WRITE(out_RETIRE_TYPE          [i],_queue[index_find]._type);
+	    PORT_WRITE(out_RETIRE_CANCEL        [i],_queue[index_find]._cancel);
 	    PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_WRITE [i],_queue[index_find]._store_queue_ptr_write);
 	    PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_READ  [i],_queue[index_find]._store_queue_ptr_read );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp	(revision 136)
@@ -26,5 +26,5 @@
       for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
         if (_queue_valid [it_dump])                                     \
-          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
+          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
                      it_dump,                                           \
                      _queue[it_dump]._context_id           ,            \
@@ -34,4 +34,5 @@
                      _queue[it_dump]._type                 ,            \
                      _queue[it_dump]._operation            ,            \
+                     _queue[it_dump]._cancel               ,            \
                      _queue[it_dump]._store_queue_ptr_write,            \
                      _queue[it_dump]._store_queue_ptr_read ,            \
@@ -63,5 +64,5 @@
       for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
         if (it_dump < _queue_control->nb_elt())                         \
-          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
+          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
                      (*_queue_control)[it_dump],                        \
                      _queue[(*_queue_control)[it_dump]]._context_id           , \
@@ -71,4 +72,5 @@
                      _queue[(*_queue_control)[it_dump]]._type                 , \
                      _queue[(*_queue_control)[it_dump]]._operation            , \
+                     _queue[(*_queue_control)[it_dump]]._cancel               , \
                      _queue[(*_queue_control)[it_dump]]._store_queue_ptr_write, \
                      _queue[(*_queue_control)[it_dump]]._store_queue_ptr_read , \
@@ -121,4 +123,5 @@
   	    _queue[i]._operation             = 0; // not necessary
   	    _queue[i]._type                  = 0; // not necessary
+  	    _queue[i]._cancel                = 0; // not necessary
   	    _queue[i]._store_queue_ptr_write = 0; // not necessary
   	    _queue[i]._store_queue_ptr_read  = 0; // not necessary
@@ -327,4 +330,5 @@
   	    _queue[index]._operation       = PORT_READ(in_INSERT_OPERATION      );
   	    _queue[index]._type            = PORT_READ(in_INSERT_TYPE           );
+  	    _queue[index]._cancel          = PORT_READ(in_INSERT_CANCEL         );
   	    _queue[index]._store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE);
   	    _queue[index]._store_queue_ptr_read  = PORT_READ(in_INSERT_STORE_QUEUE_PTR_READ );
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Read_unit.h	(revision 136)
@@ -73,4 +73,5 @@
   public    : SC_IN (Toperation_t      )    *  in_READ_UNIT_IN_OPERATION            ;
   public    : SC_IN (Ttype_t           )    *  in_READ_UNIT_IN_TYPE                 ;
+  public    : SC_IN (Tcontrol_t        )    *  in_READ_UNIT_IN_CANCEL               ;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE;
   public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_UNIT_IN_STORE_QUEUE_PTR_READ ;
@@ -99,4 +100,5 @@
   public    : SC_OUT(Toperation_t      )   ** out_READ_UNIT_OUT_OPERATION            ;
   public    : SC_OUT(Ttype_t           )   ** out_READ_UNIT_OUT_TYPE                 ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_READ_UNIT_OUT_CANCEL               ;
   public    : SC_OUT(Tlsq_ptr_t        )   ** out_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE;
   public    : SC_OUT(Tlsq_ptr_t        )   ** out_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit.cpp	(revision 136)
@@ -36,5 +36,5 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Read_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Read_unit == true
@@ -44,5 +44,5 @@
 // #endif    
 
-    log_printf(INFO,Read_unit,FUNCTION,"Allocation");
+    log_printf(INFO,Read_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation (
@@ -55,5 +55,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Read_unit,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Read_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -65,5 +65,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Read_unit,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Read_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -74,5 +74,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Read_unit,FUNCTION,"Method - transition");
+	log_printf(INFO,Read_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -86,5 +86,5 @@
 #endif
       }
-    log_printf(FUNC,Read_unit,FUNCTION,"End");
+    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
     
@@ -93,10 +93,10 @@
   Read_unit::~Read_unit (void)
   {
-    log_printf(FUNC,Read_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Read_unit,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Read_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -104,8 +104,8 @@
 #endif
 
-    log_printf(INFO,Read_unit,FUNCTION,"Deallocation");
+    log_printf(INFO,Read_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Read_unit,FUNCTION,"End");
+    log_printf(FUNC,Read_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_allocation.cpp	(revision 136)
@@ -67,4 +67,5 @@
        ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation    );
        ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type         );
+       ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
        ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
        ALLOC0_SIGNAL_IN ( in_READ_UNIT_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
@@ -99,4 +100,5 @@
        ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
        ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
+       ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
        ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
        ALLOC1_SIGNAL_OUT(out_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
@@ -271,4 +273,5 @@
 	 _component->port_map(name, "in_READ_QUEUE_IN_OPERATION"            ,dest, "in_READ_UNIT_IN_OPERATION"            );
 	 _component->port_map(name, "in_READ_QUEUE_IN_TYPE"                 ,dest, "in_READ_UNIT_IN_TYPE"                 );
+	 _component->port_map(name, "in_READ_QUEUE_IN_CANCEL"               ,dest, "in_READ_UNIT_IN_CANCEL"               );
 	 _component->port_map(name, "in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE",dest, "in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE");
 	 _component->port_map(name, "in_READ_QUEUE_IN_STORE_QUEUE_PTR_READ" ,dest, "in_READ_UNIT_IN_STORE_QUEUE_PTR_READ" );
@@ -310,4 +313,5 @@
 	 _component->port_map(name,"out_READ_QUEUE_OUT_OPERATION"            ,dest, "in_INSERT_OPERATION"            );
 	 _component->port_map(name,"out_READ_QUEUE_OUT_TYPE"                 ,dest, "in_INSERT_TYPE"                 );
+	 _component->port_map(name,"out_READ_QUEUE_OUT_CANCEL"               ,dest, "in_INSERT_CANCEL"               );
 	 _component->port_map(name,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE",dest, "in_INSERT_STORE_QUEUE_PTR_WRITE");
 	 _component->port_map(name,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ" ,dest, "in_INSERT_STORE_QUEUE_PTR_READ" );
@@ -436,4 +440,5 @@
 	 _component->port_map(name, "in_INSERT_OPERATION"            ,dest,"out_READ_QUEUE_OUT_OPERATION"            );
 	 _component->port_map(name, "in_INSERT_TYPE"                 ,dest,"out_READ_QUEUE_OUT_TYPE"                 );
+	 _component->port_map(name, "in_INSERT_CANCEL"               ,dest,"out_READ_QUEUE_OUT_CANCEL"               );
 	 _component->port_map(name, "in_INSERT_STORE_QUEUE_PTR_WRITE",dest,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE");
 	 _component->port_map(name, "in_INSERT_STORE_QUEUE_PTR_READ" ,dest,"out_READ_QUEUE_OUT_STORE_QUEUE_PTR_READ" );
@@ -483,4 +488,5 @@
 	   _component->port_map(name,"out_RETIRE_"+toString(i)+"_OPERATION"            ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_OPERATION"            );
 	   _component->port_map(name,"out_RETIRE_"+toString(i)+"_TYPE"                 ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_TYPE"                 );
+	   _component->port_map(name,"out_RETIRE_"+toString(i)+"_CANCEL"               ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_CANCEL"               );
 	   _component->port_map(name,"out_RETIRE_"+toString(i)+"_STORE_QUEUE_PTR_WRITE",dest,"out_READ_UNIT_OUT_"+toString(i)+"_STORE_QUEUE_PTR_WRITE");
 	   _component->port_map(name,"out_RETIRE_"+toString(i)+"_STORE_QUEUE_PTR_READ" ,dest,"out_READ_UNIT_OUT_"+toString(i)+"_STORE_QUEUE_PTR_READ" );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit_deallocation.cpp	(revision 136)
@@ -34,7 +34,8 @@
         DELETE0_SIGNAL( in_READ_UNIT_IN_FRONT_END_ID         ,_param->_size_front_end_id );
         DELETE0_SIGNAL( in_READ_UNIT_IN_OOO_ENGINE_ID        ,_param->_size_ooo_engine_id);
-        DELETE0_SIGNAL( in_READ_UNIT_IN_PACKET_ID            ,_param->_size_rob_ptr    );
+        DELETE0_SIGNAL( in_READ_UNIT_IN_PACKET_ID            ,_param->_size_rob_ptr      );
         DELETE0_SIGNAL( in_READ_UNIT_IN_OPERATION            ,_param->_size_operation    );
         DELETE0_SIGNAL( in_READ_UNIT_IN_TYPE                 ,_param->_size_type         );
+        DELETE0_SIGNAL( in_READ_UNIT_IN_CANCEL               ,1);
         DELETE0_SIGNAL( in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr);
         DELETE0_SIGNAL( in_READ_UNIT_IN_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr);
@@ -62,4 +63,5 @@
         DELETE1_SIGNAL(out_READ_UNIT_OUT_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation       );
         DELETE1_SIGNAL(out_READ_UNIT_OUT_TYPE                 ,_param->_nb_inst_retire,_param->_size_type            );
+        DELETE1_SIGNAL(out_READ_UNIT_OUT_CANCEL               ,_param->_nb_inst_retire,1);
         DELETE1_SIGNAL(out_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
         DELETE1_SIGNAL(out_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h	(revision 136)
@@ -79,4 +79,5 @@
 //public    : SC_IN (Toperation_t      )    *  in_EXECUTE_QUEUE_IN_OPERATION     ;
 //public    : SC_IN (Ttype_t           )    *  in_EXECUTE_QUEUE_IN_TYPE          ;
+  public    : SC_IN (Tcontrol_t        )    *  in_EXECUTE_QUEUE_IN_CANCEL        ;
   public    : SC_IN (Tspecial_data_t   )    *  in_EXECUTE_QUEUE_IN_FLAGS         ;
   public    : SC_IN (Texception_t      )    *  in_EXECUTE_QUEUE_IN_EXCEPTION     ;
@@ -94,4 +95,5 @@
 //public    : SC_OUT(Toperation_t      )    * out_EXECUTE_QUEUE_OUT_OPERATION    ;
 //public    : SC_OUT(Ttype_t           )    * out_EXECUTE_QUEUE_OUT_TYPE         ;
+  public    : SC_OUT(Tcontrol_t        )    * out_EXECUTE_QUEUE_OUT_CANCEL       ;
   public    : SC_OUT(Tspecial_data_t   )    * out_EXECUTE_QUEUE_OUT_FLAGS        ;
   public    : SC_OUT(Texception_t      )    * out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h	(revision 136)
@@ -28,4 +28,5 @@
 //public  : Toperation_t       _operation    ;
 //public  : Ttype_t            _type         ;
+  public  : Tcontrol_t         _cancel       ;
   public  : Tspecial_data_t    _flags        ;
   public  : Texception_t       _exception    ;
@@ -40,4 +41,5 @@
 			         //Toperation_t       operation    ,
 			         //Ttype_t            type         ,
+				   Tcontrol_t         cancel       ,
 				   Tspecial_data_t    flags        ,
 				   Texception_t       exception    ,
@@ -52,4 +54,5 @@
     //_operation     = operation    ;
     //_type          = type         ;
+      _cancel        = cancel       ;
       _flags         = flags        ;
       _exception     = exception    ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h	(revision 136)
@@ -43,4 +43,5 @@
 //public    : SC_IN (Toperation_t   ) *  in_EXECUTE_QUEUE_IN_OPERATION     ;
 //public    : SC_IN (Ttype_t        ) *  in_EXECUTE_QUEUE_IN_TYPE          ;
+  public    : SC_IN (Tcontrol_t     ) *  in_EXECUTE_QUEUE_IN_CANCEL        ;
   public    : SC_IN (Tspecial_data_t) *  in_EXECUTE_QUEUE_IN_FLAGS         ;
   public    : SC_IN (Texception_t   ) *  in_EXECUTE_QUEUE_IN_EXCEPTION     ;
@@ -58,4 +59,5 @@
 //public    : SC_OUT(Toperation_t   ) * out_EXECUTE_QUEUE_OUT_OPERATION    ;
 //public    : SC_OUT(Ttype_t        ) * out_EXECUTE_QUEUE_OUT_TYPE         ;
+  public    : SC_OUT(Tcontrol_t     ) * out_EXECUTE_QUEUE_OUT_CANCEL       ;
   public    : SC_OUT(Tspecial_data_t) * out_EXECUTE_QUEUE_OUT_FLAGS        ;
   public    : SC_OUT(Texception_t   ) * out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
@@ -87,4 +89,5 @@
 //    ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION     ,"execute_queue_in" ,"operation"    ,Toperation_t      ,_param->_size_operation        );
 //    ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE          ,"execute_queue_in" ,"type"         ,Ttype_t           ,_param->_size_type             );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CANCEL        ,"execute_queue_in" ,"cancel"       ,Tcontrol_t        ,1                              );
       ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS         ,"execute_queue_in" ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data     );
       ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION     ,"execute_queue_in" ,"exception"    ,Texception_t      ,_param->_size_exception        );
@@ -101,4 +104,5 @@
 //    ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION    ,"execute_queue_out","operation"    ,Toperation_t      ,_param->_size_operation    );
 //    ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE         ,"execute_queue_out","type"         ,Ttype_t           ,_param->_size_type         );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_CANCEL       ,"execute_queue_out","cancel"       ,Tcontrol_t        ,1                          );
       ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_FLAGS        ,"execute_queue_out","flags"        ,Tspecial_data_t   ,_param->_size_special_data );
       ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,"execute_queue_out","exception"    ,Texception_t      ,_param->_size_exception    );
@@ -123,4 +127,5 @@
 //    DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
 //    DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          ,_param->_size_type             );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_CANCEL        ,1                              );
       DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         ,_param->_size_special_data     );
       DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     ,_param->_size_exception        );
@@ -137,4 +142,5 @@
 //    DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
 //    DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         ,_param->_size_type         );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_CANCEL       ,1                          );
       DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
       DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
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 135)
+++ 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 136)
@@ -61,4 +61,5 @@
 //     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation          );
 //     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type               );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                                );
        ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS        ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data       );
        ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception          );
@@ -82,4 +83,5 @@
 //     ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
 //     ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
+       ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1                          );
        ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data );
        ALLOC0_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception    );
@@ -184,4 +186,5 @@
 //      INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_OPERATION      ,Toperation_t   , "in_EXECUTE_QUEUE_IN_OPERATION"      ,_param->_size_operation          );
 //      INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_TYPE           ,Ttype_t        , "in_EXECUTE_QUEUE_IN_TYPE"           ,_param->_size_type               );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_CANCEL         ,Tcontrol_t     , "in_EXECUTE_QUEUE_IN_CANCEL"         ,1                                );
         INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_FLAGS          ,Tspecial_data_t, "in_EXECUTE_QUEUE_IN_FLAGS"          ,_param->_size_special_data       );
         INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_EXCEPTION      ,Texception_t   , "in_EXECUTE_QUEUE_IN_EXCEPTION"      ,_param->_size_exception          );
@@ -198,4 +201,5 @@
 //      INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_OPERATION     ,Toperation_t   ,"out_EXECUTE_QUEUE_OUT_OPERATION"     ,_param->_size_operation          );
 //      INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_TYPE          ,Ttype_t        ,"out_EXECUTE_QUEUE_OUT_TYPE"          ,_param->_size_type               );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_CANCEL        ,Tcontrol_t     ,"out_EXECUTE_QUEUE_OUT_CANCEL"        ,1                                );
         INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_FLAGS         ,Tspecial_data_t,"out_EXECUTE_QUEUE_OUT_FLAGS"         ,_param->_size_special_data       );
         INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_EXCEPTION     ,Texception_t   ,"out_EXECUTE_QUEUE_OUT_EXCEPTION"     ,_param->_size_exception          );
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 135)
+++ 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 136)
@@ -38,4 +38,5 @@
 //      DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
 //      DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          ,_param->_size_type             );
+        DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_CANCEL        ,1                              );
         DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         ,_param->_size_special_data     );
         DELETE0_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     ,_param->_size_exception        );
@@ -52,4 +53,5 @@
 //      DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
 //      DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         ,_param->_size_type         );
+        DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_CANCEL       ,1                          );
         DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
         DELETE0_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
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 135)
+++ 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 136)
@@ -49,4 +49,5 @@
 //    	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
 //    	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_TYPE         , _queue->front()->_type         );
+      	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_CANCEL       , _queue->front()->_cancel       );
       	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_FLAGS        , _queue->front()->_flags        );
       	  PORT_WRITE(out_EXECUTE_QUEUE_OUT_EXCEPTION    , _queue->front()->_exception    );
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 135)
+++ 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 136)
@@ -47,4 +47,5 @@
 	     //PORT_READ(in_EXECUTE_QUEUE_IN_OPERATION    ),
 	     //PORT_READ(in_EXECUTE_QUEUE_IN_TYPE         ),
+               PORT_READ(in_EXECUTE_QUEUE_IN_CANCEL       ),
 	       PORT_READ(in_EXECUTE_QUEUE_IN_FLAGS        ),
 	       PORT_READ(in_EXECUTE_QUEUE_IN_EXCEPTION    ),
@@ -77,5 +78,5 @@
            ++it)
         {
-          log_printf(TRACE,Execute_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.4d, %.1d, %.2d %.1d, %.8x %.8x",
+          log_printf(TRACE,Execute_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.1d, %.4d, %.1d, %.2d %.1d, %.8x %.8x",
                      i,
                      (*it)->_context_id   ,
@@ -85,4 +86,5 @@
                    //(*it)->_operation    ,
                    //(*it)->_type         ,
+                     (*it)->_cancel       ,
                      (*it)->_flags        ,
                      (*it)->_exception    ,
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h	(revision 136)
@@ -40,4 +40,5 @@
 //public  : Toperation_t       _operation    ;
 //public  : Ttype_t            _type         ;
+  public  : Tcontrol_t         _cancel       ;
   public  : Tcontrol_t         _write_rd     ;
   public  : Tgeneral_address_t _num_reg_rd   ;
@@ -56,4 +57,5 @@
 // 			         Toperation_t       operation    ,
 // 				 Ttype_t            type         ,
+				 Tcontrol_t         cancel       ,
 				 Tcontrol_t         write_rd     ,
 				 Tgeneral_address_t num_reg_rd   ,
@@ -72,4 +74,5 @@
     //_operation     = operation    ;
     //_type          = type         ;
+      _cancel        = cancel       ;
       _write_rd      = write_rd     ;
       _num_reg_rd    = num_reg_rd   ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h	(revision 136)
@@ -79,4 +79,5 @@
 //public    : SC_IN (Toperation_t      )    *  in_WRITE_QUEUE_IN_OPERATION    ;
 //public    : SC_IN (Ttype_t           )    *  in_WRITE_QUEUE_IN_TYPE         ;
+  public    : SC_IN (Tcontrol_t        )    *  in_WRITE_QUEUE_IN_CANCEL       ;
   public    : SC_IN (Tcontrol_t        )    *  in_WRITE_QUEUE_IN_WRITE_RD     ;
   public    : SC_IN (Tgeneral_address_t)    *  in_WRITE_QUEUE_IN_NUM_REG_RD   ;
@@ -98,4 +99,5 @@
 //public    : SC_OUT(Toperation_t      )    * out_WRITE_QUEUE_OUT_OPERATION    ;
 //public    : SC_OUT(Ttype_t           )    * out_WRITE_QUEUE_OUT_TYPE         ;
+  public    : SC_OUT(Tcontrol_t        )    * out_WRITE_QUEUE_OUT_CANCEL       ;
   public    : SC_OUT(Tspecial_data_t   )    * out_WRITE_QUEUE_OUT_FLAGS        ;
   public    : SC_OUT(Texception_t      )    * out_WRITE_QUEUE_OUT_EXCEPTION    ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp	(revision 136)
@@ -61,4 +61,5 @@
 //     ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
 //     ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type             );
+       ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                              );
        ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                              );
        ALLOC0_SIGNAL_IN ( in_WRITE_QUEUE_IN_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register );
@@ -86,4 +87,5 @@
 //     ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
 //     ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
+       ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1                          );
        ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data );
        ALLOC0_SIGNAL_OUT(out_WRITE_QUEUE_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception    );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp	(revision 136)
@@ -38,4 +38,5 @@
 //      DELETE0_SIGNAL( in_WRITE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
 //      DELETE0_SIGNAL( in_WRITE_QUEUE_IN_TYPE          ,_param->_size_type             );
+        DELETE0_SIGNAL( in_WRITE_QUEUE_IN_CANCEL        ,1                              );
         DELETE0_SIGNAL( in_WRITE_QUEUE_IN_WRITE_RD      ,1                              );
         DELETE0_SIGNAL( in_WRITE_QUEUE_IN_NUM_REG_RD    ,_param->_size_general_register );
@@ -56,4 +57,5 @@
 //      DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
 //      DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_TYPE         ,_param->_size_type         );
+        DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_CANCEL       ,1                          );
         DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
         DELETE0_SIGNAL(out_WRITE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_write.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_write.cpp	(revision 136)
@@ -86,4 +86,5 @@
 //    	  PORT_WRITE(out_WRITE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
 //    	  PORT_WRITE(out_WRITE_QUEUE_OUT_TYPE         , _queue->front()->_type         );
+      	  PORT_WRITE(out_WRITE_QUEUE_OUT_CANCEL       , _queue->front()->_cancel       );
       	  PORT_WRITE(out_WRITE_QUEUE_OUT_FLAGS        , _queue->front()->_data_re      );
       	  PORT_WRITE(out_WRITE_QUEUE_OUT_EXCEPTION    , _queue->front()->_exception    );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp	(revision 136)
@@ -119,4 +119,5 @@
 //    	  PORT_WRITE(out_WRITE_QUEUE_OUT_OPERATION    , _queue->front()->_operation    );
 //    	  PORT_WRITE(out_WRITE_QUEUE_OUT_TYPE         , _queue->front()->_type         );
+      	  PORT_WRITE(out_WRITE_QUEUE_OUT_CANCEL       , _queue->front()->_cancel       );
       	  PORT_WRITE(out_WRITE_QUEUE_OUT_FLAGS        , _queue->front()->_data_re      );
       	  PORT_WRITE(out_WRITE_QUEUE_OUT_EXCEPTION    , _queue->front()->_exception    );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp	(revision 136)
@@ -54,4 +54,5 @@
 	     //PORT_READ(in_WRITE_QUEUE_IN_OPERATION    ),
 	     //PORT_READ(in_WRITE_QUEUE_IN_TYPE         ),
+	       PORT_READ(in_WRITE_QUEUE_IN_CANCEL       ),
 	       PORT_READ(in_WRITE_QUEUE_IN_WRITE_RD     ),
 	       PORT_READ(in_WRITE_QUEUE_IN_NUM_REG_RD   ),
@@ -96,5 +97,5 @@
            ++it)
         {
-          log_printf(TRACE,Write_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.4d, %.1d %.4d %.8x, %.1d %.4d %.1d, %.2d %.1d, %.8x",
+          log_printf(TRACE,Write_queue,FUNCTION,"  [%d] %.2d %.2d %.2d, %.4d, %.1d, %.1d %.4d %.8x, %.1d %.4d %.1d, %.2d %.1d, %.8x",
                      i,
                      (*it)->_context_id   ,
@@ -104,4 +105,5 @@
                    //(*it)->_operation    ,
                    //(*it)->_type         ,
+                     (*it)->_cancel       ,
                      (*it)->_write_rd     ,
                      (*it)->_num_reg_rd   ,
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h	(revision 136)
@@ -72,4 +72,5 @@
 //public    : SC_IN (Toperation_t      )    *  in_WRITE_UNIT_IN_OPERATION    ;
 //public    : SC_IN (Ttype_t           )    *  in_WRITE_UNIT_IN_TYPE         ;
+  public    : SC_IN (Tcontrol_t        )    *  in_WRITE_UNIT_IN_CANCEL       ;
   public    : SC_IN (Tcontrol_t        )    *  in_WRITE_UNIT_IN_WRITE_RD     ;
   public    : SC_IN (Tgeneral_address_t)    *  in_WRITE_UNIT_IN_NUM_REG_RD   ;
@@ -91,4 +92,5 @@
 //public    : SC_OUT(Toperation_t      )    * out_WRITE_UNIT_OUT_OPERATION    ;
 //public    : SC_OUT(Ttype_t           )    * out_WRITE_UNIT_OUT_TYPE         ;
+  public    : SC_OUT(Tcontrol_t        )    * out_WRITE_UNIT_OUT_CANCEL       ;
   public    : SC_OUT(Tspecial_data_t   )    * out_WRITE_UNIT_OUT_FLAGS        ;
   public    : SC_OUT(Texception_t      )    * out_WRITE_UNIT_OUT_EXCEPTION    ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp	(revision 136)
@@ -67,4 +67,5 @@
 //     ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
 //     ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type             );
+       ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                              );
        ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                              );
        ALLOC0_SIGNAL_IN ( in_WRITE_UNIT_IN_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register );
@@ -92,4 +93,5 @@
 //     ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
 //     ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type         );
+       ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1                          );
        ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data );
        ALLOC0_SIGNAL_OUT(out_WRITE_UNIT_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception    );
@@ -216,4 +218,5 @@
      //_component->port_map(name, "in_WRITE_QUEUE_IN_OPERATION"    , _name, "in_WRITE_UNIT_IN_OPERATION"    );
      //_component->port_map(name, "in_WRITE_QUEUE_IN_TYPE"         , _name, "in_WRITE_UNIT_IN_TYPE"         );
+       _component->port_map(name, "in_WRITE_QUEUE_IN_CANCEL"       , _name, "in_WRITE_UNIT_IN_CANCEL"       );
        _component->port_map(name, "in_WRITE_QUEUE_IN_WRITE_RD"     , _name, "in_WRITE_UNIT_IN_WRITE_RD"     );
        _component->port_map(name, "in_WRITE_QUEUE_IN_NUM_REG_RD"   , _name, "in_WRITE_UNIT_IN_NUM_REG_RD"   );
@@ -246,4 +249,5 @@
          //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION"    , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OPERATION"    );
          //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE"         , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_TYPE"         );
+           _component->port_map(name,"out_WRITE_QUEUE_OUT_CANCEL"       , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_CANCEL"       );
            _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS"        , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FLAGS"        );
            _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION"    , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_EXCEPTION"    );
@@ -272,4 +276,5 @@
          //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE"         , _name,"out_WRITE_UNIT_OUT_TYPE"         );
            _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS"        , _name,"out_WRITE_UNIT_OUT_FLAGS"        );
+           _component->port_map(name,"out_WRITE_QUEUE_OUT_CANCEL"       , _name,"out_WRITE_UNIT_OUT_CANCEL"       );
            _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION"    , _name,"out_WRITE_UNIT_OUT_EXCEPTION"    );
            _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE"  , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE"  );
@@ -358,4 +363,5 @@
        //_component->port_map(name, "in_EXECUTE_QUEUE_IN_OPERATION"    , _name+"_write_queue","out_WRITE_QUEUE_OUT_OPERATION"    );
        //_component->port_map(name, "in_EXECUTE_QUEUE_IN_TYPE"         , _name+"_write_queue","out_WRITE_QUEUE_OUT_TYPE"         );
+         _component->port_map(name, "in_EXECUTE_QUEUE_IN_CANCEL"       , _name+"_write_queue","out_WRITE_QUEUE_OUT_CANCEL"       );
          _component->port_map(name, "in_EXECUTE_QUEUE_IN_FLAGS"        , _name+"_write_queue","out_WRITE_QUEUE_OUT_FLAGS"        );
          _component->port_map(name, "in_EXECUTE_QUEUE_IN_EXCEPTION"    , _name+"_write_queue","out_WRITE_QUEUE_OUT_EXCEPTION"    );
@@ -381,4 +387,5 @@
        //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_OPERATION"    , _name,"out_WRITE_UNIT_OUT_OPERATION"    );
        //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_TYPE"         , _name,"out_WRITE_UNIT_OUT_TYPE"         );
+         _component->port_map(name,"out_EXECUTE_QUEUE_OUT_CANCEL"       , _name,"out_WRITE_UNIT_OUT_CANCEL"       );
          _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FLAGS"        , _name,"out_WRITE_UNIT_OUT_FLAGS"        );
          _component->port_map(name,"out_EXECUTE_QUEUE_OUT_EXCEPTION"    , _name,"out_WRITE_UNIT_OUT_EXCEPTION"    );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_deallocation.cpp	(revision 136)
@@ -37,4 +37,5 @@
 //      DELETE0_SIGNAL( in_WRITE_UNIT_IN_OPERATION    ,_param->_size_operation        );
 //      DELETE0_SIGNAL( in_WRITE_UNIT_IN_TYPE         ,_param->_size_type             );
+        DELETE0_SIGNAL( in_WRITE_UNIT_IN_CANCEL       ,1                              );
         DELETE0_SIGNAL( in_WRITE_UNIT_IN_WRITE_RD     ,1                              );
         DELETE0_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RD   ,_param->_size_general_register );
@@ -55,4 +56,5 @@
 //      DELETE0_SIGNAL(out_WRITE_UNIT_OUT_OPERATION    ,_param->_size_operation    );
 //      DELETE0_SIGNAL(out_WRITE_UNIT_OUT_TYPE         ,_param->_size_type         );
+        DELETE0_SIGNAL(out_WRITE_UNIT_OUT_CANCEL       ,1                          );
         DELETE0_SIGNAL(out_WRITE_UNIT_OUT_FLAGS        ,_param->_size_special_data );
         DELETE0_SIGNAL(out_WRITE_UNIT_OUT_EXCEPTION    ,_param->_size_exception    );
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 135)
+++ 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 136)
@@ -73,4 +73,5 @@
 //public    : SC_IN (Toperation_t      )  ***  in_EXECUTE_UNIT_OUT_OPERATION      ;
 //public    : SC_IN (Ttype_t           )  ***  in_EXECUTE_UNIT_OUT_TYPE           ;
+  public    : SC_IN (Tcontrol_t        )  ***  in_EXECUTE_UNIT_OUT_CANCEL         ;
   public    : SC_IN (Tcontrol_t        )  ***  in_EXECUTE_UNIT_OUT_WRITE_RD       ;
   public    : SC_IN (Tgeneral_address_t)  ***  in_EXECUTE_UNIT_OUT_NUM_REG_RD     ;
@@ -92,4 +93,5 @@
 //public    : SC_OUT(Toperation_t      )   ** out_WRITE_UNIT_IN_OPERATION      ;
 //public    : SC_OUT(Ttype_t           )   ** out_WRITE_UNIT_IN_TYPE           ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_WRITE_UNIT_IN_CANCEL         ;
   public    : SC_OUT(Tcontrol_t        )   ** out_WRITE_UNIT_IN_WRITE_RD       ;
   public    : SC_OUT(Tgeneral_address_t)   ** out_WRITE_UNIT_IN_NUM_REG_RD     ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.cpp	(revision 136)
@@ -36,5 +36,5 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Execution_unit_to_Write_unit == true
@@ -44,5 +44,5 @@
 // #endif    
 
-    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation");
+    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation (
@@ -55,5 +55,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -65,5 +65,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -74,5 +74,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Method - transition");
+	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -84,5 +84,5 @@
 # endif    
 
-	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Method - genMealy");
+	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Method - genMealy"),_name.c_str());
 
 	SC_METHOD (genMealy);
@@ -105,4 +105,5 @@
 		      //<< (*(in_EXECUTE_UNIT_OUT_OPERATION     [i][j]))
 		      //<< (*(in_EXECUTE_UNIT_OUT_TYPE          [i][j]))
+			<< (*(in_EXECUTE_UNIT_OUT_CANCEL        [i][j]))
 			<< (*(in_EXECUTE_UNIT_OUT_WRITE_RD      [i][j]))
 			<< (*(in_EXECUTE_UNIT_OUT_NUM_REG_RD    [i][j]))
@@ -371,5 +372,5 @@
 #endif
       }
-    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
+    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
     
@@ -378,10 +379,10 @@
   Execution_unit_to_Write_unit::~Execution_unit_to_Write_unit (void)
   {
-    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -389,8 +390,8 @@
 #endif
 
-    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Deallocation");
+    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
+    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_allocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_allocation.cpp	(revision 136)
@@ -68,4 +68,5 @@
      //_ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation       , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
      //_ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type            , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
+       _ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                             , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
        _ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                             , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
        _ALLOC2_SIGNAL_IN ( in_EXECUTE_UNIT_OUT_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register, _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1]);
@@ -93,4 +94,5 @@
      //ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation       );
      //ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type            );
+       ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_CANCEL       ,"cancel"       ,Tcontrol_t        ,1                             );
        ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_WRITE_RD     ,"write_rd"     ,Tcontrol_t        ,1                             );
        ALLOC1_SIGNAL_OUT(out_WRITE_UNIT_IN_NUM_REG_RD   ,"num_reg_rd"   ,Tgeneral_address_t,_param->_size_general_register);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_deallocation.cpp	(revision 136)
@@ -37,4 +37,5 @@
      // DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_OPERATION    , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],_param->_size_operation       );
      // DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_TYPE         , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],_param->_size_type            );
+        DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_CANCEL       , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],1                             );
         DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_WRITE_RD     , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],1                             );
         DELETE2_SIGNAL( in_EXECUTE_UNIT_OUT_NUM_REG_RD   , _param->_nb_execute_unit, _param->_nb_execute_unit_port[it1],_param->_size_general_register);
@@ -55,4 +56,5 @@
      // DELETE1_SIGNAL(out_WRITE_UNIT_IN_OPERATION    , _param->_nb_write_unit,_param->_size_operation       );
      // DELETE1_SIGNAL(out_WRITE_UNIT_IN_TYPE         , _param->_nb_write_unit,_param->_size_type            );
+        DELETE1_SIGNAL(out_WRITE_UNIT_IN_CANCEL       , _param->_nb_write_unit,1                             );
         DELETE1_SIGNAL(out_WRITE_UNIT_IN_WRITE_RD     , _param->_nb_write_unit,1                             );
         DELETE1_SIGNAL(out_WRITE_UNIT_IN_NUM_REG_RD   , _param->_nb_write_unit,_param->_size_general_register);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_genMealy.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_genMealy.cpp	(revision 136)
@@ -79,4 +79,5 @@
 //                    PORT_WRITE(out_WRITE_UNIT_IN_OPERATION             [dest], PORT_READ(in_EXECUTE_UNIT_OUT_OPERATION             [i][j]));
 // 		      PORT_WRITE(out_WRITE_UNIT_IN_TYPE                  [dest], PORT_READ(in_EXECUTE_UNIT_OUT_TYPE                  [i][j]));
+		      PORT_WRITE(out_WRITE_UNIT_IN_CANCEL                [dest], PORT_READ(in_EXECUTE_UNIT_OUT_CANCEL                [i][j]));
 		      PORT_WRITE(out_WRITE_UNIT_IN_WRITE_RD              [dest], PORT_READ(in_EXECUTE_UNIT_OUT_WRITE_RD              [i][j]));
 		      PORT_WRITE(out_WRITE_UNIT_IN_NUM_REG_RD            [dest], PORT_READ(in_EXECUTE_UNIT_OUT_NUM_REG_RD            [i][j]));
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 135)
+++ 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 136)
@@ -84,4 +84,5 @@
   public    : SC_IN (Toperation_t      )  ***  in_READ_UNIT_OUT_OPERATION              ;//[nb_read_unit][nb_read_unit_port]
   public    : SC_IN (Ttype_t           )  ***  in_READ_UNIT_OUT_TYPE                   ;//[nb_read_unit][nb_read_unit_port]
+  public    : SC_IN (Tcontrol_t        )  ***  in_READ_UNIT_OUT_CANCEL                 ;//[nb_read_unit][nb_read_unit_port]
   public    : SC_IN (Tlsq_ptr_t        )  ***  in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE  ;//[nb_read_unit][nb_read_unit_port]
   public    : SC_IN (Tlsq_ptr_t        )  ***  in_READ_UNIT_OUT_STORE_QUEUE_PTR_READ   ;//[nb_read_unit][nb_read_unit_port]
@@ -107,4 +108,5 @@
   public    : SC_OUT(Toperation_t      )  *** out_EXECUTE_UNIT_IN_OPERATION            ;//[nb_execute_unit][nb_execute_unit_port]
   public    : SC_OUT(Ttype_t           )  *** out_EXECUTE_UNIT_IN_TYPE                 ;//[nb_execute_unit][nb_execute_unit_port]
+  public    : SC_OUT(Tcontrol_t        )  *** out_EXECUTE_UNIT_IN_CANCEL               ;//[nb_execute_unit][nb_execute_unit_port]
   public    : SC_OUT(Tlsq_ptr_t        )  *** out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_WRITE;//[nb_execute_unit][nb_execute_unit_port]
   public    : SC_OUT(Tlsq_ptr_t        )  *** out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_READ ;//[nb_execute_unit][nb_execute_unit_port]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit.cpp	(revision 136)
@@ -36,5 +36,5 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Read_unit_to_Execution_unit == true
@@ -44,5 +44,5 @@
 // #endif    
 
-    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Allocation");
+    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation (
@@ -55,5 +55,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -65,5 +65,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -74,5 +74,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Method - transition");
+	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -84,5 +84,5 @@
 # endif    
 
-	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Method - genMealy");
+	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Method - genMealy"),_name.c_str());
 
 	SC_METHOD (genMealy);
@@ -97,4 +97,5 @@
 			<< (*(in_READ_UNIT_OUT_OPERATION             [i][j]))
 			<< (*(in_READ_UNIT_OUT_TYPE                  [i][j]))
+			<< (*(in_READ_UNIT_OUT_CANCEL                [i][j]))
 			<< (*(in_READ_UNIT_OUT_HAS_IMMEDIAT          [i][j]))
 			<< (*(in_READ_UNIT_OUT_IMMEDIAT              [i][j]))
@@ -450,5 +451,5 @@
 #endif
       }
-    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"End");
+    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
     
@@ -457,10 +458,10 @@
   Read_unit_to_Execution_unit::~Read_unit_to_Execution_unit (void)
   {
-    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -468,8 +469,8 @@
 #endif
 
-    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Deallocation");
+    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"End");
+    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_allocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_allocation.cpp	(revision 136)
@@ -67,4 +67,5 @@
        _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_OPERATION            ,"OPERATION"            ,Toperation_t      ,_param->_size_operation        ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
        _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_TYPE                 ,"TYPE"                 ,Ttype_t           ,_param->_size_type             ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
+       _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_CANCEL               ,"CANCEL"               ,Tcontrol_t        ,1                              ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
        _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_size_store_queue_ptr  ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
        _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_STORE_QUEUE_PTR_READ ,"STORE_QUEUE_PTR_READ" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr  ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]);
@@ -95,4 +96,5 @@
        _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_OPERATION            ,"OPERATION"            ,Toperation_t      ,_param->_size_operation        , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
        _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_TYPE                 ,"TYPE"                 ,Ttype_t           ,_param->_size_type             , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
+       _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_CANCEL               ,"CANCEL"               ,Tcontrol_t        ,1                              , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
        _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT         ,"HAS_IMMEDIAT"         ,Tcontrol_t        ,1                              , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
        _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RC              ,"DATA_RC"              ,Tspecial_data_t   ,_param->_size_special_data     , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_deallocation.cpp	(revision 136)
@@ -37,4 +37,5 @@
          DELETE2_SIGNAL( in_READ_UNIT_OUT_OPERATION              , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_operation        );
          DELETE2_SIGNAL( in_READ_UNIT_OUT_TYPE                   , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_type             );
+         DELETE2_SIGNAL( in_READ_UNIT_OUT_CANCEL                 , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],1                              );
          DELETE2_SIGNAL( in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE  , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_store_queue_ptr  );
          DELETE2_SIGNAL( in_READ_UNIT_OUT_STORE_QUEUE_PTR_READ   , _param->_nb_read_unit, _param->_nb_read_unit_port [it1],_param->_size_store_queue_ptr  );
@@ -59,4 +60,5 @@
          DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_OPERATION            , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],_param->_size_operation        );
          DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_TYPE                 , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],_param->_size_type             );
+         DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_CANCEL               , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],1                              );
          DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT         , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],1                              );
          DELETE2_SIGNAL(out_EXECUTE_UNIT_IN_DATA_RC              , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1],_param->_size_special_data     );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_genMealy.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_genMealy.cpp	(revision 136)
@@ -84,4 +84,5 @@
 		      PORT_WRITE(out_EXECUTE_UNIT_IN_PACKET_ID             [dest][port], PORT_READ(in_READ_UNIT_OUT_PACKET_ID             [i][j]));
 		      PORT_WRITE(out_EXECUTE_UNIT_IN_OPERATION             [dest][port], PORT_READ(in_READ_UNIT_OUT_OPERATION             [i][j]));
+		      PORT_WRITE(out_EXECUTE_UNIT_IN_CANCEL                [dest][port], PORT_READ(in_READ_UNIT_OUT_CANCEL                [i][j]));
 		      PORT_WRITE(out_EXECUTE_UNIT_IN_TYPE                  [dest][port], PORT_READ(in_READ_UNIT_OUT_TYPE                  [i][j]));
 		      PORT_WRITE(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT          [dest][port], PORT_READ(in_READ_UNIT_OUT_HAS_IMMEDIAT          [i][j]));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Parameters.h	(revision 136)
@@ -34,6 +34,7 @@
   public : uint32_t    _nb_gpr_write         ;
   public : uint32_t    _nb_spr_write         ;
-  public : uint32_t  * _nb_inst_insert_rob   ;
-  public : uint32_t  * _nb_inst_retire_rob   ;
+  public : uint32_t    _nb_inst_issue        ;
+//   public : uint32_t  * _nb_inst_insert_rob   ;
+//   public : uint32_t  * _nb_inst_retire_rob   ;
 
 //public : bool        _have_port_ooo_engine_id;
@@ -47,6 +48,7 @@
 			uint32_t   nb_gpr_write         ,
 			uint32_t   nb_spr_write         ,
-			uint32_t * nb_inst_insert_rob   ,
-			uint32_t * nb_inst_retire_rob   ,
+			uint32_t   nb_inst_issue        ,
+// 			uint32_t * nb_inst_insert_rob   ,
+// 			uint32_t * nb_inst_retire_rob   ,
                         bool       is_toplevel=false);
 //public : Parameters  (Parameters & param) ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 136)
@@ -118,17 +118,32 @@
   public    : SC_OUT(Tspecial_data_t   )  *** out_SPR_WRITE_STATUS_DATA     ; // type for compatibility with the registerFile
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;
-  public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;
-
-  public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_GPR_STATUS_VAL            ;
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_GPR_STATUS_ACK            ;
-  public    : SC_OUT(Tgeneral_data_t   )  *** out_INSERT_ROB_GPR_STATUS_DATA           ; // type for compatibility with the registerFile
-
-  public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_SPR_STATUS_VAL            ;
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_SPR_STATUS_ACK            ;
-  public    : SC_OUT(Tspecial_data_t   )  *** out_INSERT_ROB_SPR_STATUS_DATA           ; // type for compatibility with the registerFile
+    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  public    : SC_IN (Tcontrol_t        )  **  in_ISSUE_VAL                  ;
+  public    : SC_OUT(Tcontrol_t        )  ** out_ISSUE_ACK                  ;
+  public    : SC_IN (Tcontext_t        )  **  in_ISSUE_OOO_ENGINE_ID        ;
+  public    : SC_IN (Tcontrol_t        )  **  in_ISSUE_RD_USE               ;
+  public    : SC_IN (Tcontrol_t        )  **  in_ISSUE_RE_USE               ;
+
+  public    : SC_OUT(Tcontrol_t        ) *** out_ISSUE_GPR_STATUS_VAL       ;
+  public    : SC_IN (Tcontrol_t        ) ***  in_ISSUE_GPR_STATUS_ACK       ;
+  public    : SC_OUT(Tgeneral_data_t   ) *** out_ISSUE_GPR_STATUS_DATA      ; // type for compatibility with the registerFile
+
+  public    : SC_OUT(Tcontrol_t        ) *** out_ISSUE_SPR_STATUS_VAL       ;
+  public    : SC_IN (Tcontrol_t        ) ***  in_ISSUE_SPR_STATUS_ACK       ;
+  public    : SC_OUT(Tspecial_data_t   ) *** out_ISSUE_SPR_STATUS_DATA      ; // type for compatibility with the registerFile
+
+//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;
+//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;
+
+//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_GPR_STATUS_VAL            ;
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_GPR_STATUS_ACK            ;
+//   public    : SC_OUT(Tgeneral_data_t   )  *** out_INSERT_ROB_GPR_STATUS_DATA           ; // type for compatibility with the registerFile
+
+//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_SPR_STATUS_VAL            ;
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_SPR_STATUS_ACK            ;
+//   public    : SC_OUT(Tspecial_data_t   )  *** out_INSERT_ROB_SPR_STATUS_DATA           ; // type for compatibility with the registerFile
 
 //     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters.cpp	(revision 136)
@@ -26,6 +26,7 @@
 			  uint32_t   nb_gpr_write         ,
 			  uint32_t   nb_spr_write         ,
-			  uint32_t * nb_inst_insert_rob   ,
-			  uint32_t * nb_inst_retire_rob   ,
+			  uint32_t   nb_inst_issue        ,
+// 			  uint32_t * nb_inst_insert_rob   ,
+// 			  uint32_t * nb_inst_retire_rob   ,
                           bool       is_toplevel          )
   {
@@ -37,6 +38,7 @@
     _nb_gpr_write            = nb_gpr_write      ;
     _nb_spr_write            = nb_spr_write      ;
-    _nb_inst_insert_rob      = nb_inst_insert_rob;
-    _nb_inst_retire_rob      = nb_inst_retire_rob;
+    _nb_inst_issue           = nb_inst_issue     ;
+//     _nb_inst_insert_rob      = nb_inst_insert_rob;
+//     _nb_inst_retire_rob      = nb_inst_retire_rob;
 
     test();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp	(revision 136)
@@ -34,16 +34,17 @@
     xml.singleton_begin("nb_gpr_write     "); xml.attribut("value",toString(_nb_gpr_write     )); xml.singleton_end();
     xml.singleton_begin("nb_spr_write     "); xml.attribut("value",toString(_nb_spr_write     )); xml.singleton_end();
+    xml.singleton_begin("nb_inst_issue    "); xml.attribut("value",toString(_nb_inst_issue    )); xml.singleton_end();
 
-    xml. balise_open("multi_ooo_engine");
-    for (uint32_t i=0; i<_nb_ooo_engine; i++)
-      {
-	xml.  balise_open_begin("ooo_engine");
-	xml.   attribut("id", toString(i));
-	xml.  balise_open_end();
-	xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
-	xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
-	xml.  balise_close();
-      }
-    xml. balise_close();
+//     xml. balise_open("multi_ooo_engine");
+//     for (uint32_t i=0; i<_nb_ooo_engine; i++)
+//       {
+// 	xml.  balise_open_begin("ooo_engine");
+// 	xml.   attribut("id", toString(i));
+// 	xml.  balise_open_end();
+// 	xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
+// 	xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
+// 	xml.  balise_close();
+//       }
+//     xml. balise_close();
     xml.balise_close();
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 136)
@@ -36,5 +36,5 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Register_unit_Glue == true
@@ -44,5 +44,5 @@
 // #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Allocation"),_name.c_str());
     allocation ();
 
@@ -50,5 +50,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-        log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
+        log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
         
         // Allocation of statistics
@@ -61,5 +61,5 @@
       {
         // generate the vhdl
-        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
+        log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
         
         vhdl();
@@ -73,5 +73,5 @@
         constant();
 #else
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - constant");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - constant"),_name.c_str());
 
     SC_METHOD (constant);
@@ -83,5 +83,5 @@
 #endif
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - transition");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
     SC_METHOD (transition);
@@ -93,5 +93,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read"),_name.c_str());
 
     SC_METHOD (genMealy_gpr_read);
@@ -131,5 +131,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read_status");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read_status"),_name.c_str());
 
     SC_METHOD (genMealy_gpr_read_status);
@@ -161,5 +161,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read_registerfile");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read_registerfile"),_name.c_str());
 
     SC_METHOD (genMealy_gpr_read_registerfile);
@@ -191,5 +191,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write"),_name.c_str());
 
     SC_METHOD (genMealy_gpr_write);
@@ -222,5 +222,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write_status");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write_status"),_name.c_str());
 
     SC_METHOD (genMealy_gpr_write_status);
@@ -252,5 +252,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write_registerfile");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write_registerfile"),_name.c_str());
 
     SC_METHOD (genMealy_gpr_write_registerfile);
@@ -282,5 +282,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read"),_name.c_str());
 
     SC_METHOD (genMealy_spr_read);
@@ -320,5 +320,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read_status");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read_status"),_name.c_str());
 
     SC_METHOD (genMealy_spr_read_status);
@@ -350,5 +350,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read_registerfile");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read_registerfile"),_name.c_str());
 
     SC_METHOD (genMealy_spr_read_registerfile);
@@ -380,5 +380,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write"),_name.c_str());
 
     SC_METHOD (genMealy_spr_write);
@@ -411,5 +411,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write_status");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write_status"),_name.c_str());
 
     SC_METHOD (genMealy_spr_write_status);
@@ -441,5 +441,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write_registerfile");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write_registerfile"),_name.c_str());
 
     SC_METHOD (genMealy_spr_write_registerfile);
@@ -471,5 +471,5 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_insert");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_insert"),_name.c_str());
 
     SC_METHOD (genMealy_insert);
@@ -477,36 +477,50 @@
 //     sensitive << (*(in_CLOCK)).neg();
     sensitive << (*(in_NRESET));
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_insert_rob [i];
-	for (uint32_t j=0; j<x; j++)
-	  sensitive << *( in_INSERT_ROB_VAL            [i][j])
-		    << *( in_INSERT_ROB_RD_USE         [i][j]) 
-		    << *( in_INSERT_ROB_RE_USE         [i][j]) 
-		    << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j])
-		    << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
-      }
-#ifdef SYSTEMCASS_SPECIFIC
-    // List dependency information
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_insert_rob [i];
-	for (uint32_t j=0; j<x; j++)
-	  {
-	    (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
-	    (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
-
-	    (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
-	    (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE         [i][j])); 
-	    (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
-
-	    (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j])); 
-	    (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE         [i][j]));
-	    (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
-	  }
-      }
-#endif    
-
-//     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
+    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
+      {
+	sensitive << *( in_ISSUE_VAL            [i])
+		  << *( in_ISSUE_RD_USE         [i]) 
+		  << *( in_ISSUE_RE_USE         [i]);
+
+	if (_param->_have_port_ooo_engine_id == true)
+        sensitive << *( in_ISSUE_OOO_ENGINE_ID [i]);
+
+	for (uint32_t j=0; j<_param->_nb_ooo_engine; ++j)
+	  sensitive << *( in_ISSUE_GPR_STATUS_ACK [j][i])
+		    << *( in_ISSUE_SPR_STATUS_ACK [j][i]);
+      }
+
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_insert_rob [i];
+// 	for (uint32_t j=0; j<x; j++)
+// 	  sensitive << *( in_INSERT_ROB_VAL            [i][j])
+// 		    << *( in_INSERT_ROB_RD_USE         [i][j]) 
+// 		    << *( in_INSERT_ROB_RE_USE         [i][j]) 
+// 		    << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j])
+// 		    << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
+//       }
+#ifdef SYSTEMCASS_SPECIFIC
+//     // List dependency information
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_insert_rob [i];
+// 	for (uint32_t j=0; j<x; j++)
+// 	  {
+// 	    (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
+// 	    (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
+
+// 	    (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
+// 	    (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE         [i][j])); 
+// 	    (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
+
+// 	    (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j])); 
+// 	    (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE         [i][j]));
+// 	    (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
+// 	  }
+//       }
+#endif    
+
+//     log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_retire"),_name.c_str());
 
 //     SC_METHOD (genMealy_retire);
@@ -567,5 +581,5 @@
       }
 #endif
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> End"),_name.c_str());
   };
   
@@ -574,10 +588,10 @@
   Register_unit_Glue::~Register_unit_Glue (void)
   {
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
+        log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
         
         delete _stat;
@@ -585,8 +599,8 @@
 #endif
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Deallocation");
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
+    log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 136)
@@ -177,35 +177,68 @@
     }
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    {
-      ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      
-      _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL   ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK   ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE,"rd_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE,"re_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-
-      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-    }
-    
-    {
-      ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      
-      _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-
-      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-    }
-    
-    {
-      ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      
-      _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-
-      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-    }
+    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (insert)"),_param->_nb_inst_issue);
+      
+      ALLOC1_VALACK_IN ( in_ISSUE_VAL          ,VAL);
+      ALLOC1_VALACK_OUT(out_ISSUE_ACK          ,ACK);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t,_param->_size_ooo_engine_id);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_USE       ,"rd_use"       ,Tcontrol_t, 1);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_USE       ,"re_use"       ,Tcontrol_t, 1);
+
+      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
+    }
+    
+    {
+      ALLOC2_INTERFACE_BEGIN("issue_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_issue);
+      
+      ALLOC2_VALACK_OUT(out_ISSUE_GPR_STATUS_VAL ,VAL                     );
+      ALLOC2_VALACK_IN ( in_ISSUE_GPR_STATUS_ACK ,ACK                     );
+      ALLOC2_SIGNAL_OUT(out_ISSUE_GPR_STATUS_DATA,"data",Tgeneral_data_t,1);
+
+      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_issue);
+    }
+    
+    {
+      ALLOC2_INTERFACE_BEGIN("issue_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine, _param->_nb_inst_issue);
+      
+      ALLOC2_VALACK_OUT(out_ISSUE_SPR_STATUS_VAL ,VAL                     );
+      ALLOC2_VALACK_IN ( in_ISSUE_SPR_STATUS_ACK ,ACK                     );
+      ALLOC2_SIGNAL_OUT(out_ISSUE_SPR_STATUS_DATA,"data",Tspecial_data_t,1);
+
+      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_issue);
+    }
+
+//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//     {
+//       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      
+//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL   ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK   ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE,"rd_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE,"re_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+
+//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//     }
+    
+//     {
+//       ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      
+//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+
+//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//     }
+    
+//     {
+//       ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      
+//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+
+//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//     }
 
 //     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp	(revision 136)
@@ -33,10 +33,17 @@
           PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1);
         
-        for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
-          {
-            PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
-            PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
-          }
+//         for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
+//           {
+//             PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
+//             PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
+//           }
       }
+
+    for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
+      for (uint32_t j=0; j<_param->_nb_inst_issue; ++j)
+	{
+	  PORT_WRITE(out_ISSUE_GPR_STATUS_DATA [i][j],0);
+	  PORT_WRITE(out_ISSUE_SPR_STATUS_DATA [i][j],0);
+	}
 
     log_end(Register_unit_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp	(revision 136)
@@ -84,16 +84,30 @@
     DELETE2_SIGNAL(out_SPR_WRITE_STATUS_DATA     ,_param->_nb_ooo_engine,_param->_nb_spr_write,1  );
 
-    DELETE2_SIGNAL( in_INSERT_ROB_VAL            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL(out_INSERT_ROB_ACK            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL( in_INSERT_ROB_RD_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL( in_INSERT_ROB_RE_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE1_SIGNAL( in_ISSUE_VAL                 ,_param->_nb_inst_issue,1);
+    DELETE1_SIGNAL(out_ISSUE_ACK                 ,_param->_nb_inst_issue,1);
+    DELETE1_SIGNAL( in_ISSUE_OOO_ENGINE_ID       ,_param->_nb_inst_issue,_param->_size_ooo_engine_id);
+    DELETE1_SIGNAL( in_ISSUE_RD_USE              ,_param->_nb_inst_issue,1);
+    DELETE1_SIGNAL( in_ISSUE_RE_USE              ,_param->_nb_inst_issue,1);
 
-    DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL( in_INSERT_ROB_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL(out_ISSUE_GPR_STATUS_VAL      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
+    DELETE2_SIGNAL( in_ISSUE_GPR_STATUS_ACK      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
+    DELETE2_SIGNAL(out_ISSUE_GPR_STATUS_DATA     ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
 
-    DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-    DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL(out_ISSUE_SPR_STATUS_VAL      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
+    DELETE2_SIGNAL( in_ISSUE_SPR_STATUS_ACK      ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
+    DELETE2_SIGNAL(out_ISSUE_SPR_STATUS_DATA     ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1);
+
+//     DELETE2_SIGNAL( in_INSERT_ROB_VAL            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL(out_INSERT_ROB_ACK            ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL( in_INSERT_ROB_RD_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL( in_INSERT_ROB_RE_USE         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+
+//     DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL( in_INSERT_ROB_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+
+//     DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//     DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
       }
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.cpp	(revision 136)
@@ -28,47 +28,103 @@
     if (PORT_READ(in_NRESET))
       {
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
-        {
-          Tcontrol_t val            = PORT_READ(in_INSERT_ROB_VAL [i][j]);
-          Tcontrol_t gpr_use        = PORT_READ(in_INSERT_ROB_RD_USE [i][j]);
-          Tcontrol_t spr_use        = PORT_READ(in_INSERT_ROB_RE_USE [i][j]);
-          Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]);
-          Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
-	  
-          Tcontrol_t ack            = (gpr_status_ack and 
-                                       spr_status_ack);	    
-          Tcontrol_t gpr_status_val = (val     and 
-                                       gpr_use and 
-                                       spr_status_ack);
-          Tcontrol_t spr_status_val = (val     and 
-                                       spr_use and
-                                       gpr_status_ack);
+    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
+      {
+	Tcontrol_t val            = PORT_READ(in_ISSUE_VAL    [i]);
+	Tcontrol_t gpr_use        = PORT_READ(in_ISSUE_RD_USE [i]);
+	Tcontrol_t spr_use        = PORT_READ(in_ISSUE_RE_USE [i]);
+	Tcontext_t ooo_engine_id  = (_param->_have_port_ooo_engine_id)?PORT_READ(in_ISSUE_VAL [i]):0;
+	Tcontrol_t gpr_status_ack = PORT_READ(in_ISSUE_GPR_STATUS_ACK [ooo_engine_id][i]);
+	Tcontrol_t spr_status_ack = PORT_READ(in_ISSUE_SPR_STATUS_ACK [ooo_engine_id][i]);
 
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"  * insert_rob [%d][%d]",i,j);
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * val            (r) : %d",val           );
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
-          log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
+	Tcontrol_t ack            = (gpr_status_ack and 
+				     spr_status_ack);	    
+	Tcontrol_t gpr_status_val = (val     and 
+				     gpr_use and 
+				     spr_status_ack);
+	Tcontrol_t spr_status_val = (val     and 
+				     spr_use and
+				     gpr_status_ack);
+	
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"  * issue [%d]",i);	
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ooo_engine_id  (w) : %d",ooo_engine_id );
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * val            (r) : %d",val           );
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
+	log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
+	
+	PORT_WRITE(out_ISSUE_ACK                           [i], ack           );
+	PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [ooo_engine_id][i], gpr_status_val);
+	PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [ooo_engine_id][i], spr_status_val);
 
-          PORT_WRITE(out_INSERT_ROB_ACK            [i][j], ack           );
-          PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val);
-          PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val);
+	for (uint32_t j=0; j<_param->_nb_ooo_engine; ++j)
+	  if (j!=ooo_engine_id)
+	    {
+	      PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [j][i], 0);
+	      PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [j][i], 0);
+	    }
         }
       }
     else
       {
-        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-          for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
-            {
-              PORT_WRITE(out_INSERT_ROB_ACK            [i][j], 0);
-              PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0);
-              PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0);
-            }
+        for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
+	  {
+	    PORT_WRITE(out_ISSUE_ACK               [i], 0);
+	    for (uint32_t j=0; j<_param->_nb_ooo_engine; j++)
+	      {
+	    PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [j][i], 0);
+	    PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [j][i], 0);
+	      }
+	  }
       }
+
+//     if (PORT_READ(in_NRESET))
+//       {
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
+//         {
+//           Tcontrol_t val            = PORT_READ(in_INSERT_ROB_VAL [i][j]);
+//           Tcontrol_t gpr_use        = PORT_READ(in_INSERT_ROB_RD_USE [i][j]);
+//           Tcontrol_t spr_use        = PORT_READ(in_INSERT_ROB_RE_USE [i][j]);
+//           Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]);
+//           Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
+	  
+//           Tcontrol_t ack            = (gpr_status_ack and 
+//                                        spr_status_ack);	    
+//           Tcontrol_t gpr_status_val = (val     and 
+//                                        gpr_use and 
+//                                        spr_status_ack);
+//           Tcontrol_t spr_status_val = (val     and 
+//                                        spr_use and
+//                                        gpr_status_ack);
+
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"  * insert_rob [%d][%d]",i,j);
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * val            (r) : %d",val           );
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
+//           log_printf(TRACE,Register_unit_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
+
+//           PORT_WRITE(out_INSERT_ROB_ACK            [i][j], ack           );
+//           PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val);
+//           PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val);
+//         }
+//       }
+//     else
+//       {
+//         for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
+//             {
+//               PORT_WRITE(out_INSERT_ROB_ACK            [i][j], 0);
+//               PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0);
+//               PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0);
+//             }
+//       }
 
     log_end(Register_unit_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp	(revision 136)
@@ -245,73 +245,115 @@
 
     //-----------------------------------
-    // INSERT_ROB
+    // ISSUE
     //-----------------------------------
 
     vhdl->set_body ("");
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_insert_rob [i];
-	for (uint32_t j=0; j<x; j++)
-	  {
-	    vhdl->set_body ("out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
-	    vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
-
-	    vhdl->set_body ("out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
-	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
-	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE         and");
-	    vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
-
-	    vhdl->set_body ("out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
-	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
-	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE         and");
-	    vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
-	  }
-      }
-
-    //-----------------------------------
-    // RETIRE_ROB
-    //-----------------------------------
-    vhdl->set_body ("");
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_retire_rob [i];
-	for (uint32_t j=0; j<x; j++)
-	  {
-	    vhdl->set_body ("out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
-
-	    vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE         and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
-
-	    vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE         and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
-
-	    vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE         and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
-
-	    vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE         and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
-	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK;");
-	  }
-      }
+      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
+	{
+	  vhdl->set_body ("out_ISSUE_"+toString(j)+"_ACK <=");
+	  vhdl->set_body ("\tin_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and");
+	  vhdl->set_body ("\tin_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+	  if (_param->_have_port_ooo_engine_id)
+	    {
+	  vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i));
+	  vhdl->set_body ("else '0'");	  
+	    }
+	  vhdl->set_body (";");	  
+	  
+
+	  vhdl->set_body ("out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
+	  vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_VAL            and");
+	  vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_RD_USE         and");
+	  vhdl->set_body ("\tin_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+	  if (_param->_have_port_ooo_engine_id)
+	    {
+	  vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i));
+	  vhdl->set_body ("else '0'");	  
+	    }
+	  vhdl->set_body (";");	  
+	  
+	  vhdl->set_body ("out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
+	  vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_VAL            and");
+	  vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_RE_USE         and");
+	  vhdl->set_body ("\tin_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+	  if (_param->_have_port_ooo_engine_id)
+	    {
+	  vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i));
+	  vhdl->set_body ("else '0'");	  
+	    }
+	  vhdl->set_body (";");	  
+	}
+    
+//     //-----------------------------------
+//     // INSERT_ROB
+//     //-----------------------------------
+
+//     vhdl->set_body ("");
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_insert_rob [i];
+// 	for (uint32_t j=0; j<x; j++)
+// 	  {
+// 	    vhdl->set_body ("out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
+
+// 	    vhdl->set_body ("out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE         and");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
+
+// 	    vhdl->set_body ("out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <=");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL            and");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE         and");
+// 	    vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;");
+// 	  }
+//       }
+
+//     //-----------------------------------
+//     // RETIRE_ROB
+//     //-----------------------------------
+//     vhdl->set_body ("");
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_retire_rob [i];
+// 	for (uint32_t j=0; j<x; j++)
+// 	  {
+// 	    vhdl->set_body ("out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK <=");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
+
+// 	    vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE         and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
+
+// 	    vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE         and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
+
+// 	    vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <=");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE         and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;");
+
+// 	    vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <=");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL                and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE         and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and");
+// 	    vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK;");
+// 	  }
+//       }
 
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Parameters.h	(revision 136)
@@ -40,6 +40,7 @@
   public : uint32_t  * _nb_general_register      ;
   public : uint32_t  * _nb_special_register      ;
-  public : uint32_t  * _nb_inst_insert_rob       ;
-  public : uint32_t  * _nb_inst_retire_rob       ;
+  public : uint32_t    _nb_inst_issue            ;
+//   public : uint32_t  * _nb_inst_insert_rob       ;
+//   public : uint32_t  * _nb_inst_retire_rob       ;
 
 //public : bool        _have_port_ooo_engine_id  ;
@@ -73,6 +74,7 @@
 			uint32_t  * nb_general_register      ,
 			uint32_t  * nb_special_register      ,
-			uint32_t  * nb_inst_insert_rob       ,
-			uint32_t  * nb_inst_retire_rob       ,
+			uint32_t    nb_inst_issue            ,
+// 			uint32_t  * nb_inst_insert_rob       ,
+// 			uint32_t  * nb_inst_retire_rob       ,
                         bool        is_toplevel=false);
 
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 136)
@@ -93,12 +93,21 @@
   public    : SC_IN (Tspecial_address_t)   **  in_SPR_WRITE_NUM_REG            ;
   public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA               ;
+
+    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_VAL                    ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_ISSUE_ACK                    ;
+  public    : SC_IN (Tcontext_t        )   **  in_ISSUE_OOO_ENGINE_ID          ;
+  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_RD_USE                 ;
+  public    : SC_IN (Tgeneral_address_t)   **  in_ISSUE_RD_NUM_REG             ; // use=1 : status[num_reg]<- 0
+  public    : SC_IN (Tcontrol_t        )   **  in_ISSUE_RE_USE                 ;
+  public    : SC_IN (Tspecial_address_t)   **  in_ISSUE_RE_NUM_REG             ;
     
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL               ;
-  public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK               ;
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE            ;
-  public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG        ; // use=1 : status[num_reg]<- 0
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE            ;
-  public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG        ;
+//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL               ;
+//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK               ;
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE            ;
+//   public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG        ; // use=1 : status[num_reg]<- 0
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE            ;
+//   public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG        ;
 
 //     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters.cpp	(revision 136)
@@ -33,6 +33,7 @@
 			  uint32_t  * nb_general_register      ,
 			  uint32_t  * nb_special_register      ,
-			  uint32_t  * nb_inst_insert_rob       ,
-			  uint32_t  * nb_inst_retire_rob       ,
+			  uint32_t    nb_inst_issue            ,
+// 			  uint32_t  * nb_inst_insert_rob       ,
+// 			  uint32_t  * nb_inst_retire_rob       ,
                           bool        is_toplevel              )
   {
@@ -53,6 +54,7 @@
     _nb_general_register       = nb_general_register      ;
     _nb_special_register       = nb_special_register      ;
-    _nb_inst_insert_rob        = nb_inst_insert_rob       ;
-    _nb_inst_retire_rob        = nb_inst_retire_rob       ;
+    _nb_inst_issue             = nb_inst_issue            ;
+//     _nb_inst_insert_rob        = nb_inst_insert_rob       ;
+//     _nb_inst_retire_rob        = nb_inst_retire_rob       ;
 
     _size_gpr_address = log2(nb_general_register [0]);
@@ -101,5 +103,6 @@
           (_nb_gpr_read ,
 //         _nb_gpr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i],
-           _nb_gpr_write+_nb_inst_insert_rob[i],
+//            _nb_gpr_write+_nb_inst_insert_rob[i],
+           _nb_gpr_write+_nb_inst_issue,
            0,
            nb_general_register[i],
@@ -122,5 +125,6 @@
           (_nb_spr_read ,
 //         _nb_spr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i],
-           _nb_spr_write+_nb_inst_insert_rob[i],
+//         _nb_spr_write+_nb_inst_insert_rob[i],
+	   _nb_spr_write+_nb_inst_issue,
            0,
            nb_special_register[i],
@@ -134,13 +138,16 @@
       }
    
-    _param_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters  (_nb_ooo_engine        ,
-                                                                                                                                           size_general_data    ,
-                                                                                                                                           size_special_data    ,
-                                                                                                                                          _nb_gpr_read          ,
-                                                                                                                                          _nb_spr_read          ,    
-                                                                                                                                          _nb_gpr_write         ,
-                                                                                                                                          _nb_spr_write         ,
-                                                                                                                                          _nb_inst_insert_rob   ,
-                                                                                                                                          _nb_inst_retire_rob   );
+    _param_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters  
+      (_nb_ooo_engine        ,
+        size_general_data    ,
+        size_special_data    ,
+       _nb_gpr_read          ,
+       _nb_spr_read          ,    
+       _nb_gpr_write         ,
+       _nb_spr_write         ,
+       _nb_inst_issue
+//        _nb_inst_insert_rob   ,
+//        _nb_inst_retire_rob   
+       );
     
     test();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp	(revision 136)
@@ -39,18 +39,19 @@
     xml. singleton_begin("nb_spr_port_read_by_bank "); xml.attribut("value",toString(_nb_spr_port_read_by_bank )); xml.singleton_end();
     xml. singleton_begin("nb_spr_port_write_by_bank"); xml.attribut("value",toString(_nb_spr_port_write_by_bank)); xml.singleton_end();
+    xml. singleton_begin("nb_inst_issue            "); xml.attribut("value",toString(_nb_inst_issue            )); xml.singleton_end();
     
-    xml. balise_open("multi_ooo_engine");
-    for (uint32_t i=0; i<_nb_ooo_engine; i++)
-      {
-	xml.  balise_open_begin("ooo_engine");
-	xml.   attribut("id", toString(i));
-	xml.  balise_open_end();
-	xml.   singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
-	xml.   singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
-	xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
-	xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
-	xml.  balise_close();
-      }
-    xml. balise_close();
+//     xml. balise_open("multi_ooo_engine");
+//     for (uint32_t i=0; i<_nb_ooo_engine; i++)
+//       {
+// 	xml.  balise_open_begin("ooo_engine");
+// 	xml.   attribut("id", toString(i));
+// 	xml.  balise_open_end();
+// 	xml.   singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
+// 	xml.   singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
+// 	xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
+// 	xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
+// 	xml.  balise_close();
+//       }
+//     xml. balise_close();
 
 //     xml. text (_param_glue->print(depth+1));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 136)
@@ -35,5 +35,5 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Register_unit == true
@@ -43,5 +43,5 @@
 // #endif    
 
-    log_printf(INFO,Register_unit,FUNCTION,"Allocation");
+    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
     allocation (
 #ifdef STATISTICS
@@ -63,5 +63,5 @@
       {
         // generate the vhdl
-        log_printf(INFO,Register_unit,FUNCTION,"Generate the vhdl");
+        log_printf(INFO,Register_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
         
         vhdl();
@@ -73,5 +73,5 @@
       {
 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    log_printf(INFO,Register_unit,FUNCTION,"Method - transition");
+    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
     SC_METHOD (transition);
@@ -85,5 +85,5 @@
       }
 #endif
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
+    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
   
@@ -92,18 +92,18 @@
   Register_unit::~Register_unit (void)
   {
-    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
+    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-        log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file");
+        log_printf(INFO,Register_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
         delete _stat;
       }
 #endif
 
-    log_printf(INFO,Register_unit,FUNCTION,"Deallocation");
+    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Register_unit,FUNCTION,"End");
+    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 136)
@@ -106,17 +106,32 @@
     }
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (issue)"),_param->_nb_inst_issue);
       
-      _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL       ,VAL                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK       ,ACK                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_gpr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_spr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      ALLOC1_VALACK_IN ( in_ISSUE_VAL          ,VAL);
+      ALLOC1_VALACK_OUT(out_ISSUE_ACK          ,ACK);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
+      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_USE       ,"rd_use"       ,Tcontrol_t        ,1                          );
+      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_NUM_REG   ,"rd_num_reg"   ,Tgeneral_address_t,_param->_size_gpr_address  );
+      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_USE       ,"re_use"       ,Tcontrol_t        ,1                          );
+      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_NUM_REG   ,"re_num_reg"   ,Tspecial_address_t,_param->_size_spr_address  );
       
-      ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
     }
+
+//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//     {
+//       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      
+//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL       ,VAL                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK       ,ACK                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_gpr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_spr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      
+//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+//     }
 
 //     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -375,4 +390,6 @@
     // -------------------------------------------------------------------    
     {
+      uint32_t x=0;
+
       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
 	{
@@ -413,5 +430,4 @@
 	    }
 
-	  uint32_t x=0;
 	  for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
 	    {
@@ -439,28 +455,53 @@
 	    }
 	  
-	  for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
-	    {
-              dest = _name+"_glue";
-              
-#ifdef POSITION
-              _component->interface_map (src ,    "write_"+toString(j),
-                                         dest,"insert_rob_gpr_status_"+toString(i)+"_"+toString(j));
-#endif
-
-              COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
-                                       dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
-              COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
-                                       dest, "in_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
-              COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
-                                       dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
-//                                     dest,"out_CONST_0");
-              
-              dest = _name;
-              
-              PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
-                                       dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
-
-              x++;
-	    }
+// 	  for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
+// 	    {
+//               dest = _name+"_glue";
+              
+// #ifdef POSITION
+//               _component->interface_map (src ,    "write_"+toString(j),
+//                                          dest,"insert_rob_gpr_status_"+toString(i)+"_"+toString(j));
+// #endif
+
+//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
+//                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
+//               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
+//                                        dest, "in_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
+//                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
+// //                                     dest,"out_CONST_0");
+              
+//               dest = _name;
+              
+//               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
+//                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
+
+//               x++;
+// 	    }
+
+      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
+	{
+	  dest = _name+"_glue";
+          
+#ifdef POSITION
+	  _component->interface_map (src ,"write_"+toString(j),
+				     dest,"issue_gpr_status_"+toString(i)+"_"+toString(j));
+#endif
+
+	  COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
+                                   dest,"out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
+	  COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
+                                   dest, "in_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+	  COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
+                                   dest,"out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
+//                                 dest,"out_CONST_0");
+              
+	  dest = _name;
+              
+	  PORT_MAP     (_component,src , "in_WRITE_"+toString(x)+"_ADDRESS",
+                                   dest, "in_ISSUE_"+toString(j)+"_RD_NUM_REG");
+
+	  x++;
+	}
 	}
     }// gpr_status
@@ -534,4 +575,5 @@
     // -------------------------------------------------------------------    
     {
+      uint32_t x=0;
       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
 	{
@@ -572,5 +614,4 @@
 	    }
 
-	  uint32_t x=0;
 	  for (uint32_t j=0; j<_param->_nb_spr_write; j++)
 	    {
@@ -597,29 +638,55 @@
               x++;
 	    }
+
+// 	  for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
+// 	    {
+//               dest = _name+"_glue";
+              
+// #ifdef POSITION
+//               _component->interface_map (src ,    "write_"+toString(x),
+//                                          dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
+// #endif
+
+//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
+//                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
+//               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
+//                                        dest, "in_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
+//                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
+// //                                     dest,"out_CONST_0");
+
+//               dest = _name;
+              
+//               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
+//                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
+
+//               x++;
+// 	    }
 	  
-	  for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
-	    {
-              dest = _name+"_glue";
-              
-#ifdef POSITION
-              _component->interface_map (src ,    "write_"+toString(x),
-                                         dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
-#endif
-
-              COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
-                                       dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
-              COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
-                                       dest, "in_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
-              COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
-                                       dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
-//                                     dest,"out_CONST_0");
-
-              dest = _name;
-              
-              PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
-                                       dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
-
-              x++;
-	    }
+      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
+	{
+	  dest = _name+"_glue";
+          
+#ifdef POSITION
+	  _component->interface_map (src ,    "write_"+toString(x),
+				     dest,"issue_spr_status_"+toString(i)+"_"+toString(j));
+#endif
+	  
+	  COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
+                                   dest,"out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
+	  COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
+                                   dest, "in_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
+	  COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
+                                   dest,"out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
+//                                 dest,"out_CONST_0");
+
+	  dest = _name;
+              
+	  PORT_MAP     (_component,src , "in_WRITE_"+toString(x)+"_ADDRESS",
+			           dest, "in_ISSUE_"+toString(j)+"_RE_NUM_REG");
+	  
+	  x++;
+	}
+
 	}
     }// spr_status
@@ -751,34 +818,64 @@
 	}
 
-      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+// 	{
+// 	  uint32_t x = _param->_nb_inst_insert_rob [i];
+
+// 	  for (uint32_t j=0; j<x; j++)
+// 	    {
+//               dest = _name;
+
+// #ifdef POSITION
+//               _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
+//                                          dest,"insert_rob_"+toString(i)+"_"+toString(j));
+// #endif
+
+// 	      PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
+//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
+// 	      PORT_MAP(_component,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
+//                                   dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
+// 	      PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE",
+//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE");
+// 	      PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE",
+//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE");
+              
+//               // out_INSERT_ROB_GPR_STATUS_VAL - gpr_status.  in_WRITE_VAL
+//               //  in_INSERT_ROB_GPR_STATUS_ACK - gpr_status. out_WRITE_ACK
+//               // out_INSERT_ROB_GPR_STATUS_DATA- gpr_status.  in_WRITE_DATA
+//               // out_INSERT_ROB_SPR_STATUS_VAL - spr_status.  in_WRITE_VAL
+//               //  in_INSERT_ROB_SPR_STATUS_ACK - spr_status. out_WRITE_ACK
+//               //  in_INSERT_ROB_SPR_STATUS_DATA- spr_status. out_WRITE_DATA
+// 	    }
+// 	}
+
+      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
 	{
-	  uint32_t x = _param->_nb_inst_insert_rob [i];
-
-	  for (uint32_t j=0; j<x; j++)
-	    {
-              dest = _name;
-
-#ifdef POSITION
-              _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
-                                         dest,"insert_rob_"+toString(i)+"_"+toString(j));
-#endif
-
-	      PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
-                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
-	      PORT_MAP(_component,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
-                                  dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
-	      PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE",
-                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE");
-	      PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE",
-                                  dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE");
-              
-              // out_INSERT_ROB_GPR_STATUS_VAL - gpr_status.  in_WRITE_VAL
-              //  in_INSERT_ROB_GPR_STATUS_ACK - gpr_status. out_WRITE_ACK
-              // out_INSERT_ROB_GPR_STATUS_DATA- gpr_status.  in_WRITE_DATA
-              // out_INSERT_ROB_SPR_STATUS_VAL - spr_status.  in_WRITE_VAL
-              //  in_INSERT_ROB_SPR_STATUS_ACK - spr_status. out_WRITE_ACK
-              //  in_INSERT_ROB_SPR_STATUS_DATA- spr_status. out_WRITE_DATA
-	    }
+	  dest = _name;
+	  
+#ifdef POSITION
+	  _component->interface_map (src ,"issue_"+toString(i),
+				     dest,"issue_"+toString(i));
+#endif
+
+	  PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_VAL",
+                              dest, "in_ISSUE_"+toString(i)+"_VAL");
+	  PORT_MAP(_component,src ,"out_ISSUE_"+toString(i)+"_ACK",
+                              dest,"out_ISSUE_"+toString(i)+"_ACK");
+	  if (_param->_have_port_ooo_engine_id == true)
+	  PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_OOO_ENGINE_ID",
+                              dest, "in_ISSUE_"+toString(i)+"_OOO_ENGINE_ID");
+	  PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_RD_USE",
+                              dest, "in_ISSUE_"+toString(i)+"_RD_USE");
+	  PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_RE_USE",
+                              dest, "in_ISSUE_"+toString(i)+"_RE_USE");
+              
+	  // out_ISSUE_GPR_STATUS_VAL - gpr_status. in_WRITE_VAL
+	  //  in_ISSUE_GPR_STATUS_ACK - gpr_status.out_WRITE_ACK
+	  // out_ISSUE_GPR_STATUS_DATA- gpr_status. in_WRITE_DATA
+	  // out_ISSUE_SPR_STATUS_VAL - spr_status. in_WRITE_VAL
+	  //  in_ISSUE_SPR_STATUS_ACK - spr_status.out_WRITE_ACK
+	  //  in_ISSUE_SPR_STATUS_DATA- spr_status.out_WRITE_DATA
 	}
+
     }// glue
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_deallocation.cpp	(revision 136)
@@ -54,10 +54,18 @@
         DELETE1_SIGNAL( in_SPR_WRITE_DATA         ,_param->_nb_spr_write,_param->_size_special_data);
                 
-        DELETE2_SIGNAL( in_INSERT_ROB_VAL         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-        DELETE2_SIGNAL(out_INSERT_ROB_ACK         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-        DELETE2_SIGNAL( in_INSERT_ROB_RD_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-        DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_gpr_address);
-        DELETE2_SIGNAL( in_INSERT_ROB_RE_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
-        DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_spr_address);
+        DELETE1_SIGNAL( in_ISSUE_VAL          ,_param->_nb_inst_issue,1);
+        DELETE1_SIGNAL(out_ISSUE_ACK          ,_param->_nb_inst_issue,1);
+        DELETE1_SIGNAL( in_ISSUE_OOO_ENGINE_ID,_param->_nb_inst_issue,_param->_size_ooo_engine_id);
+        DELETE1_SIGNAL( in_ISSUE_RD_USE       ,_param->_nb_inst_issue,1);
+        DELETE1_SIGNAL( in_ISSUE_RD_NUM_REG   ,_param->_nb_inst_issue,_param->_size_gpr_address);
+        DELETE1_SIGNAL( in_ISSUE_RE_USE       ,_param->_nb_inst_issue,1);
+        DELETE1_SIGNAL( in_ISSUE_RE_NUM_REG   ,_param->_nb_inst_issue,_param->_size_spr_address);
+
+//         DELETE2_SIGNAL( in_INSERT_ROB_VAL         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//         DELETE2_SIGNAL(out_INSERT_ROB_ACK         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_gpr_address);
+//         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+//         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_spr_address);
 
 //     delete []  in_RETIRE_ROB_VAL               ;
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h	(revision 136)
@@ -80,4 +80,5 @@
   public    : SC_IN (Toperation_t      )   **  in_EXECUTE_LOOP_IN_OPERATION            ;//[nb_read_unit]
   public    : SC_IN (Ttype_t           )   **  in_EXECUTE_LOOP_IN_TYPE                 ;//[nb_read_unit]
+  public    : SC_IN (Tcontrol_t        )   **  in_EXECUTE_LOOP_IN_CANCEL               ;//[nb_read_unit]
   public    : SC_IN (Tlsq_ptr_t        )   **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE;//[nb_read_unit]
   public    : SC_IN (Tlsq_ptr_t        )   **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ;//[nb_read_unit]
@@ -106,4 +107,5 @@
 //public    : SC_OUT(Toperation_t      )   ** out_EXECUTE_LOOP_OUT_OPERATION           ;//[nb_write_unit]
 //public    : SC_OUT(Ttype_t           )   ** out_EXECUTE_LOOP_OUT_TYPE                ;//[nb_write_unit]
+  public    : SC_OUT(Tcontrol_t        )   ** out_EXECUTE_LOOP_OUT_CANCEL              ;//[nb_write_unit]
   public    : SC_OUT(Tspecial_data_t   )   ** out_EXECUTE_LOOP_OUT_FLAGS               ;//[nb_write_unit]
   public    : SC_OUT(Texception_t      )   ** out_EXECUTE_LOOP_OUT_EXCEPTION           ;//[nb_write_unit]
@@ -129,11 +131,11 @@
   public    : SC_IN (Tdcache_error_t   )  ***  in_DCACHE_RSP_ERROR                     ;//[nb_load_store_queue][nb_cache_port] 
     
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;//[nb_ooo_engine][nb_inst_insert_rob]
-  public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;//[nb_ooo_engine][nb_inst_insert_rob]
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
-  public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
-  public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
-  public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
+//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_VAL                       ;//[nb_ooo_engine][nb_inst_insert_rob]
+//   public    : SC_OUT(Tcontrol_t        )  *** out_INSERT_ROB_ACK                       ;//[nb_ooo_engine][nb_inst_insert_rob]
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RD_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
+//   public    : SC_IN (Tgeneral_address_t)  ***  in_INSERT_ROB_RD_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
+//   public    : SC_IN (Tcontrol_t        )  ***  in_INSERT_ROB_RE_USE                    ;//[nb_ooo_engine][nb_inst_insert_rob]
+//   public    : SC_IN (Tspecial_address_t)  ***  in_INSERT_ROB_RE_NUM_REG                ;//[nb_ooo_engine][nb_inst_insert_rob]
 
 //     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h	(revision 136)
@@ -88,6 +88,6 @@
   public : uint32_t            * _nb_general_register                           ; //[nb_ooo_engine]
   public : uint32_t            * _nb_special_register                           ; //[nb_ooo_engine]
-  public : uint32_t            * _nb_inst_insert_rob                            ; //[nb_ooo_engine]
-  public : uint32_t            * _nb_inst_retire_rob                            ; //[nb_ooo_engine]
+//public : uint32_t            * _nb_inst_insert_rob                            ; //[nb_ooo_engine]
+//public : uint32_t            * _nb_inst_retire_rob                            ; //[nb_ooo_engine]
     //  * network
   public : Tpriority_t           _execution_unit_to_write_unit_priority         ;
@@ -105,4 +105,5 @@
   public : bool                * _num_thread_valid                              ; //[nb_thread]
 
+  public : uint32_t              _nb_thread                    ;
   public : uint32_t              _nb_execute_unit              ;
   public : uint32_t            * _nb_execute_unit_port         ;
@@ -119,4 +120,5 @@
   public : bool                  _have_port_dcache_context_id  ;
     
+  public : uint32_t              _max_nb_inst_memory     ;
   public : uint32_t              _max_nb_general_register;
   public : uint32_t              _max_nb_special_register;
@@ -186,6 +188,6 @@
                         uint32_t            * nb_general_register                           ,//[nb_ooo_engine]
                         uint32_t            * nb_special_register                           ,//[nb_ooo_engine]
-                        uint32_t            * nb_inst_insert_rob                            ,//[nb_ooo_engine]
-                        uint32_t            * nb_inst_retire_rob                            ,//[nb_ooo_engine]
+//                      uint32_t            * nb_inst_insert_rob                            ,//[nb_ooo_engine]
+//                      uint32_t            * nb_inst_retire_rob                            ,//[nb_ooo_engine]
                         
                         Tpriority_t           execution_unit_to_write_unit_priority         ,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp	(revision 136)
@@ -34,5 +34,5 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
+    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 // #if DEBUG_Execute_loop == true
@@ -42,5 +42,5 @@
 // #endif    
 
-    log_printf(INFO,Execute_loop,FUNCTION,"Allocation");
+    log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation (
@@ -53,5 +53,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Execute_loop,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -63,5 +63,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Execute_loop,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -72,5 +72,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Execute_loop,FUNCTION,"Method - transition");
+	log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -84,5 +84,5 @@
 #endif
       }
-    log_printf(FUNC,Execute_loop,FUNCTION,"End");
+    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> End"),_name.c_str());
   };
     
@@ -91,10 +91,10 @@
   Execute_loop::~Execute_loop (void)
   {
-    log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
+    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> Begin"),_name.c_str());
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Execute_loop,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -102,8 +102,8 @@
 #endif
 
-    log_printf(INFO,Execute_loop,FUNCTION,"Deallocation");
+    log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Execute_loop,FUNCTION,"End");
+    log_printf(FUNC,Execute_loop,FUNCTION,_("<%s> End"),_name.c_str());
   };
 
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 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_allocation.cpp	(revision 136)
@@ -65,4 +65,5 @@
        ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation);
        ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type);         
+       ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
        ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
        ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
@@ -96,4 +97,5 @@
 //     ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation);
 //     ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_TYPE         ,"type"         ,Ttype_t        ,_param->_size_type);
+       ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_CANCEL       ,"cancel"       ,Tcontrol_t     ,1);
        ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_FLAGS        ,"flags"        ,Tspecial_data_t,_param->_size_special_data);
        ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_EXCEPTION    ,"exception"    ,Texception_t   ,_param->_size_exception);
@@ -133,18 +135,18 @@
      }
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-     {
-       ALLOC2_INTERFACE_BEGIN("insert_rob",IN, EAST, "Rename's stage : insert a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-       
-       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-
-       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-
-       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
-     }
+//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//      {
+//        ALLOC2_INTERFACE_BEGIN("insert_rob",IN, EAST, "Rename's stage : insert a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+       
+//        _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+//        _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+
+//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+//        _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+
+//        ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]);
+//      }
 
 //     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -440,5 +442,19 @@
 	 }
 
-       
+       // -----[ Interface "issue" ]-----------------------------------------
+       for (uint32_t i=0; i<_param->_nb_read_unit; i++)
+	 {
+	   dest = _name;
+
+	   PORT_MAP(_component ,src , "in_ISSUE_"+toString(i)+"_VAL",
+		                dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_VAL");
+	   PORT_MAP(_component ,src ,"out_ISSUE_"+toString(i)+"_ACK",
+		                dest,"out_EXECUTE_LOOP_IN_"+toString(i)+"_ACK");
+
+	   //out_ISSUE_READ_UNIT_VAL    
+	   // in_ISSUE_READ_UNIT_ACK    
+	   //out_ISSUE_REGISTER_UNIT_VAL
+	   // in_ISSUE_REGISTER_UNIT_ACK
+	 }
      }
 
@@ -466,4 +482,11 @@
 	   // ~~~~~[ Interface "read_unit_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 	   {
+	     dest = _name+"_glue";
+
+	     COMPONENT_MAP(_component ,src , "in_READ_UNIT_IN_VAL"                  ,
+		                       dest,"out_ISSUE_"+toString(i)+"_READ_UNIT_VAL");
+	     COMPONENT_MAP(_component ,src ,"out_READ_UNIT_IN_ACK"                  
+		                      ,dest, "in_ISSUE_"+toString(i)+"_READ_UNIT_ACK");
+
 	     dest = _name;
 #ifdef POSITION
@@ -472,6 +495,4 @@
 #endif
 
-	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_VAL"                  ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_VAL"                  );
-	     PORT_MAP(_component ,src ,"out_READ_UNIT_IN_ACK"                  ,dest ,"out_EXECUTE_LOOP_IN_"+toString(i)+"_ACK"                  );
 	     if (_param->_have_port_context_id)
 	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_CONTEXT_ID"           ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_CONTEXT_ID"           );
@@ -484,4 +505,5 @@
 	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_OPERATION"            ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_OPERATION"            );
 	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_TYPE"                 ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_TYPE"                 );
+	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_CANCEL"               ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_CANCEL"               );
 	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_STORE_QUEUE_PTR_WRITE",dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE");
 	     PORT_MAP(_component ,src , "in_READ_UNIT_IN_STORE_QUEUE_PTR_READ" ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_STORE_QUEUE_PTR_READ" );
@@ -533,4 +555,6 @@
 	       COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j               )+"_TYPE"                 ,
 				         dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_TYPE"                 );
+	       COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j               )+"_CANCEL"               ,
+				         dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_CANCEL"               );
 	       COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j               )+"_STORE_QUEUE_PTR_WRITE",
 				         dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE");
@@ -818,4 +842,6 @@
 	       COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_TYPE"                 ,
 				         dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_TYPE"                 );
+	       COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_CANCEL"               ,
+				         dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_CANCEL"               );
 	       COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE",
 				         dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_STORE_QUEUE_PTR_WRITE");
@@ -876,4 +902,6 @@
 // 	       COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_TYPE"         ,
 // 				         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_TYPE"         );
+  	       COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_CANCEL"       ,
+   				         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_CANCEL"       );
   	       COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_WRITE_RD"     ,
 				         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_WRITE_RD"     );
@@ -946,4 +974,6 @@
 		 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_TYPE"                 ,
 				           dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_TYPE"                 );
+		 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_CANCEL"               ,
+				           dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_CANCEL"               );
 		 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_STORE_QUEUE_PTR_WRITE",
 				           dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE");
@@ -1005,4 +1035,6 @@
 // 	       COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_TYPE"         ,
 // 				         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_TYPE"         );
+	       COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_CANCEL"       ,
+ 				         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_CANCEL"       );
   	       COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_WRITE_RD"     ,
 				         dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_WRITE_RD"     );
@@ -1115,4 +1147,6 @@
 // 	   COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_TYPE"         ,
 // 				     dest,"out_WRITE_UNIT_IN_"+toString(i)+"_TYPE"         );
+ 	   COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_CANCEL"       ,
+ 				     dest,"out_WRITE_UNIT_IN_"+toString(i)+"_CANCEL"       );
 	   COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_WRITE_RD"     ,
 				     dest,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RD"     );
@@ -1163,4 +1197,6 @@
 //	   PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_TYPE"         ,
 // 				dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_TYPE"         );
+	   PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_CANCEL"       ,
+ 				dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_CANCEL"       );
   	   PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_FLAGS"        ,
 				dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_FLAGS"        );
@@ -1279,10 +1315,15 @@
 #endif
        
-	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_VAL"          ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_VAL"          );
-	   COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_"+toString(i)+"_ACK"          ,dest, "in_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_ACK"          );
+	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_VAL"          ,
+			             dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_VAL"          );
+	   COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_"+toString(i)+"_ACK"          ,
+			             dest, "in_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_ACK"          );
 	   if (_param->_have_port_ooo_engine_id)
-	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_OOO_ENGINE_ID");
-	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_NUM_REG"      ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_NUM_REG"      );
-	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_DATA"         ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA"         );
+	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",
+			             dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_OOO_ENGINE_ID");
+	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_NUM_REG"      ,
+			             dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_NUM_REG"      );
+	   COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_DATA"         ,
+			             dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA"         );
 	 }
 
@@ -1321,32 +1362,61 @@
 	   COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_DATA"         ,dest,"out_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA"         );
 	 }
+
+       // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+       for (uint32_t i=0; i<_param->_nb_read_unit; i++)
+	 {
+	   dest = _name+"_glue";
+
+	   COMPONENT_MAP(_component ,src , "in_ISSUE_"+toString(i)+"_VAL",
+				     dest,"out_ISSUE_"+toString(i)+"_REGISTER_UNIT_VAL");
+	   COMPONENT_MAP(_component ,src ,"out_ISSUE_"+toString(i)+"_ACK",
+			             dest, "in_ISSUE_"+toString(i)+"_REGISTER_UNIT_ACK");
+
+	   dest = _name;
+#ifdef POSITION
+	   _component->interface_map (src ,"issue_"+toString(i),
+				      dest,"issue_"+toString(i));
+#endif
+
+	   if (_param->_have_port_ooo_engine_id)
+	   PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_OOO_ENGINE_ID",
+				dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_OOO_ENGINE_ID");
+	   PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RD_USE"    ,
+				dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_WRITE_RD"  );
+	   PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RE_USE"    ,
+				dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_WRITE_RE"  );
+	   PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RD_NUM_REG",
+				dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_NUM_REG_RD");
+	   PORT_MAP(_component ,src , "in_ISSUE_"          +toString(i)+"_RE_NUM_REG",
+				dest, "in_EXECUTE_LOOP_IN_"+toString(i)+"_NUM_REG_RE");
+	 }
     
-       // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-	 {
-	   uint32_t x=_param->_nb_inst_insert_rob [i];
+//        // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+// 	 {
+// 	   uint32_t x=_param->_nb_inst_insert_rob [i];
 	   
-	   for (uint32_t j=0; j<x; j++)
-	     {
-	       dest = _name;
-#ifdef POSITION
-	       _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
-					  dest,"insert_rob_"+toString(i)+"_"+toString(j));
-#endif
-
-	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       ,
-				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       );
-	       PORT_MAP(_component ,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       ,
-				    dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       );
-	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    ,
-				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    );
-	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG",
-				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
-	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    ,
-				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    );
-	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG",
-				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
-	     }
-	 }
+// 	   for (uint32_t j=0; j<x; j++)
+// 	     {
+// 	       dest = _name;
+// #ifdef POSITION
+// 	       _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
+// 					  dest,"insert_rob_"+toString(i)+"_"+toString(j));
+// #endif
+
+// 	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       ,
+// 				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL"       );
+// 	       PORT_MAP(_component ,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       ,
+// 				    dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK"       );
+// 	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    ,
+// 				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE"    );
+// 	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG",
+// 				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
+// 	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    ,
+// 				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE"    );
+// 	       PORT_MAP(_component ,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG",
+// 				    dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
+// 	     }
+// 	 }
 
 //        // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1756,5 +1826,5 @@
 
     log_printf(FUNC,Execute_loop,FUNCTION,"End");
-  };
+     };
 
 }; // end namespace execute_loop
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp	(revision 136)
@@ -35,4 +35,5 @@
         DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_OPERATION            ,_param->_nb_read_unit,_param->_size_operation);
         DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_TYPE                 ,_param->_nb_read_unit,_param->_size_type);         
+        DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_CANCEL               ,_param->_nb_read_unit,1);
         DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit,_param->_size_store_queue_ptr);
         DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit,_param->_size_store_queue_ptr);
@@ -60,4 +61,5 @@
 //      DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_OPERATION    ,_param->_nb_write_unit,_param->_size_operation);
 //      DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_TYPE         ,_param->_nb_write_unit,_param->_size_type);
+        DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_CANCEL       ,_param->_nb_write_unit,1);
         DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_FLAGS        ,_param->_nb_write_unit,_param->_size_special_data);
         DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_EXCEPTION    ,_param->_nb_write_unit,_param->_size_exception);
@@ -81,10 +83,10 @@
         DELETE2_SIGNAL( in_DCACHE_RSP_ERROR     , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_dcache_error         );
         
-        DELETE2_SIGNAL( in_INSERT_ROB_VAL       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
-        DELETE2_SIGNAL(out_INSERT_ROB_ACK       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
-        DELETE2_SIGNAL( in_INSERT_ROB_RD_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
-        DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_general_register);
-        DELETE2_SIGNAL( in_INSERT_ROB_RE_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
-        DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_special_register);
+//         DELETE2_SIGNAL( in_INSERT_ROB_VAL       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
+//         DELETE2_SIGNAL(out_INSERT_ROB_ACK       ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
+//         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
+//         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_general_register);
+//         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE    ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1                             );
+//         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_special_register);
         
 //         DELETE2_SIGNAL( in_RETIRE_ROB_VAL           ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1                             );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters.cpp	(revision 136)
@@ -61,6 +61,6 @@
 			  uint32_t            * nb_general_register                       ,//[nb_ooo_engine]
 			  uint32_t            * nb_special_register                       ,//[nb_ooo_engine]
-			  uint32_t            * nb_inst_insert_rob                        ,//[nb_ooo_engine]
-			  uint32_t            * nb_inst_retire_rob                        ,//[nb_ooo_engine]
+// 			  uint32_t            * nb_inst_insert_rob                        ,//[nb_ooo_engine]
+// 			  uint32_t            * nb_inst_retire_rob                        ,//[nb_ooo_engine]
 			  
 			  Tpriority_t           execution_unit_to_write_unit_priority     ,
@@ -122,6 +122,6 @@
     _nb_general_register                        = nb_general_register                  ;
     _nb_special_register                        = nb_special_register                  ;
-    _nb_inst_insert_rob                         = nb_inst_insert_rob                   ;
-    _nb_inst_retire_rob                         = nb_inst_retire_rob                   ;
+//     _nb_inst_insert_rob                         = nb_inst_insert_rob                   ;
+//     _nb_inst_retire_rob                         = nb_inst_retire_rob                   ;
     
     _execution_unit_to_write_unit_priority      = execution_unit_to_write_unit_priority;
@@ -139,4 +139,10 @@
 
     _nb_execute_unit                            = _nb_functionnal_unit + _nb_load_store_unit;
+
+
+    _nb_thread          = get_nb_thread(_nb_context,
+                                        _nb_front_end,
+                                        _nb_ooo_engine);
+    _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit);
 
     ALLOC1(_nb_execute_unit_port                          ,uint32_t,_nb_execute_unit);
@@ -194,10 +200,4 @@
     _max_size_store_queue    = max<uint32_t>(size_store_queue,nb_load_store_unit);
     _max_size_load_queue     = max<uint32_t>(size_load_queue ,nb_load_store_unit);
-
-    uint32_t _nb_thread = get_nb_thread(_nb_context,
-					_nb_front_end,
-					_nb_ooo_engine);
-
-    uint32_t _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit);
 
     ALLOC1(_set_read_unit_source_register_write  ,std::set<uint32_t>,_nb_read_unit);
@@ -297,5 +297,5 @@
 //       }
 
-//     std::cout << "_set_......." << std::endl;
+//    std::cout << "_set_......." << std::endl;
 
     for (uint32_t i=0; i<_nb_read_unit; i++)
@@ -308,5 +308,5 @@
 	    for (uint32_t k=0; k<_nb_thread; k++)
 	      {
-// 		std::cout << "     * Thread[" << k << "]" << std::endl;
+//		std::cout << "     * Thread[" << k << "]" << std::endl;
 		if ( (_execution_unit_to_write_unit_table_thread [j][k]) and
 		     (_link_read_unit_with_thread [i][k]))
@@ -367,4 +367,5 @@
 	(_nb_gpr_write              ,
 	 _nb_spr_write              ,
+	 _nb_read_unit              ,
 	  size_ooo_engine_id        ,
 	  size_general_register     ,
@@ -518,6 +519,8 @@
 	 _nb_general_register       ,
 	 _nb_special_register       ,
-	 _nb_inst_insert_rob        ,
-	 _nb_inst_retire_rob        );
+	 _nb_read_unit           // ,
+// 	 _nb_inst_insert_rob        ,
+// 	 _nb_inst_retire_rob        
+	 );
 
     _max_size_dcache_context_id = 0;
@@ -604,9 +607,4 @@
     delete    _param_register_unit;
 
-    uint32_t _nb_thread = get_nb_thread(_nb_context,
-					_nb_front_end,
-					_nb_ooo_engine);
-    uint32_t _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit);
-
     DELETE2(_link_read_unit_with_thread           ,_nb_read_unit,_nb_thread      );
     DELETE2(_link_read_unit_with_write_unit       ,_nb_read_unit,_nb_write_unit  );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_print.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_print.cpp	(revision 136)
@@ -93,6 +93,6 @@
 	xml. singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
 	xml. singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
-	xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
-	xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
+// 	xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
+// 	xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
 	xml.balise_close();
       }
