- Timestamp:
- Apr 20, 2009, 11:29:17 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_deallocation.cpp
r112 r115 187 187 188 188 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 for (uint32_t i=0; i<_param->_nb_bank; ++i) 190 while(not _rob[i].empty()) 191 { 192 entry_t * entry = _rob[i].front(); 193 delete entry; 194 _rob[i].pop_front(); 195 } 196 189 197 DELETE2(_nb_cycle_idle ,_param->_nb_front_end,_param->_nb_context [it1]); 190 198 DELETE1(_rob ,_param->_nb_bank); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp
r114 r115 28 28 { 29 29 // Clear all bank 30 for (uint32_t i=0; i<_param->_nb_bank; i++)30 for (uint32_t i=0; i<_param->_nb_bank; ++i) 31 31 { 32 _rob [i].clear(); 32 while(not _rob[i].empty()) 33 { 34 delete _rob[i].front(); 35 _rob[i].pop_front(); 36 } 33 37 reg_BANK_PTR [i] = 0; 34 38 } … … 126 130 127 131 Texception_t exception = PORT_READ(in_INSERT_EXCEPTION [x][y]); 132 Tcontrol_t no_execute = PORT_READ(in_INSERT_NO_EXECUTE [x][y]); 128 133 129 134 log_printf(TRACE,Commit_unit,FUNCTION," * front_end_id : %d",front_end_id); … … 147 152 entry->exception = exception; 148 153 entry->exception_use = PORT_READ(in_INSERT_EXCEPTION_USE [x][y]); 149 entry->use_store_queue = (type == TYPE_MEMORY) and ( is_store) ;150 entry->use_load_queue = (type == TYPE_MEMORY) and (not is_store) ;154 entry->use_store_queue = (type == TYPE_MEMORY) and ( is_store) and (not no_execute); 155 entry->use_load_queue = (type == TYPE_MEMORY) and (not is_store) and (not no_execute); 151 156 entry->store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE [x][y]); 152 157 entry->load_queue_ptr_write = (_param->_have_port_load_queue_ptr)?PORT_READ(in_INSERT_LOAD_QUEUE_PTR_WRITE [x][y]):0; … … 200 205 if (exception == EXCEPTION_NONE) 201 206 { 202 Tcontrol_t no_execute = PORT_READ(in_INSERT_NO_EXECUTE [x][y]);203 207 // no_execute : l.j, l.nop, l.rfe 204 208 … … 208 212 { 209 213 case TYPE_BRANCH : {entry->state=(no_execute==1)?ROB_BRANCH_COMPLETE:ROB_BRANCH_WAIT_END ; break;} 210 case TYPE_MEMORY : {entry->state=( is_store ==1)?ROB_STORE_WAIT_HEAD_OK:ROB_OTHER_WAIT_END; break;}214 case TYPE_MEMORY : {entry->state=(no_execute==1)?ROB_END_OK_SPECULATIVE:(entry->state=(is_store ==1)?ROB_STORE_WAIT_HEAD_OK:ROB_OTHER_WAIT_END); break;} 211 215 default : {entry->state=(no_execute==1)?ROB_END_OK_SPECULATIVE:ROB_OTHER_WAIT_END; break;} 212 216 } … … 331 335 default : 332 336 { 333 throw ERRORMORPHEO(FUNCTION,toString(_("Commit : invalid state value (%s).\n"),toString(state).c_str()));337 throw ERRORMORPHEO(FUNCTION,toString(_("Commit [%d] : Bank [%d][%d], invalid state value (%s).\n"),x,i,j,toString(state).c_str())); 334 338 break; 335 339 } … … 442 446 reg_NUM_BANK_HEAD = (reg_NUM_BANK_HEAD+1)%_param->_nb_bank; 443 447 448 delete entry; 444 449 _rob [num_bank].pop_front(); 445 delete entry;446 450 447 451 // Transaction on retire interface : reset watch dog timer. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_in_order_genMealy_issue_out.cpp
r111 r115 98 98 entry_t* entry = _issue_queue [num_bank].front(); 99 99 100 // have valid instruction, search a valid issue slot. 100 101 for (uint32_t j=0; j<_param->_nb_inst_issue; j++) 101 102 { 102 log_printf(TRACE,Issue_queue,FUNCTION," * Issue [%d]",j); 103 log_printf(TRACE,Issue_queue,FUNCTION," * issue_ack : %d",PORT_READ(in_ISSUE_OUT_ACK [j])); 104 log_printf(TRACE,Issue_queue,FUNCTION," * previous transaction : %d",val[j]); 105 log_printf(TRACE,Issue_queue,FUNCTION," * can issue type : %d",_param->_table_issue_type [j][entry->_type]); 103 Tcontrol_t issue_ack = PORT_READ(in_ISSUE_OUT_ACK [j]); 104 105 log_printf(TRACE,Issue_queue,FUNCTION," * Issue [%d]",j); 106 log_printf(TRACE,Issue_queue,FUNCTION," * issue_ack : %d",issue_ack); 107 log_printf(TRACE,Issue_queue,FUNCTION," * previous transaction : %d",val[j]); 108 log_printf(TRACE,Issue_queue,FUNCTION," * can issue type : %d",_param->_table_issue_type [j][entry->_type]); 106 109 107 110 // test if no previous transaction and can accept this type 108 if ( (val[j] == 0)and111 if (not val[j] and 109 112 _param->_table_issue_type [j][entry->_type] and 110 PORT_READ(in_ISSUE_OUT_ACK [j]))113 issue_ack) 111 114 { 112 log_printf(TRACE,Issue_queue,FUNCTION," * find : %d",j);115 log_printf(TRACE,Issue_queue,FUNCTION," * find !!!"); 113 116 114 117 // find a issue port -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_deallocation.cpp
r112 r115 99 99 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100 100 for (uint32_t i=0; i<_param->_nb_bank; i++) 101 if (not _reexecute_queue [i].empty() and (_reexecute_queue [i].front()->state == STATE_EMPTY))101 while (not _reexecute_queue [i].empty()) 102 102 { 103 entry_t * entry =_reexecute_queue [i].front();103 delete _reexecute_queue [i].front(); 104 104 _reexecute_queue [i].pop_front(); 105 delete entry;106 105 } 107 106 DELETE1(_reexecute_queue ,_param->_nb_bank); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/SelfTest/src/test.cpp
r108 r115 227 227 in_RENAME_IN_VAL [i][j]->write((rand()%100)<percent_transaction_rename_in); 228 228 in_RENAME_IN_FRONT_END_ID [i][j]->write(range<Tcontext_t >(rand(),_param->_size_front_end_id )); 229 in_RENAME_IN_CONTEXT_ID [i][j]->write(ran ge<Tcontext_t >(rand(),log2(_param->_nb_context[i]) ));229 in_RENAME_IN_CONTEXT_ID [i][j]->write(rand()%_param->_nb_context[i]); 230 230 in_RENAME_IN_DEPTH [i][j]->write(range<Tdepth_t >(rand(),_param->_size_depth )); 231 231 in_RENAME_IN_TYPE [i][j]->write(range<Ttype_t >(rand(),_param->_size_type )); … … 293 293 find = true; 294 294 295 Tcontext_t context_id = (_param->_have_port_context_id)?in_RENAME_IN_CONTEXT_ID [x][y]->read():0; 296 295 297 if (_param->_have_port_front_end_id) 296 298 TEST(Tcontext_t ,out_RENAME_OUT_FRONT_END_ID [i]->read(),in_RENAME_IN_FRONT_END_ID [x][y]->read()); 297 299 if (_param->_have_port_context_id) 298 TEST(Tcontext_t ,out_RENAME_OUT_CONTEXT_ID [i]->read(), in_RENAME_IN_CONTEXT_ID [x][y]->read());300 TEST(Tcontext_t ,out_RENAME_OUT_CONTEXT_ID [i]->read(),context_id); 299 301 if (_param->_have_port_depth) 300 302 TEST(Tdepth_t ,out_RENAME_OUT_DEPTH [i]->read(),in_RENAME_IN_DEPTH [x][y]->read()); 301 303 TEST(Ttype_t ,out_RENAME_OUT_TYPE [i]->read(),in_RENAME_IN_TYPE [x][y]->read()); 302 304 TEST(Toperation_t ,out_RENAME_OUT_OPERATION [i]->read(),in_RENAME_IN_OPERATION [x][y]->read()); 303 TEST(Tcontrol_t ,out_RENAME_OUT_NO_EXECUTE [i]->read(),in_RENAME_IN_NO_EXECUTE [x][y]->read()); 305 Tcontrol_t have_event = in_RETIRE_EVENT_STATE[x][context_id]->read() != EVENT_STATE_NO_EVENT; 306 Tcontrol_t no_execute = in_RENAME_IN_NO_EXECUTE [x][y]->read() or have_event; 307 TEST(Tcontrol_t ,out_RENAME_OUT_NO_EXECUTE [i]->read(),no_execute); 304 308 TEST(Tcontrol_t ,out_RENAME_OUT_IS_DELAY_SLOT[i]->read(),in_RENAME_IN_IS_DELAY_SLOT[x][y]->read()); 305 309 TEST(Tcontrol_t ,out_RENAME_OUT_HAS_IMMEDIAT [i]->read(),in_RENAME_IN_HAS_IMMEDIAT [x][y]->read()); 306 310 TEST(Tgeneral_data_t ,out_RENAME_OUT_IMMEDIAT [i]->read(),in_RENAME_IN_IMMEDIAT [x][y]->read()); 307 TEST(Tcontrol_t ,out_RENAME_OUT_READ_RA [i]->read(),in_RENAME_IN_READ_RA [x][y]->read() );311 TEST(Tcontrol_t ,out_RENAME_OUT_READ_RA [i]->read(),in_RENAME_IN_READ_RA [x][y]->read() and not have_event); 308 312 TEST(Tgeneral_address_t,out_RENAME_OUT_NUM_REG_RA [i]->read(),in_RENAME_IN_NUM_REG_RA [x][y]->read()); 309 TEST(Tcontrol_t ,out_RENAME_OUT_READ_RB [i]->read(),in_RENAME_IN_READ_RB [x][y]->read() );313 TEST(Tcontrol_t ,out_RENAME_OUT_READ_RB [i]->read(),in_RENAME_IN_READ_RB [x][y]->read() and not have_event); 310 314 TEST(Tgeneral_address_t,out_RENAME_OUT_NUM_REG_RB [i]->read(),in_RENAME_IN_NUM_REG_RB [x][y]->read()); 311 TEST(Tcontrol_t ,out_RENAME_OUT_READ_RC [i]->read(),in_RENAME_IN_READ_RC [x][y]->read() );315 TEST(Tcontrol_t ,out_RENAME_OUT_READ_RC [i]->read(),in_RENAME_IN_READ_RC [x][y]->read() and not have_event); 312 316 TEST(Tspecial_address_t,out_RENAME_OUT_NUM_REG_RC [i]->read(),in_RENAME_IN_NUM_REG_RC [x][y]->read()); 313 TEST(Tcontrol_t ,out_RENAME_OUT_WRITE_RD [i]->read(),in_RENAME_IN_WRITE_RD [x][y]->read() );317 TEST(Tcontrol_t ,out_RENAME_OUT_WRITE_RD [i]->read(),in_RENAME_IN_WRITE_RD [x][y]->read() and not have_event); 314 318 TEST(Tgeneral_address_t,out_RENAME_OUT_NUM_REG_RD [i]->read(),in_RENAME_IN_NUM_REG_RD [x][y]->read()); 315 TEST(Tcontrol_t ,out_RENAME_OUT_WRITE_RE [i]->read(),in_RENAME_IN_WRITE_RE [x][y]->read() );319 TEST(Tcontrol_t ,out_RENAME_OUT_WRITE_RE [i]->read(),in_RENAME_IN_WRITE_RE [x][y]->read() and not have_event); 316 320 TEST(Tspecial_address_t,out_RENAME_OUT_NUM_REG_RE [i]->read(),in_RENAME_IN_NUM_REG_RE [x][y]->read()); 317 321 TEST(Texception_t ,out_RENAME_OUT_EXCEPTION_USE[i]->read(),in_RENAME_IN_EXCEPTION_USE[x][y]->read()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp
r112 r115 64 64 65 65 log_printf(TRACE,Rename_select,FUNCTION," * in_RENAME_OUT_ACK : %d",PORT_READ(in_RENAME_OUT_ACK[i])); 66 67 66 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RENAME_IN_FRONT_END_ID [x][y]):0; 68 67 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RENAME_IN_CONTEXT_ID [x][y]):0; 68 69 log_printf(TRACE,Rename_select,FUNCTION," * front_end_id : %d",front_end_id); 70 log_printf(TRACE,Rename_select,FUNCTION," * context_id : %d",context_id); 69 71 70 Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y])); 71 // Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y])); 72 // Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y])); 73 // Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y])); 74 // Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y])); 75 // Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y])); 72 // Test if ROB is Flushed 73 Tevent_state_t event_state = PORT_READ(in_RETIRE_EVENT_STATE [x][context_id]); 74 Tcontrol_t have_event = (event_state != EVENT_STATE_NO_EVENT); 75 Tcontrol_t can_register_access = not have_event; 76 Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event); 77 Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y]) and can_register_access); 78 Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y]) and can_register_access); 79 Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y]) and can_register_access); 80 Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y]) and can_register_access); 81 Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]) and can_register_access); 82 // Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y])); 83 // Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y])); 84 // Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y])); 85 // Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y])); 86 // Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y])); 76 87 77 // Test if ROB is Flushed78 Tevent_state_t event_state = PORT_READ(in_RETIRE_EVENT_STATE [front_end_id][context_id]);79 Tcontrol_t can_register_access = (event_state == EVENT_STATE_NO_EVENT);88 log_printf(TRACE,Rename_select,FUNCTION," * event_state : %d",event_state); 89 log_printf(TRACE,Rename_select,FUNCTION," * no_execute (before) : %d",PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y])); 90 log_printf(TRACE,Rename_select,FUNCTION," * no_execute (after) : %d",no_execute); 80 91 81 Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y]) and can_register_access);82 Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y]) and can_register_access);83 Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y]) and can_register_access);84 Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y]) and can_register_access);85 Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]) and can_register_access);86 87 92 if (_param->_have_port_front_end_id) 88 93 PORT_WRITE(out_RENAME_OUT_FRONT_END_ID [i],front_end_id); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/SelfTest/src/test.cpp
r88 r115 58 58 ALLOC1_SC_SIGNAL(out_INSERT_EXCEPTION ,"out_INSERT_EXCEPTION ",Texception_t ,_param->_nb_inst_insert); 59 59 ALLOC1_SC_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW ,"out_INSERT_NUM_REG_RE_PHY_NEW ",Tspecial_address_t,_param->_nb_inst_insert); 60 ALLOC1_SC_SIGNAL(out_INSERT_NO_EXECUTE ,"out_INSERT_NO_EXECUTE ",Tcontrol_t ,_param->_nb_inst_insert); 61 60 62 ALLOC1_SC_SIGNAL( in_INSERT_RENAME_SELECT_VAL ," in_INSERT_RENAME_SELECT_VAL ",Tcontrol_t ,_param->_nb_inst_insert); 61 63 ALLOC1_SC_SIGNAL(out_INSERT_RENAME_SELECT_ACK ,"out_INSERT_RENAME_SELECT_ACK ",Tcontrol_t ,_param->_nb_inst_insert); … … 67 69 // ALLOC1_SC_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION_USE ," in_INSERT_RENAME_SELECT_EXCEPTION_USE ",Texception_t ,_param->_nb_inst_insert); 68 70 ALLOC1_SC_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION ," in_INSERT_RENAME_SELECT_EXCEPTION ",Texception_t ,_param->_nb_inst_insert); 71 ALLOC1_SC_SIGNAL( in_INSERT_RENAME_SELECT_NO_EXECUTE ," in_INSERT_RENAME_SELECT_NO_EXECUTE ",Tcontrol_t ,_param->_nb_inst_insert); 72 69 73 ALLOC1_SC_SIGNAL(out_INSERT_REGISTER_TRANSLATION_VAL ,"out_INSERT_REGISTER_TRANSLATION_VAL ",Tcontrol_t ,_param->_nb_inst_insert); 70 74 ALLOC1_SC_SIGNAL( in_INSERT_REGISTER_TRANSLATION_ACK ," in_INSERT_REGISTER_TRANSLATION_ACK ",Tcontrol_t ,_param->_nb_inst_insert); … … 109 113 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue,out_INSERT_EXCEPTION ,_param->_nb_inst_insert); 110 114 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue,out_INSERT_NUM_REG_RE_PHY_NEW ,_param->_nb_inst_insert); 115 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue,out_INSERT_NO_EXECUTE ,_param->_nb_inst_insert); 116 111 117 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue, in_INSERT_RENAME_SELECT_VAL ,_param->_nb_inst_insert); 112 118 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue,out_INSERT_RENAME_SELECT_ACK ,_param->_nb_inst_insert); … … 120 126 // INSTANCE1_SC_SIGNAL(_Rename_unit_Glue, in_INSERT_RENAME_SELECT_EXCEPTION_USE ,_param->_nb_inst_insert); 121 127 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue, in_INSERT_RENAME_SELECT_EXCEPTION ,_param->_nb_inst_insert); 128 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue, in_INSERT_RENAME_SELECT_NO_EXECUTE ,_param->_nb_inst_insert); 129 122 130 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue,out_INSERT_REGISTER_TRANSLATION_VAL ,_param->_nb_inst_insert); 123 131 INSTANCE1_SC_SIGNAL(_Rename_unit_Glue, in_INSERT_REGISTER_TRANSLATION_ACK ,_param->_nb_inst_insert); … … 201 209 DELETE1_SC_SIGNAL(out_INSERT_EXCEPTION ,_param->_nb_inst_insert); 202 210 DELETE1_SC_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW ,_param->_nb_inst_insert); 211 DELETE1_SC_SIGNAL(out_INSERT_NO_EXECUTE ,_param->_nb_inst_insert); 212 203 213 DELETE1_SC_SIGNAL( in_INSERT_RENAME_SELECT_VAL ,_param->_nb_inst_insert); 204 214 DELETE1_SC_SIGNAL(out_INSERT_RENAME_SELECT_ACK ,_param->_nb_inst_insert); … … 210 220 // DELETE1_SC_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION_USE ,_param->_nb_inst_insert); 211 221 DELETE1_SC_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION ,_param->_nb_inst_insert); 222 DELETE1_SC_SIGNAL( in_INSERT_RENAME_SELECT_NO_EXECUTE ,_param->_nb_inst_insert); 223 212 224 DELETE1_SC_SIGNAL(out_INSERT_REGISTER_TRANSLATION_VAL ,_param->_nb_inst_insert); 213 225 DELETE1_SC_SIGNAL( in_INSERT_REGISTER_TRANSLATION_ACK ,_param->_nb_inst_insert); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/include/Rename_unit_Glue.h
r88 r115 75 75 public : SC_OUT(Texception_t ) ** out_INSERT_EXCEPTION ;//[nb_inst_insert] 76 76 public : SC_OUT(Tspecial_address_t) ** out_INSERT_NUM_REG_RE_PHY_NEW ;//[nb_inst_insert] 77 public : SC_OUT(Tcontrol_t ) ** out_INSERT_NO_EXECUTE ;//[nb_inst_insert] 77 78 78 79 public : SC_IN (Tcontrol_t ) ** in_INSERT_RENAME_SELECT_VAL ;//[nb_inst_insert] … … 85 86 public : SC_IN (Texception_t ) ** in_INSERT_RENAME_SELECT_EXCEPTION_USE ;//[nb_inst_insert] 86 87 public : SC_IN (Texception_t ) ** in_INSERT_RENAME_SELECT_EXCEPTION ;//[nb_inst_insert] 88 public : SC_IN (Tcontrol_t ) ** in_INSERT_RENAME_SELECT_NO_EXECUTE ;//[nb_inst_insert] 87 89 88 90 public : SC_OUT(Tcontrol_t ) ** out_INSERT_REGISTER_TRANSLATION_VAL ;//[nb_inst_insert] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue.cpp
r88 r115 106 106 //<< (*(in_INSERT_ACK [i])) 107 107 << (*(in_INSERT_RENAME_SELECT_VAL [i])) 108 << (*(in_INSERT_RENAME_SELECT_NO_EXECUTE [i])) 108 109 << (*(in_INSERT_REGISTER_TRANSLATION_ACK [i])) 109 110 << (*(in_INSERT_LOAD_STORE_QUEUE_POINTER_ACK [i])) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_allocation.cpp
r112 r115 71 71 ALLOC1_SIGNAL_OUT(out_INSERT_EXCEPTION ,"EXCEPTION" ,Texception_t ,_param->_size_exception); 72 72 ALLOC1_SIGNAL_OUT(out_INSERT_NUM_REG_RE_PHY_NEW ,"NUM_REG_RE_PHY_NEW" ,Tspecial_address_t,_param->_size_special_register); 73 ALLOC1_SIGNAL_OUT(out_INSERT_NO_EXECUTE ,"NO_EXECUTE" ,Tcontrol_t ,1); 74 73 75 ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_VAL ,"RENAME_SELECT_VAL" ,Tcontrol_t ,1); 74 76 ALLOC1_SIGNAL_OUT(out_INSERT_RENAME_SELECT_ACK ,"RENAME_SELECT_ACK" ,Tcontrol_t ,1); … … 80 82 // ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_EXCEPTION_USE ,"RENAME_SELECT_EXCEPTION_USE" ,Texception_t ,_param->_size_exception_use); 81 83 ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_EXCEPTION ,"RENAME_SELECT_EXCEPTION" ,Texception_t ,_param->_size_exception); 84 ALLOC1_SIGNAL_IN ( in_INSERT_RENAME_SELECT_NO_EXECUTE ,"RENAME_SELECT_NO_EXECUTE" ,Tcontrol_t ,1); 85 82 86 ALLOC1_SIGNAL_OUT(out_INSERT_REGISTER_TRANSLATION_VAL ,"REGISTER_TRANSLATION_VAL" ,Tcontrol_t ,1); 83 87 ALLOC1_SIGNAL_IN ( in_INSERT_REGISTER_TRANSLATION_ACK ,"REGISTER_TRANSLATION_ACK" ,Tcontrol_t ,1); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_deallocation.cpp
r88 r115 39 39 DELETE1_SIGNAL(out_INSERT_EXCEPTION ,_param->_nb_inst_insert,_param->_size_exception); 40 40 DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW ,_param->_nb_inst_insert,_param->_size_special_register); 41 DELETE1_SIGNAL(out_INSERT_NO_EXECUTE ,_param->_nb_inst_insert,1); 42 41 43 DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_VAL ,_param->_nb_inst_insert,1); 42 44 DELETE1_SIGNAL(out_INSERT_RENAME_SELECT_ACK ,_param->_nb_inst_insert,1); … … 48 50 // DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION_USE ,_param->_nb_inst_insert,_param->_size_exception_use); 49 51 DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_EXCEPTION ,_param->_nb_inst_insert,_param->_size_exception); 52 DELETE1_SIGNAL( in_INSERT_RENAME_SELECT_NO_EXECUTE ,_param->_nb_inst_insert,1); 53 50 54 DELETE1_SIGNAL(out_INSERT_REGISTER_TRANSLATION_VAL ,_param->_nb_inst_insert,1); 51 55 DELETE1_SIGNAL( in_INSERT_REGISTER_TRANSLATION_ACK ,_param->_nb_inst_insert,1); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_insert_valack.cpp
r110 r115 31 31 { 32 32 //Tcontrol_t ACK = PORT_READ(in_INSERT_ACK [i]); 33 Tcontrol_t NO_EXECUTE = PORT_READ(in_INSERT_RENAME_SELECT_NO_EXECUTE [i]); 33 34 Tcontrol_t RENAME_SELECT_VAL = PORT_READ(in_INSERT_RENAME_SELECT_VAL [i]); 34 35 Tcontrol_t REGISTER_TRANSLATION_ACK = PORT_READ(in_INSERT_REGISTER_TRANSLATION_ACK [i]); … … 54 55 // ACK and 55 56 RENAME_SELECT_VAL and 56 REGISTER_TRANSLATION_ACK ); 57 REGISTER_TRANSLATION_ACK and 58 not NO_EXECUTE ); 57 59 58 60 log_printf(TRACE,Rename_unit_Glue,FUNCTION," * insert [%d]",i); 61 log_printf(TRACE,Rename_unit_Glue,FUNCTION," * no_execute (r) : %d",NO_EXECUTE); 59 62 log_printf(TRACE,Rename_unit_Glue,FUNCTION," * rename_select_val (r) : %d",RENAME_SELECT_VAL ); 60 63 log_printf(TRACE,Rename_unit_Glue,FUNCTION," * rename_select_ack (w) : %d",RENAME_SELECT_ACK ); … … 64 67 log_printf(TRACE,Rename_unit_Glue,FUNCTION," * load_store_queue_pointer_ack (r) : %d",LOAD_STORE_QUEUE_POINTER_ACK); 65 68 69 PORT_WRITE(out_INSERT_NO_EXECUTE [i], NO_EXECUTE ); 66 70 // PORT_WRITE(out_INSERT_VAL [i], VAL ); 67 71 PORT_WRITE(out_INSERT_RENAME_SELECT_ACK [i], RENAME_SELECT_ACK ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_allocation.cpp
r112 r115 362 362 #endif 363 363 364 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_NO_EXECUTE" ,365 dest,"out_INSERT_" +toString(i)+"_NO_EXECUTE" );366 364 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_IS_DELAY_SLOT", 367 365 dest,"out_INSERT_" +toString(i)+"_IS_DELAY_SLOT"); … … 435 433 COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+ "_EXCEPTION" , 436 434 dest, "in_INSERT_" +toString(i)+"_RENAME_SELECT_EXCEPTION" ); 435 COMPONENT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+ "_NO_EXECUTE" , 436 dest, "in_INSERT_" +toString(i)+"_RENAME_SELECT_NO_EXECUTE" ); 437 437 } 438 438 … … 782 782 PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_NUM_REG_RE_PHY_NEW", 783 783 dest,"out_INSERT_"+toString(i)+"_NUM_REG_RE_PHY_NEW"); 784 784 PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_NO_EXECUTE" , 785 dest,"out_INSERT_"+toString(i)+"_NO_EXECUTE" ); 785 786 786 787 // in_INSERT_RENAME_SELECT_VAL - rename_select -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/SelfTest/src/main.cpp
r88 r115 76 76 77 77 test (name,param); 78 79 delete param; 78 80 } 79 81 catch (morpheo::ErrorMorpheo & error) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_deallocation.cpp
r112 r115 71 71 { 72 72 for (uint32_t k=0; k<NB_GROUP; k++) 73 { 74 if (_spr [i][j][k] != NULL) 75 { 76 for (uint32_t l=0; l<NB_REG_GROUP[k]; l++) 77 if (_spr [i][j][k][l] != NULL) 78 delete _spr [i][j][k][l]; 79 delete [] _spr [i][j][k]; 80 } 81 } 73 if (_spr [i][j][k] != NULL) 74 { 75 for (uint32_t l=0; l<NB_REG_GROUP[k]; l++) 76 if (_spr [i][j][k][l] != NULL) 77 delete _spr [i][j][k][l]; 78 delete [] _spr [i][j][k]; 79 } 82 80 delete [] _spr [i][j]; 83 81 }
Note: See TracChangeset
for help on using the changeset viewer.