#ifdef SYSTEMC
/*
 * $Id: Special_Register_unit_genMoore.cpp 123 2009-06-08 20:43:30Z rosiere $
 *
 * [ Description ]
 * 
 */

#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h"

namespace morpheo                    {
namespace behavioural {
namespace core {
namespace multi_ooo_engine {
namespace ooo_engine {
namespace special_register_unit {


#undef  FUNCTION
#define FUNCTION "Special_Register_unit::genMoore"
  void Special_Register_unit::genMoore (void)
  {
    log_begin(Special_Register_unit,FUNCTION);
    log_function(Special_Register_unit,FUNCTION,_name.c_str());

//     if (PORT_READ(in_NRESET))
      {
    // ===================================================================
    // =====[ SPR_READ ]==================================================
    // ===================================================================
    for (uint32_t i=0; i<_param->_nb_front_end; i++)
      for (uint32_t j=0; j<_param->_nb_context[i]; j++)
 	PORT_WRITE(out_SPR_READ_SR [i][j],_spr [i][j][GROUP_SYSTEM_AND_CONTROL][SPR_SR]->read());
// 	{
// 	  SR * sr = static_cast<SR*>(_spr [i][j][GROUP_SYSTEM_AND_CONTROL][SPR_SR]);
// 	  PORT_WRITE(out_SPR_READ_SR [i][j],sr->read());
// 	}
      }

    log_end(Special_Register_unit,FUNCTION);
  };

}; // end namespace special_register_unit
}; // end namespace ooo_engine
}; // end namespace multi_ooo_engine
}; // end namespace core

}; // end namespace behavioural
}; // end namespace morpheo              
#endif
