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 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue.cpp	(revision 123)
@@ -39,9 +39,9 @@
     usage_environment(_usage);
 
-#if DEBUG_Execute_loop_Glue == true
-    log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Execute_loop_Glue == true
+//     log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> : Allocation"),_name.c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_gpr_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_gpr_write.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_gpr_write.cpp	(revision 123)
@@ -23,4 +23,6 @@
     log_begin(Execute_loop_Glue,FUNCTION);
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
       {
@@ -45,4 +47,14 @@
 	PORT_WRITE(out_GPR_WRITE_READ_UNIT_DATA               [i],data         );
       }
+      }
+    else
+      {
+        for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
+          {
+            PORT_WRITE(out_GPR_WRITE_WRITE_UNIT_ACK               [i],0);
+            PORT_WRITE(out_GPR_WRITE_REGISTER_FILE_VAL            [i],0);
+            PORT_WRITE(out_GPR_WRITE_READ_UNIT_VAL                [i],0);
+          }
+      }
 
     log_end(Execute_loop_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_spr_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_spr_write.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_spr_write.cpp	(revision 123)
@@ -23,4 +23,6 @@
     log_begin(Execute_loop_Glue,FUNCTION);
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_spr_write; i++)
       {
@@ -45,4 +47,14 @@
 	PORT_WRITE(out_SPR_WRITE_READ_UNIT_DATA               [i],data         );
       }
+      }
+    else
+      {
+        for (uint32_t i=0; i<_param->_nb_spr_write; i++)
+          {
+            PORT_WRITE(out_SPR_WRITE_WRITE_UNIT_ACK               [i],0);
+            PORT_WRITE(out_SPR_WRITE_REGISTER_FILE_VAL            [i],0);
+            PORT_WRITE(out_SPR_WRITE_READ_UNIT_VAL                [i],0);
+          }
+      }
 
     log_end(Execute_loop_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit.cpp	(revision 123)
@@ -42,9 +42,9 @@
     allocation ();
 
-#if DEBUG_Functionnal_unit == true
-    log_printf(INFO,Functionnal_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Functionnal_unit == true
+//     log_printf(INFO,Functionnal_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
 #ifdef STATISTICS
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMealy.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMealy.cpp	(revision 123)
@@ -31,6 +31,4 @@
           // Can out if : have an instruction and is finish (latence == 0)
           internal_EXECUTE_OUT_VAL = (reg_BUSY_OUT and (_execute_operation_out->_timing._latence == 0));
-          
-          PORT_WRITE(out_EXECUTE_OUT_VAL, internal_EXECUTE_OUT_VAL);
         }
         
@@ -50,8 +48,16 @@
                                      (internal_EXECUTE_OUT_VAL and PORT_READ(in_EXECUTE_OUT_ACK)));
             }
-
-          PORT_WRITE(out_EXECUTE_IN_ACK , internal_EXECUTE_IN_ACK);
         }
       }
+    else
+      {
+        // RESET
+        internal_EXECUTE_IN_ACK = 0;
+        internal_EXECUTE_OUT_VAL = 0;
+      }
+
+    // Write Output
+    PORT_WRITE(out_EXECUTE_IN_ACK , internal_EXECUTE_IN_ACK);
+    PORT_WRITE(out_EXECUTE_OUT_VAL, internal_EXECUTE_OUT_VAL);
 
     log_end(Functionnal_unit,FUNCTION);
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 122)
+++ 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 123)
@@ -26,4 +26,5 @@
     log_function(Functionnal_unit,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
     {
       if (_param->_have_port_context_id)
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.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.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp	(revision 123)
@@ -39,9 +39,9 @@
     log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
 
-#if DEBUG_Load_store_unit == true
-    log_printf(INFO,Load_store_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
-
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Load_store_unit == true
+//     log_printf(INFO,Load_store_unit,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_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_genMealy_insert.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_genMealy_insert.cpp	(revision 122)
+++ 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_genMealy_insert.cpp	(revision 123)
@@ -35,4 +35,6 @@
       ack [i] = 0;
 
+    if (PORT_READ(in_NRESET))
+      {
     // find first valid entry
     // store queue is never full (pointer is manage by rename stage)
@@ -49,4 +51,10 @@
 	    }
 	}
+      }
+    else
+      {
+        internal_MEMORY_IN_ACK = 0;
+//         internal_MEMORY_IN_PORT = i;
+      }
 
     for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
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 122)
+++ 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 123)
@@ -27,4 +27,6 @@
     log_function(Load_store_unit,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -140,6 +142,4 @@
 
     // write output
-    PORT_WRITE(out_MEMORY_OUT_VAL          [0], internal_MEMORY_OUT_VAL);
-
     if (_param->_have_port_context_id)
     PORT_WRITE(out_MEMORY_OUT_CONTEXT_ID   [0], memory_out_context_id   );
@@ -171,9 +171,9 @@
     // ~~~~~[ Interface "dache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Tcontext_t        dcache_req_context_id;
-    Tpacket_t         dcache_req_packet_id ;
-    Tdcache_address_t dcache_req_address   ;
-    Tdcache_type_t    dcache_req_type      ;
-    Tdcache_data_t    dcache_req_wdata     ;
+    Tcontext_t        dcache_req_context_id = 0;
+    Tpacket_t         dcache_req_packet_id  = 0;
+    Tdcache_address_t dcache_req_address    = 0;
+    Tdcache_type_t    dcache_req_type       = 0;
+    Tdcache_data_t    dcache_req_wdata      = 0;
 
     log_printf(TRACE,Load_store_unit,FUNCTION,"  * Test DCACHE_REQ");
@@ -241,5 +241,4 @@
       }
 
