Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (15 years ago)
- File:
-
- 1 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
r81 r88 67 67 if (_param->_have_port_ooo_engine_id) 68 68 in_EXECUTE_IN_OOO_ENGINE_ID = interface->set_signal_in <Tcontext_t > ("ooo_engine_id", _param->_size_ooo_engine_id); 69 if (_param->_have_port_ packet_id)70 in_EXECUTE_IN_PACKET_ID = interface->set_signal_in <Tpacket_t > ("packet_id" , _param->_size_ packet_id);69 if (_param->_have_port_rob_ptr) 70 in_EXECUTE_IN_PACKET_ID = interface->set_signal_in <Tpacket_t > ("packet_id" , _param->_size_rob_ptr ); 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));73 in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("store_queue_ptr_write",_param->_size_store_queue_ptr); 74 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));75 in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("load_queue_ptr_write" ,_param->_size_load_queue_ptr); 76 76 in_EXECUTE_IN_HAS_IMMEDIAT = interface->set_signal_in <Tcontrol_t > ("has_immediat" , 1); 77 77 in_EXECUTE_IN_IMMEDIAT = interface->set_signal_in <Tgeneral_data_t > ("immediat" , _param->_size_general_data); … … 102 102 if (_param->_have_port_ooo_engine_id) 103 103 out_EXECUTE_OUT_OOO_ENGINE_ID = interface->set_signal_out<Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id); 104 if (_param->_have_port_ packet_id)105 out_EXECUTE_OUT_PACKET_ID = interface->set_signal_out<Tpacket_t > ("packet_id" ,_param->_size_ packet_id);104 if (_param->_have_port_rob_ptr) 105 out_EXECUTE_OUT_PACKET_ID = interface->set_signal_out<Tpacket_t > ("packet_id" ,_param->_size_rob_ptr ); 106 106 //out_EXECUTE_OUT_OPERATION = interface->set_signal_out<Toperation_t > ("operation" ,_param->_size_operation ); 107 107 out_EXECUTE_OUT_TYPE = interface->set_signal_out<Ttype_t > ("type" ,_param->_size_type ); … … 117 117 } 118 118 119 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 120 _execute_operation = new execute_operation_t; 121 _execute_param = new execute_param_t(_param->_size_general_data, 122 _param->_timing); 119 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 120 if (usage_is_set(_usage,USE_SYSTEMC)) 121 { 122 _execute_operation_in = new execute_operation_t; 123 _execute_operation_out = new execute_operation_t; 124 _execute_param = new execute_param_t(_param->_size_general_data, 125 _param->_timing); 123 126 124 127 _execute_register = new execute_register_t *** [_param->_nb_context]; … … 134 137 for (uint32_t k=0; k<_param->_nb_ooo_engine; k++) 135 138 { 136 uint32_t num_thread = get_num_thread(i,_param->_size_context_id,137 j,_param->_size_front_end_id,138 k,_param->_size_ooo_engine_id);139 // uint32_t num_thread = get_num_thread(i,_param->_size_context_id, 140 // j,_param->_size_front_end_id, 141 // k,_param->_size_ooo_engine_id); 139 142 140 143 _execute_register [i][j][k] = new execute_register_t; … … 144 147 145 148 for (uint32_t x=GROUP_CUSTOM_1; x<GROUP_CUSTOM_8; x++) 146 if ((_param->_get_custom_information( num_thread))._get_valid_group(x) == true)149 if ((_param->_get_custom_information())._get_valid_group(x) == true) 147 150 { 148 uint32_t nb_reg = (_param->_get_custom_information( num_thread))._get_nb_register(x);151 uint32_t nb_reg = (_param->_get_custom_information())._get_nb_register(x); 149 152 _execute_register[i][j][k]->implement_group(x,nb_reg); 150 153 151 154 for (uint32_t y=0; y<nb_reg; y++) 152 _execute_register[i][j][k]->_spr_access_mode->change_mode(x,y,(_param->_get_custom_information( num_thread))._get_access_mode(x,y));155 _execute_register[i][j][k]->_spr_access_mode->change_mode(x,y,(_param->_get_custom_information())._get_access_mode(x,y)); 153 156 } 154 157 } … … 211 214 if (_param->_timing[TYPE_TEST ][OPERATION_TEST_L_SFNE ]._latence > 0) 212 215 _function_execute[TYPE_TEST ][OPERATION_TEST_L_SFNE ] = &(operation_l_sfne ); 213 // if (_param->_timing[TYPE_MUL _DIV][OPERATION_MUL_DIV_L_MUL]._latence > 0)214 // _function_execute[TYPE_MUL _DIV][OPERATION_MUL_DIV_L_MUL] = &(operation_l_mul );215 // if (_param->_timing[TYPE_MUL _DIV][OPERATION_MUL_DIV_L_MULU]._latence > 0)216 // _function_execute[TYPE_ MUL_DIV][OPERATION_MUL_DIV_L_MULU] = &(operation_l_mulu );217 // if (_param->_timing[TYPE_ MUL_DIV][OPERATION_MUL_DIV_L_DIV]._latence > 0)218 // _function_execute[TYPE_ MUL_DIV][OPERATION_MUL_DIV_L_DIV] = &(operation_l_div );219 // if (_param->_timing[TYPE_ MUL_DIV][OPERATION_MUL_DIV_L_DIVU]._latence > 0)220 // _function_execute[TYPE_ MUL_DIV][OPERATION_MUL_DIV_L_DIVU] = &(operation_l_divu );216 // if (_param->_timing[TYPE_MUL ][OPERATION_MUL_L_MUL ]._latence > 0) 217 // _function_execute[TYPE_MUL ][OPERATION_MUL_L_MUL ] = &(operation_l_mul ); 218 // if (_param->_timing[TYPE_MUL ][OPERATION_MUL_L_MULU ]._latence > 0) 219 // _function_execute[TYPE_DIV ][OPERATION_MUL_L_MULU ] = &(operation_l_mulu ); 220 // if (_param->_timing[TYPE_DIV ][OPERATION_DIV_L_DIV ]._latence > 0) 221 // _function_execute[TYPE_DIV ][OPERATION_DIV_L_DIV ] = &(operation_l_div ); 222 // if (_param->_timing[TYPE_DIV ][OPERATION_DIV_L_DIVU ]._latence > 0) 223 // _function_execute[TYPE_DIV ][OPERATION_DIV_L_DIVU ] = &(operation_l_divu ); 221 224 if (_param->_timing[TYPE_EXTEND ][OPERATION_EXTEND_L_EXTEND_S ]._latence > 0) 222 225 _function_execute[TYPE_EXTEND ][OPERATION_EXTEND_L_EXTEND_S ] = &(operation_l_extend_s); … … 243 246 if (_param->_timing[TYPE_BRANCH ][OPERATION_BRANCH_L_JALR ]._latence > 0) 244 247 _function_execute[TYPE_BRANCH ][OPERATION_BRANCH_L_JALR ] = &(operation_l_jalr ); 245 246 247 248 #ifdef POSITION 249 _component->generate_file();248 } 249 250 #ifdef POSITION 251 if (usage_is_set(_usage,USE_POSITION)) 252 _component->generate_file(); 250 253 #endif 251 254
Note: See TracChangeset
for help on using the changeset viewer.