Changeset 104 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit
- Timestamp:
- Jan 21, 2009, 10:53:13 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/SelfTest/src/test.cpp
r88 r104 81 81 ALLOC1_SC_SIGNAL( in_RETIRE_FRONT_END_ID ," in_RETIRE_FRONT_END_ID ",Tcontext_t ,_param->_nb_inst_retire); 82 82 ALLOC1_SC_SIGNAL( in_RETIRE_CONTEXT_ID ," in_RETIRE_CONTEXT_ID ",Tcontext_t ,_param->_nb_inst_retire); 83 ALLOC1_SC_SIGNAL( in_RETIRE_EVENT_STATE ," in_RETIRE_EVENT_STATE ",Tevent_state_t ,_param->_nb_inst_retire);84 83 ALLOC1_SC_SIGNAL( in_RETIRE_WRITE_RD ," in_RETIRE_WRITE_RD ",Tcontrol_t ,_param->_nb_inst_retire); 85 84 ALLOC1_SC_SIGNAL( in_RETIRE_WRITE_RE ," in_RETIRE_WRITE_RE ",Tcontrol_t ,_param->_nb_inst_retire); … … 90 89 ALLOC1_SC_SIGNAL(out_RETIRE_RESTORE_RD_PHY_OLD,"out_RETIRE_RESTORE_RD_PHY_OLD",Tcontrol_t ,_param->_nb_inst_retire); 91 90 ALLOC1_SC_SIGNAL(out_RETIRE_RESTORE_RE_PHY_OLD,"out_RETIRE_RESTORE_RE_PHY_OLD",Tcontrol_t ,_param->_nb_inst_retire); 91 92 ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_VAL ," in_RETIRE_EVENT_VAL ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_context[it1]); 93 ALLOC2_SC_SIGNAL(out_RETIRE_EVENT_ACK ,"out_RETIRE_EVENT_ACK ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_context[it1]); 94 ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_STATE ," in_RETIRE_EVENT_STATE ",Tevent_state_t ,_param->_nb_front_end,_param->_nb_context[it1]); 92 95 93 96 /******************************************************** … … 136 139 if (_param->_have_port_context_id) 137 140 INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_CONTEXT_ID ,_param->_nb_inst_retire); 138 INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_EVENT_STATE ,_param->_nb_inst_retire);139 141 INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_WRITE_RD ,_param->_nb_inst_retire); 140 142 INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_WRITE_RE ,_param->_nb_inst_retire); … … 145 147 INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit,out_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire); 146 148 INSTANCE1_SC_SIGNAL(_Register_Address_Translation_unit,out_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire); 149 150 INSTANCE2_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1]); 151 INSTANCE2_SC_SIGNAL(_Register_Address_Translation_unit,out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1]); 152 INSTANCE2_SC_SIGNAL(_Register_Address_Translation_unit, in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1]); 147 153 148 154 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); … … 192 198 SC_START(0); 193 199 LABEL("Initialisation"); 200 201 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 202 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 203 in_RETIRE_EVENT_VAL [i][j]->write(1); 194 204 195 205 LABEL("Reset"); … … 251 261 252 262 Tcontext_t front_end_id = rand() % _param->_nb_front_end; 263 Tcontext_t context_id = rand() % (_param->_nb_context[front_end_id]); 253 264 254 265 in_RETIRE_VAL [i]->write(val); 255 266 in_RETIRE_FRONT_END_ID [i]->write(front_end_id); 256 in_RETIRE_CONTEXT_ID [i]->write(rand() % (_param->_nb_context[front_end_id])); 257 in_RETIRE_EVENT_STATE [i]->write(EVENT_STATE_NO_EVENT); 267 in_RETIRE_CONTEXT_ID [i]->write(context_id); 258 268 in_RETIRE_WRITE_RD [i]->write(rand() % 2); 259 269 in_RETIRE_WRITE_RE [i]->write(rand() % 2); … … 262 272 in_RETIRE_NUM_REG_RD_PHY_OLD [i]->write(rand() % _param->_nb_general_register); 263 273 in_RETIRE_NUM_REG_RE_PHY_OLD [i]->write(rand() % _param->_nb_special_register); 274 275 in_RETIRE_EVENT_STATE [front_end_id][context_id]->write(EVENT_STATE_NO_EVENT); 264 276 } 265 277 … … 332 344 in_RETIRE_FRONT_END_ID [i]->write(retire_front_end_id [i]); 333 345 in_RETIRE_CONTEXT_ID [i]->write(retire_context_id [i]); 334 in_RETIRE_EVENT_STATE [i]->write(EVENT_STATE_EVENT);335 346 in_RETIRE_WRITE_RD [i]->write(0); 336 347 in_RETIRE_WRITE_RE [i]->write(0); 337 348 349 in_RETIRE_EVENT_STATE [retire_front_end_id [i]][retire_context_id [i]]->write(EVENT_STATE_EVENT); 350 338 351 do 339 352 { … … 389 402 in_RETIRE_FRONT_END_ID [i]->write(retire_front_end_id [i]); 390 403 in_RETIRE_CONTEXT_ID [i]->write(retire_context_id [i]); 391 in_RETIRE_EVENT_STATE [i]->write(EVENT_STATE_WAITEND);392 404 in_RETIRE_WRITE_RD [i]->write(rand() % 2); 393 405 in_RETIRE_WRITE_RE [i]->write(rand() % 2); … … 396 408 in_RETIRE_NUM_REG_RD_PHY_OLD [i]->write(rand() % _param->_nb_general_register); 397 409 in_RETIRE_NUM_REG_RE_PHY_OLD [i]->write(rand() % _param->_nb_special_register); 410 411 in_RETIRE_EVENT_STATE [retire_front_end_id [i]][retire_context_id [i]]->write(EVENT_STATE_WAITEND); 398 412 } 399 413 … … 517 531 if (_param->_have_port_context_id) 518 532 delete [] in_RETIRE_CONTEXT_ID ; 519 delete [] in_RETIRE_EVENT_STATE ;520 533 delete [] in_RETIRE_WRITE_RD ; 521 534 delete [] in_RETIRE_WRITE_RE ; … … 527 540 delete [] out_RETIRE_RESTORE_RE_PHY_OLD; 528 541 542 DELETE2_SC_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1]); 543 DELETE2_SC_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1]); 544 DELETE2_SC_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1]); 529 545 #endif 530 546 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h
r88 r104 96 96 public : SC_IN (Tcontext_t ) ** in_RETIRE_FRONT_END_ID ;//[nb_inst_retire] 97 97 public : SC_IN (Tcontext_t ) ** in_RETIRE_CONTEXT_ID ;//[nb_inst_retire] 98 public : SC_IN (Tevent_state_t ) ** in_RETIRE_EVENT_STATE ;//[nb_inst_retire]99 98 public : SC_IN (Tcontrol_t ) ** in_RETIRE_WRITE_RD ;//[nb_inst_retire] 100 99 public : SC_IN (Tcontrol_t ) ** in_RETIRE_WRITE_RE ;//[nb_inst_retire] … … 105 104 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire] 106 105 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire] 106 107 // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 108 public : SC_IN (Tcontrol_t ) *** in_RETIRE_EVENT_VAL ;//[nb_front_end][nb_context] 109 public : SC_OUT(Tcontrol_t ) *** out_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 110 public : SC_IN (Tevent_state_t ) *** in_RETIRE_EVENT_STATE ;//[nb_front_end][nb_context] 107 111 108 112 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 118 122 private : Tcontrol_t * internal_INSERT_ACK; //[nb_inst_insert] 119 123 private : Tcontrol_t * internal_RETIRE_ACK; //[nb_inst_retire] 124 public : Tcontrol_t ** internal_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 120 125 121 126 private : bool *** internal_rat_gpr_update_table; //[nb_front_end][nb_context][nb_general_register_logic] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp
r100 r104 84 84 PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]); 85 85 } 86 86 87 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 87 88 { … … 90 91 PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]); 91 92 } 93 94 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 95 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 96 { 97 internal_RETIRE_EVENT_ACK [i][j] = 1; 98 99 PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]); 100 } 92 101 93 102 log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - transition"); … … 119 128 << (*(in_RENAME_NUM_REG_RD_LOG [i])) 120 129 << (*(in_RENAME_NUM_REG_RE_LOG [i])); 121 } 122 130 } 123 131 124 132 # ifdef SYSTEMCASS_SPECIFIC … … 138 146 sensitive << (*(in_RETIRE_CONTEXT_ID [i])); 139 147 140 sensitive << (*(in_RETIRE_EVENT_STATE [i])) 141 << (*(in_RETIRE_WRITE_RD [i])) 148 sensitive << (*(in_RETIRE_WRITE_RD [i])) 142 149 << (*(in_RETIRE_WRITE_RE [i])) 143 150 << (*(in_RETIRE_NUM_REG_RD_LOG [i])) 144 151 << (*(in_RETIRE_NUM_REG_RE_LOG [i])); 145 152 } 153 154 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 155 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 156 sensitive << (*(in_RETIRE_EVENT_STATE [i][j])); 146 157 147 158 # ifdef SYSTEMCASS_SPECIFIC -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_allocation.cpp
r88 r104 7 7 8 8 #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h" 9 #include "Behavioural/include/Allocation.h" 9 10 #include "Behavioural/include/Allocation.h" 10 11 … … 100 101 ALLOC1_SIGNAL_IN ( in_RETIRE_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id); 101 102 ALLOC1_SIGNAL_IN ( in_RETIRE_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 102 ALLOC1_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"event_state" ,Tevent_state_t ,_param->_size_event_state );103 103 ALLOC1_SIGNAL_IN ( in_RETIRE_WRITE_RD ,"write_rd" ,Tcontrol_t ,1); 104 104 ALLOC1_SIGNAL_IN ( in_RETIRE_WRITE_RE ,"write_re" ,Tcontrol_t ,1); … … 111 111 } 112 112 113 // ~~~~~[ Interface : "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 { 115 ALLOC2_INTERFACE("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]); 116 117 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 118 _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 119 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 120 } 121 113 122 if (usage_is_set(_usage,USE_SYSTEMC)) 114 123 { 115 internal_RENAME_ACK = new Tcontrol_t [_param->_nb_inst_insert]; 116 internal_INSERT_ACK = new Tcontrol_t [_param->_nb_inst_insert]; 117 internal_RETIRE_ACK = new Tcontrol_t [_param->_nb_inst_retire]; 124 ALLOC1(internal_RENAME_ACK ,Tcontrol_t,_param->_nb_inst_insert); 125 ALLOC1(internal_INSERT_ACK ,Tcontrol_t,_param->_nb_inst_insert); 126 ALLOC1(internal_RETIRE_ACK ,Tcontrol_t,_param->_nb_inst_retire); 127 ALLOC2(internal_RETIRE_EVENT_ACK ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]); 118 128 119 129 rat_gpr = new Tgeneral_address_t ** [_param->_nb_front_end]; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_deallocation.cpp
r88 r104 7 7 8 8 #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h" 9 #include "Behavioural/include/Allocation.h" 9 10 10 11 namespace morpheo { … … 65 66 if (_param->_have_port_context_id) 66 67 delete [] in_RETIRE_CONTEXT_ID ; 67 delete [] in_RETIRE_EVENT_STATE ;68 68 delete [] in_RETIRE_WRITE_RD ; 69 69 delete [] in_RETIRE_WRITE_RE ; … … 75 75 delete [] out_RETIRE_RESTORE_RE_PHY_OLD; 76 76 77 delete [] internal_RENAME_ACK; 78 delete [] internal_INSERT_ACK; 79 delete [] internal_RETIRE_ACK; 77 DELETE1(internal_RENAME_ACK ,_param->_nb_inst_insert); 78 DELETE1(internal_INSERT_ACK ,_param->_nb_inst_insert); 79 DELETE1(internal_RETIRE_ACK ,_param->_nb_inst_retire); 80 DELETE2(internal_RETIRE_EVENT_ACK ,_param->_nb_front_end,_param->_nb_context[it1]); 81 82 DELETE2_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 83 DELETE2_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 84 DELETE2_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 80 85 81 86 delete [] rat_gpr ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_genMealy_retire.cpp
r88 r104 43 43 44 44 // init -> need't restore old value 45 Tcontrol_t retire_restore_rd_phy_old = false; 46 Tcontrol_t retire_restore_re_phy_old = false; 47 Tevent_state_t event_state = PORT_READ(in_RETIRE_EVENT_STATE [i]); 45 Tcontrol_t retire_restore_rd_phy_old = false; 46 Tcontrol_t retire_restore_re_phy_old = false; 47 48 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0; 49 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RETIRE_CONTEXT_ID [i]):0; 48 50 49 51 // Test if event -> need restore ? 50 if ( event_state!= EVENT_STATE_NO_EVENT)52 if (PORT_READ(in_RETIRE_EVENT_STATE [front_end_id][context_id]) != EVENT_STATE_NO_EVENT) 51 53 { 52 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0;53 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RETIRE_CONTEXT_ID [i]):0;54 55 54 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Have event"); 56 55 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); 57 56 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id ); 58 57 59 // Test if event have just occure -> reset update_table60 if (event_state == EVENT_STATE_EVENT)61 {62 // Reset update_table63 for (uint32_t j=0; j<_param->_nb_general_register_logic; j++)64 internal_rat_gpr_update_table[front_end_id][context_id][j] = 0;65 for (uint32_t j=0; j<_param->_nb_special_register_logic; j++)66 internal_rat_spr_update_table[front_end_id][context_id][j] = 0;67 }68 69 58 // Test and update update table 70 59 if (PORT_READ(in_RETIRE_WRITE_RD [i])) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_transition.cpp
r100 r104 60 60 if (PORT_READ(in_INSERT_VAL [i]) and internal_INSERT_ACK [i]) 61 61 { 62 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * INSERT [%d]",i); 63 62 64 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RENAME_FRONT_END_ID [i]):0; 63 65 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RENAME_CONTEXT_ID [i]):0; … … 71 73 72 74 // ===================================================== 75 // ====[ RETIRE_EVENT ]================================= 76 // ===================================================== 77 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 78 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 79 if (PORT_READ(in_RETIRE_EVENT_VAL [i][j]) and internal_RETIRE_EVENT_ACK [i][j]) 80 // Test if event have just occure 81 if (PORT_READ(in_RETIRE_EVENT_STATE [i][j]) == EVENT_STATE_EVENT) 82 { 83 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Reset Update Table"); 84 85 // Reset update_table 86 for (uint32_t k=0; k<_param->_nb_general_register_logic; k++) 87 rat_gpr_update_table [i][j][k] = 0; 88 for (uint32_t k=0; k<_param->_nb_special_register_logic; k++) 89 rat_spr_update_table [i][j][k] = 0; 90 } 91 92 // ===================================================== 73 93 // ====[ RETIRE ]======================================= 74 94 // ===================================================== … … 78 98 if (PORT_READ(in_RETIRE_VAL [i]) and internal_RETIRE_ACK [i]) 79 99 { 100 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * RETIRE [%d]",i); 101 80 102 // if no event : no effect, because the RAT content the most recently register 81 103 // but if they have a event (exception or miss speculation), the rat must restore the oldest value 82 104 // To restore the oldest valid value, we use the rat_update_table. if the bit is unset, also they have none update on this register 83 105 // the retire interface became of the Re Order Buffer, also is in program sequence ! 84 if (PORT_READ(in_RETIRE_EVENT_STATE [i]) != EVENT_STATE_NO_EVENT) 106 107 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0; 108 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RETIRE_CONTEXT_ID [i]):0; 109 Tevent_state_t event_state = PORT_READ(in_RETIRE_EVENT_STATE [front_end_id][context_id]); 110 111 if (event_state != EVENT_STATE_NO_EVENT) 85 112 { 86 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RETIRE_FRONT_END_ID [i]):0; 87 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RETIRE_CONTEXT_ID [i]):0; 88 89 // Test if event have just occure 90 if (PORT_READ(in_RETIRE_EVENT_STATE [i]) == EVENT_STATE_EVENT) 91 { 92 // Reset update_table 93 for (uint32_t j=0; j<_param->_nb_general_register_logic; j++) 94 rat_gpr_update_table[front_end_id][context_id][j] = 0; 95 for (uint32_t j=0; j<_param->_nb_special_register_logic; j++) 96 rat_spr_update_table[front_end_id][context_id][j] = 0; 97 } 113 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); 114 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id); 115 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * event_state : %d",event_state); 98 116 99 117 // Test if write and have not a previous update … … 102 120 Tgeneral_address_t rd_log = PORT_READ(in_RETIRE_NUM_REG_RD_LOG [i]); 103 121 104 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * retire[%d]",i); 105 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); 106 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id ); 107 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * rd_log : %d",rd_log ); 122 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * retire RD"); 123 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * rd_log : %d",rd_log); 108 124 109 125 // if (RETIRE_RESTORE_RD_PHY_OLD [i]) 110 if (rat_gpr_update_table [front_end_id][context_id][rd_log] == 0)111 { 112 rat_gpr [front_end_id][context_id][rd_log] = PORT_READ(in_RETIRE_NUM_REG_RD_PHY_OLD [i]);113 rat_gpr_update_table [front_end_id][context_id][rd_log] = 1;126 if (rat_gpr_update_table [front_end_id][context_id][rd_log] == 0) 127 { 128 rat_gpr [front_end_id][context_id][rd_log] = PORT_READ(in_RETIRE_NUM_REG_RD_PHY_OLD [i]); 129 rat_gpr_update_table [front_end_id][context_id][rd_log] = 1; 114 130 } 115 131 } … … 119 135 Tspecial_address_t re_log = PORT_READ(in_RETIRE_NUM_REG_RE_LOG [i]); 120 136 137 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * retire RE"); 138 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * re_log : %d",re_log); 139 121 140 // if (RETIRE_RESTORE_RE_PHY_OLD [i]) 122 if (rat_spr_update_table [front_end_id][context_id][re_log] == 0)123 { 124 rat_spr [front_end_id][context_id][re_log] = PORT_READ(in_RETIRE_NUM_REG_RE_PHY_OLD [i]);125 rat_spr_update_table [front_end_id][context_id][re_log] = 1;141 if (rat_spr_update_table [front_end_id][context_id][re_log] == 0) 142 { 143 rat_spr [front_end_id][context_id][re_log] = PORT_READ(in_RETIRE_NUM_REG_RE_PHY_OLD [i]); 144 rat_spr_update_table [front_end_id][context_id][re_log] = 1; 126 145 } 127 146 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/SelfTest/src/test.cpp
r88 r104 91 91 ALLOC1_SC_SIGNAL( in_RETIRE_FRONT_END_ID ," in_RETIRE_FRONT_END_ID ",Tcontext_t ,_param->_nb_inst_retire); 92 92 ALLOC1_SC_SIGNAL( in_RETIRE_CONTEXT_ID ," in_RETIRE_CONTEXT_ID ",Tcontext_t ,_param->_nb_inst_retire); 93 ALLOC1_SC_SIGNAL( in_RETIRE_EVENT_STATE ," in_RETIRE_EVENT_STATE ",Tevent_state_t ,_param->_nb_inst_retire);94 93 ALLOC1_SC_SIGNAL( in_RETIRE_READ_RA ," in_RETIRE_READ_RA ",Tcontrol_t ,_param->_nb_inst_retire); 95 94 ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RA_PHY ," in_RETIRE_NUM_REG_RA_PHY ",Tgeneral_address_t,_param->_nb_inst_retire); … … 106 105 ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD," in_RETIRE_NUM_REG_RE_PHY_OLD",Tspecial_address_t,_param->_nb_inst_retire); 107 106 ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW," in_RETIRE_NUM_REG_RE_PHY_NEW",Tspecial_address_t,_param->_nb_inst_retire); 107 108 ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_VAL ," in_RETIRE_EVENT_VAL ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_context[it1]); 109 ALLOC2_SC_SIGNAL(out_RETIRE_EVENT_ACK ,"out_RETIRE_EVENT_ACK ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_context[it1]); 110 ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_STATE ," in_RETIRE_EVENT_STATE ",Tevent_state_t ,_param->_nb_front_end,_param->_nb_context[it1]); 108 111 109 112 /******************************************************** … … 163 166 if (_param->_have_port_context_id) 164 167 INSTANCE1_SC_SIGNAL(_Register_translation_unit, in_RETIRE_CONTEXT_ID ,_param->_nb_inst_retire); 165 INSTANCE1_SC_SIGNAL(_Register_translation_unit, in_RETIRE_EVENT_STATE ,_param->_nb_inst_retire);166 168 INSTANCE1_SC_SIGNAL(_Register_translation_unit, in_RETIRE_READ_RA ,_param->_nb_inst_retire); 167 169 INSTANCE1_SC_SIGNAL(_Register_translation_unit, in_RETIRE_NUM_REG_RA_PHY ,_param->_nb_inst_retire); … … 178 180 INSTANCE1_SC_SIGNAL(_Register_translation_unit, in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire); 179 181 INSTANCE1_SC_SIGNAL(_Register_translation_unit, in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire); 182 183 INSTANCE2_SC_SIGNAL(_Register_translation_unit, in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1]); 184 INSTANCE2_SC_SIGNAL(_Register_translation_unit,out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1]); 185 INSTANCE2_SC_SIGNAL(_Register_translation_unit, in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1]); 180 186 181 187 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); … … 264 270 delete [] in_RETIRE_FRONT_END_ID ; 265 271 delete [] in_RETIRE_CONTEXT_ID ; 266 delete [] in_RETIRE_EVENT_STATE ;267 272 delete [] in_RETIRE_READ_RA ; 268 273 delete [] in_RETIRE_NUM_REG_RA_PHY ; … … 279 284 delete [] in_RETIRE_NUM_REG_RE_PHY_OLD; 280 285 delete [] in_RETIRE_NUM_REG_RE_PHY_NEW; 286 287 DELETE2_SC_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1]); 288 DELETE2_SC_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1]); 289 DELETE2_SC_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1]); 281 290 #endif 282 291 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h
r82 r104 111 111 public : SC_IN (Tcontext_t ) ** in_RETIRE_FRONT_END_ID ;//[nb_inst_retire] 112 112 public : SC_IN (Tcontext_t ) ** in_RETIRE_CONTEXT_ID ;//[nb_inst_retire] 113 public : SC_IN (Tevent_state_t ) ** in_RETIRE_EVENT_STATE ;//[nb_inst_retire]114 113 public : SC_IN (Tcontrol_t ) ** in_RETIRE_READ_RA ;//[nb_inst_retire] 115 114 public : SC_IN (Tgeneral_address_t) ** in_RETIRE_NUM_REG_RA_PHY ;//[nb_inst_retire] … … 127 126 public : SC_IN (Tspecial_address_t) ** in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire] 128 127 128 // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 public : SC_IN (Tcontrol_t ) *** in_RETIRE_EVENT_VAL ;//[nb_front_end][nb_context] 130 public : SC_OUT(Tcontrol_t ) *** out_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 131 public : SC_IN (Tevent_state_t ) *** in_RETIRE_EVENT_STATE ;//[nb_front_end][nb_context] 132 129 133 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 134 public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::dependency_checking_unit::Dependency_checking_unit * _component_dependency_checking_unit; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp
r98 r104 110 110 ALLOC1_SIGNAL_IN ( in_RETIRE_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 111 111 ALLOC1_SIGNAL_IN ( in_RETIRE_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 112 ALLOC1_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"event_state" ,Tevent_state_t ,_param->_size_event_state );113 112 ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RA ,"read_ra" ,Tcontrol_t ,1 ); 114 113 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RA_PHY ,"num_reg_ra_phy" ,Tgeneral_address_t,_param->_size_general_register ); … … 126 125 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register ); 127 126 } 127 128 // ~~~~~[ Interface : "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 { 130 ALLOC2_INTERFACE("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]); 131 132 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 133 _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 134 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 135 } 136 128 137 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 138 std::string name; … … 329 338 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_CONTEXT_ID" , 330 339 dest, "in_RETIRE_"+toString(i)+"_CONTEXT_ID" ); 331 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_EVENT_STATE" ,332 dest, "in_RETIRE_"+toString(i)+"_EVENT_STATE" );333 340 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_WRITE_RD" , 334 341 dest, "in_RETIRE_"+toString(i)+"_WRITE_RD" ); … … 356 363 dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD"); 357 364 } 365 366 for (uint32_t i=0; i<_param->_nb_front_end; i++) 367 for (uint32_t j=0; j<_param->_nb_context[i]; j++) 368 { 369 dest = _name; 370 371 #ifdef POSITION 372 _component->interface_map (src ,"retire_event_"+toString(i)+"_"+toString(j), 373 dest,"retire_event_"+toString(i)+"_"+toString(j)); 374 #endif 375 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_VAL" , 376 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_VAL" ); 377 PORT_MAP(_component,src ,"out_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_ACK" , 378 dest,"out_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_ACK" ); 379 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE", 380 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE"); 381 } 358 382 } 359 383 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_deallocation.cpp
r88 r104 7 7 8 8 #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h" 9 #include "Behavioural/include/Allocation.h" 9 10 10 11 namespace morpheo { … … 75 76 if (_param->_have_port_context_id) 76 77 delete [] in_RETIRE_CONTEXT_ID ; 77 delete [] in_RETIRE_EVENT_STATE ;78 78 delete [] in_RETIRE_READ_RA ; 79 79 delete [] in_RETIRE_NUM_REG_RA_PHY ; … … 90 90 delete [] in_RETIRE_NUM_REG_RE_PHY_OLD; 91 91 delete [] in_RETIRE_NUM_REG_RE_PHY_NEW; 92 93 DELETE2_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 94 DELETE2_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 95 DELETE2_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 92 96 } 97 93 98 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 99 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/SelfTest/src/test.cpp
r88 r104 115 115 ALLOC1_SC_SIGNAL( in_RETIRE_STORE_QUEUE_PTR_WRITE," in_RETIRE_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t ,_param->_nb_inst_retire); 116 116 ALLOC1_SC_SIGNAL( in_RETIRE_LOAD_QUEUE_PTR_WRITE ," in_RETIRE_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t ,_param->_nb_inst_retire); 117 ALLOC1_SC_SIGNAL( in_RETIRE_EVENT_STATE ," in_RETIRE_EVENT_STATE ",Tevent_state_t ,_param->_nb_inst_retire);118 117 ALLOC1_SC_SIGNAL( in_RETIRE_READ_RA ," in_RETIRE_READ_RA ",Tcontrol_t ,_param->_nb_inst_retire); 119 118 ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RA_PHY ," in_RETIRE_NUM_REG_RA_PHY ",Tgeneral_address_t,_param->_nb_inst_retire); … … 130 129 ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD ," in_RETIRE_NUM_REG_RE_PHY_OLD ",Tspecial_address_t,_param->_nb_inst_retire); 131 130 ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW ," in_RETIRE_NUM_REG_RE_PHY_NEW ",Tspecial_address_t,_param->_nb_inst_retire); 131 ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_VAL ," in_RETIRE_EVENT_VAL ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_context[it1]); 132 ALLOC2_SC_SIGNAL(out_RETIRE_EVENT_ACK ,"out_RETIRE_EVENT_ACK ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_context[it1]); 133 ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_STATE ," in_RETIRE_EVENT_STATE ",Tevent_state_t ,_param->_nb_front_end,_param->_nb_context[it1]); 132 134 ALLOC2_SC_SIGNAL( in_SPR_READ_SR ," in_SPR_READ_SR ",Tspr_t ,_param->_nb_front_end,_param->_nb_context[it1]); 133 135 … … 220 222 if (_param->_have_port_load_queue_ptr) 221 223 INSTANCE1_SC_SIGNAL(_Rename_unit, in_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire); 222 INSTANCE1_SC_SIGNAL(_Rename_unit, in_RETIRE_EVENT_STATE ,_param->_nb_inst_retire);223 224 INSTANCE1_SC_SIGNAL(_Rename_unit, in_RETIRE_READ_RA ,_param->_nb_inst_retire); 224 225 INSTANCE1_SC_SIGNAL(_Rename_unit, in_RETIRE_NUM_REG_RA_PHY ,_param->_nb_inst_retire); … … 235 236 INSTANCE1_SC_SIGNAL(_Rename_unit, in_RETIRE_NUM_REG_RE_PHY_OLD ,_param->_nb_inst_retire); 236 237 INSTANCE1_SC_SIGNAL(_Rename_unit, in_RETIRE_NUM_REG_RE_PHY_NEW ,_param->_nb_inst_retire); 238 239 INSTANCE2_SC_SIGNAL(_Rename_unit, in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1]); 240 INSTANCE2_SC_SIGNAL(_Rename_unit,out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1]); 241 INSTANCE2_SC_SIGNAL(_Rename_unit, in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1]); 237 242 238 243 INSTANCE2_SC_SIGNAL(_Rename_unit,in_SPR_READ_SR ,_param->_nb_front_end, _param->_nb_context[it1]); … … 352 357 DELETE1_SC_SIGNAL( in_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire); 353 358 DELETE1_SC_SIGNAL( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire); 354 DELETE1_SC_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_inst_retire);355 359 DELETE1_SC_SIGNAL( in_RETIRE_READ_RA ,_param->_nb_inst_retire); 356 360 DELETE1_SC_SIGNAL( in_RETIRE_NUM_REG_RA_PHY ,_param->_nb_inst_retire); … … 368 372 DELETE1_SC_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW ,_param->_nb_inst_retire); 369 373 374 DELETE2_SC_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1]); 375 DELETE2_SC_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1]); 376 DELETE2_SC_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1]); 377 370 378 DELETE2_SC_SIGNAL(in_SPR_READ_SR ,_param->_nb_front_end, _param->_nb_context[it1]); 371 379 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/include/Rename_unit.h
r97 r104 140 140 public : SC_IN (Tlsq_ptr_t ) ** in_RETIRE_STORE_QUEUE_PTR_WRITE;//[nb_inst_retire] 141 141 public : SC_IN (Tlsq_ptr_t ) ** in_RETIRE_LOAD_QUEUE_PTR_WRITE ;//[nb_inst_retire] 142 public : SC_IN (Tevent_state_t ) ** in_RETIRE_EVENT_STATE ;//[nb_inst_retire]143 142 public : SC_IN (Tcontrol_t ) ** in_RETIRE_READ_RA ;//[nb_inst_retire] 144 143 public : SC_IN (Tgeneral_address_t) ** in_RETIRE_NUM_REG_RA_PHY ;//[nb_inst_retire] … … 156 155 public : SC_IN (Tspecial_address_t) ** in_RETIRE_NUM_REG_RE_PHY_NEW ;//[nb_inst_retire] 157 156 157 // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 158 public : SC_IN (Tcontrol_t ) *** in_RETIRE_EVENT_VAL ;//[nb_front_end][nb_context] 159 public : SC_OUT(Tcontrol_t ) *** out_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 160 public : SC_IN (Tevent_state_t ) *** in_RETIRE_EVENT_STATE ;//[nb_front_end][nb_context] 161 158 162 // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 159 163 public : SC_IN (Tspr_t ) *** in_SPR_READ_SR ;//[nb_front_end][nb_context] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_allocation.cpp
r97 r104 139 139 ALLOC1_SIGNAL_IN ( in_RETIRE_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t ,_param->_size_store_queue_ptr ); 140 140 ALLOC1_SIGNAL_IN ( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t ,_param->_size_load_queue_ptr ); 141 ALLOC1_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"event_state" ,Tevent_state_t ,_param->_size_event_state );142 141 ALLOC1_SIGNAL_IN ( in_RETIRE_READ_RA ,"read_ra" ,Tcontrol_t ,1 ); 143 142 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RA_PHY ,"num_reg_ra_phy" ,Tgeneral_address_t,_param->_size_general_register ); … … 154 153 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_OLD ,"num_reg_re_phy_old" ,Tspecial_address_t,_param->_size_special_register ); 155 154 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW ,"num_reg_re_phy_new" ,Tspecial_address_t,_param->_size_special_register ); 155 } 156 157 // ~~~~~[ Interface : "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 158 { 159 ALLOC2_INTERFACE("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]); 160 161 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 162 _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 163 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 156 164 } 157 165 … … 537 545 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_CONTEXT_ID" , 538 546 dest, "in_RETIRE_"+toString(i)+"_CONTEXT_ID" ); 539 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_EVENT_STATE" ,540 dest, "in_RETIRE_"+toString(i)+"_EVENT_STATE" );541 547 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_READ_RA" , 542 548 dest, "in_RETIRE_"+toString(i)+"_READ_RA" ); … … 578 584 COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_ACK",dest, "in_RETIRE_"+toString(i)+"_REGISTER_TRANSLATION_ACK"); 579 585 } 586 587 for (uint32_t i=0; i<_param->_nb_front_end; i++) 588 for (uint32_t j=0; j<_param->_nb_context[i]; j++) 589 { 590 dest = _name; 591 592 #ifdef POSITION 593 _component->interface_map (src ,"retire_event_"+toString(i)+"_"+toString(j), 594 dest,"retire_event_"+toString(i)+"_"+toString(j)); 595 #endif 596 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_VAL" , 597 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_VAL" ); 598 PORT_MAP(_component,src ,"out_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_ACK" , 599 dest,"out_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_ACK" ); 600 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE", 601 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE"); 602 } 580 603 } 581 604 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_deallocation.cpp
r88 r104 97 97 DELETE1_SIGNAL( in_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr ); 98 98 DELETE1_SIGNAL( in_RETIRE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_retire,_param->_size_load_queue_ptr ); 99 DELETE1_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_inst_retire,_param->_size_event_state );100 99 DELETE1_SIGNAL( in_RETIRE_READ_RA ,_param->_nb_inst_retire,1 ); 101 100 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RA_PHY ,_param->_nb_inst_retire,_param->_size_general_register ); … … 112 111 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD ,_param->_nb_inst_retire,_param->_size_special_register ); 113 112 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW ,_param->_nb_inst_retire,_param->_size_special_register ); 113 114 DELETE2_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 115 DELETE2_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 116 DELETE2_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 114 117 115 118 DELETE2_SIGNAL(in_SPR_READ_SR ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_spr);
Note: See TracChangeset
for help on using the changeset viewer.