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_deallocation.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_deallocation.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_deallocation.cpp	(revision 88)
@@ -6,9 +6,10 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -28,4 +29,6 @@
     log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
 
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     delete    in_CLOCK ;
@@ -33,74 +36,77 @@
     delete    in_NRESET;
 
-    delete     in_MEMORY_IN_VAL         ;
-    delete    out_MEMORY_IN_ACK         ;
-    if (_param->_have_port_context_id)
-    delete     in_MEMORY_IN_CONTEXT_ID  ;
-    if (_param->_have_port_front_end_id)
-    delete     in_MEMORY_IN_FRONT_END_ID  ;
-    if (_param->_have_port_ooo_engine_id)
-    delete     in_MEMORY_IN_OOO_ENGINE_ID  ;
-    if (_param->_have_port_packet_id)
-    delete     in_MEMORY_IN_PACKET_ID   ;
-    delete     in_MEMORY_IN_OPERATION   ;
-    delete     in_MEMORY_IN_TYPE        ;
-    delete     in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;
-    if (_param->_have_port_load_queue_ptr)
-    delete     in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;
-    delete     in_MEMORY_IN_HAS_IMMEDIAT;
-    delete     in_MEMORY_IN_IMMEDIAT    ;
-    delete     in_MEMORY_IN_DATA_RA     ;
-    delete     in_MEMORY_IN_DATA_RB     ;
-    delete     in_MEMORY_IN_DATA_RC     ;
-    delete     in_MEMORY_IN_WRITE_RD    ;
-    delete     in_MEMORY_IN_NUM_REG_RD  ;
-    delete     in_MEMORY_IN_WRITE_RE    ;
-    delete     in_MEMORY_IN_NUM_REG_RE  ;
+    DELETE1_SIGNAL( in_MEMORY_IN_VAL                  ,_param->_nb_inst_memory,1);
+    DELETE1_SIGNAL(out_MEMORY_IN_ACK                  ,_param->_nb_inst_memory,1);
+    DELETE1_SIGNAL( in_MEMORY_IN_CONTEXT_ID           ,_param->_nb_inst_memory,_param->_size_context_id           );
+    DELETE1_SIGNAL( in_MEMORY_IN_FRONT_END_ID         ,_param->_nb_inst_memory,_param->_size_front_end_id         );
+    DELETE1_SIGNAL( in_MEMORY_IN_OOO_ENGINE_ID        ,_param->_nb_inst_memory,_param->_size_ooo_engine_id        );
+    DELETE1_SIGNAL( in_MEMORY_IN_PACKET_ID            ,_param->_nb_inst_memory,_param->_size_rob_ptr              );
+    DELETE1_SIGNAL( in_MEMORY_IN_OPERATION            ,_param->_nb_inst_memory,_param->_size_operation            );
+    DELETE1_SIGNAL( in_MEMORY_IN_TYPE                 ,_param->_nb_inst_memory,_param->_size_type                 );
+    DELETE1_SIGNAL( in_MEMORY_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_memory,_param->_size_store_queue_ptr      );
+    DELETE1_SIGNAL( in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_memory,_param->_size_load_queue_ptr       );
+    DELETE1_SIGNAL( in_MEMORY_IN_HAS_IMMEDIAT         ,_param->_nb_inst_memory,1                                  );
+    DELETE1_SIGNAL( in_MEMORY_IN_IMMEDIAT             ,_param->_nb_inst_memory,_param->_size_general_data         );
+    DELETE1_SIGNAL( in_MEMORY_IN_DATA_RA              ,_param->_nb_inst_memory,_param->_size_general_data         );
+    DELETE1_SIGNAL( in_MEMORY_IN_DATA_RB              ,_param->_nb_inst_memory,_param->_size_general_data         );
+    DELETE1_SIGNAL( in_MEMORY_IN_DATA_RC              ,_param->_nb_inst_memory,_param->_size_special_data         );
+    DELETE1_SIGNAL( in_MEMORY_IN_WRITE_RD             ,_param->_nb_inst_memory,1                                  );
+    DELETE1_SIGNAL( in_MEMORY_IN_NUM_REG_RD           ,_param->_nb_inst_memory,1                                  );
+    DELETE1_SIGNAL( in_MEMORY_IN_WRITE_RE             ,_param->_nb_inst_memory,1                                  );
+    DELETE1_SIGNAL( in_MEMORY_IN_NUM_REG_RE           ,_param->_nb_inst_memory,1                                  );
+
+    DELETE1_SIGNAL(out_MEMORY_OUT_VAL          ,_param->_nb_inst_memory,1);
+    DELETE1_SIGNAL( in_MEMORY_OUT_ACK          ,_param->_nb_inst_memory,1);
+    DELETE1_SIGNAL(out_MEMORY_OUT_CONTEXT_ID   ,_param->_nb_inst_memory,_param->_size_context_id       );
+    DELETE1_SIGNAL(out_MEMORY_OUT_FRONT_END_ID ,_param->_nb_inst_memory,_param->_size_front_end_id     );
+    DELETE1_SIGNAL(out_MEMORY_OUT_OOO_ENGINE_ID,_param->_nb_inst_memory,_param->_size_ooo_engine_id    );
+    DELETE1_SIGNAL(out_MEMORY_OUT_PACKET_ID    ,_param->_nb_inst_memory,_param->_size_rob_ptr          );
+//  DELETE1_SIGNAL(out_MEMORY_OUT_OPERATION    ,_param->_nb_inst_memory,_param->_size_operation        );
+    DELETE1_SIGNAL(out_MEMORY_OUT_TYPE         ,_param->_nb_inst_memory,_param->_size_type             );
+    DELETE1_SIGNAL(out_MEMORY_OUT_WRITE_RD     ,_param->_nb_inst_memory,1                              );
+    DELETE1_SIGNAL(out_MEMORY_OUT_NUM_REG_RD   ,_param->_nb_inst_memory,_param->_size_general_register );
+    DELETE1_SIGNAL(out_MEMORY_OUT_DATA_RD      ,_param->_nb_inst_memory,_param->_size_general_data     );
+    DELETE1_SIGNAL(out_MEMORY_OUT_WRITE_RE     ,_param->_nb_inst_memory,1                              );
+    DELETE1_SIGNAL(out_MEMORY_OUT_NUM_REG_RE   ,_param->_nb_inst_memory,_param->_size_general_register );
+    DELETE1_SIGNAL(out_MEMORY_OUT_DATA_RE      ,_param->_nb_inst_memory,_param->_size_general_data     );
+    DELETE1_SIGNAL(out_MEMORY_OUT_EXCEPTION    ,_param->_nb_inst_memory,_param->_size_exception        );
+    DELETE1_SIGNAL(out_MEMORY_OUT_NO_SEQUENCE  ,_param->_nb_inst_memory,1                              );
+    DELETE1_SIGNAL(out_MEMORY_OUT_ADDRESS      ,_param->_nb_inst_memory,_param->_size_general_data     );
+
+    DELETE1_SIGNAL(out_DCACHE_REQ_VAL        ,_param->_nb_cache_port,1);
+    DELETE1_SIGNAL( in_DCACHE_REQ_ACK        ,_param->_nb_cache_port,1);
+    DELETE1_SIGNAL(out_DCACHE_REQ_CONTEXT_ID ,_param->_nb_cache_port,_param->_size_dcache_context_id  );
+    DELETE1_SIGNAL(out_DCACHE_REQ_PACKET_ID  ,_param->_nb_cache_port,_param->_size_dcache_packet_id   );
+    DELETE1_SIGNAL(out_DCACHE_REQ_ADDRESS    ,_param->_nb_cache_port,_param->_size_general_data);
+    DELETE1_SIGNAL(out_DCACHE_REQ_TYPE       ,_param->_nb_cache_port,_param->_size_dcache_type );
+    DELETE1_SIGNAL(out_DCACHE_REQ_WDATA      ,_param->_nb_cache_port,_param->_size_general_data);
+
+    DELETE1_SIGNAL( in_DCACHE_RSP_VAL        ,_param->_nb_cache_port,1);
+    DELETE1_SIGNAL(out_DCACHE_RSP_ACK        ,_param->_nb_cache_port,1);
+    DELETE1_SIGNAL( in_DCACHE_RSP_CONTEXT_ID ,_param->_nb_cache_port,_param->_size_dcache_context_id  );
+    DELETE1_SIGNAL( in_DCACHE_RSP_PACKET_ID  ,_param->_nb_cache_port,_param->_size_dcache_packet_id   );
+    DELETE1_SIGNAL( in_DCACHE_RSP_RDATA      ,_param->_nb_cache_port,_param->_size_general_data);
+    DELETE1_SIGNAL( in_DCACHE_RSP_ERROR      ,_param->_nb_cache_port,_param->_size_dcache_error);
+
+    DELETE1_SIGNAL(out_BYPASS_MEMORY_VAL           ,_param->_nb_bypass_memory,1);
+    DELETE1_SIGNAL(out_BYPASS_MEMORY_OOO_ENGINE_ID ,_param->_nb_bypass_memory,_param->_size_ooo_engine_id   );
+    DELETE1_SIGNAL(out_BYPASS_MEMORY_NUM_REG       ,_param->_nb_bypass_memory,_param->_size_general_register);
+    DELETE1_SIGNAL(out_BYPASS_MEMORY_DATA          ,_param->_nb_bypass_memory,_param->_size_general_data    );
+
+    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
-    delete    out_MEMORY_OUT_VAL       ;
-    delete     in_MEMORY_OUT_ACK       ;
-    if (_param->_have_port_context_id)
-    delete    out_MEMORY_OUT_CONTEXT_ID;
-    if (_param->_have_port_front_end_id)
-    delete    out_MEMORY_OUT_FRONT_END_ID;
-    if (_param->_have_port_ooo_engine_id)
-      delete    out_MEMORY_OUT_OOO_ENGINE_ID;
-    if (_param->_have_port_packet_id)
-    delete    out_MEMORY_OUT_PACKET_ID ;
-//  delete    out_MEMORY_OUT_OPERATION ;
-    delete    out_MEMORY_OUT_TYPE      ;
-    delete    out_MEMORY_OUT_WRITE_RD  ;
-    delete    out_MEMORY_OUT_NUM_REG_RD;
-    delete    out_MEMORY_OUT_DATA_RD   ;
-    delete    out_MEMORY_OUT_WRITE_RE  ;
-    delete    out_MEMORY_OUT_NUM_REG_RE;
-    delete    out_MEMORY_OUT_DATA_RE   ;
-    delete    out_MEMORY_OUT_EXCEPTION ;
-    delete    out_MEMORY_OUT_NO_SEQUENCE;
-    delete    out_MEMORY_OUT_ADDRESS   ;
+//     delete [] internal_MEMORY_IN_ACK          ;
+//     delete [] internal_MEMORY_OUT_VAL         ;
+//     delete [] internal_MEMORY_OUT_SELECT_QUEUE;
+//     delete [] internal_MEMORY_OUT_PTR         ;
     
