Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp	(revision 112)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -26,90 +27,69 @@
       {
 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    delete    in_CLOCK ;
+    delete  in_CLOCK ;
 //#endif
-    delete    in_NRESET;
+    delete  in_NRESET;
+    delete out_CONST_0;
+    delete out_CONST_1;
 
-    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    delete []  in_GPR_READ_VAL               ;
-    delete [] out_GPR_READ_ACK               ;
-    if (_param->_have_port_ooo_engine_id == true)
-    delete []  in_GPR_READ_OOO_ENGINE_ID     ;
-    delete [] out_GPR_READ_DATA              ;
-    delete [] out_GPR_READ_DATA_VAL          ;
+    DELETE1_SIGNAL( in_GPR_READ_VAL           ,_param->_nb_gpr_read,1  );
+    DELETE1_SIGNAL(out_GPR_READ_ACK           ,_param->_nb_gpr_read,1  );
+    DELETE1_SIGNAL( in_GPR_READ_OOO_ENGINE_ID ,_param->_nb_gpr_read,_param->_size_ooo_engine_id);
+    DELETE1_SIGNAL(out_GPR_READ_DATA          ,_param->_nb_gpr_read,_param->_size_general_data);
+    DELETE1_SIGNAL(out_GPR_READ_DATA_VAL      ,_param->_nb_gpr_read,1);
+    
+    DELETE2_SIGNAL(out_GPR_READ_REGISTERFILE_VAL ,_param->_nb_ooo_engine,_param->_nb_gpr_read,1  );
+    DELETE2_SIGNAL( in_GPR_READ_REGISTERFILE_ACK ,_param->_nb_ooo_engine,_param->_nb_gpr_read,1  );
+    DELETE2_SIGNAL( in_GPR_READ_REGISTERFILE_DATA,_param->_nb_ooo_engine,_param->_nb_gpr_read,_param->_size_general_data);
 
-    delete [] out_GPR_READ_REGISTERFILE_VAL  ;
-    delete []  in_GPR_READ_REGISTERFILE_ACK  ;
-    delete []  in_GPR_READ_REGISTERFILE_DATA ;
+    DELETE2_SIGNAL(out_GPR_READ_STATUS_VAL     ,_param->_nb_ooo_engine,_param->_nb_gpr_read,1  );
+    DELETE2_SIGNAL( in_GPR_READ_STATUS_ACK     ,_param->_nb_ooo_engine,_param->_nb_gpr_read,1  );
+    DELETE2_SIGNAL( in_GPR_READ_STATUS_DATA_VAL,_param->_nb_ooo_engine,_param->_nb_gpr_read,1);
 
-    delete [] out_GPR_READ_STATUS_VAL        ;
-    delete []  in_GPR_READ_STATUS_ACK        ;
-    delete []  in_GPR_READ_STATUS_DATA_VAL   ;
+    DELETE1_SIGNAL( in_SPR_READ_VAL           ,_param->_nb_spr_read,1  );
+    DELETE1_SIGNAL(out_SPR_READ_ACK           ,_param->_nb_spr_read,1  );
+    DELETE1_SIGNAL( in_SPR_READ_OOO_ENGINE_ID ,_param->_nb_spr_read,_param->_size_ooo_engine_id);
+    DELETE1_SIGNAL(out_SPR_READ_DATA          ,_param->_nb_spr_read,_param->_size_special_data);
+    DELETE1_SIGNAL(out_SPR_READ_DATA_VAL      ,_param->_nb_spr_read,1);
+    
+    DELETE2_SIGNAL(out_SPR_READ_REGISTERFILE_VAL ,_param->_nb_ooo_engine,_param->_nb_spr_read,1  );
+    DELETE2_SIGNAL( in_SPR_READ_REGISTERFILE_ACK ,_param->_nb_ooo_engine,_param->_nb_spr_read,1  );
+    DELETE2_SIGNAL( in_SPR_READ_REGISTERFILE_DATA,_param->_nb_ooo_engine,_param->_nb_spr_read,_param->_size_special_data);
+    
+    DELETE2_SIGNAL(out_SPR_READ_STATUS_VAL     ,_param->_nb_ooo_engine,_param->_nb_spr_read,1  );
+    DELETE2_SIGNAL( in_SPR_READ_STATUS_ACK     ,_param->_nb_ooo_engine,_param->_nb_spr_read,1  );
+    DELETE2_SIGNAL( in_SPR_READ_STATUS_DATA_VAL,_param->_nb_ooo_engine,_param->_nb_spr_read,1);
+    
+    DELETE1_SIGNAL( in_GPR_WRITE_VAL          ,_param->_nb_gpr_write,1  );
+    DELETE1_SIGNAL(out_GPR_WRITE_ACK          ,_param->_nb_gpr_write,1  );
+    DELETE1_SIGNAL( in_GPR_WRITE_OOO_ENGINE_ID,_param->_nb_gpr_write,_param->_size_ooo_engine_id);
 
+    
+    DELETE2_SIGNAL(out_GPR_WRITE_REGISTERFILE_VAL,_param->_nb_ooo_engine,_param->_nb_gpr_write,1  );
+    DELETE2_SIGNAL( in_GPR_WRITE_REGISTERFILE_ACK,_param->_nb_ooo_engine,_param->_nb_gpr_write,1  );
 
-    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    delete []  in_SPR_READ_VAL               ;
-    delete [] out_SPR_READ_ACK               ;
-    if (_param->_have_port_ooo_engine_id == true)
-    delete []  in_SPR_READ_OOO_ENGINE_ID     ;
-    delete [] out_SPR_READ_DATA              ;
-    delete [] out_SPR_READ_DATA_VAL          ;
+    DELETE2_SIGNAL(out_GPR_WRITE_STATUS_VAL,_param->_nb_ooo_engine,_param->_nb_gpr_write,1  );
+    DELETE2_SIGNAL( in_GPR_WRITE_STATUS_ACK,_param->_nb_ooo_engine,_param->_nb_gpr_write,1  );
 
-    delete [] out_SPR_READ_REGISTERFILE_VAL  ;
-    delete []  in_SPR_READ_REGISTERFILE_ACK  ;
-    delete []  in_SPR_READ_REGISTERFILE_DATA ;
+    DELETE1_SIGNAL( in_SPR_WRITE_VAL          ,_param->_nb_spr_write,1  );
+    DELETE1_SIGNAL(out_SPR_WRITE_ACK          ,_param->_nb_spr_write,1  );
+    DELETE1_SIGNAL( in_SPR_WRITE_OOO_ENGINE_ID,_param->_nb_spr_write,_param->_size_ooo_engine_id);
 
-    delete [] out_SPR_READ_STATUS_VAL        ;
-    delete []  in_SPR_READ_STATUS_ACK        ;
-    delete []  in_SPR_READ_STATUS_DATA_VAL   ;
+    DELETE2_SIGNAL(out_SPR_WRITE_REGISTERFILE_VAL,_param->_nb_ooo_engine,_param->_nb_spr_write,1  );
+    DELETE2_SIGNAL( in_SPR_WRITE_REGISTERFILE_ACK,_param->_nb_ooo_engine,_param->_nb_spr_write,1  );
 
-    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    delete []  in_GPR_WRITE_VAL               ;
-    delete [] out_GPR_WRITE_ACK               ;
-    if (_param->_have_port_ooo_engine_id == true)
-    delete []  in_GPR_WRITE_OOO_ENGINE_ID     ;
+    DELETE2_SIGNAL(out_SPR_WRITE_STATUS_VAL,_param->_nb_ooo_engine,_param->_nb_spr_write,1  );
+    DELETE2_SIGNAL( in_SPR_WRITE_STATUS_ACK,_param->_nb_ooo_engine,_param->_nb_spr_write,1  );
 
-    delete [] out_GPR_WRITE_REGISTERFILE_VAL  ;
-    delete []  in_GPR_WRITE_REGISTERFILE_ACK  ;
+    DELETE2_SIGNAL( in_INSERT_ROB_VAL   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL(out_INSERT_ROB_ACK   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL( in_INSERT_ROB_RD_USE,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL( in_INSERT_ROB_RE_USE,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
 
-    delete [] out_GPR_WRITE_STATUS_VAL        ;
-    delete []  in_GPR_WRITE_STATUS_ACK        ;
+    DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL( in_INSERT_ROB_GPR_STATUS_ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
 
-    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    delete []  in_SPR_WRITE_VAL               ;
-    delete [] out_SPR_WRITE_ACK               ;
-    if (_param->_have_port_ooo_engine_id == true)
-    delete []  in_SPR_WRITE_OOO_ENGINE_ID     ;
-
-    delete [] out_SPR_WRITE_REGISTERFILE_VAL  ;
-    delete []  in_SPR_WRITE_REGISTERFILE_ACK  ;
-
-    delete [] out_SPR_WRITE_STATUS_VAL        ;
-    delete []  in_SPR_WRITE_STATUS_ACK        ;
-
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    delete []  in_INSERT_ROB_VAL                  ;
-    delete [] out_INSERT_ROB_ACK                  ;
-    delete []  in_INSERT_ROB_RD_USE               ;
-    delete []  in_INSERT_ROB_RE_USE               ;
-    delete [] out_INSERT_ROB_GPR_STATUS_VAL       ;
-    delete []  in_INSERT_ROB_GPR_STATUS_ACK       ;
-    delete [] out_INSERT_ROB_SPR_STATUS_VAL       ;
-    delete []  in_INSERT_ROB_SPR_STATUS_ACK       ;
-
-//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//     delete []  in_RETIRE_ROB_VAL                      ;
-//     delete [] out_RETIRE_ROB_ACK                      ;
-//     delete []  in_RETIRE_ROB_RD_OLD_USE               ;
-//     delete []  in_RETIRE_ROB_RD_NEW_USE               ;
-//     delete []  in_RETIRE_ROB_RE_OLD_USE               ;
-//     delete []  in_RETIRE_ROB_RE_NEW_USE               ;
-//     delete [] out_RETIRE_ROB_GPR_STATUS_OLD_VAL       ;
-//     delete [] out_RETIRE_ROB_GPR_STATUS_NEW_VAL       ;
-//     delete []  in_RETIRE_ROB_GPR_STATUS_OLD_ACK       ;
-//     delete []  in_RETIRE_ROB_GPR_STATUS_NEW_ACK       ;
-//     delete [] out_RETIRE_ROB_SPR_STATUS_OLD_VAL       ;
-//     delete [] out_RETIRE_ROB_SPR_STATUS_NEW_VAL       ;
-//     delete []  in_RETIRE_ROB_SPR_STATUS_OLD_ACK       ;
-//     delete []  in_RETIRE_ROB_SPR_STATUS_NEW_ACK       ;
+    DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
+    DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
       }
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
