Changeset 78 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src
- Timestamp:
- Mar 27, 2008, 11:04:49 AM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp
r77 r78 71 71 in_EXECUTE_IN_OPERATION = interface->set_signal_in <Toperation_t > ("operation" , _param->_size_operation ); 72 72 in_EXECUTE_IN_TYPE = interface->set_signal_in <Ttype_t > ("type" , _param->_size_type ); 73 in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("store_queue_ptr_write",log2(_param->_size_store_queue)); 74 if (_param->_have_port_load_queue_ptr) 75 in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("load_queue_ptr_write" ,log2(_param->_size_load_queue)); 73 76 in_EXECUTE_IN_HAS_IMMEDIAT = interface->set_signal_in <Tcontrol_t > ("has_immediat" , 1); 74 77 in_EXECUTE_IN_IMMEDIAT = interface->set_signal_in <Tgeneral_data_t > ("immediat" , _param->_size_general_data); … … 102 105 out_EXECUTE_OUT_PACKET_ID = interface->set_signal_out<Tpacket_t > ("packet_id" ,_param->_size_packet_id ); 103 106 //out_EXECUTE_OUT_OPERATION = interface->set_signal_out<Toperation_t > ("operation" ,_param->_size_operation ); 104 //out_EXECUTE_OUT_TYPE = interface->set_signal_out<Ttype_t > ("type" ,_param->_size_type );107 out_EXECUTE_OUT_TYPE = interface->set_signal_out<Ttype_t > ("type" ,_param->_size_type ); 105 108 out_EXECUTE_OUT_WRITE_RD = interface->set_signal_out<Tcontrol_t > ("write_rd" ,1); 106 109 out_EXECUTE_OUT_NUM_REG_RD = interface->set_signal_out<Tgeneral_address_t> ("num_reg_rd" ,_param->_size_general_register); … … 111 114 out_EXECUTE_OUT_EXCEPTION = interface->set_signal_out<Texception_t > ("exception" ,_param->_size_exception); 112 115 out_EXECUTE_OUT_NO_SEQUENCE = interface->set_signal_out<Tcontrol_t > ("no_sequence" ,1); 113 out_EXECUTE_OUT_ADDRESS = interface->set_signal_out<Tgeneral_data_t > ("address ",_param->_size_general_data);116 out_EXECUTE_OUT_ADDRESS = interface->set_signal_out<Tgeneral_data_t > ("address" ,_param->_size_general_data); 114 117 } 115 118 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp
r76 r78 41 41 delete in_EXECUTE_IN_OPERATION ; 42 42 delete in_EXECUTE_IN_TYPE ; 43 delete in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE; 44 if (_param->_have_port_load_queue_ptr) 45 delete in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE ; 43 46 delete in_EXECUTE_IN_HAS_IMMEDIAT ; 44 47 delete in_EXECUTE_IN_IMMEDIAT ; … … 62 65 delete out_EXECUTE_OUT_PACKET_ID ; 63 66 //delete out_EXECUTE_OUT_OPERATION ; 64 //delete out_EXECUTE_OUT_TYPE ;67 delete out_EXECUTE_OUT_TYPE ; 65 68 delete out_EXECUTE_OUT_WRITE_RD ; 66 69 delete out_EXECUTE_OUT_NUM_REG_RD ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMoore.cpp
r72 r78 37 37 PORT_WRITE(out_EXECUTE_OUT_PACKET_ID ,_execute_operation->_packet_id ); 38 38 //PORT_WRITE(out_EXECUTE_OUT_OPERATION ,_execute_operation->_operation ); 39 //PORT_WRITE(out_EXECUTE_OUT_TYPE ,_execute_operation->_type );39 PORT_WRITE(out_EXECUTE_OUT_TYPE ,_execute_operation->_type ); 40 40 PORT_WRITE(out_EXECUTE_OUT_WRITE_RD ,_execute_operation->_write_rd ); 41 41 PORT_WRITE(out_EXECUTE_OUT_NUM_REG_RD ,_execute_operation->_num_reg_rd ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters.cpp
r77 r78 28 28 uint32_t size_special_data , 29 29 uint32_t nb_special_register, 30 uint32_t size_store_queue , 31 uint32_t size_load_queue , 30 32 execute_timing_t** timing , 31 33 morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t)) : … … 38 40 _size_special_data (size_special_data ), 39 41 _nb_special_register (nb_special_register ), 40 42 _size_store_queue (size_store_queue ), 43 _size_load_queue (size_load_queue ), 44 41 45 _size_context_id (log2(nb_context )), 42 46 _size_front_end_id (log2(nb_front_end )), 43 47 _size_ooo_engine_id (log2(nb_ooo_engine )), 44 48 _size_packet_id (log2(nb_packet )), 45 _size_general_register (log2( _size_general_register)),46 _size_special_register (log2( _size_special_register)),49 _size_general_register (log2(nb_general_register)), 50 _size_special_register (log2(nb_special_register)), 47 51 48 52 _have_port_context_id (_size_context_id > 0), … … 50 54 _have_port_ooo_engine_id (_size_ooo_engine_id > 0), 51 55 _have_port_packet_id (_size_packet_id > 0), 56 _have_port_load_queue_ptr(_size_load_queue > 1), 52 57 53 58 _have_groupe_MAC ( (timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC ]._latence > 0) or … … 58 63 59 64 _timing = timing; 60 _get_custom_information = get_custom_information; 65 66 if (get_custom_information == NULL) 67 _get_custom_information = &(morpheo::behavioural::custom::default_get_custom_information); 68 else 69 _get_custom_information = get_custom_information; 61 70 62 71 test(); … … 76 85 _size_special_data (param._size_special_data ), 77 86 _nb_special_register (param._nb_special_register ), 87 _size_store_queue (param._size_store_queue ), 88 _size_load_queue (param._size_load_queue ), 78 89 79 90 _size_context_id (param._size_context_id ), … … 88 99 _have_port_ooo_engine_id (param._have_port_ooo_engine_id), 89 100 _have_port_packet_id (param._have_port_packet_id ), 101 _have_port_load_queue_ptr(param._have_port_load_queue_ptr), 90 102 91 103 _have_groupe_MAC (param._have_groupe_MAC ) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters_msg_error.cpp
r77 r78 22 22 #undef FUNCTION 23 23 #define FUNCTION "Functionnal_unit::msg_error" 24 std::stringParameters::msg_error(void)24 Parameters_test Parameters::msg_error(void) 25 25 { 26 26 log_printf(FUNC,Functionnal_unit,FUNCTION,"Begin"); 27 27 28 std::string msg = "";28 Parameters_test test("Functionnal_unit"); 29 29 30 30 for (uint32_t i=0; i<_nb_type; i++) 31 31 for (uint32_t j=0; j<_nb_operation; j++) 32 32 if (_timing[i][j]._delay != _timing[i][j]._latence) 33 msg = " - For the type '"+toString(i)+"', and the operation '"+toString(j)+"', the delay and the latence must be equal.";33 test.error("For the type '"+toString(i)+"', and the operation '"+toString(j)+"', the delay and the latence must be equal."); 34 34 35 35 if (_have_groupe_MAC and ((_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC ]._latence == 0) or 36 36 (_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MACRC]._latence == 0) or 37 37 (_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MSB ]._latence == 0))) 38 msg = " - The functionnal unit implement a MAC unit, the latence to operation OPERATION_ALU_L_MAC, OPERATION_ALU_L_MACRC and OPERATION_ALU_L_MSB must be higher than 0."; 39 40 return msg; 38 test.error("The functionnal unit implement a MAC unit, the latence to operation OPERATION_ALU_L_MAC, OPERATION_ALU_L_MACRC and OPERATION_ALU_L_MSB must be higher than 0."); 41 39 42 40 log_printf(FUNC,Functionnal_unit,FUNCTION,"End"); 41 42 return test; 43 43 }; 44 44
Note: See TracChangeset
for help on using the changeset viewer.