-    PORT_WRITE(out_DCACHE_REQ_VAL       [0], internal_DCACHE_REQ_VAL);
     if (_param->_have_port_dcache_context_id)
     PORT_WRITE(out_DCACHE_REQ_CONTEXT_ID[0], dcache_req_context_id);
@@ -248,5 +247,22 @@
     PORT_WRITE(out_DCACHE_REQ_TYPE      [0], dcache_req_type      );
     PORT_WRITE(out_DCACHE_REQ_WDATA     [0], dcache_req_wdata     );
-    
+      }
+    else
+      {
+        // Reset
+    internal_MEMORY_OUT_VAL = 0;
+//  internal_MEMORY_OUT_PTR =0
+//  internal_MEMORY_OUT_SELECT_QUEUE = SELECT_STORE_QUEUE;
+
+    internal_DCACHE_REQ_VAL = 0;
+    internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ = 0;
+//  internal_DCACHE_REQ_SELECT_QUEUE = SELECT_LOAD_QUEUE_SPECULATIVE;
+      }
+
+    // Write output
+    PORT_WRITE(out_MEMORY_OUT_VAL [0], internal_MEMORY_OUT_VAL);
+    PORT_WRITE(out_DCACHE_REQ_VAL [0], internal_DCACHE_REQ_VAL);
+
+
     log_end(Load_store_unit,FUNCTION);
   };
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_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_genMoore.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_genMoore.cpp	(revision 123)
@@ -26,4 +26,5 @@
     log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
 
+//     if (PORT_READ(in_NRESET))
     (this->*function_genMoore) ();
     
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");
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 122)
+++ 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 123)
@@ -26,18 +26,15 @@
     log_function(Execute_queue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     // -----[ Interface "execute_queue_in" ]--------------------------------
     {
       internal_EXECUTE_QUEUE_IN_ACK = _queue->size() < _param->_size_queue;
-      
-      PORT_WRITE(out_EXECUTE_QUEUE_IN_ACK, internal_EXECUTE_QUEUE_IN_ACK);
     }
 
     // -----[ Interface "execute_queue_out" ]--------------------------------
     {
-      // TODO : make a genMealy version
       internal_EXECUTE_QUEUE_OUT_VAL = (not _queue->empty());
       
-      PORT_WRITE(out_EXECUTE_QUEUE_OUT_VAL, internal_EXECUTE_QUEUE_OUT_VAL);
-
       if (internal_EXECUTE_QUEUE_OUT_VAL)
 	{
@@ -59,4 +56,15 @@
 	}
     }
+      }
+    else
+      {
+        // Reset
+      internal_EXECUTE_QUEUE_IN_ACK  = 0;
+      internal_EXECUTE_QUEUE_OUT_VAL = 0;
+      }
+
+    // Write output
+    PORT_WRITE(out_EXECUTE_QUEUE_IN_ACK , internal_EXECUTE_QUEUE_IN_ACK);
+    PORT_WRITE(out_EXECUTE_QUEUE_OUT_VAL, internal_EXECUTE_QUEUE_OUT_VAL);
 
     log_end(Execute_queue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_bypass.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_bypass.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_bypass.cpp	(revision 123)
@@ -26,4 +26,6 @@
     log_function(Write_queue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     Tcontrol_t val = PORT_READ(in_WRITE_QUEUE_IN_VAL);
 
@@ -36,6 +38,10 @@
     PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG   [0], PORT_READ(in_WRITE_QUEUE_IN_NUM_REG_RE   )); // RE
     PORT_WRITE(out_BYPASS_WRITE_SPR_DATA      [0], PORT_READ(in_WRITE_QUEUE_IN_DATA_RE      ));
-    
-    // -----[ Interface "bypass_write" ]----------------------------------
+      }
+    else
+      {
+    PORT_WRITE(out_BYPASS_WRITE_GPR_VAL       [0], 0);
+    PORT_WRITE(out_BYPASS_WRITE_SPR_VAL       [0], 0);
+      }
 
     log_end(Write_queue,FUNCTION);
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 122)
+++ 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 123)
@@ -26,4 +26,6 @@
     log_function(Write_queue,FUNCTION,_name.c_str());
     
