Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_statistics_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_statistics_deallocation.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_statistics_deallocation.cpp	(revision 128)
@@ -29,4 +29,5 @@
     delete _stat;
    
+    delete [] _stat_bank_spr_nb_elt;
     delete [] _stat_bank_gpr_nb_elt;
  
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/main.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/main.cpp	(revision 128)
@@ -67,4 +67,6 @@
       
       test (name,param);
+
+      delete param;
     }
   catch (morpheo::ErrorMorpheo & error)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/test.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/test.cpp	(revision 128)
@@ -50,4 +50,48 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t        >  **  in_RENAME_VAL               ;
+  sc_signal<Tcontrol_t        >  ** out_RENAME_ACK               ;
+  sc_signal<Tcontext_t        >  **  in_RENAME_FRONT_END_ID      ;
+  sc_signal<Tcontext_t        >  **  in_RENAME_CONTEXT_ID        ;
+  sc_signal<Tgeneral_address_t>  **  in_RENAME_NUM_REG_RA_LOG    ;
+  sc_signal<Tgeneral_address_t>  **  in_RENAME_NUM_REG_RB_LOG    ;
+  sc_signal<Tspecial_address_t>  **  in_RENAME_NUM_REG_RC_LOG    ;
+  sc_signal<Tgeneral_address_t>  **  in_RENAME_NUM_REG_RD_LOG    ;
+  sc_signal<Tspecial_address_t>  **  in_RENAME_NUM_REG_RE_LOG    ;
+  sc_signal<Tgeneral_address_t>  ** out_RENAME_NUM_REG_RA_PHY    ;
+  sc_signal<Tgeneral_address_t>  ** out_RENAME_NUM_REG_RB_PHY    ;
+  sc_signal<Tspecial_address_t>  ** out_RENAME_NUM_REG_RC_PHY    ;
+  sc_signal<Tgeneral_address_t>  ** out_RENAME_NUM_REG_RD_PHY_OLD;
+  sc_signal<Tspecial_address_t>  ** out_RENAME_NUM_REG_RE_PHY_OLD;
+
+  sc_signal<Tcontrol_t        >  **  in_INSERT_VAL               ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_ACK               ;
+//sc_signal<Tcontext_t        >  **  in_INSERT_FRONT_END_ID      ;
+//sc_signal<Tcontext_t        >  **  in_INSERT_CONTEXT_ID        ;
+  sc_signal<Tcontrol_t        >  **  in_INSERT_WRITE_RD          ;
+  sc_signal<Tcontrol_t        >  **  in_INSERT_WRITE_RE          ;
+  sc_signal<Tgeneral_address_t>  **  in_INSERT_NUM_REG_RD_LOG    ;
+  sc_signal<Tspecial_address_t>  **  in_INSERT_NUM_REG_RE_LOG    ;
+  sc_signal<Tgeneral_address_t>  **  in_INSERT_NUM_REG_RD_PHY    ;
+  sc_signal<Tspecial_address_t>  **  in_INSERT_NUM_REG_RE_PHY    ;
+
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_VAL               ;
+  sc_signal<Tcontrol_t        >  ** out_RETIRE_ACK               ;
+  sc_signal<Tcontext_t        >  **  in_RETIRE_FRONT_END_ID      ;
+  sc_signal<Tcontext_t        >  **  in_RETIRE_CONTEXT_ID        ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_WRITE_RD          ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_WRITE_RE          ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RD_LOG    ;
+  sc_signal<Tspecial_address_t>  **  in_RETIRE_NUM_REG_RE_LOG    ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RD_PHY_NEW;
+  sc_signal<Tspecial_address_t>  **  in_RETIRE_NUM_REG_RE_PHY_NEW;
+  sc_signal<Tcontrol_t        >  ** out_RETIRE_RESTORE_RD_PHY_OLD;
+  sc_signal<Tcontrol_t        >  ** out_RETIRE_RESTORE_RE_PHY_OLD;
+  sc_signal<Tcontrol_t        >  ** out_RETIRE_RESTORE           ;
+
+  sc_signal<Tcontrol_t        > ***  in_RETIRE_EVENT_VAL         ;
+  sc_signal<Tcontrol_t        > *** out_RETIRE_EVENT_ACK         ;
+  sc_signal<Tevent_state_t    > ***  in_RETIRE_EVENT_STATE       ;
 
   ALLOC1_SC_SIGNAL( in_RENAME_VAL               ," in_RENAME_VAL               ",Tcontrol_t        ,_param->_nb_inst_insert);
