#ifdef SYSTEMC /* * $Id: Functionnal_unit_genMoore.cpp 88 2008-12-10 18:31:39Z rosiere $ * * [ Description ] * */ #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h" namespace morpheo { namespace behavioural { namespace core { namespace multi_execute_loop { namespace execute_loop { namespace multi_execute_unit { namespace execute_unit { namespace functionnal_unit { #undef FUNCTION #define FUNCTION "Functionnal_unit::genMealy" void Functionnal_unit::genMoore (void) { log_begin(Functionnal_unit,FUNCTION); log_function(Functionnal_unit,FUNCTION,_name.c_str()); { internal_EXECUTE_IN_ACK = not reg_BUSY_IN; PORT_WRITE(out_EXECUTE_IN_ACK , internal_EXECUTE_IN_ACK); } { internal_EXECUTE_OUT_VAL = reg_BUSY_OUT and (_execute_operation_out->_timing._latence == 0); PORT_WRITE(out_EXECUTE_OUT_VAL , internal_EXECUTE_OUT_VAL); if (_param->_have_port_context_id) PORT_WRITE(out_EXECUTE_OUT_CONTEXT_ID ,_execute_operation_out->_context_id ); if (_param->_have_port_front_end_id) PORT_WRITE(out_EXECUTE_OUT_FRONT_END_ID ,_execute_operation_out->_front_end_id ); if (_param->_have_port_ooo_engine_id) PORT_WRITE(out_EXECUTE_OUT_OOO_ENGINE_ID,_execute_operation_out->_ooo_engine_id); if (_param->_have_port_rob_ptr) PORT_WRITE(out_EXECUTE_OUT_PACKET_ID ,_execute_operation_out->_packet_id ); // PORT_WRITE(out_EXECUTE_OUT_OPERATION ,_execute_operation_out->_operation ); PORT_WRITE(out_EXECUTE_OUT_TYPE ,_execute_operation_out->_type ); PORT_WRITE(out_EXECUTE_OUT_WRITE_RD ,_execute_operation_out->_write_rd ); PORT_WRITE(out_EXECUTE_OUT_NUM_REG_RD ,_execute_operation_out->_num_reg_rd ); PORT_WRITE(out_EXECUTE_OUT_DATA_RD ,_execute_operation_out->_data_rd ); PORT_WRITE(out_EXECUTE_OUT_WRITE_RE ,_execute_operation_out->_write_re ); PORT_WRITE(out_EXECUTE_OUT_NUM_REG_RE ,_execute_operation_out->_num_reg_re ); PORT_WRITE(out_EXECUTE_OUT_DATA_RE ,_execute_operation_out->_data_re ); PORT_WRITE(out_EXECUTE_OUT_EXCEPTION ,_execute_operation_out->_exception ); PORT_WRITE(out_EXECUTE_OUT_NO_SEQUENCE ,_execute_operation_out->_no_sequence ); PORT_WRITE(out_EXECUTE_OUT_ADDRESS ,_execute_operation_out->_address ); } log_end(Functionnal_unit,FUNCTION); }; }; // end namespace functionnal_unit }; // end namespace execute_unit }; // end namespace multi_execute_unit }; // end namespace execute_loop }; // end namespace multi_execute_loop }; // end namespace core }; // end namespace behavioural }; // end namespace morpheo #endif