/*
 * $Id: Ifetch_unit_Glue_deallocation.cpp 112 2009-03-18 22:36:26Z rosiere $
 *
 * [ Description ]
 * 
 */

#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h"
#include "Behavioural/include/Allocation.h"

namespace morpheo                    {
namespace behavioural {
namespace core {
namespace multi_front_end {
namespace front_end {
namespace ifetch_unit {
namespace ifetch_unit_glue {


#undef  FUNCTION
#define FUNCTION "Ifetch_unit_Glue::deallocation"
  void Ifetch_unit_Glue::deallocation (void)
  {
    log_printf(FUNC,Ifetch_unit_Glue,FUNCTION,"Begin");

    if (usage_is_set(_usage,USE_SYSTEMC))
      {
	delete     in_CLOCK ;
	delete     in_NRESET;

        DELETE0_SIGNAL(out_ICACHE_REQ_VAL            ,1);
        DELETE0_SIGNAL( in_ICACHE_REQ_ADDRESS_VAL    ,1);
        DELETE0_SIGNAL(out_ICACHE_REQ_QUEUE_VAL      ,1);
        DELETE0_SIGNAL( in_ICACHE_REQ_ACK            ,1);
        DELETE0_SIGNAL(out_ICACHE_REQ_ADDRESS_ACK    ,1);
        DELETE0_SIGNAL( in_ICACHE_REQ_QUEUE_ACK      ,1);
        DELETE0_SIGNAL(out_ICACHE_REQ_TYPE           ,_param->_size_icache_type);
        DELETE0_SIGNAL(out_ICACHE_REQ_ADDRESS        ,_param->_size_instruction_address);
        DELETE0_SIGNAL( in_ICACHE_REQ_ADDRESS_ADDRESS,_param->_size_instruction_address);
        DELETE0_SIGNAL(out_ICACHE_REQ_QUEUE_ADDRESS  ,_param->_size_instruction_address);
        
        DELETE0_SIGNAL( in_EVENT_VAL        ,1);
        DELETE0_SIGNAL(out_EVENT_ADDRESS_VAL,1);
        DELETE0_SIGNAL(out_EVENT_QUEUE_VAL  ,1);
        DELETE0_SIGNAL(out_EVENT_ACK        ,1);
        DELETE0_SIGNAL( in_EVENT_ADDRESS_ACK,1);
        DELETE0_SIGNAL( in_EVENT_QUEUE_ACK  ,1);
      }
    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    

    delete _component;

    log_printf(FUNC,Ifetch_unit_Glue,FUNCTION,"End");
  };

}; // end namespace ifetch_unit_glue
}; // end namespace ifetch_unit
}; // end namespace front_end
}; // end namespace multi_front_end
}; // end namespace core

}; // end namespace behavioural
}; // end namespace morpheo              