@@ -85,6 +129,6 @@
   ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RD_LOG    ," in_RETIRE_NUM_REG_RD_LOG    ",Tgeneral_address_t,_param->_nb_inst_retire);
   ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_LOG    ," in_RETIRE_NUM_REG_RE_LOG    ",Tspecial_address_t,_param->_nb_inst_retire);
-  ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_OLD," in_RETIRE_NUM_REG_RD_PHY_OLD",Tgeneral_address_t,_param->_nb_inst_retire);
-  ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD," in_RETIRE_NUM_REG_RE_PHY_OLD",Tspecial_address_t,_param->_nb_inst_retire);
+  ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW," in_RETIRE_NUM_REG_RD_PHY_NEW",Tgeneral_address_t,_param->_nb_inst_retire);
+  ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW," in_RETIRE_NUM_REG_RE_PHY_NEW",Tspecial_address_t,_param->_nb_inst_retire);
   ALLOC1_SC_SIGNAL(out_RETIRE_RESTORE_RD_PHY_OLD,"out_RETIRE_RESTORE_RD_PHY_OLD",Tcontrol_t        ,_param->_nb_inst_retire);
   ALLOC1_SC_SIGNAL(out_RETIRE_RESTORE_RE_PHY_OLD,"out_RETIRE_RESTORE_RE_PHY_OLD",Tcontrol_t        ,_param->_nb_inst_retire);
@@ -144,6 +188,6 @@
   INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_NUM_REG_RD_LOG    ,_param->_nb_inst_retire);
   INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_NUM_REG_RE_LOG    ,_param->_nb_inst_retire);
-  INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_NUM_REG_RD_PHY_OLD,_param->_nb_inst_retire);
-  INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire);
+  INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire);
+  INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire);
   INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit,out_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire);
   INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit,out_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire);
@@ -272,6 +316,6 @@
 	      in_RETIRE_NUM_REG_RD_LOG     [i]->write(rand() % _param->_nb_general_register_logic);
 	      in_RETIRE_NUM_REG_RE_LOG     [i]->write(rand() % _param->_nb_special_register_logic);
-	      in_RETIRE_NUM_REG_RD_PHY_OLD [i]->write(rand() % _param->_nb_general_register);
-	      in_RETIRE_NUM_REG_RE_PHY_OLD [i]->write(rand() % _param->_nb_special_register);
+	      in_RETIRE_NUM_REG_RD_PHY_NEW [i]->write(rand() % _param->_nb_general_register);
+	      in_RETIRE_NUM_REG_RE_PHY_NEW [i]->write(rand() % _param->_nb_special_register);
 
 	      in_RETIRE_EVENT_STATE        [front_end_id][context_id]->write(EVENT_STATE_NO_EVENT);
@@ -409,6 +453,6 @@
 	      in_RETIRE_NUM_REG_RD_LOG     [i]->write(rand() % _param->_nb_general_register_logic);
 	      in_RETIRE_NUM_REG_RE_LOG     [i]->write(rand() % _param->_nb_special_register_logic);
-	      in_RETIRE_NUM_REG_RD_PHY_OLD [i]->write(rand() % _param->_nb_general_register);
-	      in_RETIRE_NUM_REG_RE_PHY_OLD [i]->write(rand() % _param->_nb_special_register);
+	      in_RETIRE_NUM_REG_RD_PHY_NEW [i]->write(rand() % _param->_nb_general_register);
+	      in_RETIRE_NUM_REG_RE_PHY_NEW [i]->write(rand() % _param->_nb_special_register);
 
               in_RETIRE_EVENT_STATE [retire_front_end_id [i]][retire_context_id [i]]->write(EVENT_STATE_WAITEND);
