Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp	(revision 112)
@@ -11,4 +11,5 @@
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -30,97 +31,83 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-    delete     in_CLOCK ;
-    delete     in_NRESET;
+        delete     in_CLOCK ;
+        delete     in_NRESET;
 
-    delete     in_INSERT_VAL           ;
-    delete    out_INSERT_ACK           ;
-    if (_param->_have_port_context_id)
-    delete     in_INSERT_CONTEXT_ID    ;
-    if (_param->_have_port_front_end_id)
-    delete     in_INSERT_FRONT_END_ID  ;
-    if (_param->_have_port_ooo_engine_id)
-    delete     in_INSERT_OOO_ENGINE_ID ;
-    if (_param->_have_port_rob_ptr)
-    delete     in_INSERT_ROB_ID        ;
-    delete     in_INSERT_OPERATION     ;
-    delete     in_INSERT_TYPE          ;
-    delete     in_INSERT_STORE_QUEUE_PTR_WRITE;
-    if (_param->_have_port_load_queue_ptr)
-    delete     in_INSERT_LOAD_QUEUE_PTR_WRITE ;
-    delete     in_INSERT_HAS_IMMEDIAT  ;
-    delete     in_INSERT_IMMEDIAT      ;
-//  delete     in_INSERT_READ_RA       ;
-    delete     in_INSERT_NUM_REG_RA    ;
-    delete     in_INSERT_DATA_RA_VAL   ;
-    delete     in_INSERT_DATA_RA       ;
-//  delete     in_INSERT_READ_RB       ;
-    delete     in_INSERT_NUM_REG_RB    ;
-    delete     in_INSERT_DATA_RB_VAL   ;
-    delete     in_INSERT_DATA_RB       ;
-//  delete     in_INSERT_READ_RC       ;
-    delete     in_INSERT_NUM_REG_RC    ;
-    delete     in_INSERT_DATA_RC_VAL   ;
-    delete     in_INSERT_DATA_RC       ;
-    delete     in_INSERT_WRITE_RD      ;
-    delete     in_INSERT_NUM_REG_RD    ;
-    delete     in_INSERT_WRITE_RE      ;
-    delete     in_INSERT_NUM_REG_RE    ;
-    
-    delete [] out_RETIRE_VAL           ;
-    delete []  in_RETIRE_ACK           ;
-    if (_param->_have_port_context_id)
-    delete [] out_RETIRE_CONTEXT_ID    ;
-    if (_param->_have_port_front_end_id)
-    delete [] out_RETIRE_FRONT_END_ID  ;
-    if (_param->_have_port_ooo_engine_id)
-    delete [] out_RETIRE_OOO_ENGINE_ID ;
-    if (_param->_have_port_rob_ptr)
-    delete [] out_RETIRE_ROB_ID        ;
-    delete [] out_RETIRE_OPERATION     ;
-    delete [] out_RETIRE_TYPE          ;
-    delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE;
-    if (_param->_have_port_load_queue_ptr)
-    delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ;
-    delete [] out_RETIRE_HAS_IMMEDIAT  ;
-    delete [] out_RETIRE_IMMEDIAT      ;
-    delete [] out_RETIRE_DATA_RA       ;
-    delete [] out_RETIRE_DATA_RB       ;
-    delete [] out_RETIRE_DATA_RC       ;
-    delete [] out_RETIRE_WRITE_RD      ;
-    delete [] out_RETIRE_NUM_REG_RD    ;
-    delete [] out_RETIRE_WRITE_RE      ;
-    delete [] out_RETIRE_NUM_REG_RE    ;
-    
-    delete []  in_GPR_WRITE_VAL         ;
-    if (_param->_have_port_ooo_engine_id)
-    delete []  in_GPR_WRITE_OOO_ENGINE_ID;
-    delete []  in_GPR_WRITE_NUM_REG     ;
-    delete []  in_GPR_WRITE_DATA        ;
-    
-    delete []  in_SPR_WRITE_VAL       ;
-    if (_param->_have_port_ooo_engine_id)
-    delete []  in_SPR_WRITE_OOO_ENGINE_ID;
-    delete []  in_SPR_WRITE_NUM_REG   ;
-    delete []  in_SPR_WRITE_DATA      ;
-    
-    if (_param->_have_port_ooo_engine_id)
-    delete []  in_BYPASS_WRITE_OOO_ENGINE_ID;
-    delete []  in_BYPASS_WRITE_GPR_VAL    ;
-    delete []  in_BYPASS_WRITE_GPR_NUM_REG;
-    delete []  in_BYPASS_WRITE_GPR_DATA   ;
-    delete []  in_BYPASS_WRITE_SPR_VAL    ;
-    delete []  in_BYPASS_WRITE_SPR_NUM_REG;
-    delete []  in_BYPASS_WRITE_SPR_DATA   ;
-    
-    delete []  in_BYPASS_MEMORY_VAL       ;
-    if (_param->_have_port_ooo_engine_id)
-    delete []  in_BYPASS_MEMORY_OOO_ENGINE_ID;
-    delete []  in_BYPASS_MEMORY_NUM_REG   ;
-    delete []  in_BYPASS_MEMORY_DATA      ;
-    
-    // ~~~~~[ internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
-    delete []  internal_RETIRE_VAL;
-    delete []  internal_RETIRE_SLOT;
+        DELETE0_SIGNAL( in_INSERT_VAL                  ,1);
+        DELETE0_SIGNAL(out_INSERT_ACK                  ,1);
+        DELETE0_SIGNAL( in_INSERT_CONTEXT_ID           ,_param->_size_context_id      );
+        DELETE0_SIGNAL( in_INSERT_FRONT_END_ID         ,_param->_size_front_end_id    );
+        DELETE0_SIGNAL( in_INSERT_OOO_ENGINE_ID        ,_param->_size_ooo_engine_id   );
+        DELETE0_SIGNAL( in_INSERT_ROB_ID               ,_param->_size_rob_ptr         );
+        DELETE0_SIGNAL( in_INSERT_OPERATION            ,_param->_size_operation       );
+        DELETE0_SIGNAL( in_INSERT_TYPE                 ,_param->_size_type            );
+        DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr );
+        DELETE0_SIGNAL( in_INSERT_LOAD_QUEUE_PTR_WRITE ,_param->_size_load_queue_ptr  );
+        DELETE0_SIGNAL( in_INSERT_HAS_IMMEDIAT         ,1                             );
+        DELETE0_SIGNAL( in_INSERT_IMMEDIAT             ,_param->_size_general_data    );
+//      DELETE0_SIGNAL( in_INSERT_READ_RA              ,1                             );
+        DELETE0_SIGNAL( in_INSERT_NUM_REG_RA           ,_param->_size_general_register);
+        DELETE0_SIGNAL( in_INSERT_DATA_RA_VAL          ,1                             );
+        DELETE0_SIGNAL( in_INSERT_DATA_RA              ,_param->_size_general_data    );
+//      DELETE0_SIGNAL( in_INSERT_READ_RB              ,1                             );
+        DELETE0_SIGNAL( in_INSERT_NUM_REG_RB           ,_param->_size_general_register);
+        DELETE0_SIGNAL( in_INSERT_DATA_RB_VAL          ,1                             );
+        DELETE0_SIGNAL( in_INSERT_DATA_RB              ,_param->_size_general_data    );
+//      DELETE0_SIGNAL( in_INSERT_READ_RC              ,1                             );
+        DELETE0_SIGNAL( in_INSERT_NUM_REG_RC           ,_param->_size_special_register);
+        DELETE0_SIGNAL( in_INSERT_DATA_RC_VAL          ,1                             );
+        DELETE0_SIGNAL( in_INSERT_DATA_RC              ,_param->_size_special_data    );
+        DELETE0_SIGNAL( in_INSERT_WRITE_RD             ,1                             );
+        DELETE0_SIGNAL( in_INSERT_NUM_REG_RD           ,_param->_size_general_register);
+        DELETE0_SIGNAL( in_INSERT_WRITE_RE             ,1                             );
+        DELETE0_SIGNAL( in_INSERT_NUM_REG_RE           ,_param->_size_special_register);
+        
+        DELETE1_SIGNAL(out_RETIRE_VAL                  ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL( in_RETIRE_ACK                  ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL(out_RETIRE_CONTEXT_ID           ,_param->_nb_inst_retire,_param->_size_context_id);
+        DELETE1_SIGNAL(out_RETIRE_FRONT_END_ID         ,_param->_nb_inst_retire,_param->_size_front_end_id);
+        DELETE1_SIGNAL(out_RETIRE_OOO_ENGINE_ID        ,_param->_nb_inst_retire,_param->_size_ooo_engine_id);
+        DELETE1_SIGNAL(out_RETIRE_ROB_ID               ,_param->_nb_inst_retire,_param->_size_rob_ptr);
+        DELETE1_SIGNAL(out_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation);
+        DELETE1_SIGNAL(out_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type);
+        DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
+        DELETE1_SIGNAL(out_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire,_param->_size_load_queue_ptr );
+        DELETE1_SIGNAL(out_RETIRE_HAS_IMMEDIAT         ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL(out_RETIRE_IMMEDIAT             ,_param->_nb_inst_retire,_param->_size_general_data);
+        DELETE1_SIGNAL(out_RETIRE_DATA_RA              ,_param->_nb_inst_retire,_param->_size_general_data);
+        DELETE1_SIGNAL(out_RETIRE_DATA_RB              ,_param->_nb_inst_retire,_param->_size_general_data);
+        DELETE1_SIGNAL(out_RETIRE_DATA_RC              ,_param->_nb_inst_retire,_param->_size_special_data);
+        DELETE1_SIGNAL(out_RETIRE_WRITE_RD             ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL(out_RETIRE_NUM_REG_RD           ,_param->_nb_inst_retire,_param->_size_general_register);
+        DELETE1_SIGNAL(out_RETIRE_WRITE_RE             ,_param->_nb_inst_retire,1);
+        DELETE1_SIGNAL(out_RETIRE_NUM_REG_RE           ,_param->_nb_inst_retire,_param->_size_special_register);
+        
+        DELETE1_SIGNAL( in_GPR_WRITE_VAL          ,_param->_nb_gpr_write,1);
+        DELETE1_SIGNAL( in_GPR_WRITE_OOO_ENGINE_ID,_param->_nb_gpr_write,_param->_size_ooo_engine_id);
+        DELETE1_SIGNAL( in_GPR_WRITE_NUM_REG      ,_param->_nb_gpr_write,_param->_size_general_register);
+        DELETE1_SIGNAL( in_GPR_WRITE_DATA         ,_param->_nb_gpr_write,_param->_size_general_data);
+        
+        DELETE1_SIGNAL( in_SPR_WRITE_VAL          ,_param->_nb_spr_write,1);
+        DELETE1_SIGNAL( in_SPR_WRITE_OOO_ENGINE_ID,_param->_nb_spr_write,_param->_size_ooo_engine_id);
+        DELETE1_SIGNAL( in_SPR_WRITE_NUM_REG      ,_param->_nb_spr_write,_param->_size_general_register);
+        DELETE1_SIGNAL( in_SPR_WRITE_DATA         ,_param->_nb_spr_write,_param->_size_general_data);
+        
+        DELETE1_SIGNAL( in_BYPASS_WRITE_OOO_ENGINE_ID,_param->_nb_bypass_write,_param->_size_ooo_engine_id);
+        DELETE1_SIGNAL( in_BYPASS_WRITE_GPR_VAL      ,_param->_nb_bypass_write,1);
+        DELETE1_SIGNAL( in_BYPASS_WRITE_GPR_NUM_REG  ,_param->_nb_bypass_write,_param->_size_general_register);
+        DELETE1_SIGNAL( in_BYPASS_WRITE_GPR_DATA     ,_param->_nb_bypass_write,_param->_size_general_data);
+        DELETE1_SIGNAL( in_BYPASS_WRITE_SPR_VAL      ,_param->_nb_bypass_write,1);
+        DELETE1_SIGNAL( in_BYPASS_WRITE_SPR_NUM_REG  ,_param->_nb_bypass_write,_param->_size_special_register);
+        DELETE1_SIGNAL( in_BYPASS_WRITE_SPR_DATA     ,_param->_nb_bypass_write,_param->_size_special_data);
+        
+        DELETE1_SIGNAL( in_BYPASS_MEMORY_VAL          ,_param->_nb_bypass_memory,1);
+        DELETE1_SIGNAL( in_BYPASS_MEMORY_OOO_ENGINE_ID,_param->_nb_bypass_memory,_param->_size_ooo_engine_id);
+        DELETE1_SIGNAL( in_BYPASS_MEMORY_NUM_REG      ,_param->_nb_bypass_memory,_param->_size_general_register);
+        DELETE1_SIGNAL( in_BYPASS_MEMORY_DATA         ,_param->_nb_bypass_memory,_param->_size_general_data);
+        
+        DELETE1(internal_RETIRE_VAL ,_param->_nb_inst_retire);
+        DELETE1(internal_RETIRE_SLOT,_param->_nb_inst_retire);
       }
+
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