+    if (PORT_READ(in_NRESET))
+      {
     // -----[ Interface "bypass_write" ]----------------------------------
     // in genMoore
@@ -91,4 +93,11 @@
 	}
     }
+      }
+    else
+      {
+        internal_WRITE_QUEUE_OUT_VAL = 0;
+      }
+    
+    PORT_WRITE(out_WRITE_QUEUE_OUT_VAL, internal_WRITE_QUEUE_OUT_VAL);
 
     log_end(Write_queue,FUNCTION);
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 122)
+++ 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 123)
@@ -26,4 +26,6 @@
     log_function(Write_queue,FUNCTION,_name.c_str());
     
+    if (PORT_READ(in_NRESET))
+      {
     // -----[ Interface "bypass_write" ]----------------------------------
     {
@@ -71,6 +73,4 @@
     {
       internal_WRITE_QUEUE_IN_ACK = _queue->size() < _param->_size_queue;
-      
-      PORT_WRITE(out_WRITE_QUEUE_IN_ACK, internal_WRITE_QUEUE_IN_ACK);
     }
 
@@ -85,7 +85,4 @@
       internal_SPR_WRITE_VAL = val and _queue->front()->_write_re;
       
-      PORT_WRITE(out_GPR_WRITE_VAL [0], internal_GPR_WRITE_VAL);
-      PORT_WRITE(out_SPR_WRITE_VAL [0], internal_SPR_WRITE_VAL);
-
       if (val)
 	{
@@ -110,6 +107,4 @@
                                       );
       
-      PORT_WRITE(out_WRITE_QUEUE_OUT_VAL, internal_WRITE_QUEUE_OUT_VAL);
-
       if (internal_WRITE_QUEUE_OUT_VAL)
 	{
@@ -133,4 +128,22 @@
 
       } // end WRITE_QUEUE_SCHEME_MOORE
+      }
+    else
+      {
+        // Reset
+        internal_WRITE_QUEUE_IN_ACK  = 0;
+        internal_WRITE_QUEUE_OUT_VAL = 0;
+        internal_GPR_WRITE_VAL = 0;
+        internal_SPR_WRITE_VAL = 0;
+
+      }
+
+    // Write output
+    PORT_WRITE(out_WRITE_QUEUE_IN_ACK , internal_WRITE_QUEUE_IN_ACK);
+    PORT_WRITE(out_WRITE_QUEUE_OUT_VAL, internal_WRITE_QUEUE_OUT_VAL);
+
+    PORT_WRITE(out_GPR_WRITE_VAL [0]  , internal_GPR_WRITE_VAL);
+    PORT_WRITE(out_SPR_WRITE_VAL [0]  , internal_SPR_WRITE_VAL);
+
     log_end(Write_queue,FUNCTION);
   };
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 122)
+++ 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 123)
@@ -38,9 +38,9 @@
     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
 
-#if DEBUG_Execution_unit_to_Write_unit == true
-    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
-
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Execution_unit_to_Write_unit == true
+//     log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation");
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 122)
+++ 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 123)
@@ -24,4 +24,6 @@
     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
 
