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 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 123)
@@ -36,9 +36,9 @@
     log_printf(FUNC,Read_queue,"Read_queue","Begin");
 
-#if DEBUG_Read_queue == true
-    log_printf(INFO,Read_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
-
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Read_queue == true
+//     log_printf(INFO,Read_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+//     std::cout << *param << std::endl;
+// #endif    
 
 #ifdef SYSTEMC
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 122)
+++ 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 123)
@@ -25,4 +25,6 @@
     log_function(Read_queue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     internal_READ_QUEUE_OUT_DATA_RA_VAL = (// Previous value
 					   _queue_head->_data_ra_val or
@@ -102,8 +104,17 @@
 
     // Affectation out port
+    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RA    ,internal_READ_QUEUE_OUT_DATA_RA    );
+    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RB    ,internal_READ_QUEUE_OUT_DATA_RB    );
+      }
+    else
+      {
+        internal_READ_QUEUE_OUT_DATA_RA_VAL = 0;
+        internal_READ_QUEUE_OUT_DATA_RB_VAL = 0;
+//         internal_READ_QUEUE_OUT_DATA_RA = 0;
+//         internal_READ_QUEUE_OUT_DATA_RB = 0;
+      }
+
     PORT_WRITE(out_READ_QUEUE_OUT_DATA_RA_VAL,internal_READ_QUEUE_OUT_DATA_RA_VAL);
     PORT_WRITE(out_READ_QUEUE_OUT_DATA_RB_VAL,internal_READ_QUEUE_OUT_DATA_RB_VAL);
-    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RA    ,internal_READ_QUEUE_OUT_DATA_RA    );
-    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RB    ,internal_READ_QUEUE_OUT_DATA_RB    );
 
     log_end(Read_queue,FUNCTION);
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_spr.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_spr.cpp	(revision 122)
+++ 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_spr.cpp	(revision 123)
@@ -25,4 +25,6 @@
     log_function(Read_queue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     internal_READ_QUEUE_OUT_DATA_RC_VAL = (// Previous value
 					   _queue_head->_data_rc_val or
@@ -72,6 +74,13 @@
 
     // Affectation out port
+    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RC    ,internal_READ_QUEUE_OUT_DATA_RC    );
+      }
+    else
+      {
+        internal_READ_QUEUE_OUT_DATA_RC_VAL = 0;
+//         internal_READ_QUEUE_OUT_DATA_RC
+      }
+
     PORT_WRITE(out_READ_QUEUE_OUT_DATA_RC_VAL,internal_READ_QUEUE_OUT_DATA_RC_VAL);
-    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RC    ,internal_READ_QUEUE_OUT_DATA_RC    );
 
     log_end(Read_queue,FUNCTION);
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_val.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_val.cpp	(revision 122)
+++ 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_val.cpp	(revision 123)
@@ -25,4 +25,6 @@
     log_function(Read_queue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     internal_READ_QUEUE_OUT_READ_RA_VAL = (// Previous value
 					   _queue_head->_read_ra_val  and
@@ -98,6 +100,4 @@
 
 
-    PORT_WRITE(out_READ_QUEUE_OUT_VAL, internal_READ_QUEUE_OUT_VAL);
-
     log_printf(TRACE,Read_queue,FUNCTION,"  * internal_READ_QUEUE_OUT_VAL           : %d",internal_READ_QUEUE_OUT_VAL);
     log_printf(TRACE,Read_queue,FUNCTION,"    * _queue->empty()                     : %d",_queue->empty());
@@ -111,4 +111,11 @@
     log_printf(TRACE,Read_queue,FUNCTION,"      * _queue_head->_read_rc_val         : %d",_queue_head->_read_rc_val);
     log_printf(TRACE,Read_queue,FUNCTION,"      * in_SPR_READ_ACK      [0]          : %d",PORT_READ(in_SPR_READ_ACK      [0]));
+      }
+    else
+      {
+        internal_READ_QUEUE_OUT_VAL = 0;
+      }
+
+    PORT_WRITE(out_READ_QUEUE_OUT_VAL, internal_READ_QUEUE_OUT_VAL);
 
     log_end(Read_queue,FUNCTION);
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 122)
+++ 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 123)
@@ -25,4 +25,6 @@
     log_function(Read_queue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     bool not_full  = _queue->size() < _param->_size_queue;
     bool not_empty = not _queue->empty();
@@ -84,5 +86,16 @@
     PORT_WRITE (out_SPR_READ_OOO_ENGINE_ID [0],               _queue_head->_ooo_engine_id);
     PORT_WRITE (out_SPR_READ_NUM_REG       [0],               _queue_head->_num_reg_rc);
-		    
+      }
+    else
+      {
+        // Reset
+
+    PORT_WRITE (out_READ_QUEUE_IN_ACK , 0);
+    PORT_WRITE (out_GPR_READ_VAL   [0], 0);
+    PORT_WRITE (out_GPR_READ_VAL   [1], 0);
+    PORT_WRITE (out_SPR_READ_VAL   [0], 0);
+
+      }
+    
     log_end(Read_queue,FUNCTION);
   };
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 122)
+++ 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 123)
@@ -43,4 +43,16 @@
 	// Init, else error in registerfile
 	_queue_head->_ooo_engine_id = 0;
+        // not necessary
+        _queue_head->_read_ra_val = false;
+        _queue_head->_read_rb_val = false;
+        _queue_head->_read_rc_val = false;
+
+        _queue_head->_data_ra_val = false;
+        _queue_head->_data_rb_val = false;
+        _queue_head->_data_rc_val = false;
+
+        _queue_head->_num_reg_ra  = 0;
+        _queue_head->_num_reg_rb  = 0;
+        _queue_head->_num_reg_rc  = 0;
       }
     else
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 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 123)
@@ -39,9 +39,9 @@
     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
 
-#if DEBUG_Reservation_station == true
-    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Reservation_station == true
+//     log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
 #ifdef SYSTEMC
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 122)
+++ 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 123)
@@ -27,4 +27,6 @@
     log_function(Reservation_station,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~
     
@@ -36,5 +38,4 @@
     internal_INSERT_ACK = not _queue_control->full();
 #endif    
-    PORT_WRITE(out_INSERT_ACK, internal_INSERT_ACK);
 
     // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~
@@ -92,5 +93,4 @@
 
 	internal_RETIRE_VAL [i] = val;
-	PORT_WRITE(out_RETIRE_VAL [i], val);
 
 	if (val)
@@ -128,4 +128,22 @@
 	  }
       }
+      }
+    else
+      {
+        // Reset
+        internal_INSERT_ACK = 0;
+        // internal_INSERT_SLOT
+        
+        for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
+          {
+            internal_RETIRE_VAL [i] = 0;
+            // internal_RETIRE_SLOT [i];
+          }
+      }
+
+    // Write Output
+    PORT_WRITE(out_INSERT_ACK    , internal_INSERT_ACK);
+    for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
+    PORT_WRITE(out_RETIRE_VAL [i], internal_RETIRE_VAL [i]);
 
     log_end(Reservation_station,FUNCTION);
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 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit.cpp	(revision 123)
@@ -38,9 +38,9 @@
     log_printf(FUNC,Read_unit,FUNCTION,"Begin");
 
-#if DEBUG_Read_unit == true
-    log_printf(INFO,Read_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Read_unit == true
+//     log_printf(INFO,Read_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Read_unit,FUNCTION,"Allocation");
