Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters.cpp
r81 r88 34 34 uint32_t * nb_special_register , 35 35 uint32_t * nb_inst_insert_rob , 36 uint32_t * nb_inst_retire_rob ): 37 _nb_ooo_engine (nb_ooo_engine ), 38 _size_general_data (size_general_data ), 39 _size_special_data (size_special_data ), 40 _nb_gpr_read (nb_gpr_read ), 41 _nb_gpr_write (nb_gpr_write ), 42 _nb_gpr_bank (nb_gpr_bank ), 43 _nb_gpr_port_read_by_bank (nb_gpr_port_read_by_bank ), 44 _nb_gpr_port_write_by_bank (nb_gpr_port_write_by_bank), 45 _nb_spr_read (nb_spr_read ), 46 _nb_spr_write (nb_spr_write ), 47 _nb_spr_bank (nb_spr_bank ), 48 _nb_spr_port_read_by_bank (nb_spr_port_read_by_bank ), 49 _nb_spr_port_write_by_bank (nb_spr_port_write_by_bank), 50 _nb_general_register (nb_general_register ), 51 _nb_special_register (nb_special_register ), 52 _nb_inst_insert_rob (nb_inst_insert_rob ), 53 _nb_inst_retire_rob (nb_inst_retire_rob ), 54 _have_port_ooo_engine_id (nb_ooo_engine>1 ) 55 36 uint32_t * nb_inst_retire_rob , 37 bool is_toplevel ) 56 38 { 57 39 log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 40 41 42 _nb_ooo_engine = nb_ooo_engine ; 43 _nb_gpr_read = nb_gpr_read ; 44 _nb_gpr_write = nb_gpr_write ; 45 _nb_gpr_bank = nb_gpr_bank ; 46 _nb_gpr_port_read_by_bank = nb_gpr_port_read_by_bank ; 47 _nb_gpr_port_write_by_bank = nb_gpr_port_write_by_bank; 48 _nb_spr_read = nb_spr_read ; 49 _nb_spr_write = nb_spr_write ; 50 _nb_spr_bank = nb_spr_bank ; 51 _nb_spr_port_read_by_bank = nb_spr_port_read_by_bank ; 52 _nb_spr_port_write_by_bank = nb_spr_port_write_by_bank; 53 _nb_general_register = nb_general_register ; 54 _nb_special_register = nb_special_register ; 55 _nb_inst_insert_rob = nb_inst_insert_rob ; 56 _nb_inst_retire_rob = nb_inst_retire_rob ; 58 57 59 58 _size_gpr_address = log2(nb_general_register [0]); … … 74 73 _size_spr_address = new_size; 75 74 } 76 77 75 78 76 _param_gpr = new morpheo::behavioural::generic::registerfile::Parameters * [_nb_ooo_engine]; … … 86 84 __param_spr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters * [_nb_ooo_engine]; 87 85 88 for (uint32_t i=0; i<_nb_ooo_engine; i++) 89 { 90 Tcrossbar_t crossbar = PARTIAL_CROSSBAR; 91 92 __param_gpr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters 93 (_nb_gpr_read , 94 _nb_gpr_write , 95 _nb_general_register[i] , 96 _size_general_data , 97 _nb_gpr_bank , 98 _nb_gpr_port_read_by_bank , 99 _nb_gpr_port_write_by_bank, 100 crossbar ); 101 102 __param_gpr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters 103 (_nb_gpr_read , 104 _nb_gpr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i], 105 0, 106 nb_general_register[i], 107 1); 108 109 __param_spr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters 110 (_nb_spr_read , 111 _nb_spr_write , 112 _nb_special_register[i] , 113 _size_special_data , 114 _nb_spr_bank , 115 _nb_spr_port_read_by_bank , 116 _nb_spr_port_write_by_bank, 117 crossbar ); 118 119 __param_spr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters 120 (_nb_spr_read , 121 _nb_spr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i], 122 0, 123 nb_special_register[i], 124 1); 125 126 _param_gpr [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_gpr [i]); 127 _param_gpr_status [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_gpr_status [i]); 128 _param_spr [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_spr [i]); 129 _param_spr_status [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_spr_status [i]); 130 } 131 132 _param_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters (_nb_ooo_engine , 133 _size_general_data , 134 _size_special_data , 135 _nb_gpr_read , 136 _nb_spr_read , 137 _nb_gpr_write , 138 _nb_spr_write , 139 _nb_inst_insert_rob , 140 _nb_inst_retire_rob ); 141 86 for (uint32_t i=0; i<_nb_ooo_engine; i++) 87 { 88 Tcrossbar_t crossbar = PARTIAL_CROSSBAR; 89 90 __param_gpr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters 91 (_nb_gpr_read , 92 _nb_gpr_write , 93 _nb_general_register[i] , 94 size_general_data , 95 _nb_gpr_bank , 96 _nb_gpr_port_read_by_bank , 97 _nb_gpr_port_write_by_bank, 98 crossbar ); 99 100 __param_gpr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters 101 (_nb_gpr_read , 102 // _nb_gpr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i], 103 _nb_gpr_write+_nb_inst_insert_rob[i], 104 0, 105 nb_general_register[i], 106 1); 107 108 __param_spr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters 109 (_nb_spr_read , 110 _nb_spr_write , 111 _nb_special_register[i] , 112 size_special_data , 113 _nb_spr_bank , 114 _nb_spr_port_read_by_bank , 115 _nb_spr_port_write_by_bank, 116 crossbar ); 117 118 __param_spr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters 119 (_nb_spr_read , 120 // _nb_spr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i], 121 _nb_spr_write+_nb_inst_insert_rob[i], 122 0, 123 nb_special_register[i], 124 1); 125 126 _param_gpr [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_gpr [i]); 127 _param_gpr_status [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_gpr_status [i]); 128 _param_spr [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_spr [i]); 129 _param_spr_status [i] = new morpheo::behavioural::generic::registerfile::Parameters (__param_spr_status [i]); 130 } 142 131 143 144 132 _param_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters (_nb_ooo_engine , 133 size_general_data , 134 size_special_data , 135 _nb_gpr_read , 136 _nb_spr_read , 137 _nb_gpr_write , 138 _nb_spr_write , 139 _nb_inst_insert_rob , 140 _nb_inst_retire_rob ); 141 145 142 test(); 146 log_printf(FUNC,Register_unit,FUNCTION,"End"); 143 144 if (is_toplevel) 145 { 146 _size_ooo_engine_id = log2(nb_ooo_engine); 147 _size_general_data = size_general_data; 148 _size_special_data = size_special_data; 149 150 _have_port_ooo_engine_id = _size_ooo_engine_id > 0; 151 152 copy(); 153 } 154 155 log_printf(FUNC,Register_unit,FUNCTION,"End"); 147 156 }; 148 157 158 // #undef FUNCTION 159 // #define FUNCTION "Register_unit::Parameters (copy)" 160 // Parameters::Parameters (Parameters & param): 161 // _nb_ooo_engine (param._nb_ooo_engine ), 162 // _size_general_data (param._size_general_data ), 163 // _size_special_data (param._size_special_data ), 164 // _nb_gpr_read (param._nb_gpr_read ), 165 // _nb_gpr_write (param._nb_gpr_write ), 166 // _nb_gpr_bank (param._nb_gpr_bank ), 167 // _nb_gpr_port_read_by_bank (param._nb_gpr_port_read_by_bank ), 168 // _nb_gpr_port_write_by_bank (param._nb_gpr_port_write_by_bank), 169 // _nb_spr_read (param._nb_spr_read ), 170 // _nb_spr_write (param._nb_spr_write ), 171 // _nb_spr_bank (param._nb_spr_bank ), 172 // _nb_spr_port_read_by_bank (param._nb_spr_port_read_by_bank ), 173 // _nb_spr_port_write_by_bank (param._nb_spr_port_write_by_bank), 174 // _nb_general_register (param._nb_general_register ), 175 // _nb_special_register (param._nb_special_register ), 176 // _nb_inst_insert_rob (param._nb_inst_insert_rob ), 177 // _nb_inst_retire_rob (param._nb_inst_retire_rob ), 178 // _have_port_ooo_engine_id (param._have_port_ooo_engine_id ) 179 // { 180 // log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 181 182 // _size_gpr_address = param._size_gpr_address; 183 // _size_spr_address = param._size_spr_address; 184 185 // __param_gpr = param.__param_gpr ; 186 // __param_gpr_status = param.__param_gpr_status; 187 // __param_spr = param.__param_spr ; 188 // __param_spr_status = param.__param_spr_status; 189 // _param_gpr = param._param_gpr ; 190 // _param_gpr_status = param._param_gpr_status; 191 // _param_spr = param._param_spr ; 192 // _param_spr_status = param._param_spr_status; 193 // _param_glue = param._param_glue ; 194 195 // test(); 196 // log_printf(FUNC,Register_unit,FUNCTION,"End"); 197 // }; 198 149 199 #undef FUNCTION 150 #define FUNCTION "Register_unit::Parameters (copy)" 151 Parameters::Parameters (Parameters & param): 152 _nb_ooo_engine (param._nb_ooo_engine ), 153 _size_general_data (param._size_general_data ), 154 _size_special_data (param._size_special_data ), 155 _nb_gpr_read (param._nb_gpr_read ), 156 _nb_gpr_write (param._nb_gpr_write ), 157 _nb_gpr_bank (param._nb_gpr_bank ), 158 _nb_gpr_port_read_by_bank (param._nb_gpr_port_read_by_bank ), 159 _nb_gpr_port_write_by_bank (param._nb_gpr_port_write_by_bank), 160 _nb_spr_read (param._nb_spr_read ), 161 _nb_spr_write (param._nb_spr_write ), 162 _nb_spr_bank (param._nb_spr_bank ), 163 _nb_spr_port_read_by_bank (param._nb_spr_port_read_by_bank ), 164 _nb_spr_port_write_by_bank (param._nb_spr_port_write_by_bank), 165 _nb_general_register (param._nb_general_register ), 166 _nb_special_register (param._nb_special_register ), 167 _nb_inst_insert_rob (param._nb_inst_insert_rob ), 168 _nb_inst_retire_rob (param._nb_inst_retire_rob ), 169 _have_port_ooo_engine_id (param._have_port_ooo_engine_id ) 200 #define FUNCTION "Register_unit::~Parameters" 201 Parameters::~Parameters (void) 170 202 { 171 203 log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 172 204 173 _size_gpr_address = param._size_gpr_address; 174 _size_spr_address = param._size_spr_address; 175 176 __param_gpr = param.__param_gpr ; 177 __param_gpr_status = param.__param_gpr_status; 178 __param_spr = param.__param_spr ; 179 __param_spr_status = param.__param_spr_status; 180 _param_gpr = param._param_gpr ; 181 _param_gpr_status = param._param_gpr_status; 182 _param_spr = param._param_spr ; 183 _param_spr_status = param._param_spr_status; 184 _param_glue = param._param_glue ; 185 186 test(); 187 log_printf(FUNC,Register_unit,FUNCTION,"End"); 188 }; 189 190 #undef FUNCTION 191 #define FUNCTION "Register_unit::~Parameters" 192 Parameters::~Parameters () 193 { 194 log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 195 196 delete [] _param_gpr ; 197 delete [] _param_gpr_status; 198 delete [] _param_spr ; 199 delete [] _param_spr_status; 205 for (uint32_t i=0; i<_nb_ooo_engine; i++) 206 { 207 delete _param_gpr [i]; 208 delete _param_gpr_status [i]; 209 delete _param_spr [i]; 210 delete _param_spr_status [i]; 211 delete __param_gpr [i]; 212 delete __param_gpr_status [i]; 213 delete __param_spr [i]; 214 delete __param_spr_status [i]; 215 } 216 delete [] _param_gpr ; 217 delete [] _param_gpr_status ; 218 delete [] _param_spr ; 219 delete [] _param_spr_status ; 200 220 delete [] __param_gpr ; 201 221 delete [] __param_gpr_status; … … 207 227 }; 208 228 229 #undef FUNCTION 230 #define FUNCTION "Register_unit::copy" 231 void Parameters::copy (void) 232 { 233 log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 234 235 for (uint32_t i=0; i<_nb_ooo_engine; i++) 236 { 237 COPY(__param_gpr [i]); 238 COPY(__param_gpr_status [i]); 239 COPY(__param_spr [i]); 240 COPY(__param_spr_status [i]); 241 } 242 COPY(_param_glue); 243 244 log_printf(FUNC,Register_unit,FUNCTION,"End"); 245 }; 246 209 247 }; // end namespace register_unit 210 248 }; // end namespace execute_loop -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp
r81 r88 37 37 log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 38 38 39 #if DEBUG_Register_unit == true 40 log_printf(INFO,Register_unit,FUNCTION,_("<%s> Parameters"),_name.c_str()); 41 42 std::cout << *param << std::endl; 43 #endif 44 39 45 log_printf(INFO,Register_unit,FUNCTION,"Allocation"); 40 46 allocation ( … … 45 51 46 52 #ifdef STATISTICS 47 log_printf(INFO,Register_unit,FUNCTION,"Allocation of statistics"); 53 if (usage_is_set(_usage,USE_STATISTICS)) 54 { 55 log_printf(INFO,Register_unit,FUNCTION,_("<%s> : Allocation of statistics"),_name.c_str()); 48 56 49 // Allocation of statistics 50 statistics_declaration(param_statistics);57 statistics_declaration(param_statistics); 58 } 51 59 #endif 52 60 53 61 #ifdef VHDL 54 // generate the vhdl 55 log_printf(INFO,Register_unit,FUNCTION,"Generate the vhdl"); 56 57 vhdl(); 62 if (usage_is_set(_usage,USE_VHDL)) 63 { 64 // generate the vhdl 65 log_printf(INFO,Register_unit,FUNCTION,"Generate the vhdl"); 66 67 vhdl(); 68 } 58 69 #endif 59 70 60 71 #ifdef SYSTEMC 72 if (usage_is_set(_usage,USE_SYSTEMC)) 73 { 61 74 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 62 75 log_printf(INFO,Register_unit,FUNCTION,"Method - transition"); … … 70 83 // List dependency information 71 84 #endif 72 85 } 73 86 #endif 74 87 log_printf(FUNC,Register_unit,FUNCTION,"End"); … … 82 95 83 96 #ifdef STATISTICS 84 log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file"); 85 delete _stat; 97 if (usage_is_set(_usage,USE_STATISTICS)) 98 { 99 log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file"); 100 delete _stat; 101 } 86 102 #endif 87 103 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp
r82 r88 2 2 * $Id$ 3 3 * 4 * [ 4 * [ Description ] 5 5 * 6 6 */ … … 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h" 9 9 10 namespace morpheo 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace core { … … 14 14 namespace execute_loop { 15 15 namespace register_unit { 16 17 18 16 19 17 #undef FUNCTION … … 40 38 _interfaces = entity->set_interfaces(); 41 39 42 // ~~~~~[ 40 // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 41 44 42 Interface * interface = _interfaces->set_interface("" … … 53 51 in_NRESET = interface->set_signal_in <Tcontrol_t> ("nreset",1, RESET_VHDL_YES); 54 52 55 // ~~~~~[ 53 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 54 in_GPR_READ_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_read]; 57 55 out_GPR_READ_ACK = new SC_OUT(Tcontrol_t ) * [_param->_nb_gpr_read]; … … 75 73 out_GPR_READ_ACK [i]= interface->set_signal_valack_out (ACK); 76 74 if (_param->_have_port_ooo_engine_id == true) 77 in_GPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));75 in_GPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , _param->_size_ooo_engine_id); 78 76 in_GPR_READ_NUM_REG [i]= interface->set_signal_in <Tgeneral_address_t> ("num_reg" , _param->_size_gpr_address); 79 77 out_GPR_READ_DATA [i]= interface->set_signal_out<Tgeneral_data_t > ("data" , _param->_size_general_data); … … 81 79 } 82 80 83 // ~~~~~[ 81 // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 84 82 in_GPR_WRITE_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_write]; 85 83 out_GPR_WRITE_ACK = new SC_OUT(Tcontrol_t ) * [_param->_nb_gpr_write]; … … 102 100 out_GPR_WRITE_ACK [i]= interface->set_signal_valack_out (ACK); 103 101 if (_param->_have_port_ooo_engine_id == true) 104 in_GPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));102 in_GPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , _param->_size_ooo_engine_id); 105 103 in_GPR_WRITE_NUM_REG [i]= interface->set_signal_in <Tgeneral_address_t> ("num_reg" , _param->_size_gpr_address); 106 104 in_GPR_WRITE_DATA [i]= interface->set_signal_in <Tgeneral_data_t > ("data" , _param->_size_general_data); 107 105 } 108 106 109 // ~~~~~[ 107 // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 108 in_SPR_READ_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_read]; 111 109 out_SPR_READ_ACK = new SC_OUT(Tcontrol_t ) * [_param->_nb_spr_read]; … … 129 127 out_SPR_READ_ACK [i]= interface->set_signal_valack_out (ACK); 130 128 if (_param->_have_port_ooo_engine_id == true) 131 in_SPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));129 in_SPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , _param->_size_ooo_engine_id); 132 130 in_SPR_READ_NUM_REG [i]= interface->set_signal_in <Tspecial_address_t> ("num_reg" , _param->_size_spr_address); 133 131 out_SPR_READ_DATA [i]= interface->set_signal_out<Tspecial_data_t > ("data" , _param->_size_special_data); … … 135 133 } 136 134 137 // ~~~~~[ 135 // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 136 in_SPR_WRITE_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_write]; 139 137 out_SPR_WRITE_ACK = new SC_OUT(Tcontrol_t ) * [_param->_nb_spr_write]; … … 156 154 out_SPR_WRITE_ACK [i]= interface->set_signal_valack_out (ACK); 157 155 if (_param->_have_port_ooo_engine_id == true) 158 in_SPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));156 in_SPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t > ("ooo_engine_id" , _param->_size_ooo_engine_id); 159 157 in_SPR_WRITE_NUM_REG [i]= interface->set_signal_in <Tspecial_address_t> ("num_reg" , _param->_size_spr_address); 160 158 in_SPR_WRITE_DATA [i]= interface->set_signal_in <Tspecial_data_t > ("data" , _param->_size_special_data); 161 159 } 162 160 163 // ~~~~~[ 161 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 162 in_INSERT_ROB_VAL = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 165 163 out_INSERT_ROB_ACK = new SC_OUT(Tcontrol_t ) ** [_param->_nb_ooo_engine]; … … 201 199 } 202 200 203 // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 in_RETIRE_ROB_VAL = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 205 out_RETIRE_ROB_ACK = new SC_OUT(Tcontrol_t ) ** [_param->_nb_ooo_engine]; 206 in_RETIRE_ROB_RD_OLD_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 207 in_RETIRE_ROB_RD_OLD_NUM_REG = new SC_IN (Tgeneral_address_t) ** [_param->_nb_ooo_engine]; 208 in_RETIRE_ROB_RE_OLD_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 209 in_RETIRE_ROB_RE_OLD_NUM_REG = new SC_IN (Tspecial_address_t) ** [_param->_nb_ooo_engine]; 210 in_RETIRE_ROB_RD_NEW_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 211 in_RETIRE_ROB_RD_NEW_NUM_REG = new SC_IN (Tgeneral_address_t) ** [_param->_nb_ooo_engine]; 212 in_RETIRE_ROB_RE_NEW_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 213 in_RETIRE_ROB_RE_NEW_NUM_REG = new SC_IN (Tspecial_address_t) ** [_param->_nb_ooo_engine]; 214 215 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 216 { 217 uint32_t x=_param->_nb_inst_retire_rob [i]; 218 219 in_RETIRE_ROB_VAL [i] = new SC_IN (Tcontrol_t ) * [x]; 220 out_RETIRE_ROB_ACK [i] = new SC_OUT(Tcontrol_t ) * [x]; 221 in_RETIRE_ROB_RD_OLD_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 222 in_RETIRE_ROB_RD_OLD_NUM_REG [i] = new SC_IN (Tgeneral_address_t) * [x]; 223 in_RETIRE_ROB_RE_OLD_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 224 in_RETIRE_ROB_RE_OLD_NUM_REG [i] = new SC_IN (Tspecial_address_t) * [x]; 225 in_RETIRE_ROB_RD_NEW_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 226 in_RETIRE_ROB_RD_NEW_NUM_REG [i] = new SC_IN (Tgeneral_address_t) * [x]; 227 in_RETIRE_ROB_RE_NEW_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 228 in_RETIRE_ROB_RE_NEW_NUM_REG [i] = new SC_IN (Tspecial_address_t) * [x]; 229 230 for (uint32_t j=0; j<x; j++) 231 { 232 Interface_fifo * interface = _interfaces->set_interface("retire_rob_"+toString(i)+"_"+toString(j) 233 #ifdef POSITION 234 ,IN 235 ,WEST 236 ,"Interface to update status (retire)" 237 #endif 238 ); 239 240 241 in_RETIRE_ROB_VAL [i][j] = interface->set_signal_valack_in (VAL); 242 out_RETIRE_ROB_ACK [i][j] = interface->set_signal_valack_out (ACK); 243 in_RETIRE_ROB_RD_OLD_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("rd_old_use" , 1); 244 in_RETIRE_ROB_RD_OLD_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_old_num_reg", _param->_size_gpr_address); 245 in_RETIRE_ROB_RE_OLD_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("re_old_use" , 1); 246 in_RETIRE_ROB_RE_OLD_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_old_num_reg", _param->_size_spr_address); 247 in_RETIRE_ROB_RD_NEW_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("rd_new_use" , 1); 248 in_RETIRE_ROB_RD_NEW_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_new_num_reg", _param->_size_gpr_address); 249 in_RETIRE_ROB_RE_NEW_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("re_new_use" , 1); 250 in_RETIRE_ROB_RE_NEW_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_new_num_reg", _param->_size_spr_address); 251 } 252 } 253 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 // // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 // in_RETIRE_ROB_VAL = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 203 // out_RETIRE_ROB_ACK = new SC_OUT(Tcontrol_t ) ** [_param->_nb_ooo_engine]; 204 // in_RETIRE_ROB_RD_OLD_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 205 // in_RETIRE_ROB_RD_OLD_NUM_REG = new SC_IN (Tgeneral_address_t) ** [_param->_nb_ooo_engine]; 206 // in_RETIRE_ROB_RE_OLD_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 207 // in_RETIRE_ROB_RE_OLD_NUM_REG = new SC_IN (Tspecial_address_t) ** [_param->_nb_ooo_engine]; 208 // in_RETIRE_ROB_RD_NEW_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 209 // in_RETIRE_ROB_RD_NEW_NUM_REG = new SC_IN (Tgeneral_address_t) ** [_param->_nb_ooo_engine]; 210 // in_RETIRE_ROB_RE_NEW_USE = new SC_IN (Tcontrol_t ) ** [_param->_nb_ooo_engine]; 211 // in_RETIRE_ROB_RE_NEW_NUM_REG = new SC_IN (Tspecial_address_t) ** [_param->_nb_ooo_engine]; 212 213 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 214 // { 215 // uint32_t x=_param->_nb_inst_retire_rob [i]; 216 217 // in_RETIRE_ROB_VAL [i] = new SC_IN (Tcontrol_t ) * [x]; 218 // out_RETIRE_ROB_ACK [i] = new SC_OUT(Tcontrol_t ) * [x]; 219 // in_RETIRE_ROB_RD_OLD_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 220 // in_RETIRE_ROB_RD_OLD_NUM_REG [i] = new SC_IN (Tgeneral_address_t) * [x]; 221 // in_RETIRE_ROB_RE_OLD_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 222 // in_RETIRE_ROB_RE_OLD_NUM_REG [i] = new SC_IN (Tspecial_address_t) * [x]; 223 // in_RETIRE_ROB_RD_NEW_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 224 // in_RETIRE_ROB_RD_NEW_NUM_REG [i] = new SC_IN (Tgeneral_address_t) * [x]; 225 // in_RETIRE_ROB_RE_NEW_USE [i] = new SC_IN (Tcontrol_t ) * [x]; 226 // in_RETIRE_ROB_RE_NEW_NUM_REG [i] = new SC_IN (Tspecial_address_t) * [x]; 227 228 // for (uint32_t j=0; j<x; j++) 229 // { 230 // Interface_fifo * interface = _interfaces->set_interface("retire_rob_"+toString(i)+"_"+toString(j) 231 // #ifdef POSITION 232 // ,IN 233 // ,WEST 234 // ,"Interface to update status (retire)" 235 // #endif 236 // ); 237 238 239 // in_RETIRE_ROB_VAL [i][j] = interface->set_signal_valack_in (VAL); 240 // out_RETIRE_ROB_ACK [i][j] = interface->set_signal_valack_out (ACK); 241 // in_RETIRE_ROB_RD_OLD_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("rd_old_use" , 1); 242 // in_RETIRE_ROB_RD_OLD_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_old_num_reg", _param->_size_gpr_address); 243 // in_RETIRE_ROB_RE_OLD_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("re_old_use" , 1); 244 // in_RETIRE_ROB_RE_OLD_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_old_num_reg", _param->_size_spr_address); 245 // in_RETIRE_ROB_RD_NEW_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("rd_new_use" , 1); 246 // in_RETIRE_ROB_RD_NEW_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_new_num_reg", _param->_size_gpr_address); 247 // in_RETIRE_ROB_RE_NEW_USE [i][j] = interface->set_signal_in <Tcontrol_t > ("re_new_use" , 1); 248 // in_RETIRE_ROB_RE_NEW_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_new_num_reg", _param->_size_spr_address); 249 // } 250 // } 251 252 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 253 255 254 std::string name; … … 263 262 { 264 263 name = _name+"_gpr_"+toString(i); 264 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 265 265 266 266 component_gpr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile … … 284 284 285 285 name = _name+"_gpr_status_"+toString(i); 286 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 286 287 287 288 component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile … … 305 306 306 307 name = _name+"_spr_"+toString(i); 308 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 307 309 308 310 component_spr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile … … 325 327 326 328 name = _name+"_spr_status_"+toString(i); 329 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 327 330 328 331 component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile … … 347 350 348 351 name = _name+"_glue"; 352 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 349 353 350 354 component_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue … … 373 377 name_component = _name+"_gpr_"+toString(i); 374 378 375 std::cout << "Instance : " << name_component << std::endl;379 log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str()); 376 380 377 381 #ifdef POSITION … … 430 434 name_component = _name+"_gpr_status_"+toString(i); 431 435 432 std::cout << "Instance : " << name_component << std::endl;436 log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str()); 433 437 434 438 #ifdef POSITION … … 516 520 } 517 521 518 for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++)519 {520 _component->port_map(name_component,521 "in_WRITE_"+toString(x)+"_VAL" ,522 _name+"_glue",523 "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL");524 _component->port_map(name_component,525 "out_WRITE_"+toString(x)+"_ACK",526 _name+"_glue",527 "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" );528 529 _component->port_map(name_component,530 "in_WRITE_"+toString(x)+"_DATA" ,531 _name+"_glue",532 "out_CONST_0");533 _component->port_map(_name+"_glue",534 "out_CONST_0",535 name_component,536 "in_WRITE_"+toString(x)+"_DATA" );537 538 _component->port_map(name_component,539 "in_WRITE_"+toString(x++)+"_ADDRESS",540 _name,541 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG");522 // for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++) 523 // { 524 // _component->port_map(name_component, 525 // "in_WRITE_"+toString(x)+"_VAL" , 526 // _name+"_glue", 527 // "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL"); 528 // _component->port_map(name_component, 529 // "out_WRITE_"+toString(x)+"_ACK", 530 // _name+"_glue", 531 // "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" ); 532 533 // _component->port_map(name_component, 534 // "in_WRITE_"+toString(x)+"_DATA" , 535 // _name+"_glue", 536 // "out_CONST_0"); 537 // _component->port_map(_name+"_glue", 538 // "out_CONST_0", 539 // name_component, 540 // "in_WRITE_"+toString(x)+"_DATA" ); 541 542 // _component->port_map(name_component, 543 // "in_WRITE_"+toString(x++)+"_ADDRESS", 544 // _name, 545 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG"); 542 546 543 _component->port_map(name_component,544 "in_WRITE_"+toString(x)+"_VAL" ,545 _name+"_glue",546 "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL");547 _component->port_map(name_component,548 "out_WRITE_"+toString(x)+"_ACK",549 _name+"_glue",550 "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" );551 552 _component->port_map(name_component,553 "in_WRITE_"+toString(x)+"_DATA" ,554 _name+"_glue",555 "out_CONST_1"556 );557 _component->port_map(_name+"_glue",558 "out_CONST_1",559 name_component,560 "in_WRITE_"+toString(x)+"_DATA"561 );562 563 _component->port_map(name_component,564 "in_WRITE_"+toString(x++)+"_ADDRESS",565 _name,566 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG");567 }547 // _component->port_map(name_component, 548 // "in_WRITE_"+toString(x)+"_VAL" , 549 // _name+"_glue", 550 // "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL"); 551 // _component->port_map(name_component, 552 // "out_WRITE_"+toString(x)+"_ACK", 553 // _name+"_glue", 554 // "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" ); 555 556 // _component->port_map(name_component, 557 // "in_WRITE_"+toString(x)+"_DATA" , 558 // _name+"_glue", 559 // "out_CONST_1" 560 // ); 561 // _component->port_map(_name+"_glue", 562 // "out_CONST_1", 563 // name_component, 564 // "in_WRITE_"+toString(x)+"_DATA" 565 // ); 566 567 // _component->port_map(name_component, 568 // "in_WRITE_"+toString(x++)+"_ADDRESS", 569 // _name, 570 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG"); 571 // } 568 572 569 573 } … … 574 578 name_component = _name+"_spr_"+toString(i); 575 579 576 std::cout << "Instance : " << name_component << std::endl;580 log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str()); 577 581 578 582 #ifdef POSITION … … 631 635 name_component = _name+"_spr_status_"+toString(i); 632 636 633 std::cout << "Instance : " << name_component << std::endl;634 637 log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str()); 638 635 639 #ifdef POSITION 636 640 _component->interface_map (name_component,"", … … 717 721 } 718 722 719 for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++)720 {721 _component->port_map(name_component,722 "in_WRITE_"+toString(x)+"_VAL" ,723 _name+"_glue",724 "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL");725 _component->port_map(name_component,726 "out_WRITE_"+toString(x)+"_ACK",727 _name+"_glue",728 "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" );729 730 _component->port_map(name_component,731 "in_WRITE_"+toString(x)+"_DATA" ,732 _name+"_glue",733 "out_CONST_0");734 _component->port_map(_name+"_glue",735 "out_CONST_0",736 name_component,737 "in_WRITE_"+toString(x)+"_DATA"738 );739 740 _component->port_map(name_component,741 "in_WRITE_"+toString(x++)+"_ADDRESS",742 _name,743 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG");723 // for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++) 724 // { 725 // _component->port_map(name_component, 726 // "in_WRITE_"+toString(x)+"_VAL" , 727 // _name+"_glue", 728 // "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL"); 729 // _component->port_map(name_component, 730 // "out_WRITE_"+toString(x)+"_ACK", 731 // _name+"_glue", 732 // "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" ); 733 734 // _component->port_map(name_component, 735 // "in_WRITE_"+toString(x)+"_DATA" , 736 // _name+"_glue", 737 // "out_CONST_0"); 738 // _component->port_map(_name+"_glue", 739 // "out_CONST_0", 740 // name_component, 741 // "in_WRITE_"+toString(x)+"_DATA" 742 // ); 743 744 // _component->port_map(name_component, 745 // "in_WRITE_"+toString(x++)+"_ADDRESS", 746 // _name, 747 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG"); 744 748 745 _component->port_map(name_component,746 "in_WRITE_"+toString(x)+"_VAL" ,747 _name+"_glue",748 "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL");749 _component->port_map(name_component,750 "out_WRITE_"+toString(x)+"_ACK",751 _name+"_glue",752 "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" );753 754 _component->port_map(name_component,755 "in_WRITE_"+toString(x)+"_DATA" ,756 _name+"_glue",757 "out_CONST_1"758 );759 _component->port_map(_name+"_glue",760 "out_CONST_1",761 name_component,762 "in_WRITE_"+toString(x)+"_DATA"763 );764 765 _component->port_map(name_component,766 "in_WRITE_"+toString(x++)+"_ADDRESS",767 _name,768 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG");769 }749 // _component->port_map(name_component, 750 // "in_WRITE_"+toString(x)+"_VAL" , 751 // _name+"_glue", 752 // "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL"); 753 // _component->port_map(name_component, 754 // "out_WRITE_"+toString(x)+"_ACK", 755 // _name+"_glue", 756 // "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" ); 757 758 // _component->port_map(name_component, 759 // "in_WRITE_"+toString(x)+"_DATA" , 760 // _name+"_glue", 761 // "out_CONST_1" 762 // ); 763 // _component->port_map(_name+"_glue", 764 // "out_CONST_1", 765 // name_component, 766 // "in_WRITE_"+toString(x)+"_DATA" 767 // ); 768 769 // _component->port_map(name_component, 770 // "in_WRITE_"+toString(x++)+"_ADDRESS", 771 // _name, 772 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG"); 773 // } 770 774 771 775 } … … 775 779 name_component = _name+"_glue"; 776 780 777 std::cout << "Instance : " << name_component << std::endl;778 781 log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str()); 782 779 783 #ifdef POSITION 780 784 _component->interface_map (name_component,"", … … 1010 1014 } 1011 1015 1012 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)1013 {1014 uint32_t x =_param->_nb_inst_retire_rob [i];1015 uint32_t gpr_j = _param->_nb_gpr_write + _param->_nb_inst_insert_rob [i];1016 uint32_t spr_j = _param->_nb_spr_write + _param->_nb_inst_insert_rob [i];1017 1018 for (uint32_t j=0; j<x; j++)1019 {1020 _component->port_map(name_component,1021 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL",1022 _name,1023 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL");1024 _component->port_map(name_component,1025 "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK",1026 _name,1027 "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK");1028 _component->port_map(name_component,1029 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE",1030 _name,1031 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE");1032 _component->port_map(name_component,1033 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE",1034 _name,1035 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE");1036 _component->port_map(name_component,1037 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE",1038 _name,1039 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE");1040 _component->port_map(name_component,1041 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE",1042 _name,1043 "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE");1016 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 1017 // { 1018 // uint32_t x =_param->_nb_inst_retire_rob [i]; 1019 // uint32_t gpr_j = _param->_nb_gpr_write + _param->_nb_inst_insert_rob [i]; 1020 // uint32_t spr_j = _param->_nb_spr_write + _param->_nb_inst_insert_rob [i]; 1021 1022 // for (uint32_t j=0; j<x; j++) 1023 // { 1024 // _component->port_map(name_component, 1025 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL", 1026 // _name, 1027 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL"); 1028 // _component->port_map(name_component, 1029 // "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK", 1030 // _name, 1031 // "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK"); 1032 // _component->port_map(name_component, 1033 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE", 1034 // _name, 1035 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE"); 1036 // _component->port_map(name_component, 1037 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE", 1038 // _name, 1039 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE"); 1040 // _component->port_map(name_component, 1041 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE", 1042 // _name, 1043 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE"); 1044 // _component->port_map(name_component, 1045 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE", 1046 // _name, 1047 // "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE"); 1044 1048 1045 _component->port_map(name_component,1046 "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL",1047 _name+"_gpr_status_"+toString(i),1048 "in_WRITE_"+toString(gpr_j)+"_VAL");1049 _component->port_map(name_component,1050 "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK",1051 _name+"_gpr_status_"+toString(i),1052 "out_WRITE_"+toString(gpr_j++)+"_ACK");1053 _component->port_map(name_component,1054 "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL",1055 _name+"_gpr_status_"+toString(i),1056 "in_WRITE_"+toString(gpr_j)+"_VAL");1057 _component->port_map(name_component,1058 "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK",1059 _name+"_gpr_status_"+toString(i),1060 "out_WRITE_"+toString(gpr_j++)+"_ACK");1061 _component->port_map(name_component,1062 "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL",1063 _name+"_spr_status_"+toString(i),1064 "in_WRITE_"+toString(spr_j)+"_VAL");1065 _component->port_map(name_component,1066 "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK",1067 _name+"_spr_status_"+toString(i),1068 "out_WRITE_"+toString(spr_j++)+"_ACK");1069 _component->port_map(name_component,1070 "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL",1071 _name+"_spr_status_"+toString(i),1072 "in_WRITE_"+toString(spr_j)+"_VAL");1073 _component->port_map(name_component,1074 "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK",1075 _name+"_spr_status_"+toString(i),1076 "out_WRITE_"+toString(spr_j++)+"_ACK");1077 }1078 }1049 // _component->port_map(name_component, 1050 // "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL", 1051 // _name+"_gpr_status_"+toString(i), 1052 // "in_WRITE_"+toString(gpr_j)+"_VAL"); 1053 // _component->port_map(name_component, 1054 // "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK", 1055 // _name+"_gpr_status_"+toString(i), 1056 // "out_WRITE_"+toString(gpr_j++)+"_ACK"); 1057 // _component->port_map(name_component, 1058 // "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL", 1059 // _name+"_gpr_status_"+toString(i), 1060 // "in_WRITE_"+toString(gpr_j)+"_VAL"); 1061 // _component->port_map(name_component, 1062 // "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK", 1063 // _name+"_gpr_status_"+toString(i), 1064 // "out_WRITE_"+toString(gpr_j++)+"_ACK"); 1065 // _component->port_map(name_component, 1066 // "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL", 1067 // _name+"_spr_status_"+toString(i), 1068 // "in_WRITE_"+toString(spr_j)+"_VAL"); 1069 // _component->port_map(name_component, 1070 // "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK", 1071 // _name+"_spr_status_"+toString(i), 1072 // "out_WRITE_"+toString(spr_j++)+"_ACK"); 1073 // _component->port_map(name_component, 1074 // "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL", 1075 // _name+"_spr_status_"+toString(i), 1076 // "in_WRITE_"+toString(spr_j)+"_VAL"); 1077 // _component->port_map(name_component, 1078 // "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK", 1079 // _name+"_spr_status_"+toString(i), 1080 // "out_WRITE_"+toString(spr_j++)+"_ACK"); 1081 // } 1082 // } 1079 1083 }// glue 1080 1084 1081 // _component->test_map (); 1082 1083 #ifdef POSITION 1084 _component->generate_file(); 1085 #if DEBUG_Register_unit == true 1086 _component->test_map (); 1087 #endif 1088 1089 #ifdef POSITION 1090 if (usage_is_set(_usage,USE_POSITION)) 1091 _component->generate_file(); 1085 1092 #endif 1086 1093 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_deallocation.cpp
r81 r88 22 22 log_printf(FUNC,Register_unit,FUNCTION,"Begin"); 23 23 24 if (usage_is_set(_usage,USE_SYSTEMC)) 25 { 24 26 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 25 27 delete in_CLOCK ; … … 59 61 delete [] in_INSERT_ROB_RE_USE ; 60 62 delete [] in_INSERT_ROB_RE_NUM_REG ; 61 delete [] in_RETIRE_ROB_VAL ; 62 delete [] out_RETIRE_ROB_ACK ; 63 delete [] in_RETIRE_ROB_RD_OLD_USE ; 64 delete [] in_RETIRE_ROB_RD_OLD_NUM_REG ; 65 delete [] in_RETIRE_ROB_RD_NEW_USE ; 66 delete [] in_RETIRE_ROB_RD_NEW_NUM_REG ; 67 delete [] in_RETIRE_ROB_RE_OLD_USE ; 68 delete [] in_RETIRE_ROB_RE_OLD_NUM_REG ; 69 delete [] in_RETIRE_ROB_RE_NEW_USE ; 70 delete [] in_RETIRE_ROB_RE_NEW_NUM_REG ; 63 // delete [] in_RETIRE_ROB_VAL ; 64 // delete [] out_RETIRE_ROB_ACK ; 65 // delete [] in_RETIRE_ROB_RD_OLD_USE ; 66 // delete [] in_RETIRE_ROB_RD_OLD_NUM_REG ; 67 // delete [] in_RETIRE_ROB_RD_NEW_USE ; 68 // delete [] in_RETIRE_ROB_RD_NEW_NUM_REG ; 69 // delete [] in_RETIRE_ROB_RE_OLD_USE ; 70 // delete [] in_RETIRE_ROB_RE_OLD_NUM_REG ; 71 // delete [] in_RETIRE_ROB_RE_NEW_USE ; 72 // delete [] in_RETIRE_ROB_RE_NEW_NUM_REG ; 73 } 71 74 72 75 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_end_cycle.cpp
r81 r88 23 23 24 24 #ifdef STATISTICS 25 _stat->end_cycle(); 25 if (usage_is_set(_usage,USE_STATISTICS)) 26 _stat->end_cycle(); 26 27 #endif 27 28 … … 29 30 // Evaluation before read the ouput signal 30 31 // sc_start(0); 31 _interfaces->testbench(); 32 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 33 _interfaces->testbench(); 32 34 #endif 33 35
Note: See TracChangeset
for help on using the changeset viewer.