@@ -451,5 +495,5 @@
 
 		      if (rat_gpr_updt [front_end_id][context_id][in_RETIRE_NUM_REG_RD_LOG[i]->read()] == false)
-			rat_gpr[front_end_id][context_id][in_RETIRE_NUM_REG_RD_LOG[i]->read()] = in_RETIRE_NUM_REG_RD_PHY_OLD[i]->read();
+			rat_gpr[front_end_id][context_id][in_RETIRE_NUM_REG_RD_LOG[i]->read()] = in_RETIRE_NUM_REG_RD_PHY_NEW[i]->read();
 		      rat_gpr_updt [front_end_id][context_id][in_RETIRE_NUM_REG_RD_LOG[i]->read()] = true;
 		    }
@@ -459,5 +503,5 @@
 
 		      if (rat_spr_updt [front_end_id][context_id][in_RETIRE_NUM_REG_RE_LOG[i]->read()] == false)
-			rat_spr[front_end_id][context_id][in_RETIRE_NUM_REG_RE_LOG[i]->read()] = in_RETIRE_NUM_REG_RE_PHY_OLD[i]->read();
+			rat_spr[front_end_id][context_id][in_RETIRE_NUM_REG_RE_LOG[i]->read()] = in_RETIRE_NUM_REG_RE_PHY_NEW[i]->read();
 		      rat_spr_updt [front_end_id][context_id][in_RETIRE_NUM_REG_RE_LOG[i]->read()] = true;
 		    }
@@ -498,53 +542,48 @@
   delete in_NRESET;
 
