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 121)
+++ 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 121)
+++ 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