-    delete    out_DCACHE_REQ_VAL       ;
-    delete     in_DCACHE_REQ_ACK       ;
-    if (_param->_have_port_dcache_context_id)
-    delete    out_DCACHE_REQ_CONTEXT_ID;
-    delete    out_DCACHE_REQ_PACKET_ID ;
-    delete    out_DCACHE_REQ_ADDRESS   ;
-    delete    out_DCACHE_REQ_TYPE      ;
-    delete    out_DCACHE_REQ_WDATA     ;
-    
-    delete     in_DCACHE_RSP_VAL       ;
-    delete    out_DCACHE_RSP_ACK       ;
-    if (_param->_have_port_dcache_context_id)
-    delete     in_DCACHE_RSP_CONTEXT_ID;
-    delete     in_DCACHE_RSP_PACKET_ID ;
-    delete     in_DCACHE_RSP_RDATA     ;
-    delete     in_DCACHE_RSP_ERROR     ;
-    
-    delete [] out_BYPASS_MEMORY_VAL       ;
-    if (_param->_have_port_ooo_engine_id)    
-    delete [] out_BYPASS_MEMORY_OOO_ENGINE_ID;
-    delete [] out_BYPASS_MEMORY_NUM_REG   ;
-    delete [] out_BYPASS_MEMORY_DATA      ;
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+//     delete [] internal_DCACHE_RSP_ACK         ;
+//     delete [] internal_DCACHE_REQ_VAL         ;
+//     delete [] internal_DCACHE_REQ_SELECT_QUEUE;
+
+//     delete [] internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ;
+      }
+
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
     delete    _component;
