Changeset 123 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src
- Timestamp:
- Jun 8, 2009, 10:43:30 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select.cpp
r122 r123 38 38 log_printf(FUNC,Rename_select,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Core == true41 log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str());42 43 std::cout << *param << std::endl;44 #endif40 // #if DEBUG_Core == true 41 // log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 43 // std::cout << *param << std::endl; 44 // #endif 45 45 46 46 log_printf(INFO,Rename_select,FUNCTION,"Allocation"); … … 96 96 << (*(in_RENAME_IN_OPERATION [i][j])) 97 97 << (*(in_RENAME_IN_NO_EXECUTE [i][j])) 98 // << (*(in_RENAME_IN_HAVE_EVENT [i][j])) 99 << (*(in_RENAME_IN_LAST_EVENT [i][j])) 98 100 << (*(in_RENAME_IN_IS_DELAY_SLOT [i][j])) 99 101 #ifdef DEBUG … … 125 127 for (uint32_t i=0; i<_param->_nb_front_end; i++) 126 128 for (uint32_t j=0; j<_param->_nb_context [i]; j++) 127 sensitive << (*(in_RETIRE_EVENT_FLUSH [i][j]))129 sensitive // << (*(in_RETIRE_EVENT_FLUSH [i][j])) 128 130 << (*(in_RETIRE_EVENT_STOP [i][j])); 129 131 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_allocation.cpp
r122 r123 68 68 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 69 69 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_NO_EXECUTE ,"no_execute" ,Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 70 // _ALLOC2_SIGNAL_IN ( in_RENAME_IN_HAVE_EVENT ,"have_event" ,Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 71 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_LAST_EVENT ,"last_event" ,Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 70 72 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 71 73 #ifdef DEBUG … … 103 105 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 104 106 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_NO_EXECUTE ,"no_execute" ,Tcontrol_t ,1 ); 107 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_LAST_EVENT ,"last_event" ,Tcontrol_t ,1 ); 105 108 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t ,1 ); 106 109 #ifdef DEBUG … … 130 133 ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]); 131 134 132 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH ,"flush" ,Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_context[it1]);135 // _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_FLUSH ,"flush" ,Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_context[it1]); 133 136 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STOP ,"stop" ,Tcontrol_t ,1 , _param->_nb_front_end, _param->_nb_context[it1]); 134 137 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_deallocation.cpp
r122 r123 37 37 DELETE2_SIGNAL( in_RENAME_IN_OPERATION ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation ); 38 38 DELETE2_SIGNAL( in_RENAME_IN_NO_EXECUTE ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1 ); 39 // DELETE2_SIGNAL( in_RENAME_IN_HAVE_EVENT ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1 ); 40 DELETE2_SIGNAL( in_RENAME_IN_LAST_EVENT ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1 ); 39 41 DELETE2_SIGNAL( in_RENAME_IN_IS_DELAY_SLOT ,_param->_nb_front_end, _param->_nb_inst_decod[it1],1 ); 40 42 #ifdef DEBUG … … 65 67 DELETE1_SIGNAL(out_RENAME_OUT_OPERATION ,_param->_nb_inst_rename,_param->_size_operation ); 66 68 DELETE1_SIGNAL(out_RENAME_OUT_NO_EXECUTE ,_param->_nb_inst_rename,1 ); 69 DELETE1_SIGNAL(out_RENAME_OUT_LAST_EVENT ,_param->_nb_inst_rename,1 ); 67 70 DELETE1_SIGNAL(out_RENAME_OUT_IS_DELAY_SLOT ,_param->_nb_inst_rename,1 ); 68 71 #ifdef DEBUG … … 85 88 DELETE1_SIGNAL(out_RENAME_OUT_EXCEPTION ,_param->_nb_inst_rename,_param->_size_exception ); 86 89 87 DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH ,_param->_nb_front_end, _param->_nb_context[it1],1);90 // DELETE2_SIGNAL( in_RETIRE_EVENT_FLUSH ,_param->_nb_front_end, _param->_nb_context[it1],1); 88 91 DELETE2_SIGNAL( in_RETIRE_EVENT_STOP ,_param->_nb_front_end, _param->_nb_context[it1],1); 89 92 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp
r122 r123 17 17 namespace rename_select { 18 18 19 // #define CONTINUE_ON_EVENT_STOP20 21 19 #undef FUNCTION 22 20 #define FUNCTION "Rename_select::genMealy" … … 28 26 Tcontrol_t val [_param->_nb_inst_rename]; 29 27 Tcontrol_t ack [_param->_nb_front_end][_param->_max_nb_inst_decod]; 30 Tcontrol_t previous_transaction [_param->_nb_front_end];31 28 32 29 for (uint32_t i=0; i<_param->_nb_inst_rename; ++i) 33 30 val [i] = false; 34 31 for (uint32_t i=0; i<_param->_nb_front_end; i++) 32 for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++) 33 ack [i][j] = false; 34 35 if (PORT_READ(in_NRESET)) 35 36 { 36 previous_transaction [i] = true; 37 for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++) 38 ack [i][j] = false; 39 } 37 Tcontrol_t previous_transaction [_param->_nb_front_end]; 38 for (uint32_t i=0; i<_param->_nb_front_end; i++) 39 previous_transaction [i] = true; 40 40 41 41 std::list<generic::priority::select_t> * select = _priority->select(); … … 71 71 72 72 // Test if ROB is Flushed 73 #ifndef CONTINUE_ON_EVENT_STOP74 73 if (not stop) 75 #endif76 74 { 77 75 // Find !!! … … 79 77 ack [x][y] = PORT_READ(in_RENAME_OUT_ACK [i]); 80 78 81 Tcontrol_t have_event = (PORT_READ(in_RETIRE_EVENT_FLUSH [x][context_id]) 82 #ifdef CONTINUE_ON_EVENT_STOP 83 or stop 84 #endif 85 );86 Tcontrol_t can_register_access = not have_event;87 Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event);88 Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA[x][y]) and can_register_access);89 Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB[x][y]) and can_register_access);90 Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC[x][y]) and can_register_access);91 Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD[x][y]) and can_register_access);92 Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]) and can_register_access);93 //Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y]));94 //Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y]));95 //Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y]));96 //Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y]));97 //Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]));79 // Tcontrol_t have_event = (PORT_READ(in_RETIRE_EVENT_FLUSH [x][context_id]) // or 80 // ); 81 // log_printf(TRACE,Rename_select,FUNCTION," * have_event : %d",have_event); 82 83 // Tcontrol_t can_register_access = not have_event; 84 // Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event); 85 // Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y]) and can_register_access); 86 // Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y]) and can_register_access); 87 // Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y]) and can_register_access); 88 // Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y]) and can_register_access); 89 // Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]) and can_register_access); 90 Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y])); 91 Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y])); 92 Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y])); 93 Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y])); 94 Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y])); 95 Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y])); 98 96 99 log_printf(TRACE,Rename_select,FUNCTION," * have_event : %d",have_event); 100 log_printf(TRACE,Rename_select,FUNCTION," * no_execute (before) : %d",PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y])); 101 log_printf(TRACE,Rename_select,FUNCTION," * no_execute (after) : %d",no_execute); 97 log_printf(TRACE,Rename_select,FUNCTION," * no_execute : %d",no_execute); 102 98 103 99 if (_param->_have_port_front_end_id) … … 110 106 PORT_WRITE(out_RENAME_OUT_OPERATION [i],PORT_READ(in_RENAME_IN_OPERATION [x][y])); 111 107 PORT_WRITE(out_RENAME_OUT_NO_EXECUTE [i],no_execute); 108 PORT_WRITE(out_RENAME_OUT_LAST_EVENT [i],PORT_READ(in_RENAME_IN_LAST_EVENT [x][y])); 112 109 PORT_WRITE(out_RENAME_OUT_IS_DELAY_SLOT[i],PORT_READ(in_RENAME_IN_IS_DELAY_SLOT [x][y])); 113 110 #ifdef DEBUG … … 140 137 } 141 138 139 } 140 // else 141 // { 142 // } 143 142 144 for (uint32_t i=0; i<_param->_nb_inst_rename; ++i) 143 145 PORT_WRITE(out_RENAME_OUT_VAL [i], val [i]); … … 146 148 for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++) 147 149 PORT_WRITE(out_RENAME_IN_ACK [i][j], ack [i][j]); 150 148 151 149 152 log_end(Rename_select,FUNCTION);
Note: See TracChangeset
for help on using the changeset viewer.