/*
 * $Id: top_deallocation.cpp 113 2009-04-14 18:39:12Z rosiere $
 *
 * [ Description ]
 * 
 * Test
 */
#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
#include "Behavioural/include/Allocation.h"

void top::deallocation (void)
{
#ifdef SYSTEMC
  delete             in_CLOCK;
  DELETE0_SC_SIGNAL( in_NRESET);

  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_VAL           );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_IN_ACK           );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_CONTEXT_ID    );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_FRONT_END_ID  );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_OOO_ENGINE_ID );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_PACKET_ID     );
//DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_OPERATION     );
//DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_TYPE          );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_WRITE_RD      );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RD    );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_DATA_RD       );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_WRITE_RE      );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RE    );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_DATA_RE       );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_EXCEPTION     );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_NO_SEQUENCE   );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_ADDRESS       );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_VAL          );
  DELETE0_SC_SIGNAL( in_WRITE_UNIT_OUT_ACK          );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_CONTEXT_ID   );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_FRONT_END_ID );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_OOO_ENGINE_ID);
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_PACKET_ID    );
//DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_OPERATION    );
//DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_TYPE         );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_FLAGS        );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_EXCEPTION    );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_NO_SEQUENCE  );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_ADDRESS      );
  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_DATA         );
  DELETE1_SC_SIGNAL(out_GPR_WRITE_VAL               , _param->_nb_gpr_write);
  DELETE1_SC_SIGNAL( in_GPR_WRITE_ACK               , _param->_nb_gpr_write);
  DELETE1_SC_SIGNAL(out_GPR_WRITE_OOO_ENGINE_ID     , _param->_nb_gpr_write);
  DELETE1_SC_SIGNAL(out_GPR_WRITE_NUM_REG           , _param->_nb_gpr_write);
  DELETE1_SC_SIGNAL(out_GPR_WRITE_DATA              , _param->_nb_gpr_write);
  DELETE1_SC_SIGNAL(out_SPR_WRITE_VAL               , _param->_nb_spr_write);
  DELETE1_SC_SIGNAL( in_SPR_WRITE_ACK               , _param->_nb_spr_write);
  DELETE1_SC_SIGNAL(out_SPR_WRITE_OOO_ENGINE_ID     , _param->_nb_spr_write);
  DELETE1_SC_SIGNAL(out_SPR_WRITE_NUM_REG           , _param->_nb_spr_write);
  DELETE1_SC_SIGNAL(out_SPR_WRITE_DATA              , _param->_nb_spr_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_OOO_ENGINE_ID  , _param->_nb_bypass_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_VAL        , _param->_nb_bypass_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_NUM_REG    , _param->_nb_bypass_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_DATA       , _param->_nb_bypass_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_VAL        , _param->_nb_bypass_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_NUM_REG    , _param->_nb_bypass_write);
  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_DATA       , _param->_nb_bypass_write);
#endif

  delete component;
#ifdef STATISTICS
  delete _param_stat;
#endif
}
