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,
