/*
 * $Id: RegisterFile_Monolithic_deallocation.cpp 81 2008-04-15 18:40:01Z rosiere $
 *
 * [ Description ]
 * 
 */

#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"

namespace morpheo                    {
namespace behavioural                {
namespace generic                    {
namespace registerfile               {
namespace registerfile_monolithic    {

  void RegisterFile_Monolithic::deallocation (void)
  {
    delete _component;

    if (_usage & USE_SYSTEMC)
      {
	delete    in_CLOCK;
	delete    in_NRESET;
	// ----- Interface Read
	delete []  in_READ_VAL    ;
	delete [] out_READ_ACK    ;
	if (_param->_have_port_address)
	delete []  in_READ_ADDRESS;
	delete [] out_READ_DATA   ;
	
	// ----- Interface Write
	delete []  in_WRITE_VAL    ;
	delete [] out_WRITE_ACK    ;
	if (_param->_have_port_address)
	delete []  in_WRITE_ADDRESS;
	delete []  in_WRITE_DATA   ;
	
	// ----- Interface Read_Write
	delete []  in_READ_WRITE_VAL    ;
	delete [] out_READ_WRITE_ACK    ;
	delete []  in_READ_WRITE_RW     ;
	if (_param->_have_port_address)
	delete []  in_READ_WRITE_ADDRESS;
	delete []  in_READ_WRITE_WDATA  ;
	delete [] out_READ_WRITE_RDATA  ;
	
	// ----- Register
	delete [] reg_DATA;
      }
  };

}; // end namespace registerfile_monolithic
}; // end namespace registerfile 
}; // end namespace generic
}; // end namespace behavioural          
}; // end namespace morpheo              
