Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp	(revision 86)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp	(revision 88)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -27,78 +28,83 @@
 	delete    in_CLOCK ;
 	delete    in_NRESET;
+      
+        DELETE2_SIGNAL( in_IFETCH_VAL        , _param->_nb_context, _param->_nb_inst_fetch[it1],1);
+        DELETE2_SIGNAL(out_IFETCH_ACK        , _param->_nb_context, _param->_nb_inst_fetch[it1],1);
+        DELETE2_SIGNAL( in_IFETCH_INSTRUCTION, _param->_nb_context, _param->_nb_inst_fetch[it1],_param->_size_instruction);
+      
+        DELETE1_SIGNAL(in_IFETCH_CONTEXT_ID                 , _param->_nb_context,_param->_size_context_id      );
+        DELETE1_SIGNAL(in_IFETCH_ADDRESS                    , _param->_nb_context,_param->_size_instruction_address    );
+//      DELETE1_SIGNAL(in_IFETCH_ADDRESS_NEXT               , _param->_nb_context,_param->_size_instruction_address    );
+        DELETE1_SIGNAL(in_IFETCH_INST_IFETCH_PTR            , _param->_nb_context,_param->_size_inst_ifetch_ptr );
+        DELETE1_SIGNAL(in_IFETCH_BRANCH_STATE               , _param->_nb_context,_param->_size_branch_state    );
+        DELETE1_SIGNAL(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID, _param->_nb_context,_param->_size_depth           );
+        DELETE1_SIGNAL(in_IFETCH_EXCEPTION                  , _param->_nb_context,_param->_size_exception_ifetch);
 