+    if (PORT_READ(in_NRESET))
+      {
     bool write_unit_use [_param->_nb_write_unit];
 
@@ -96,4 +98,14 @@
 	PORT_WRITE(out_WRITE_UNIT_IN_VAL[i], write_unit_use[i]);  
       }
+      }
+    else
+      {
+        for (uint32_t i=0; i<_param->_nb_execute_unit; i++)
+          for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++)
+            PORT_WRITE(out_EXECUTE_UNIT_OUT_ACK [i][j], 0);
+        
+        for (uint32_t i=0; i<_param->_nb_write_unit; i++)
+          PORT_WRITE(out_WRITE_UNIT_IN_VAL[i], 0);  
+      }
 
     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
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 122)
+++ 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 123)
@@ -38,9 +38,9 @@
     log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
 
-#if DEBUG_Read_unit_to_Execution_unit == true
-    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
-
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Read_unit_to_Execution_unit == true
+//     log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Allocation");
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 122)
+++ 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 123)
@@ -25,4 +25,6 @@
     log_function(Read_unit_to_Execution_unit,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     bool execute_unit_use [_param->_nb_execute_unit][_param->_max_nb_execute_unit_port];
 
@@ -106,5 +108,18 @@
       for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++)
 	PORT_WRITE(out_EXECUTE_UNIT_IN_VAL[i][j], execute_unit_use[i][j]);
+      }
+    else
+      {
 
+        for (uint32_t i=0; i<_param->_nb_read_unit; i++)
+          for (uint32_t j=0; j<_param->_nb_read_unit_port[i]; j++)
+            PORT_WRITE(out_READ_UNIT_OUT_ACK [i][j], 0);
+
+        for (uint32_t i=0; i<_param->_nb_execute_unit; i++)
+          for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++)
+            PORT_WRITE(out_EXECUTE_UNIT_IN_VAL[i][j], 0);
+
+      }
+    
     log_end(Read_unit_to_Execution_unit,FUNCTION);
   };
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 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 123)
@@ -38,9 +38,9 @@
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
 
-#if DEBUG_Register_unit_Glue == true
-    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
-
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Register_unit_Glue == true
+//     log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read.cpp	(revision 123)
@@ -26,10 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
-// 	  PORT_WRITE(out_GPR_READ_ACK      [j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
@@ -44,4 +39,9 @@
 	    PORT_WRITE(out_GPR_READ_DATA_VAL [j], PORT_READ(in_GPR_READ_STATUS_DATA_VAL  [ooo_engine_id][j]));
 	  }
+      }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
+	  PORT_WRITE(out_GPR_READ_ACK      [j], 0);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_registerfile.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_registerfile.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_registerfile.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_GPR_READ_REGISTERFILE_VAL [i][j],0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
@@ -49,4 +43,10 @@
 	  }
       }
+    else
+      {
+        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
+          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+            PORT_WRITE(out_GPR_READ_REGISTERFILE_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_genMealy_gpr_read_status.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_status.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_status.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_GPR_READ_STATUS_VAL       [i][j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
@@ -49,4 +43,10 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_GPR_READ_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_genMealy_gpr_registerfile.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_registerfile.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_registerfile.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_GPR_WRITE_REGISTERFILE_VAL [i][j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
@@ -48,4 +42,10 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_GPR_WRITE_REGISTERFILE_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_genMealy_gpr_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write.cpp	(revision 123)
@@ -25,11 +25,7 @@
     log_begin(Register_unit_Glue,FUNCTION);
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_GPR_WRITE_ACK [j], 0);
-//       }
-//     else
+
+
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
@@ -42,4 +38,10 @@
 	    PORT_WRITE(out_GPR_WRITE_ACK [j],registerfile_ack and status_ack);
 	  }
+      }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_GPR_WRITE_ACK [j], 0);
       }
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write_status.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write_status.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write_status.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_GPR_WRITE_STATUS_VAL       [i][j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
@@ -48,4 +42,11 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_GPR_WRITE_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_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 122)
+++ 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 123)
@@ -26,4 +26,6 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
+    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++)
@@ -59,4 +61,15 @@
 
         }
+      }
+    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_genMealy_retire.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_retire.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_retire.cpp	(revision 123)
@@ -27,4 +27,6 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
       {
@@ -58,5 +60,5 @@
 	  }
       }