-  delete []  in_RENAME_VAL               ;
-  delete [] out_RENAME_ACK               ;
-  if (_param->_have_port_front_end_id)
-  delete []  in_RENAME_FRONT_END_ID      ;
-  if (_param->_have_port_context_id)
-  delete []  in_RENAME_CONTEXT_ID        ;
-  delete []  in_RENAME_NUM_REG_RA_LOG    ;
-  delete []  in_RENAME_NUM_REG_RB_LOG    ;
-  delete []  in_RENAME_NUM_REG_RC_LOG    ;
-  delete []  in_RENAME_NUM_REG_RD_LOG    ;
-  delete []  in_RENAME_NUM_REG_RE_LOG    ;
-  delete [] out_RENAME_NUM_REG_RA_PHY    ;
-  delete [] out_RENAME_NUM_REG_RB_PHY    ;
-  delete [] out_RENAME_NUM_REG_RC_PHY    ;
-  delete [] out_RENAME_NUM_REG_RD_PHY_OLD;
-  delete [] out_RENAME_NUM_REG_RE_PHY_OLD;
-
-  delete []  in_INSERT_VAL               ;
-  delete [] out_INSERT_ACK               ;
-//if (_param->_have_port_front_end_id)
-//delete []  in_INSERT_FRONT_END_ID      ;
-//if (_param->_have_port_context_id)
-//delete []  in_INSERT_CONTEXT_ID        ;
-  delete []  in_INSERT_WRITE_RD          ;
-  delete []  in_INSERT_WRITE_RE          ;
-  delete []  in_INSERT_NUM_REG_RD_LOG    ;
-  delete []  in_INSERT_NUM_REG_RE_LOG    ;
-  delete []  in_INSERT_NUM_REG_RD_PHY    ;
-  delete []  in_INSERT_NUM_REG_RE_PHY    ;
-
-  delete []  in_RETIRE_VAL               ;
-  delete [] out_RETIRE_ACK               ;
-  if (_param->_have_port_front_end_id)
-  delete []  in_RETIRE_FRONT_END_ID      ;
-  if (_param->_have_port_context_id)
-  delete []  in_RETIRE_CONTEXT_ID        ;
-  delete []  in_RETIRE_WRITE_RD          ;
-  delete []  in_RETIRE_WRITE_RE          ;
-  delete []  in_RETIRE_NUM_REG_RD_LOG    ;
-  delete []  in_RETIRE_NUM_REG_RE_LOG    ;
-  delete []  in_RETIRE_NUM_REG_RD_PHY_OLD;
-  delete []  in_RETIRE_NUM_REG_RE_PHY_OLD;
-  delete [] out_RETIRE_RESTORE_RD_PHY_OLD;
-  delete [] out_RETIRE_RESTORE_RE_PHY_OLD;
-  delete [] out_RETIRE_RESTORE           ;
-
-  DELETE2_SC_SIGNAL( in_RETIRE_EVENT_VAL            ,_param->_nb_front_end, _param->_nb_context[it1]);
-  DELETE2_SC_SIGNAL(out_RETIRE_EVENT_ACK            ,_param->_nb_front_end, _param->_nb_context[it1]);
-  DELETE2_SC_SIGNAL( in_RETIRE_EVENT_STATE          ,_param->_nb_front_end, _param->_nb_context[it1]);
+
+  DELETE1_SC_SIGNAL( in_RENAME_VAL               ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_RENAME_ACK               ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_FRONT_END_ID      ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_CONTEXT_ID        ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_NUM_REG_RA_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_NUM_REG_RB_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_NUM_REG_RC_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_NUM_REG_RD_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_RENAME_NUM_REG_RE_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_RENAME_NUM_REG_RA_PHY    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_RENAME_NUM_REG_RB_PHY    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_RENAME_NUM_REG_RC_PHY    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_RENAME_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_RENAME_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert);
+
+  DELETE1_SC_SIGNAL( in_INSERT_VAL               ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_INSERT_ACK               ,_param->_nb_inst_insert);
+//DELETE1_SC_SIGNAL( in_INSERT_FRONT_END_ID      ,_param->_nb_inst_insert);
+//DELETE1_SC_SIGNAL( in_INSERT_CONTEXT_ID        ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_INSERT_WRITE_RD          ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_INSERT_WRITE_RE          ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_INSERT_NUM_REG_RD_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_INSERT_NUM_REG_RE_LOG    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY    ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY    ,_param->_nb_inst_insert);
+
+  DELETE1_SC_SIGNAL( in_RETIRE_VAL               ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL(out_RETIRE_ACK               ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_FRONT_END_ID      ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_CONTEXT_ID        ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_WRITE_RE          ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_NUM_REG_RD_LOG    ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_LOG    ,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL(out_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL(out_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire);
+  DELETE1_SC_SIGNAL(out_RETIRE_RESTORE           ,_param->_nb_inst_retire);
+
+  DELETE2_SC_SIGNAL( in_RETIRE_EVENT_VAL         ,_param->_nb_front_end,_param->_nb_context[it1]);
+  DELETE2_SC_SIGNAL(out_RETIRE_EVENT_ACK         ,_param->_nb_front_end,_param->_nb_context[it1]);
+  DELETE2_SC_SIGNAL( in_RETIRE_EVENT_STATE       ,_param->_nb_front_end,_param->_nb_context[it1]);
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_transition.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_transition.cpp	(revision 128)
@@ -36,4 +36,6 @@
 	      rat_gpr_not_speculative   [i][j][0] = 0;
               rat_gpr_speculative_valid [i][j][0] = false;
+              rat_gpr_speculative       [i][j][0] = 0    ; // not necessary
+              rat_gpr_update_table      [i][j][0] = false; // not necessary
 
 	      for (uint32_t k=1; k<_param->_nb_general_register_logic; k++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters.cpp	(revision 128)
@@ -127,9 +127,9 @@
     log_printf(FUNC,Register_translation_unit,FUNCTION,"Begin");
 
-    delete [] _param_dependency_checking_unit;
-    delete [] _param_free_list_unit;
-    delete [] _param_register_address_translation_unit;
-    delete [] _param_stat_list_unit;    
-    delete [] _param_register_translation_unit_glue;
+    delete _param_dependency_checking_unit;
+    delete _param_free_list_unit;
+    delete _param_register_address_translation_unit;
+    delete _param_stat_list_unit;    
+    delete _param_register_translation_unit_glue;
 
     log_printf(FUNC,Register_translation_unit,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/main.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/main.cpp	(revision 128)
@@ -135,4 +135,6 @@
       
       test (name,param);
+      
+      delete param;
     }
   catch (morpheo::ErrorMorpheo & error)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/test.cpp	(revision 124)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/test.cpp	(revision 128)
@@ -48,4 +48,97 @@
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
 
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_VAL               ;
+  sc_signal<Tcontrol_t        > *** out_RENAME_IN_ACK               ;
+  sc_signal<Tcontext_t        > ***  in_RENAME_IN_FRONT_END_ID      ;
+  sc_signal<Tcontext_t        > ***  in_RENAME_IN_CONTEXT_ID        ;
+  sc_signal<Tdepth_t          > ***  in_RENAME_IN_DEPTH             ;
+  sc_signal<Ttype_t           > ***  in_RENAME_IN_TYPE              ;
+  sc_signal<Toperation_t      > ***  in_RENAME_IN_OPERATION         ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_NO_EXECUTE        ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_LAST_EVENT        ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_IS_DELAY_SLOT     ;
+  sc_signal<Tgeneral_data_t   > ***  in_RENAME_IN_ADDRESS           ;
+  sc_signal<Tgeneral_data_t   > ***  in_RENAME_IN_ADDRESS_NEXT      ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_HAS_IMMEDIAT      ;
+  sc_signal<Tgeneral_data_t   > ***  in_RENAME_IN_IMMEDIAT          ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_READ_RA           ;
+  sc_signal<Tgeneral_address_t> ***  in_RENAME_IN_NUM_REG_RA        ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_READ_RB           ;
+  sc_signal<Tgeneral_address_t> ***  in_RENAME_IN_NUM_REG_RB        ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_READ_RC           ;
+  sc_signal<Tspecial_address_t> ***  in_RENAME_IN_NUM_REG_RC        ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_WRITE_RD          ;
+  sc_signal<Tgeneral_address_t> ***  in_RENAME_IN_NUM_REG_RD        ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_IN_WRITE_RE          ;
+  sc_signal<Tspecial_address_t> ***  in_RENAME_IN_NUM_REG_RE        ;
+  sc_signal<Texception_t      > ***  in_RENAME_IN_EXCEPTION_USE     ;
+  sc_signal<Texception_t      > ***  in_RENAME_IN_EXCEPTION         ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_VAL                  ;
+  sc_signal<Tcontrol_t        >  **  in_INSERT_ACK                  ;
+  sc_signal<Tcontext_t        >  ** out_INSERT_FRONT_END_ID         ;
+  sc_signal<Tcontext_t        >  ** out_INSERT_CONTEXT_ID           ;
+  sc_signal<Tdepth_t          >  ** out_INSERT_DEPTH                ;
+  sc_signal<Ttype_t           >  ** out_INSERT_TYPE                 ;
+  sc_signal<Toperation_t      >  ** out_INSERT_OPERATION            ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_NO_EXECUTE           ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_LAST_EVENT           ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_IS_DELAY_SLOT        ;
+  sc_signal<Tgeneral_data_t   >  ** out_INSERT_ADDRESS              ;
+  sc_signal<Tgeneral_data_t   >  ** out_INSERT_ADDRESS_NEXT         ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_HAS_IMMEDIAT         ;
+  sc_signal<Tgeneral_data_t   >  ** out_INSERT_IMMEDIAT             ;
+  sc_signal<Tlsq_ptr_t        >  ** out_INSERT_STORE_QUEUE_PTR_WRITE;
+  sc_signal<Tlsq_ptr_t        >  ** out_INSERT_STORE_QUEUE_PTR_READ ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_STORE_QUEUE_EMPTY    ;
+  sc_signal<Tlsq_ptr_t        >  ** out_INSERT_LOAD_QUEUE_PTR_WRITE ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_READ_RA              ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RA_LOG       ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RA_PHY       ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_READ_RB              ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RB_LOG       ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RB_PHY       ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_READ_RC              ;
+  sc_signal<Tspecial_address_t>  ** out_INSERT_NUM_REG_RC_LOG       ;
+  sc_signal<Tspecial_address_t>  ** out_INSERT_NUM_REG_RC_PHY       ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_WRITE_RD             ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RD_LOG       ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RD_PHY_OLD   ;
+  sc_signal<Tgeneral_address_t>  ** out_INSERT_NUM_REG_RD_PHY_NEW   ;
+  sc_signal<Tcontrol_t        >  ** out_INSERT_WRITE_RE             ;
+  sc_signal<Tspecial_address_t>  ** out_INSERT_NUM_REG_RE_LOG       ;
+  sc_signal<Tspecial_address_t>  ** out_INSERT_NUM_REG_RE_PHY_OLD   ;
+  sc_signal<Tspecial_address_t>  ** out_INSERT_NUM_REG_RE_PHY_NEW   ;
+  sc_signal<Texception_t      >  ** out_INSERT_EXCEPTION_USE        ;
+  sc_signal<Texception_t      >  ** out_INSERT_EXCEPTION            ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_VAL                  ;
+  sc_signal<Tcontrol_t        >  ** out_RETIRE_ACK                  ;
+  sc_signal<Tcontext_t        >  **  in_RETIRE_FRONT_END_ID         ;
+  sc_signal<Tcontext_t        >  **  in_RETIRE_CONTEXT_ID           ;
+//sc_signal<Ttype_t           >  **  in_RETIRE_TYPE                 ;
+//sc_signal<Toperation_t      >  **  in_RETIRE_OPERATION            ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_USE_STORE_QUEUE      ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_USE_LOAD_QUEUE       ;
+  sc_signal<Tlsq_ptr_t        >  **  in_RETIRE_STORE_QUEUE_PTR_WRITE;
+  sc_signal<Tlsq_ptr_t        >  **  in_RETIRE_LOAD_QUEUE_PTR_WRITE ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_READ_RA              ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RA_PHY       ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_READ_RB              ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RB_PHY       ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_READ_RC              ;
+  sc_signal<Tspecial_address_t>  **  in_RETIRE_NUM_REG_RC_PHY       ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_WRITE_RD             ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RD_LOG       ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RD_PHY_OLD   ;
+  sc_signal<Tgeneral_address_t>  **  in_RETIRE_NUM_REG_RD_PHY_NEW   ;
+  sc_signal<Tcontrol_t        >  **  in_RETIRE_WRITE_RE             ;
+  sc_signal<Tspecial_address_t>  **  in_RETIRE_NUM_REG_RE_LOG       ;
+  sc_signal<Tspecial_address_t>  **  in_RETIRE_NUM_REG_RE_PHY_OLD   ;
+  sc_signal<Tspecial_address_t>  **  in_RETIRE_NUM_REG_RE_PHY_NEW   ;
+  sc_signal<Tcontrol_t        > ***  in_RETIRE_EVENT_VAL            ;
+  sc_signal<Tcontrol_t        > *** out_RETIRE_EVENT_ACK            ;
+  sc_signal<Tevent_state_t    > ***  in_RETIRE_EVENT_STATE          ;
+  sc_signal<Tspr_t            > ***  in_SPR_READ_SR                 ;
+  sc_signal<bool              >   *  in_INFO_ROB_EMPTY              ;
+
   ALLOC2_SC_SIGNAL( in_RENAME_IN_VAL               ," in_RENAME_IN_VAL               ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   ALLOC2_SC_SIGNAL(out_RENAME_IN_ACK               ,"out_RENAME_IN_ACK               ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
@@ -56,8 +149,7 @@
   ALLOC2_SC_SIGNAL( in_RENAME_IN_OPERATION         ," in_RENAME_IN_OPERATION         ",Toperation_t      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   ALLOC2_SC_SIGNAL( in_RENAME_IN_NO_EXECUTE        ," in_RENAME_IN_NO_EXECUTE        ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
+  ALLOC2_SC_SIGNAL( in_RENAME_IN_LAST_EVENT        ," in_RENAME_IN_LAST_EVENT        ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   ALLOC2_SC_SIGNAL( in_RENAME_IN_IS_DELAY_SLOT     ," in_RENAME_IN_IS_DELAY_SLOT     ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
-#ifdef DEBUG
   ALLOC2_SC_SIGNAL( in_RENAME_IN_ADDRESS           ," in_RENAME_IN_ADDRESS           ",Tgeneral_data_t   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
-#endif
   ALLOC2_SC_SIGNAL( in_RENAME_IN_ADDRESS_NEXT      ," in_RENAME_IN_ADDRESS_NEXT      ",Tgeneral_data_t   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   ALLOC2_SC_SIGNAL( in_RENAME_IN_HAS_IMMEDIAT      ," in_RENAME_IN_HAS_IMMEDIAT      ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
@@ -83,12 +175,13 @@
   ALLOC1_SC_SIGNAL(out_INSERT_OPERATION            ,"out_INSERT_OPERATION            ",Toperation_t      ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_NO_EXECUTE           ,"out_INSERT_NO_EXECUTE           ",Tcontrol_t        ,_param->_nb_inst_insert);
+  ALLOC1_SC_SIGNAL(out_INSERT_LAST_EVENT           ,"out_INSERT_LAST_EVENT           ",Tcontrol_t        ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_IS_DELAY_SLOT        ,"out_INSERT_IS_DELAY_SLOT        ",Tcontrol_t        ,_param->_nb_inst_insert);
-#ifdef DEBUG
   ALLOC1_SC_SIGNAL(out_INSERT_ADDRESS              ,"out_INSERT_ADDRESS              ",Tgeneral_data_t   ,_param->_nb_inst_insert);
-#endif
   ALLOC1_SC_SIGNAL(out_INSERT_ADDRESS_NEXT         ,"out_INSERT_ADDRESS_NEXT         ",Tgeneral_data_t   ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_HAS_IMMEDIAT         ,"out_INSERT_HAS_IMMEDIAT         ",Tcontrol_t        ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_IMMEDIAT             ,"out_INSERT_IMMEDIAT             ",Tgeneral_data_t   ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_STORE_QUEUE_PTR_WRITE,"out_INSERT_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_nb_inst_insert);
+  ALLOC1_SC_SIGNAL(out_INSERT_STORE_QUEUE_PTR_READ ,"out_INSERT_STORE_QUEUE_PTR_READ ",Tlsq_ptr_t        ,_param->_nb_inst_insert);
+  ALLOC1_SC_SIGNAL(out_INSERT_STORE_QUEUE_EMPTY    ,"out_INSERT_STORE_QUEUE_EMPTY    ",Tcontrol_t        ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_LOAD_QUEUE_PTR_WRITE ,"out_INSERT_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t        ,_param->_nb_inst_insert);
   ALLOC1_SC_SIGNAL(out_INSERT_READ_RA              ,"out_INSERT_READ_RA              ",Tcontrol_t        ,_param->_nb_inst_insert);
@@ -139,4 +232,5 @@
   ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_STATE          ," in_RETIRE_EVENT_STATE          ",Tevent_state_t    ,_param->_nb_front_end,_param->_nb_context[it1]);
   ALLOC2_SC_SIGNAL( in_SPR_READ_SR                 ," in_SPR_READ_SR                 ",Tspr_t            ,_param->_nb_front_end,_param->_nb_context[it1]);
+  ALLOC0_SC_SIGNAL( in_INFO_ROB_EMPTY              ," in_INFO_ROB_EMPTY              ",bool              );
   
   /********************************************************
@@ -160,4 +254,5 @@
   INSTANCE2_SC_SIGNAL(_Rename_unit, in_RENAME_IN_OPERATION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
   INSTANCE2_SC_SIGNAL(_Rename_unit, in_RENAME_IN_NO_EXECUTE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
+  INSTANCE2_SC_SIGNAL(_Rename_unit, in_RENAME_IN_LAST_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
   INSTANCE2_SC_SIGNAL(_Rename_unit, in_RENAME_IN_IS_DELAY_SLOT     ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
 #ifdef DEBUG
@@ -191,4 +286,5 @@
   INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_OPERATION            ,_param->_nb_inst_insert);
   INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_NO_EXECUTE           ,_param->_nb_inst_insert);
+  INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_LAST_EVENT           ,_param->_nb_inst_insert);
   INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_IS_DELAY_SLOT        ,_param->_nb_inst_insert);
 #ifdef DEBUG
@@ -199,4 +295,6 @@
   INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_IMMEDIAT             ,_param->_nb_inst_insert);
   INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_insert);
+  INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_STORE_QUEUE_PTR_READ ,_param->_nb_inst_insert);
+  INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_STORE_QUEUE_EMPTY    ,_param->_nb_inst_insert);
   if (_param->_have_port_load_queue_ptr)
   INSTANCE1_SC_SIGNAL(_Rename_unit,out_INSERT_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_insert);
@@ -261,4 +359,7 @@
   INSTANCE2_SC_SIGNAL(_Rename_unit,in_SPR_READ_SR                  ,_param->_nb_front_end, _param->_nb_context[it1]);
 
+#ifdef DEBUG_TEST
+  INSTANCE0_SC_SIGNAL(_Rename_unit,in_INFO_ROB_EMPTY               );
+#endif
 
   msg(_("<%s> : Start Simulation ............\n"),name.c_str());
@@ -314,8 +415,7 @@
   DELETE2_SC_SIGNAL( in_RENAME_IN_OPERATION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
   DELETE2_SC_SIGNAL( in_RENAME_IN_NO_EXECUTE        ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
+  DELETE2_SC_SIGNAL( in_RENAME_IN_LAST_EVENT        ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
   DELETE2_SC_SIGNAL( in_RENAME_IN_IS_DELAY_SLOT     ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
-#ifdef DEBUG
   DELETE2_SC_SIGNAL( in_RENAME_IN_ADDRESS           ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
-#endif
   DELETE2_SC_SIGNAL( in_RENAME_IN_ADDRESS_NEXT      ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
   DELETE2_SC_SIGNAL( in_RENAME_IN_HAS_IMMEDIAT      ,_param->_nb_front_end, _param->_nb_inst_decod[it1]);
@@ -342,12 +442,13 @@
   DELETE1_SC_SIGNAL(out_INSERT_OPERATION            ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_NO_EXECUTE           ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_INSERT_LAST_EVENT           ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_IS_DELAY_SLOT        ,_param->_nb_inst_insert);
-#ifdef DEBUG
   DELETE1_SC_SIGNAL(out_INSERT_ADDRESS              ,_param->_nb_inst_insert);
-#endif
   DELETE1_SC_SIGNAL(out_INSERT_ADDRESS_NEXT         ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_HAS_IMMEDIAT         ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_IMMEDIAT             ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_INSERT_STORE_QUEUE_PTR_READ ,_param->_nb_inst_insert);
+  DELETE1_SC_SIGNAL(out_INSERT_STORE_QUEUE_EMPTY    ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_insert);
   DELETE1_SC_SIGNAL(out_INSERT_EXCEPTION_USE        ,_param->_nb_inst_insert);
@@ -401,4 +502,6 @@
 
   DELETE2_SC_SIGNAL(in_SPR_READ_SR                  ,_param->_nb_front_end, _param->_nb_context[it1]);
+
+  DELETE0_SC_SIGNAL(in_INFO_ROB_EMPTY               );
     }
 #endif