-	delete []  in_IFETCH_VAL                         ;
-	delete [] out_IFETCH_ACK                         ;
-	delete []  in_IFETCH_INSTRUCTION                 ;
-	if (_param->_have_port_context_id)
-	delete []  in_IFETCH_CONTEXT_ID                  ;
-	delete []  in_IFETCH_ADDRESS                     ;
-// 	delete []  in_IFETCH_ADDRESS_NEXT                ;
-	if (_param->_have_port_inst_ifetch_ptr)
-	delete []  in_IFETCH_INST_IFETCH_PTR             ;
-	delete []  in_IFETCH_BRANCH_STATE                ;
-	if (_param->_have_port_branch_update_prediction_id)
-	delete []  in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ;
+        DELETE1_SIGNAL(out_DECOD_VAL          ,_param->_nb_inst_decod,1);
+        DELETE1_SIGNAL( in_DECOD_ACK          ,_param->_nb_inst_decod,1);
+        DELETE1_SIGNAL(out_DECOD_CONTEXT_ID   ,_param->_nb_inst_decod,_param->_size_context_id            );
+        DELETE1_SIGNAL(out_DECOD_DEPTH        ,_param->_nb_inst_decod,_param->_size_depth                 );
+        DELETE1_SIGNAL(out_DECOD_TYPE         ,_param->_nb_inst_decod,_param->_size_type                  );
+        DELETE1_SIGNAL(out_DECOD_OPERATION    ,_param->_nb_inst_decod,_param->_size_operation             );
+        DELETE1_SIGNAL(out_DECOD_NO_EXECUTE   ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_ADDRESS      ,_param->_nb_inst_decod,_param->_size_instruction_address          );
+        DELETE1_SIGNAL(out_DECOD_HAS_IMMEDIAT ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_IMMEDIAT     ,_param->_nb_inst_decod,_param->_size_general_data          );
+        DELETE1_SIGNAL(out_DECOD_READ_RA      ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_NUM_REG_RA   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
+        DELETE1_SIGNAL(out_DECOD_READ_RB      ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_NUM_REG_RB   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
+        DELETE1_SIGNAL(out_DECOD_READ_RC      ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_NUM_REG_RC   ,_param->_nb_inst_decod,_param->_size_special_register_logic);
+        DELETE1_SIGNAL(out_DECOD_WRITE_RD     ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_NUM_REG_RD   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
+        DELETE1_SIGNAL(out_DECOD_WRITE_RE     ,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_NUM_REG_RE   ,_param->_nb_inst_decod,_param->_size_special_register_logic);
+        DELETE1_SIGNAL(out_DECOD_EXCEPTION_USE,_param->_nb_inst_decod,_param->_size_exception_use         );
+        DELETE1_SIGNAL(out_DECOD_EXCEPTION    ,_param->_nb_inst_decod,_param->_size_exception_decod       );
 
-	delete [] out_DECOD_VAL                          ;
-	delete []  in_DECOD_ACK                          ;
-	if (_param->_have_port_context_id)
-	delete [] out_DECOD_CONTEXT_ID                   ;
-	if (_param->_have_port_depth)
-	delete [] out_DECOD_DEPTH                        ;
-	delete [] out_DECOD_TYPE                         ;
-	delete [] out_DECOD_OPERATION                    ;
-	delete [] out_DECOD_IS_DELAY_SLOT                ;
-	delete [] out_DECOD_ADDRESS                      ;
-	delete [] out_DECOD_HAS_IMMEDIAT                 ;
-	delete [] out_DECOD_IMMEDIAT                     ;
-	delete [] out_DECOD_READ_RA                      ;
-	delete [] out_DECOD_NUM_REG_RA                   ;
-	delete [] out_DECOD_READ_RB                      ;
-	delete [] out_DECOD_NUM_REG_RB                   ;
-	delete [] out_DECOD_READ_RC                      ;
-	delete [] out_DECOD_NUM_REG_RC                   ;
-	delete [] out_DECOD_WRITE_RD                     ;
-	delete [] out_DECOD_NUM_REG_RD                   ;
-	delete [] out_DECOD_WRITE_RE                     ;
-	delete [] out_DECOD_NUM_REG_RE                   ;
-	delete [] out_DECOD_EXCEPTION_USE                ;
+        DELETE1_SIGNAL(out_PREDICT_VAL                        ,_param->_nb_inst_decod,1);
+        DELETE1_SIGNAL( in_PREDICT_ACK                        ,_param->_nb_inst_decod,1);
+        DELETE1_SIGNAL(out_PREDICT_CONTEXT_ID                 ,_param->_nb_inst_decod,_param->_size_context_id      );
+        DELETE1_SIGNAL(out_PREDICT_MATCH_INST_IFETCH_PTR      ,_param->_nb_inst_decod,1                             );
+        DELETE1_SIGNAL(out_PREDICT_BRANCH_STATE               ,_param->_nb_inst_decod,_param->_size_branch_state    );
+        DELETE1_SIGNAL(out_PREDICT_BRANCH_UPDATE_PREDICTION_ID,_param->_nb_inst_decod,_param->_size_depth           );
+        DELETE1_SIGNAL(out_PREDICT_BRANCH_CONDITION           ,_param->_nb_inst_decod,_param->_size_branch_condition);
+//      DELETE1_SIGNAL(out_PREDICT_BRANCH_STACK_WRITE         ,_param->_nb_inst_decod,1                             );
+        DELETE1_SIGNAL(out_PREDICT_BRANCH_DIRECTION           ,_param->_nb_inst_decod,1                             );
+        DELETE1_SIGNAL(out_PREDICT_ADDRESS_SRC                ,_param->_nb_inst_decod,_param->_size_instruction_address    );
+        DELETE1_SIGNAL(out_PREDICT_ADDRESS_DEST               ,_param->_nb_inst_decod,_param->_size_instruction_address    );
+//      DELETE1_SIGNAL( in_PREDICT_CAN_CONTINUE               ,_param->_nb_inst_decod,1                             );
 
-	delete [] out_PREDICT_VAL                        ;
-	delete []  in_PREDICT_ACK                        ;
-	if (_param->_have_port_context_id)
-	delete [] out_PREDICT_CONTEXT_ID                 ;
-	delete [] out_PREDICT_BRANCH_STATE               ;
-	delete [] out_PREDICT_MATCH_INST_IFETCH_PTR      ;
-	if (_param->_have_port_branch_update_prediction_id)
-	delete [] out_PREDICT_BRANCH_UPDATE_PREDICTION_ID;
-	delete [] out_PREDICT_BRANCH_CONDITION           ;
-// 	delete [] out_PREDICT_BRANCH_STACK_WRITE         ;
-	delete [] out_PREDICT_BRANCH_DIRECTION           ;
-	delete [] out_PREDICT_ADDRESS_SRC                ;
-	delete [] out_PREDICT_ADDRESS_DEST               ;
-// 	delete []  in_PREDICT_CAN_CONTINUE               ;
+        DELETE1_SIGNAL(in_CONTEXT_DECOD_ENABLE, _param->_nb_context,1);
+        DELETE1_SIGNAL(in_CONTEXT_DEPTH       , _param->_nb_context,_param->_size_depth);
 
-	delete []  in_CONTEXT_DECOD_ENABLE               ;
-	if (_param->_have_port_depth)
-	delete []  in_CONTEXT_DEPTH                      ;
+        DELETE_SIGNAL (out_CONTEXT_EVENT_VAL          ,1);
+        DELETE_SIGNAL ( in_CONTEXT_EVENT_ACK          ,1);
+        DELETE_SIGNAL (out_CONTEXT_EVENT_CONTEXT_ID   ,_param->_size_context_id  );
+        DELETE_SIGNAL (out_CONTEXT_EVENT_DEPTH        ,_param->_size_depth       );
+        DELETE_SIGNAL (out_CONTEXT_EVENT_TYPE         ,_param->_size_event_type  );
+        DELETE_SIGNAL (out_CONTEXT_EVENT_IS_DELAY_SLOT,1                         );
+        DELETE_SIGNAL (out_CONTEXT_EVENT_ADDRESS      ,_param->_size_instruction_address);
+        DELETE_SIGNAL (out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address);
 
-	delete    out_CONTEXT_EVENT_VAL                  ;
-	delete     in_CONTEXT_EVENT_ACK                  ;
-	if (_param->_have_port_context_id)
-	delete    out_CONTEXT_EVENT_CONTEXT_ID           ;
-	delete    out_CONTEXT_EVENT_TYPE                 ;
-	delete    out_CONTEXT_EVENT_IS_DELAY_SLOT        ;
-	delete    out_CONTEXT_EVENT_ADDRESS              ;
-	delete    out_CONTEXT_EVENT_ADDRESS_EPCR         ;
+
+    
+        delete    reg_CONTEXT_ADDRESS_PREVIOUS      ;
+        delete [] reg_CONTEXT_IS_DELAY_SLOT         ;
+        
+        delete [] internal_CONTEXT_HAVE_TRANSACTION ;
+        delete [] internal_CONTEXT_ADDRESS_PREVIOUS ;
+        delete [] internal_CONTEXT_IS_DELAY_SLOT    ;
+        
+#ifdef STATISTICS
+        delete [] internal_DECOD_VAL;
+#endif
       }
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-    delete    reg_CONTEXT_ADDRESS_PREVIOUS      ;
-    delete    reg_CONTEXT_IS_DELAY_SLOT         ;
+    delete    _priority;
 
-    delete    internal_CONTEXT_HAVE_TRANSACTION ;
-    delete    internal_CONTEXT_ADDRESS_PREVIOUS ;
-    delete    internal_CONTEXT_IS_DELAY_SLOT    ;
 
     const uint32_t nb_opcod_type = 14;
