Changeset 136 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src
- Timestamp:
- Oct 20, 2009, 8:52:15 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters.cpp
r88 r136 26 26 uint32_t nb_gpr_write , 27 27 uint32_t nb_spr_write , 28 uint32_t * nb_inst_insert_rob , 29 uint32_t * nb_inst_retire_rob , 28 uint32_t nb_inst_issue , 29 // uint32_t * nb_inst_insert_rob , 30 // uint32_t * nb_inst_retire_rob , 30 31 bool is_toplevel ) 31 32 { … … 37 38 _nb_gpr_write = nb_gpr_write ; 38 39 _nb_spr_write = nb_spr_write ; 39 _nb_inst_insert_rob = nb_inst_insert_rob; 40 _nb_inst_retire_rob = nb_inst_retire_rob; 40 _nb_inst_issue = nb_inst_issue ; 41 // _nb_inst_insert_rob = nb_inst_insert_rob; 42 // _nb_inst_retire_rob = nb_inst_retire_rob; 41 43 42 44 test(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Parameters_print.cpp
r81 r136 34 34 xml.singleton_begin("nb_gpr_write "); xml.attribut("value",toString(_nb_gpr_write )); xml.singleton_end(); 35 35 xml.singleton_begin("nb_spr_write "); xml.attribut("value",toString(_nb_spr_write )); xml.singleton_end(); 36 xml.singleton_begin("nb_inst_issue "); xml.attribut("value",toString(_nb_inst_issue )); xml.singleton_end(); 36 37 37 xml. balise_open("multi_ooo_engine");38 for (uint32_t i=0; i<_nb_ooo_engine; i++)39 {40 xml. balise_open_begin("ooo_engine");41 xml. attribut("id", toString(i));42 xml. balise_open_end();43 xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob [i])); xml.singleton_end();44 xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob [i])); xml.singleton_end();45 xml. balise_close();46 }47 xml. balise_close();38 // xml. balise_open("multi_ooo_engine"); 39 // for (uint32_t i=0; i<_nb_ooo_engine; i++) 40 // { 41 // xml. balise_open_begin("ooo_engine"); 42 // xml. attribut("id", toString(i)); 43 // xml. balise_open_end(); 44 // xml. singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob [i])); xml.singleton_end(); 45 // xml. singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob [i])); xml.singleton_end(); 46 // xml. balise_close(); 47 // } 48 // xml. balise_close(); 48 49 xml.balise_close(); 49 50 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp
r132 r136 36 36 ,_usage (usage) 37 37 { 38 log_printf(FUNC,Register_unit_Glue,FUNCTION, "Begin");38 log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> Begin"),_name.c_str()); 39 39 40 40 // #if DEBUG_Register_unit_Glue == true … … 44 44 // #endif 45 45 46 log_printf(INFO,Register_unit_Glue,FUNCTION, "Allocation");46 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Allocation"),_name.c_str()); 47 47 allocation (); 48 48 … … 50 50 if (usage_is_set(_usage,USE_STATISTICS)) 51 51 { 52 log_printf(INFO,Register_unit_Glue,FUNCTION, "Allocation of statistics");52 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str()); 53 53 54 54 // Allocation of statistics … … 61 61 { 62 62 // generate the vhdl 63 log_printf(INFO,Register_unit_Glue,FUNCTION, "Generate the vhdl");63 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str()); 64 64 65 65 vhdl(); … … 73 73 constant(); 74 74 #else 75 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - constant");75 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - constant"),_name.c_str()); 76 76 77 77 SC_METHOD (constant); … … 83 83 #endif 84 84 85 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - transition");85 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - transition"),_name.c_str()); 86 86 87 87 SC_METHOD (transition); … … 93 93 #endif 94 94 95 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_gpr_read");95 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read"),_name.c_str()); 96 96 97 97 SC_METHOD (genMealy_gpr_read); … … 131 131 #endif 132 132 133 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_gpr_read_status");133 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read_status"),_name.c_str()); 134 134 135 135 SC_METHOD (genMealy_gpr_read_status); … … 161 161 #endif 162 162 163 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_gpr_read_registerfile");163 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_read_registerfile"),_name.c_str()); 164 164 165 165 SC_METHOD (genMealy_gpr_read_registerfile); … … 191 191 #endif 192 192 193 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_gpr_write");193 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write"),_name.c_str()); 194 194 195 195 SC_METHOD (genMealy_gpr_write); … … 222 222 #endif 223 223 224 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_gpr_write_status");224 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write_status"),_name.c_str()); 225 225 226 226 SC_METHOD (genMealy_gpr_write_status); … … 252 252 #endif 253 253 254 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_gpr_write_registerfile");254 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_gpr_write_registerfile"),_name.c_str()); 255 255 256 256 SC_METHOD (genMealy_gpr_write_registerfile); … … 282 282 #endif 283 283 284 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_spr_read");284 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read"),_name.c_str()); 285 285 286 286 SC_METHOD (genMealy_spr_read); … … 320 320 #endif 321 321 322 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_spr_read_status");322 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read_status"),_name.c_str()); 323 323 324 324 SC_METHOD (genMealy_spr_read_status); … … 350 350 #endif 351 351 352 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_spr_read_registerfile");352 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_read_registerfile"),_name.c_str()); 353 353 354 354 SC_METHOD (genMealy_spr_read_registerfile); … … 380 380 #endif 381 381 382 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_spr_write");382 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write"),_name.c_str()); 383 383 384 384 SC_METHOD (genMealy_spr_write); … … 411 411 #endif 412 412 413 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_spr_write_status");413 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write_status"),_name.c_str()); 414 414 415 415 SC_METHOD (genMealy_spr_write_status); … … 441 441 #endif 442 442 443 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_spr_write_registerfile");443 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_spr_write_registerfile"),_name.c_str()); 444 444 445 445 SC_METHOD (genMealy_spr_write_registerfile); … … 471 471 #endif 472 472 473 log_printf(INFO,Register_unit_Glue,FUNCTION, "Method - genMealy_insert");473 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_insert"),_name.c_str()); 474 474 475 475 SC_METHOD (genMealy_insert); … … 477 477 // sensitive << (*(in_CLOCK)).neg(); 478 478 sensitive << (*(in_NRESET)); 479 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 480 { 481 uint32_t x=_param->_nb_inst_insert_rob [i]; 482 for (uint32_t j=0; j<x; j++) 483 sensitive << *( in_INSERT_ROB_VAL [i][j]) 484 << *( in_INSERT_ROB_RD_USE [i][j]) 485 << *( in_INSERT_ROB_RE_USE [i][j]) 486 << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j]) 487 << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]); 488 } 489 #ifdef SYSTEMCASS_SPECIFIC 490 // List dependency information 491 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 492 { 493 uint32_t x=_param->_nb_inst_insert_rob [i]; 494 for (uint32_t j=0; j<x; j++) 495 { 496 (*(out_INSERT_ROB_ACK [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j])); 497 (*(out_INSERT_ROB_ACK [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j])); 498 499 (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL [i][j])); 500 (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE [i][j])); 501 (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j])); 502 503 (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL [i][j])); 504 (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE [i][j])); 505 (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j])); 506 } 507 } 508 #endif 509 510 // log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire"); 479 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 480 { 481 sensitive << *( in_ISSUE_VAL [i]) 482 << *( in_ISSUE_RD_USE [i]) 483 << *( in_ISSUE_RE_USE [i]); 484 485 if (_param->_have_port_ooo_engine_id == true) 486 sensitive << *( in_ISSUE_OOO_ENGINE_ID [i]); 487 488 for (uint32_t j=0; j<_param->_nb_ooo_engine; ++j) 489 sensitive << *( in_ISSUE_GPR_STATUS_ACK [j][i]) 490 << *( in_ISSUE_SPR_STATUS_ACK [j][i]); 491 } 492 493 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 494 // { 495 // uint32_t x=_param->_nb_inst_insert_rob [i]; 496 // for (uint32_t j=0; j<x; j++) 497 // sensitive << *( in_INSERT_ROB_VAL [i][j]) 498 // << *( in_INSERT_ROB_RD_USE [i][j]) 499 // << *( in_INSERT_ROB_RE_USE [i][j]) 500 // << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j]) 501 // << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]); 502 // } 503 #ifdef SYSTEMCASS_SPECIFIC 504 // // List dependency information 505 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 506 // { 507 // uint32_t x=_param->_nb_inst_insert_rob [i]; 508 // for (uint32_t j=0; j<x; j++) 509 // { 510 // (*(out_INSERT_ROB_ACK [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j])); 511 // (*(out_INSERT_ROB_ACK [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j])); 512 513 // (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL [i][j])); 514 // (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE [i][j])); 515 // (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j])); 516 517 // (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL [i][j])); 518 // (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE [i][j])); 519 // (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j])); 520 // } 521 // } 522 #endif 523 524 // log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Method - genMealy_retire"),_name.c_str()); 511 525 512 526 // SC_METHOD (genMealy_retire); … … 567 581 } 568 582 #endif 569 log_printf(FUNC,Register_unit_Glue,FUNCTION, "End");583 log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> End"),_name.c_str()); 570 584 }; 571 585 … … 574 588 Register_unit_Glue::~Register_unit_Glue (void) 575 589 { 576 log_printf(FUNC,Register_unit_Glue,FUNCTION, "Begin");590 log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> Begin"),_name.c_str()); 577 591 578 592 #ifdef STATISTICS 579 593 if (usage_is_set(_usage,USE_STATISTICS)) 580 594 { 581 log_printf(INFO,Register_unit_Glue,FUNCTION, "Generate Statistics file");595 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str()); 582 596 583 597 delete _stat; … … 585 599 #endif 586 600 587 log_printf(INFO,Register_unit_Glue,FUNCTION, "Deallocation");601 log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Deallocation"),_name.c_str()); 588 602 deallocation (); 589 603 590 log_printf(FUNC,Register_unit_Glue,FUNCTION, "End");604 log_printf(FUNC,Register_unit_Glue,FUNCTION,_("<%s> End"),_name.c_str()); 591 605 }; 592 606 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp
r131 r136 177 177 } 178 178 179 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 180 { 181 ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 182 183 _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL ,VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 184 _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK ,ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 185 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE,"rd_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 186 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE,"re_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 187 188 ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 189 } 190 191 { 192 ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 193 194 _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 195 _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 196 _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 197 198 ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 199 } 200 201 { 202 ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 203 204 _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 205 _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 206 _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 207 208 ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 209 } 179 // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 180 { 181 ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (insert)"),_param->_nb_inst_issue); 182 183 ALLOC1_VALACK_IN ( in_ISSUE_VAL ,VAL); 184 ALLOC1_VALACK_OUT(out_ISSUE_ACK ,ACK); 185 ALLOC1_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t,_param->_size_ooo_engine_id); 186 ALLOC1_SIGNAL_IN ( in_ISSUE_RD_USE ,"rd_use" ,Tcontrol_t, 1); 187 ALLOC1_SIGNAL_IN ( in_ISSUE_RE_USE ,"re_use" ,Tcontrol_t, 1); 188 189 ALLOC1_INTERFACE_END(_param->_nb_inst_issue); 190 } 191 192 { 193 ALLOC2_INTERFACE_BEGIN("issue_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_issue); 194 195 ALLOC2_VALACK_OUT(out_ISSUE_GPR_STATUS_VAL ,VAL ); 196 ALLOC2_VALACK_IN ( in_ISSUE_GPR_STATUS_ACK ,ACK ); 197 ALLOC2_SIGNAL_OUT(out_ISSUE_GPR_STATUS_DATA,"data",Tgeneral_data_t,1); 198 199 ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_issue); 200 } 201 202 { 203 ALLOC2_INTERFACE_BEGIN("issue_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine, _param->_nb_inst_issue); 204 205 ALLOC2_VALACK_OUT(out_ISSUE_SPR_STATUS_VAL ,VAL ); 206 ALLOC2_VALACK_IN ( in_ISSUE_SPR_STATUS_ACK ,ACK ); 207 ALLOC2_SIGNAL_OUT(out_ISSUE_SPR_STATUS_DATA,"data",Tspecial_data_t,1); 208 209 ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_issue); 210 } 211 212 // // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 // { 214 // ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 215 216 // _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL ,VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 217 // _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK ,ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 218 // _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE,"rd_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 219 // _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE,"re_use",Tcontrol_t, 1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 220 221 // ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 222 // } 223 224 // { 225 // ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 226 227 // _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 228 // _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 229 // _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 230 231 // ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 232 // } 233 234 // { 235 // ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 236 237 // _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 238 // _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 239 // _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 240 241 // ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); 242 // } 210 243 211 244 // // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp
r131 r136 33 33 PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1); 34 34 35 for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)36 {37 PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);38 PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);39 }35 // for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j) 36 // { 37 // PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0); 38 // PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0); 39 // } 40 40 } 41 42 for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i) 43 for (uint32_t j=0; j<_param->_nb_inst_issue; ++j) 44 { 45 PORT_WRITE(out_ISSUE_GPR_STATUS_DATA [i][j],0); 46 PORT_WRITE(out_ISSUE_SPR_STATUS_DATA [i][j],0); 47 } 41 48 42 49 log_end(Register_unit_Glue,FUNCTION); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_deallocation.cpp
r128 r136 84 84 DELETE2_SIGNAL(out_SPR_WRITE_STATUS_DATA ,_param->_nb_ooo_engine,_param->_nb_spr_write,1 ); 85 85 86 DELETE2_SIGNAL( in_INSERT_ROB_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 87 DELETE2_SIGNAL(out_INSERT_ROB_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 88 DELETE2_SIGNAL( in_INSERT_ROB_RD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 89 DELETE2_SIGNAL( in_INSERT_ROB_RE_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 86 DELETE1_SIGNAL( in_ISSUE_VAL ,_param->_nb_inst_issue,1); 87 DELETE1_SIGNAL(out_ISSUE_ACK ,_param->_nb_inst_issue,1); 88 DELETE1_SIGNAL( in_ISSUE_OOO_ENGINE_ID ,_param->_nb_inst_issue,_param->_size_ooo_engine_id); 89 DELETE1_SIGNAL( in_ISSUE_RD_USE ,_param->_nb_inst_issue,1); 90 DELETE1_SIGNAL( in_ISSUE_RE_USE ,_param->_nb_inst_issue,1); 90 91 91 DELETE2_SIGNAL(out_I NSERT_ROB_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);92 DELETE2_SIGNAL( in_I NSERT_ROB_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);93 DELETE2_SIGNAL(out_I NSERT_ROB_GPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);92 DELETE2_SIGNAL(out_ISSUE_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1); 93 DELETE2_SIGNAL( in_ISSUE_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1); 94 DELETE2_SIGNAL(out_ISSUE_GPR_STATUS_DATA ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1); 94 95 95 DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 96 DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 97 DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 96 DELETE2_SIGNAL(out_ISSUE_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1); 97 DELETE2_SIGNAL( in_ISSUE_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1); 98 DELETE2_SIGNAL(out_ISSUE_SPR_STATUS_DATA ,_param->_nb_ooo_engine,_param->_nb_inst_issue,1); 99 100 // DELETE2_SIGNAL( in_INSERT_ROB_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 101 // DELETE2_SIGNAL(out_INSERT_ROB_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 102 // DELETE2_SIGNAL( in_INSERT_ROB_RD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 103 // DELETE2_SIGNAL( in_INSERT_ROB_RE_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 104 105 // DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 106 // DELETE2_SIGNAL( in_INSERT_ROB_GPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 107 // DELETE2_SIGNAL(out_INSERT_ROB_GPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 108 109 // DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 110 // DELETE2_SIGNAL( in_INSERT_ROB_SPR_STATUS_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 111 // DELETE2_SIGNAL(out_INSERT_ROB_SPR_STATUS_DATA,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1); 98 112 } 99 113 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.cpp
r128 r136 28 28 if (PORT_READ(in_NRESET)) 29 29 { 30 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 31 for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++) 32 { 33 Tcontrol_t val = PORT_READ(in_INSERT_ROB_VAL [i][j]); 34 Tcontrol_t gpr_use = PORT_READ(in_INSERT_ROB_RD_USE [i][j]); 35 Tcontrol_t spr_use = PORT_READ(in_INSERT_ROB_RE_USE [i][j]); 36 Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]); 37 Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]); 38 39 Tcontrol_t ack = (gpr_status_ack and 40 spr_status_ack); 41 Tcontrol_t gpr_status_val = (val and 42 gpr_use and 43 spr_status_ack); 44 Tcontrol_t spr_status_val = (val and 45 spr_use and 46 gpr_status_ack); 30 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 31 { 32 Tcontrol_t val = PORT_READ(in_ISSUE_VAL [i]); 33 Tcontrol_t gpr_use = PORT_READ(in_ISSUE_RD_USE [i]); 34 Tcontrol_t spr_use = PORT_READ(in_ISSUE_RE_USE [i]); 35 Tcontext_t ooo_engine_id = (_param->_have_port_ooo_engine_id)?PORT_READ(in_ISSUE_VAL [i]):0; 36 Tcontrol_t gpr_status_ack = PORT_READ(in_ISSUE_GPR_STATUS_ACK [ooo_engine_id][i]); 37 Tcontrol_t spr_status_ack = PORT_READ(in_ISSUE_SPR_STATUS_ACK [ooo_engine_id][i]); 47 38 48 log_printf(TRACE,Register_unit_Glue,FUNCTION," * insert_rob [%d][%d]",i,j); 49 log_printf(TRACE,Register_unit_Glue,FUNCTION," * val (r) : %d",val ); 50 log_printf(TRACE,Register_unit_Glue,FUNCTION," * ack (w) : %d",ack ); 51 log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_use (rd) (r) : %d",gpr_use ); 52 log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_status_val (w) : %d",gpr_status_val); 53 log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_status_ack (r) : %d",gpr_status_ack); 54 log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_use (re) (r) : %d",spr_use ); 55 log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_status_val (w) : %d",spr_status_val); 56 log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_status_ack (r) : %d",spr_status_ack); 39 Tcontrol_t ack = (gpr_status_ack and 40 spr_status_ack); 41 Tcontrol_t gpr_status_val = (val and 42 gpr_use and 43 spr_status_ack); 44 Tcontrol_t spr_status_val = (val and 45 spr_use and 46 gpr_status_ack); 47 48 log_printf(TRACE,Register_unit_Glue,FUNCTION," * issue [%d]",i); 49 log_printf(TRACE,Register_unit_Glue,FUNCTION," * ooo_engine_id (w) : %d",ooo_engine_id ); 50 log_printf(TRACE,Register_unit_Glue,FUNCTION," * val (r) : %d",val ); 51 log_printf(TRACE,Register_unit_Glue,FUNCTION," * ack (w) : %d",ack ); 52 log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_use (rd) (r) : %d",gpr_use ); 53 log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_status_val (w) : %d",gpr_status_val); 54 log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_status_ack (r) : %d",gpr_status_ack); 55 log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_use (re) (r) : %d",spr_use ); 56 log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_status_val (w) : %d",spr_status_val); 57 log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_status_ack (r) : %d",spr_status_ack); 58 59 PORT_WRITE(out_ISSUE_ACK [i], ack ); 60 PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [ooo_engine_id][i], gpr_status_val); 61 PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [ooo_engine_id][i], spr_status_val); 57 62 58 PORT_WRITE(out_INSERT_ROB_ACK [i][j], ack ); 59 PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val); 60 PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val); 63 for (uint32_t j=0; j<_param->_nb_ooo_engine; ++j) 64 if (j!=ooo_engine_id) 65 { 66 PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [j][i], 0); 67 PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [j][i], 0); 68 } 61 69 } 62 70 } 63 71 else 64 72 { 65 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 66 for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++) 67 { 68 PORT_WRITE(out_INSERT_ROB_ACK [i][j], 0); 69 PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0); 70 PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0); 71 } 73 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 74 { 75 PORT_WRITE(out_ISSUE_ACK [i], 0); 76 for (uint32_t j=0; j<_param->_nb_ooo_engine; j++) 77 { 78 PORT_WRITE(out_ISSUE_GPR_STATUS_VAL [j][i], 0); 79 PORT_WRITE(out_ISSUE_SPR_STATUS_VAL [j][i], 0); 80 } 81 } 72 82 } 83 84 // if (PORT_READ(in_NRESET)) 85 // { 86 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 87 // for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++) 88 // { 89 // Tcontrol_t val = PORT_READ(in_INSERT_ROB_VAL [i][j]); 90 // Tcontrol_t gpr_use = PORT_READ(in_INSERT_ROB_RD_USE [i][j]); 91 // Tcontrol_t spr_use = PORT_READ(in_INSERT_ROB_RE_USE [i][j]); 92 // Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]); 93 // Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]); 94 95 // Tcontrol_t ack = (gpr_status_ack and 96 // spr_status_ack); 97 // Tcontrol_t gpr_status_val = (val and 98 // gpr_use and 99 // spr_status_ack); 100 // Tcontrol_t spr_status_val = (val and 101 // spr_use and 102 // gpr_status_ack); 103 104 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * insert_rob [%d][%d]",i,j); 105 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * val (r) : %d",val ); 106 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * ack (w) : %d",ack ); 107 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_use (rd) (r) : %d",gpr_use ); 108 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_status_val (w) : %d",gpr_status_val); 109 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * gpr_status_ack (r) : %d",gpr_status_ack); 110 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_use (re) (r) : %d",spr_use ); 111 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_status_val (w) : %d",spr_status_val); 112 // log_printf(TRACE,Register_unit_Glue,FUNCTION," * spr_status_ack (r) : %d",spr_status_ack); 113 114 // PORT_WRITE(out_INSERT_ROB_ACK [i][j], ack ); 115 // PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val); 116 // PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val); 117 // } 118 // } 119 // else 120 // { 121 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 122 // for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++) 123 // { 124 // PORT_WRITE(out_INSERT_ROB_ACK [i][j], 0); 125 // PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0); 126 // PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0); 127 // } 128 // } 73 129 74 130 log_end(Register_unit_Glue,FUNCTION); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp
r88 r136 245 245 246 246 //----------------------------------- 247 // I NSERT_ROB247 // ISSUE 248 248 //----------------------------------- 249 249 250 250 vhdl->set_body (""); 251 251 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 252 { 253 uint32_t x=_param->_nb_inst_insert_rob [i]; 254 for (uint32_t j=0; j<x; j++) 255 { 256 vhdl->set_body ("out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK <="); 257 vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and"); 258 vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;"); 259 260 vhdl->set_body ("out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <="); 261 vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 262 vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE and"); 263 vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;"); 264 265 vhdl->set_body ("out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <="); 266 vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 267 vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE and"); 268 vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;"); 269 } 270 } 271 272 //----------------------------------- 273 // RETIRE_ROB 274 //----------------------------------- 275 vhdl->set_body (""); 276 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 277 { 278 uint32_t x=_param->_nb_inst_retire_rob [i]; 279 for (uint32_t j=0; j<x; j++) 280 { 281 vhdl->set_body ("out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK <="); 282 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 283 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 284 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 285 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 286 287 vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <="); 288 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 289 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE and"); 290 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 291 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 292 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 293 294 vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <="); 295 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 296 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE and"); 297 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 298 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 299 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 300 301 vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <="); 302 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 303 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE and"); 304 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 305 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 306 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 307 308 vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <="); 309 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 310 vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE and"); 311 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 312 vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 313 vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK;"); 314 } 315 } 252 for (uint32_t j=0; j<_param->_nb_inst_issue; j++) 253 { 254 vhdl->set_body ("out_ISSUE_"+toString(j)+"_ACK <="); 255 vhdl->set_body ("\tin_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and"); 256 vhdl->set_body ("\tin_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK"); 257 if (_param->_have_port_ooo_engine_id) 258 { 259 vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i)); 260 vhdl->set_body ("else '0'"); 261 } 262 vhdl->set_body (";"); 263 264 265 vhdl->set_body ("out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <="); 266 vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_VAL and"); 267 vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_RD_USE and"); 268 vhdl->set_body ("\tin_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK"); 269 if (_param->_have_port_ooo_engine_id) 270 { 271 vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i)); 272 vhdl->set_body ("else '0'"); 273 } 274 vhdl->set_body (";"); 275 276 vhdl->set_body ("out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <="); 277 vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_VAL and"); 278 vhdl->set_body ("\tin_ISSUE_"+toString(j)+"_RE_USE and"); 279 vhdl->set_body ("\tin_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK"); 280 if (_param->_have_port_ooo_engine_id) 281 { 282 vhdl->set_body ("when out_ISSUE_"+toString(j)+"_OOO_ENGINE_ID = "+std_logic_conv(_param->_size_ooo_engine_id,i)); 283 vhdl->set_body ("else '0'"); 284 } 285 vhdl->set_body (";"); 286 } 287 288 // //----------------------------------- 289 // // INSERT_ROB 290 // //----------------------------------- 291 292 // vhdl->set_body (""); 293 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 294 // { 295 // uint32_t x=_param->_nb_inst_insert_rob [i]; 296 // for (uint32_t j=0; j<x; j++) 297 // { 298 // vhdl->set_body ("out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK <="); 299 // vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK and"); 300 // vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;"); 301 302 // vhdl->set_body ("out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <="); 303 // vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 304 // vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE and"); 305 // vhdl->set_body ("\tin_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;"); 306 307 // vhdl->set_body ("out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL <="); 308 // vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 309 // vhdl->set_body ("\tin_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE and"); 310 // vhdl->set_body ("\tin_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK;"); 311 // } 312 // } 313 314 // //----------------------------------- 315 // // RETIRE_ROB 316 // //----------------------------------- 317 // vhdl->set_body (""); 318 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 319 // { 320 // uint32_t x=_param->_nb_inst_retire_rob [i]; 321 // for (uint32_t j=0; j<x; j++) 322 // { 323 // vhdl->set_body ("out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK <="); 324 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 325 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 326 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 327 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 328 329 // vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <="); 330 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 331 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE and"); 332 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 333 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 334 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 335 336 // vhdl->set_body ("out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <="); 337 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 338 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE and"); 339 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 340 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 341 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 342 343 // vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL <="); 344 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 345 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE and"); 346 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 347 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 348 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK;"); 349 350 // vhdl->set_body ("out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL <="); 351 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL and"); 352 // vhdl->set_body ("\tin_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE and"); 353 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK and"); 354 // vhdl->set_body ("\tin_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK and"); 355 // vhdl->set_body ("\tin_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK;"); 356 // } 357 // } 316 358 317 359 log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
Note: See TracChangeset
for help on using the changeset viewer.