-
+}
     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_genMealy_spr_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read.cpp	(revision 123)
@@ -26,10 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
-// 	  PORT_WRITE(out_SPR_READ_ACK      [j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
@@ -44,4 +39,9 @@
 	    PORT_WRITE(out_SPR_READ_DATA_VAL [j], PORT_READ(in_SPR_READ_STATUS_DATA_VAL  [ooo_engine_id][j]));
 	  }
+      }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
+	  PORT_WRITE(out_SPR_READ_ACK      [j], 0);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_registerfile.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_registerfile.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_registerfile.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_SPR_READ_REGISTERFILE_VAL [i][j],0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
@@ -48,4 +42,10 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_SPR_READ_REGISTERFILE_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_genMealy_spr_read_status.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_status.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_status.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_SPR_READ_STATUS_VAL       [i][j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
@@ -48,4 +42,10 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_spr_read; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_SPR_READ_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_genMealy_spr_registerfile.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_registerfile.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_registerfile.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_SPR_WRITE_REGISTERFILE_VAL [i][j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
@@ -48,4 +42,10 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_SPR_WRITE_REGISTERFILE_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_genMealy_spr_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_SPR_WRITE_ACK [j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
@@ -43,4 +37,10 @@
 	    PORT_WRITE(out_SPR_WRITE_ACK [j],registerfile_ack and status_ack);
 	  }
+      }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_SPR_WRITE_ACK [j], 0);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write_status.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write_status.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write_status.cpp	(revision 123)
@@ -26,11 +26,5 @@
     log_function(Register_unit_Glue,FUNCTION,_name.c_str());
 
-//     if (not PORT_READ(in_NRESET))
-//       {
-// 	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
-// 	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-// 	    PORT_WRITE(out_SPR_WRITE_STATUS_VAL       [i][j], 0);
-//       }
-//     else
+    if (PORT_READ(in_NRESET))
       {
 	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
@@ -48,4 +42,10 @@
 	  }
       }
+    else
+      {
+	for (uint32_t j=0; j<_param->_nb_spr_write; j++)
+	  for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	    PORT_WRITE(out_SPR_WRITE_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/src/Register_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 123)
@@ -37,9 +37,9 @@
     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
 
-#if DEBUG_Register_unit == true
-    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Register_unit == true
+//     log_printf(INFO,Register_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Register_unit,FUNCTION,"Allocation");
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 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp	(revision 123)
@@ -36,9 +36,9 @@
     log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
 
-#if DEBUG_Execute_loop == true
-    log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Execute_loop == true
+//     log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Execute_loop,FUNCTION,"Allocation");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_msg_error.cpp	(revision 122)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_msg_error.cpp	(revision 123)
@@ -9,4 +9,5 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h"
 #include <sstream>
+#include <set>
 
 namespace morpheo                    {
@@ -29,4 +30,26 @@
 	test.error(toString(_("Functionnal_unit [%d] must treat once instruction.\n"),i));
 
+    std::set<uint32_t> link_load_store_unit_and_write_unit [_nb_load_store_unit];
+    for (uint32_t i=0; i<_nb_load_store_unit; ++i)
+      link_load_store_unit_and_write_unit[i].clear();
+
+    for (uint32_t i=0; i<_nb_execute_unit; i++)
+      if (_is_load_store_unit [i])
+        {
+          uint32_t lsq = _translate_num_execute_unit[i];
+
+          for (uint32_t j=0; j<_nb_execute_unit_port[i]; j++)
+            for (uint32_t k=0; k<_nb_write_unit; k++)
+              if (_execution_unit_to_write_unit_table_routing [i][j][k])
+                {
+                  if (link_load_store_unit_and_write_unit[lsq].find(k) != link_load_store_unit_and_write_unit[lsq].end())
+                    {
+                      if (link_load_store_unit_and_write_unit[lsq].size() != 0)
+                        test.error(toString(_("Can't connect Load Store Unit [%d] (port %d) with Write unit [%d], because it's already connected with Write unit [%d]"),lsq,j,k,*(link_load_store_unit_and_write_unit[lsq].begin())));
+
+                      link_load_store_unit_and_write_unit[lsq].insert(link_load_store_unit_and_write_unit[lsq].end(),k);
+                    }
+                }
+        }
     log_printf(FUNC,Execute_loop,FUNCTION,"End");
 
