Changeset 131 for trunk/IPs/systemC/processor
- Timestamp:
- Jul 8, 2009, 8:40:08 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo
- Files:
-
- 23 added
- 94 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/SelfTest/src/test.cpp
r120 r131 59 59 cout << "------------------------------------------------------" << endl; 60 60 61 Instance * instance = new Instance ("../../../Files/Instance_x2_w1_6.cfg", 61 Instance * instance = new Instance ("../../../Files/Instance_x4_w8_1.cfg", 62 generator1, 63 _get_custom_information 64 ); 65 instance->toFile("data_out"); 66 67 delete instance; 68 } 69 70 { 71 cout << "------------------------------------------------------" << endl; 72 73 Instance * instance = new Instance ("../../../Files/Instance_x4_w8_2.cfg", 62 74 generator1, 63 75 _get_custom_information -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Generator_toXML.cpp
r88 r131 7 7 8 8 #include "Behavioural/Configuration/include/Generator.h" 9 #include "Common/include/Basename.h" 9 10 10 11 namespace morpheo { … … 16 17 XML Generator::toXML (void) 17 18 { 18 XML xml (basename(_filename .c_str()));19 xml.filename_extension(" ");19 XML xml (basename(_filename,false).c_str()); 20 xml.filename_extension("gen"); 20 21 21 22 xml.balise_open("parameters"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_toXML.cpp
r88 r131 7 7 8 8 #include "Behavioural/Configuration/include/Instance.h" 9 #include "Common/include/Basename.h" 9 10 10 11 namespace morpheo { … … 16 17 XML Instance::toXML (void) 17 18 { 18 XML xml (basename(_filename .c_str()));19 xml.filename_extension(" ");19 XML xml (basename(_filename,false).c_str()); 20 xml.filename_extension("cfg"); 20 21 21 22 xml.balise_open_begin("core"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Simulator_toXML.cpp
r88 r131 7 7 8 8 #include "Behavioural/Configuration/include/Simulator.h" 9 #include "Common/include/Basename.h" 9 10 10 11 namespace morpheo { … … 16 17 XML Simulator::toXML (void) 17 18 { 18 XML xml (basename(_filename .c_str()));19 xml.filename_extension(" ");19 XML xml (basename(_filename,false).c_str()); 20 xml.filename_extension("sim"); 20 21 21 22 xml.balise_open("parameters"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Core_Glue.h
r122 r131 247 247 248 248 #ifdef SYSTEMC 249 public : void constant (void); 249 250 public : void transition (void); 250 251 //public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue.cpp
r123 r131 73 73 if (usage_is_set(_usage,USE_SYSTEMC)) 74 74 { 75 // Constant 76 if (_param->_have_port_front_end_id) 77 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 78 for (uint32_t j=0; j<_param->_nb_inst_decod [i]; ++j) 79 { 80 PORT_WRITE(out_RENAME_FRONT_END_ID [i][j],_param->_translate_num_front_end_to_ooo_engine_front_end_id[i]); 81 } 75 #ifdef SYSTEMCASS_SPECIFIC 76 constant(); 77 #else 78 log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - constant"),_name.c_str()); 79 80 SC_METHOD (constant); 81 // dont_initialize (); 82 83 # ifdef SYSTEMCASS_SPECIFIC 84 // List dependency information 85 # endif 86 #endif 82 87 83 88 log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h
r124 r131 227 227 private : void deallocation (void); 228 228 229 public : void constant (void); 229 230 public : void transition (void); 230 231 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp
r123 r131 95 95 } 96 96 97 log_printf(INFO,Load_store_unit,FUNCTION,"Constant affectation"); 98 99 internal_DCACHE_RSP_ACK = 1; 100 PORT_WRITE(out_DCACHE_RSP_ACK [0], internal_DCACHE_RSP_ACK); 101 for (uint32_t i=1; i<_param->_nb_cache_port; ++i) 102 { 103 PORT_WRITE(out_DCACHE_RSP_ACK [i], 0); 104 PORT_WRITE(out_DCACHE_REQ_VAL [i], 0); 105 } 106 107 for (uint32_t i=1; i<_param->_nb_inst_memory; i++) 108 { 109 PORT_WRITE(out_MEMORY_OUT_VAL [i], 0); 110 } 97 #ifdef SYSTEMCASS_SPECIFIC 98 constant(); 99 #else 100 log_printf(INFO,Load_store_unit,FUNCTION,"Method - constant"); 101 102 SC_METHOD (constant); 103 // dont_initialize (); 104 105 #ifdef SYSTEMCASS_SPECIFIC 106 // List dependency information 107 #endif 108 #endif 111 109 112 110 log_printf(INFO,Load_store_unit,FUNCTION,"Method - transition"); … … 114 112 SC_METHOD (transition); 115 113 dont_initialize (); 116 sensitive _pos << *(in_CLOCK);114 sensitive << (*(in_CLOCK)).pos(); 117 115 118 116 #ifdef SYSTEMCASS_SPECIFIC … … 124 122 SC_METHOD (genMoore); 125 123 dont_initialize (); 126 sensitive _neg << *(in_CLOCK);124 sensitive << (*(in_CLOCK)).neg(); 127 125 128 126 #ifdef SYSTEMCASS_SPECIFIC … … 134 132 SC_METHOD (genMealy_insert); 135 133 dont_initialize (); 136 sensitive _neg << *(in_CLOCK);134 sensitive << (*(in_CLOCK)).neg(); 137 135 for (uint32_t i=0; i<_param->_nb_inst_memory; i++) 138 136 sensitive << (*(in_MEMORY_IN_VAL [i])) … … 153 151 SC_METHOD (genMealy_retire); 154 152 dont_initialize (); 155 sensitive _neg << *(in_CLOCK);153 sensitive << (*(in_CLOCK)).neg(); 156 154 157 155 #ifdef SYSTEMCASS_SPECIFIC … … 163 161 SC_METHOD (genMealy_dcache); 164 162 dont_initialize (); 165 sensitive _neg << *(in_CLOCK);163 sensitive << (*(in_CLOCK)).neg(); 166 164 167 165 #ifdef SYSTEMCASS_SPECIFIC -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp
r123 r131 74 74 SC_METHOD (transition); 75 75 dont_initialize (); 76 sensitive _pos << *(in_CLOCK);76 sensitive << (*(in_CLOCK)).pos(); 77 77 78 78 log_printf(INFO,Read_queue,"Read_queue","Method - genMoore"); … … 80 80 SC_METHOD (genMoore); 81 81 dont_initialize (); 82 sensitive _neg << *(in_CLOCK);82 sensitive << (*(in_CLOCK)).neg(); 83 83 84 84 log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_val"); … … 86 86 SC_METHOD (genMealy_read_queue_out_val); 87 87 dont_initialize (); 88 sensitive _neg << *(in_CLOCK);88 sensitive << (*(in_CLOCK)).neg(); 89 89 for (uint32_t i=0; i<_param->_nb_gpr_read ; i++) 90 90 sensitive << *(in_GPR_READ_ACK [i]); … … 133 133 SC_METHOD (genMealy_read_queue_out_gpr); 134 134 dont_initialize (); 135 sensitive _neg << *(in_CLOCK);135 sensitive << (*(in_CLOCK)).neg(); 136 136 for (uint32_t i=0; i<_param->_nb_gpr_read ; i++) 137 137 sensitive << *(in_GPR_READ_ACK [i]) … … 185 185 SC_METHOD (genMealy_read_queue_out_spr); 186 186 dont_initialize (); 187 sensitive _neg << *(in_CLOCK);187 sensitive << (*(in_CLOCK)).neg(); 188 188 for (uint32_t i=0; i<_param->_nb_spr_read ; i++) 189 189 sensitive << *(in_SPR_READ_ACK [i]) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp
r123 r131 78 78 SC_METHOD (transition); 79 79 dont_initialize (); 80 sensitive _pos << *(in_CLOCK);80 sensitive << (*(in_CLOCK)).pos(); 81 81 //#endif 82 82 … … 89 89 SC_METHOD (genMoore); 90 90 dont_initialize (); 91 sensitive _neg << *(in_CLOCK);91 sensitive << (*(in_CLOCK)).neg(); 92 92 93 93 #ifdef SYSTEMCASS_SPECIFIC -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp
r88 r131 46 46 sc_clock * in_CLOCK; 47 47 sc_signal<Tcontrol_t> * in_NRESET; 48 49 48 //sc_signal<Tcontrol_t> * out_CONST_0; 49 //sc_signal<Tcontrol_t> * out_CONST_1; 50 50 51 51 sc_signal<Tcontrol_t > ** in_GPR_READ_VAL ; … … 54 54 sc_signal<Tgeneral_data_t > ** out_GPR_READ_DATA ; 55 55 sc_signal<Tcontrol_t > ** out_GPR_READ_DATA_VAL ; 56 56 57 sc_signal<Tcontrol_t > *** out_GPR_READ_REGISTERFILE_VAL ; 57 58 sc_signal<Tcontrol_t > *** in_GPR_READ_REGISTERFILE_ACK ; 58 59 sc_signal<Tgeneral_data_t > *** in_GPR_READ_REGISTERFILE_DATA; 60 59 61 sc_signal<Tcontrol_t > *** out_GPR_READ_STATUS_VAL ; 60 62 sc_signal<Tcontrol_t > *** in_GPR_READ_STATUS_ACK ; 61 sc_signal<T control_t> *** in_GPR_READ_STATUS_DATA_VAL ;63 sc_signal<Tgeneral_data_t > *** in_GPR_READ_STATUS_DATA_VAL ; 62 64 63 65 sc_signal<Tcontrol_t > ** in_SPR_READ_VAL ; … … 66 68 sc_signal<Tspecial_data_t > ** out_SPR_READ_DATA ; 67 69 sc_signal<Tcontrol_t > ** out_SPR_READ_DATA_VAL ; 70 68 71 sc_signal<Tcontrol_t > *** out_SPR_READ_REGISTERFILE_VAL ; 69 72 sc_signal<Tcontrol_t > *** in_SPR_READ_REGISTERFILE_ACK ; 70 73 sc_signal<Tspecial_data_t > *** in_SPR_READ_REGISTERFILE_DATA; 74 71 75 sc_signal<Tcontrol_t > *** out_SPR_READ_STATUS_VAL ; 72 76 sc_signal<Tcontrol_t > *** in_SPR_READ_STATUS_ACK ; 73 sc_signal<T control_t> *** in_SPR_READ_STATUS_DATA_VAL ;77 sc_signal<Tspecial_data_t > *** in_SPR_READ_STATUS_DATA_VAL ; 74 78 75 79 sc_signal<Tcontrol_t > ** in_GPR_WRITE_VAL ; 76 80 sc_signal<Tcontrol_t > ** out_GPR_WRITE_ACK ; 77 81 sc_signal<Tcontext_t > ** in_GPR_WRITE_OOO_ENGINE_ID ; 82 78 83 sc_signal<Tcontrol_t > *** out_GPR_WRITE_REGISTERFILE_VAL; 79 84 sc_signal<Tcontrol_t > *** in_GPR_WRITE_REGISTERFILE_ACK; 85 80 86 sc_signal<Tcontrol_t > *** out_GPR_WRITE_STATUS_VAL ; 81 87 sc_signal<Tcontrol_t > *** in_GPR_WRITE_STATUS_ACK ; 88 sc_signal<Tgeneral_data_t > *** out_GPR_WRITE_STATUS_DATA ; 82 89 83 90 sc_signal<Tcontrol_t > ** in_SPR_WRITE_VAL ; 84 91 sc_signal<Tcontrol_t > ** out_SPR_WRITE_ACK ; 85 92 sc_signal<Tcontext_t > ** in_SPR_WRITE_OOO_ENGINE_ID ; 93 86 94 sc_signal<Tcontrol_t > *** out_SPR_WRITE_REGISTERFILE_VAL; 87 95 sc_signal<Tcontrol_t > *** in_SPR_WRITE_REGISTERFILE_ACK; 96 88 97 sc_signal<Tcontrol_t > *** out_SPR_WRITE_STATUS_VAL ; 89 98 sc_signal<Tcontrol_t > *** in_SPR_WRITE_STATUS_ACK ; 99 sc_signal<Tspecial_data_t > *** out_SPR_WRITE_STATUS_DATA ; 90 100 91 101 sc_signal<Tcontrol_t > *** in_INSERT_ROB_VAL ; … … 93 103 sc_signal<Tcontrol_t > *** in_INSERT_ROB_RD_USE ; 94 104 sc_signal<Tcontrol_t > *** in_INSERT_ROB_RE_USE ; 105 95 106 sc_signal<Tcontrol_t > *** out_INSERT_ROB_GPR_STATUS_VAL ; 96 107 sc_signal<Tcontrol_t > *** in_INSERT_ROB_GPR_STATUS_ACK ; 108 sc_signal<Tgeneral_data_t > *** out_INSERT_ROB_GPR_STATUS_DATA ; 109 97 110 sc_signal<Tcontrol_t > *** out_INSERT_ROB_SPR_STATUS_VAL ; 98 111 sc_signal<Tcontrol_t > *** in_INSERT_ROB_SPR_STATUS_ACK ; 112 sc_signal<Tspecial_data_t > *** out_INSERT_ROB_SPR_STATUS_DATA ; 99 113 100 114 // sc_signal<Tcontrol_t > *** in_RETIRE_ROB_VAL ; … … 117 131 in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 118 132 in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 119 out_CONST_0 = new sc_signal<Tcontrol_t> ("CONST_0");120 out_CONST_1 = new sc_signal<Tcontrol_t> ("CONST_1");133 // out_CONST_0 = new sc_signal<Tcontrol_t> ("CONST_0"); 134 // out_CONST_1 = new sc_signal<Tcontrol_t> ("CONST_1"); 121 135 122 136 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 131 145 out_GPR_READ_STATUS_VAL = new sc_signal<Tcontrol_t > ** [_param->_nb_ooo_engine]; 132 146 in_GPR_READ_STATUS_ACK = new sc_signal<Tcontrol_t > ** [_param->_nb_ooo_engine]; 133 in_GPR_READ_STATUS_DATA_VAL = new sc_signal<T control_t> ** [_param->_nb_ooo_engine];147 in_GPR_READ_STATUS_DATA_VAL = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine]; 134 148 135 149 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 140 154 out_GPR_READ_STATUS_VAL [i] = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_read]; 141 155 in_GPR_READ_STATUS_ACK [i] = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_read]; 142 in_GPR_READ_STATUS_DATA_VAL [i] = new sc_signal<T control_t> * [_param->_nb_gpr_read];156 in_GPR_READ_STATUS_DATA_VAL [i] = new sc_signal<Tgeneral_data_t> * [_param->_nb_gpr_read]; 143 157 } 144 158 … … 158 172 out_GPR_READ_STATUS_VAL [i][j] = new sc_signal<Tcontrol_t > (rename.c_str()); 159 173 in_GPR_READ_STATUS_ACK [i][j] = new sc_signal<Tcontrol_t > (rename.c_str()); 160 in_GPR_READ_STATUS_DATA_VAL [i][j] = new sc_signal<T control_t> (rename.c_str());174 in_GPR_READ_STATUS_DATA_VAL [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str()); 161 175 } 162 176 } … … 173 187 out_SPR_READ_STATUS_VAL = new sc_signal<Tcontrol_t > ** [_param->_nb_ooo_engine]; 174 188 in_SPR_READ_STATUS_ACK = new sc_signal<Tcontrol_t > ** [_param->_nb_ooo_engine]; 175 in_SPR_READ_STATUS_DATA_VAL = new sc_signal<T control_t> ** [_param->_nb_ooo_engine];189 in_SPR_READ_STATUS_DATA_VAL = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine]; 176 190 177 191 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 182 196 out_SPR_READ_STATUS_VAL [i] = new sc_signal<Tcontrol_t > * [_param->_nb_spr_read]; 183 197 in_SPR_READ_STATUS_ACK [i] = new sc_signal<Tcontrol_t > * [_param->_nb_spr_read]; 184 in_SPR_READ_STATUS_DATA_VAL [i] = new sc_signal<T control_t> * [_param->_nb_spr_read];198 in_SPR_READ_STATUS_DATA_VAL [i] = new sc_signal<Tspecial_data_t> * [_param->_nb_spr_read]; 185 199 } 186 200 … … 200 214 out_SPR_READ_STATUS_VAL [i][j] = new sc_signal<Tcontrol_t > (rename.c_str()); 201 215 in_SPR_READ_STATUS_ACK [i][j] = new sc_signal<Tcontrol_t > (rename.c_str()); 202 in_SPR_READ_STATUS_DATA_VAL [i][j] = new sc_signal<T control_t> (rename.c_str());216 in_SPR_READ_STATUS_DATA_VAL [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str()); 203 217 } 204 218 } … … 212 226 out_GPR_WRITE_STATUS_VAL = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 213 227 in_GPR_WRITE_STATUS_ACK = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 228 out_GPR_WRITE_STATUS_DATA = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine]; 214 229 215 230 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 219 234 out_GPR_WRITE_STATUS_VAL [i] = new sc_signal<Tcontrol_t> * [_param->_nb_gpr_write]; 220 235 in_GPR_WRITE_STATUS_ACK [i] = new sc_signal<Tcontrol_t> * [_param->_nb_gpr_write]; 236 out_GPR_WRITE_STATUS_DATA [i] = new sc_signal<Tgeneral_data_t> * [_param->_nb_gpr_write]; 221 237 } 222 238 … … 233 249 out_GPR_WRITE_STATUS_VAL [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());; 234 250 in_GPR_WRITE_STATUS_ACK [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());; 251 out_GPR_WRITE_STATUS_DATA [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());; 235 252 } 236 253 } … … 244 261 out_SPR_WRITE_STATUS_VAL = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 245 262 in_SPR_WRITE_STATUS_ACK = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 263 out_SPR_WRITE_STATUS_DATA = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine]; 246 264 247 265 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 251 269 out_SPR_WRITE_STATUS_VAL [i] = new sc_signal<Tcontrol_t> * [_param->_nb_spr_write]; 252 270 in_SPR_WRITE_STATUS_ACK [i] = new sc_signal<Tcontrol_t> * [_param->_nb_spr_write]; 271 out_SPR_WRITE_STATUS_DATA [i] = new sc_signal<Tspecial_data_t> * [_param->_nb_spr_write]; 253 272 } 254 273 … … 265 284 out_SPR_WRITE_STATUS_VAL [i][j] = new sc_signal<Tcontrol_t> (rename.c_str()); 266 285 in_SPR_WRITE_STATUS_ACK [i][j] = new sc_signal<Tcontrol_t> (rename.c_str()); 286 out_SPR_WRITE_STATUS_DATA [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str()); 267 287 } 268 288 } … … 275 295 out_INSERT_ROB_GPR_STATUS_VAL = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 276 296 in_INSERT_ROB_GPR_STATUS_ACK = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 297 out_INSERT_ROB_GPR_STATUS_DATA = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine]; 277 298 out_INSERT_ROB_SPR_STATUS_VAL = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 278 299 in_INSERT_ROB_SPR_STATUS_ACK = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine]; 300 out_INSERT_ROB_SPR_STATUS_DATA = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine]; 279 301 280 302 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 288 310 out_INSERT_ROB_GPR_STATUS_VAL [i] = new sc_signal<Tcontrol_t> * [x]; 289 311 in_INSERT_ROB_GPR_STATUS_ACK [i] = new sc_signal<Tcontrol_t> * [x]; 312 out_INSERT_ROB_GPR_STATUS_DATA [i] = new sc_signal<Tgeneral_data_t> * [x]; 290 313 out_INSERT_ROB_SPR_STATUS_VAL [i] = new sc_signal<Tcontrol_t> * [x]; 291 314 in_INSERT_ROB_SPR_STATUS_ACK [i] = new sc_signal<Tcontrol_t> * [x]; 315 out_INSERT_ROB_SPR_STATUS_DATA [i] = new sc_signal<Tspecial_data_t> * [x]; 292 316 293 317 for (uint32_t j=0; j<x; j++) … … 299 323 out_INSERT_ROB_GPR_STATUS_VAL [i][j] = new sc_signal<Tcontrol_t> (rename.c_str()); 300 324 in_INSERT_ROB_GPR_STATUS_ACK [i][j] = new sc_signal<Tcontrol_t> (rename.c_str()); 325 out_INSERT_ROB_GPR_STATUS_DATA [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str()); 301 326 out_INSERT_ROB_SPR_STATUS_VAL [i][j] = new sc_signal<Tcontrol_t> (rename.c_str()); 302 327 in_INSERT_ROB_SPR_STATUS_ACK [i][j] = new sc_signal<Tcontrol_t> (rename.c_str()); 328 out_INSERT_ROB_SPR_STATUS_DATA [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str()); 303 329 } 304 330 } … … 368 394 (*(_Register_unit_Glue-> in_CLOCK )) (*( in_CLOCK )); 369 395 (*(_Register_unit_Glue-> in_NRESET )) (*( in_NRESET )); 370 (*(_Register_unit_Glue->out_CONST_0)) (*(out_CONST_0));371 (*(_Register_unit_Glue->out_CONST_1)) (*(out_CONST_1));396 // (*(_Register_unit_Glue->out_CONST_0)) (*(out_CONST_0)); 397 // (*(_Register_unit_Glue->out_CONST_1)) (*(out_CONST_1)); 372 398 373 399 for (uint32_t j=0; j<_param->_nb_gpr_read; j++) … … 424 450 (*(_Register_unit_Glue->out_GPR_WRITE_STATUS_VAL [i][j]))(*(out_GPR_WRITE_STATUS_VAL [i][j])); 425 451 (*(_Register_unit_Glue-> in_GPR_WRITE_STATUS_ACK [i][j]))(*( in_GPR_WRITE_STATUS_ACK [i][j])); 452 (*(_Register_unit_Glue->out_GPR_WRITE_STATUS_DATA [i][j]))(*(out_GPR_WRITE_STATUS_DATA [i][j])); 426 453 } 427 454 } … … 440 467 (*(_Register_unit_Glue->out_SPR_WRITE_STATUS_VAL [i][j]))(*(out_SPR_WRITE_STATUS_VAL [i][j])); 441 468 (*(_Register_unit_Glue-> in_SPR_WRITE_STATUS_ACK [i][j]))(*( in_SPR_WRITE_STATUS_ACK [i][j])); 469 (*(_Register_unit_Glue->out_SPR_WRITE_STATUS_DATA [i][j]))(*(out_SPR_WRITE_STATUS_DATA [i][j])); 442 470 } 443 471 } … … 456 484 (*(_Register_unit_Glue->out_INSERT_ROB_GPR_STATUS_VAL [i][j])) (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j])); 457 485 (*(_Register_unit_Glue-> in_INSERT_ROB_GPR_STATUS_ACK [i][j])) (*( in_INSERT_ROB_GPR_STATUS_ACK [i][j])); 486 (*(_Register_unit_Glue->out_INSERT_ROB_GPR_STATUS_DATA[i][j])) (*(out_INSERT_ROB_GPR_STATUS_DATA[i][j])); 458 487 (*(_Register_unit_Glue->out_INSERT_ROB_SPR_STATUS_VAL [i][j])) (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j])); 459 488 (*(_Register_unit_Glue-> in_INSERT_ROB_SPR_STATUS_ACK [i][j])) (*( in_INSERT_ROB_SPR_STATUS_ACK [i][j])); 489 (*(_Register_unit_Glue->out_INSERT_ROB_SPR_STATUS_DATA[i][j])) (*(out_INSERT_ROB_SPR_STATUS_DATA[i][j])); 460 490 } 461 491 } … … 506 536 srand(seed); 507 537 538 SC_START(0); 539 LABEL("Initialisation"); 540 541 in_NRESET->write(0); 542 SC_START(5); 543 in_NRESET->write(1); 544 545 #ifdef SELFTEST 508 546 Tcontext_t context; 509 547 Tcontrol_t gpr_read_ack [_param->_nb_gpr_read]; … … 548 586 Tcontrol_t insert_rob_gpr_status_val [_param->_nb_ooo_engine][max_nb_inst_insert_rob]; 549 587 Tcontrol_t insert_rob_spr_status_val [_param->_nb_ooo_engine][max_nb_inst_insert_rob]; 550 551 SC_START(0);552 LABEL("Initialisation");553 554 in_NRESET->write(0);555 SC_START(5);556 in_NRESET->write(1);557 588 558 589 LABEL("Loop of Test"); … … 791 822 792 823 // Test 793 TEST(Tcontrol_t, out_CONST_0->read() , 0);794 TEST(Tcontrol_t, out_CONST_1->read() , 1);824 // TEST(Tcontrol_t, out_CONST_0->read() , 0); 825 // TEST(Tcontrol_t, out_CONST_1->read() , 1); 795 826 796 827 if (test_read == true) … … 832 863 TEST(Tcontrol_t, out_GPR_WRITE_REGISTERFILE_VAL [i][j]->read(), gpr_write_registerfile_val [i][j]); 833 864 TEST(Tcontrol_t, out_GPR_WRITE_STATUS_VAL [i][j]->read(), gpr_write_status_val [i][j]); 865 TEST(Tcontrol_t, out_GPR_WRITE_STATUS_DATA [i][j]->read(), 1); 834 866 } 835 867 } … … 842 874 TEST(Tcontrol_t, out_SPR_WRITE_REGISTERFILE_VAL [i][j]->read(), spr_write_registerfile_val [i][j]); 843 875 TEST(Tcontrol_t, out_SPR_WRITE_STATUS_VAL [i][j]->read(), spr_write_status_val [i][j]); 876 TEST(Tcontrol_t, out_SPR_WRITE_STATUS_DATA [i][j]->read(), 1); 844 877 } 845 878 } … … 874 907 TEST(Tcontrol_t, out_INSERT_ROB_ACK [i][j]->read(), insert_rob_ack [i][j]); 875 908 TEST(Tcontrol_t, out_INSERT_ROB_GPR_STATUS_VAL [i][j]->read(), insert_rob_gpr_status_val [i][j]); 909 TEST(Tcontrol_t, out_INSERT_ROB_GPR_STATUS_DATA[i][j]->read(), 0); 876 910 TEST(Tcontrol_t, out_INSERT_ROB_SPR_STATUS_VAL [i][j]->read(), insert_rob_spr_status_val [i][j]); 911 TEST(Tcontrol_t, out_INSERT_ROB_SPR_STATUS_DATA[i][j]->read(), 0); 877 912 } 878 913 } … … 882 917 SC_START(1); 883 918 } 884 919 #else 920 SC_START(100); 921 #endif 885 922 /******************************************************** 886 923 * Simulation - End … … 922 959 delete [] out_GPR_WRITE_STATUS_VAL ; 923 960 delete [] in_GPR_WRITE_STATUS_ACK ; 961 delete [] out_GPR_WRITE_STATUS_DATA ; 924 962 delete [] in_SPR_WRITE_VAL ; 925 963 delete [] out_SPR_WRITE_ACK ; … … 929 967 delete [] out_SPR_WRITE_STATUS_VAL ; 930 968 delete [] in_SPR_WRITE_STATUS_ACK ; 969 delete [] out_SPR_WRITE_STATUS_DATA ; 931 970 delete [] in_INSERT_ROB_VAL ; 932 971 delete [] out_INSERT_ROB_ACK ; … … 935 974 delete [] out_INSERT_ROB_GPR_STATUS_VAL ; 936 975 delete [] in_INSERT_ROB_GPR_STATUS_ACK ; 976 delete [] out_INSERT_ROB_GPR_STATUS_DATA ; 937 977 delete [] out_INSERT_ROB_SPR_STATUS_VAL ; 938 978 delete [] in_INSERT_ROB_SPR_STATUS_ACK ; 979 delete [] out_INSERT_ROB_SPR_STATUS_DATA ; 939 980 // delete [] in_RETIRE_ROB_VAL ; 940 981 // delete [] out_RETIRE_ROB_ACK ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h
r128 r131 181 181 182 182 #ifdef SYSTEMC 183 public : void constant (void); 183 184 public : void transition (void); 184 185 public : void genMealy_gpr_read (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp
r128 r131 70 70 if (usage_is_set(_usage,USE_SYSTEMC)) 71 71 { 72 // Constant 73 // PORT_WRITE(out_CONST_0 ,0); 74 // PORT_WRITE(out_CONST_1 ,1); 75 for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i) 76 { 77 for (uint32_t j=0; j<_param->_nb_gpr_write; ++j) 78 PORT_WRITE(out_GPR_WRITE_STATUS_DATA [i][j],1); 79 for (uint32_t j=0; j<_param->_nb_spr_write; ++j) 80 PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1); 81 82 for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j) 83 { 84 PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0); 85 PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0); 86 } 87 } 72 #ifdef SYSTEMCASS_SPECIFIC 73 constant(); 74 #else 75 log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - constant"); 76 77 SC_METHOD (constant); 78 // dont_initialize (); 79 80 #ifdef SYSTEMCASS_SPECIFIC 81 // List dependency information 82 #endif 83 #endif 88 84 89 85 log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - transition"); … … 91 87 SC_METHOD (transition); 92 88 dont_initialize (); 93 sensitive _pos << *(in_CLOCK);89 sensitive << (*(in_CLOCK)).pos(); 94 90 95 91 #ifdef SYSTEMCASS_SPECIFIC … … 101 97 SC_METHOD (genMealy_gpr_read); 102 98 dont_initialize (); 103 // sensitive _neg << *(in_CLOCK);99 // sensitive << (*(in_CLOCK)).neg(); 104 100 for (uint32_t j=0; j<_param->_nb_gpr_read; j++) 105 101 { … … 138 134 SC_METHOD (genMealy_gpr_read_status); 139 135 dont_initialize (); 140 // sensitive _neg << *(in_CLOCK);136 // sensitive << (*(in_CLOCK)).neg(); 141 137 for (uint32_t j=0; j<_param->_nb_gpr_read; j++) 142 138 { … … 167 163 SC_METHOD (genMealy_gpr_read_registerfile); 168 164 dont_initialize (); 169 // sensitive _neg << *(in_CLOCK);165 // sensitive << (*(in_CLOCK)).neg(); 170 166 for (uint32_t j=0; j<_param->_nb_gpr_read; j++) 171 167 { … … 196 192 SC_METHOD (genMealy_gpr_write); 197 193 dont_initialize (); 198 // sensitive _neg << *(in_CLOCK);194 // sensitive << (*(in_CLOCK)).neg(); 199 195 for (uint32_t j=0; j<_param->_nb_gpr_write; j++) 200 196 { … … 226 222 SC_METHOD (genMealy_gpr_write_status); 227 223 dont_initialize (); 228 // sensitive _neg << *(in_CLOCK);224 // sensitive << (*(in_CLOCK)).neg(); 229 225 for (uint32_t j=0; j<_param->_nb_gpr_write; j++) 230 226 { … … 255 251 SC_METHOD (genMealy_gpr_write_registerfile); 256 252 dont_initialize (); 257 // sensitive _neg << *(in_CLOCK);253 // sensitive << (*(in_CLOCK)).neg(); 258 254 for (uint32_t j=0; j<_param->_nb_gpr_write; j++) 259 255 { … … 284 280 SC_METHOD (genMealy_spr_read); 285 281 dont_initialize (); 286 // sensitive _neg << *(in_CLOCK);282 // sensitive << (*(in_CLOCK)).neg(); 287 283 for (uint32_t j=0; j<_param->_nb_spr_read; j++) 288 284 { … … 321 317 SC_METHOD (genMealy_spr_read_status); 322 318 dont_initialize (); 323 // sensitive _neg << *(in_CLOCK);319 // sensitive << (*(in_CLOCK)).neg(); 324 320 for (uint32_t j=0; j<_param->_nb_spr_read; j++) 325 321 { … … 350 346 SC_METHOD (genMealy_spr_read_registerfile); 351 347 dont_initialize (); 352 // sensitive _neg << *(in_CLOCK);348 // sensitive << (*(in_CLOCK)).neg(); 353 349 for (uint32_t j=0; j<_param->_nb_spr_read; j++) 354 350 { … … 379 375 SC_METHOD (genMealy_spr_write); 380 376 dont_initialize (); 381 // sensitive _neg << *(in_CLOCK);377 // sensitive << (*(in_CLOCK)).neg(); 382 378 for (uint32_t j=0; j<_param->_nb_spr_write; j++) 383 379 { … … 409 405 SC_METHOD (genMealy_spr_write_status); 410 406 dont_initialize (); 411 // sensitive _neg << *(in_CLOCK);407 // sensitive << (*(in_CLOCK)).neg(); 412 408 for (uint32_t j=0; j<_param->_nb_spr_write; j++) 413 409 { … … 438 434 SC_METHOD (genMealy_spr_write_registerfile); 439 435 dont_initialize (); 440 // sensitive _neg << *(in_CLOCK);436 // sensitive << (*(in_CLOCK)).neg(); 441 437 for (uint32_t j=0; j<_param->_nb_spr_write; j++) 442 438 { … … 467 463 SC_METHOD (genMealy_insert); 468 464 dont_initialize (); 469 // sensitive _neg << *(in_CLOCK);465 // sensitive << (*(in_CLOCK)).neg(); 470 466 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 471 467 { … … 503 499 // SC_METHOD (genMealy_retire); 504 500 // dont_initialize (); 505 // // sensitive _neg << *(in_CLOCK);501 // // sensitive << (*(in_CLOCK)).neg(); 506 502 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 507 503 // { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp
r128 r131 177 177 } 178 178 179 // ~~~~~[ 179 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 180 180 { 181 181 ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); … … 192 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 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]);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 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 197 … … 202 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 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]);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 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 207 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h
r88 r131 15 15 #include <sys/time.h> 16 16 17 #define NB_ITERATION 128 18 #define CYCLE_MAX (128*NB_ITERATION) 19 20 #include "Common/include/Time.h" 21 #include "Common/include/Test.h" 17 22 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h" 18 #include "Common/include/Time.h"19 23 20 24 using namespace std; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/main.cpp
r88 r131 85 85 _nb_inst_retire_rob [i] = atoi(argv[x++]); 86 86 87 int _return = EXIT_SUCCESS; 87 88 try 88 89 { … … 114 115 catch (morpheo::ErrorMorpheo & error) 115 116 { 116 cout << "<" << name << "> : " << error.what (); 117 exit (EXIT_FAILURE); 118 } 119 catch (...) 120 { 121 cerr << "<" << name << "> : This test must generate a error" << endl; 122 exit (EXIT_FAILURE); 117 msg (_("<%s> :\n%s"),name.c_str(), error.what ()); 118 _return = EXIT_FAILURE; 123 119 } 124 120 125 return (EXIT_SUCCESS); 121 try 122 { 123 if (_return == EXIT_SUCCESS) 124 TEST_OK("OOO_Engine : no error"); 125 else 126 TEST_KO("OOO_Engine : a lot of error"); 127 } 128 catch (morpheo::ErrorMorpheo & error) 129 { 130 // msg (_("<%s> :\n%s"),name.c_str(), error.what ()); 131 _return = EXIT_FAILURE; 132 } 133 134 return (_return); 126 135 } 127 136 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp
r128 r131 7 7 */ 8 8 9 #define NB_ITERATION 110 #define CYCLE_MAX (10240*NB_ITERATION)11 12 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h" 13 #include "Common/include/Test.h"14 10 15 11 void test (string name, … … 22 18 #endif 23 19 24 _model.set_model(NAME_Register_unit ,MODEL_SYSTEMC, true); 25 _model.set_model(NAME_RegisterFile ,MODEL_SYSTEMC, true); 26 _model.set_model(NAME_RegisterFile_Monolithic ,MODEL_SYSTEMC, true); 27 _model.set_model(NAME_RegisterFile_Multi_Banked,MODEL_SYSTEMC, true); 28 _model.set_model(NAME_Register_unit_Glue ,MODEL_SYSTEMC, true); 20 _model.set_model(MODEL_SYSTEMC,true); 29 21 30 22 Tusage_t _usage = USE_ALL; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h
r88 r131 119 119 protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_spr ; 120 120 protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_spr_status; 121 122 // protected : morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked ** component_gpr ; 123 // protected : morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic ** component_gpr_status; 124 // protected : morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked ** component_spr ; 125 // protected : morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic ** component_spr_status; 126 121 127 protected : morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue * component_glue ; 122 128 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp
r123 r131 77 77 SC_METHOD (transition); 78 78 dont_initialize (); 79 sensitive _pos << *(in_CLOCK);79 sensitive << (*(in_CLOCK)).pos(); 80 80 //#endif 81 81 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp
r128 r131 106 106 } 107 107 108 // ~~~~~[ 108 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 109 { 110 110 ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]); … … 179 179 component_spr = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine]; 180 180 component_spr_status = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine]; 181 182 // component_gpr = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine]; 183 // component_gpr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic * [_param->_nb_ooo_engine]; 184 // component_spr = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine]; 185 // component_spr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic * [_param->_nb_ooo_engine]; 181 186 182 187 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 185 190 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 186 191 187 component_gpr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 192 component_gpr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 193 // component_gpr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked 188 194 (name.c_str() 189 195 #ifdef STATISTICS 190 196 ,param_statistics 191 197 #endif 192 ,_param->_param_gpr [i] 198 ,_param->_param_gpr [i]//->_param_registerfile_multi_banked 193 199 ,_usage 194 200 ); … … 207 213 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 208 214 209 component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 215 component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 216 // component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic 210 217 (name.c_str() 211 218 #ifdef STATISTICS 212 219 ,param_statistics 213 220 #endif 214 ,_param->_param_gpr_status [i] 221 ,_param->_param_gpr_status [i]//->_param_registerfile_monolithic 215 222 ,_usage 216 223 ); … … 229 236 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 230 237 231 component_spr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 238 component_spr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 239 // component_spr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked 232 240 (name.c_str() 233 241 #ifdef STATISTICS 234 242 ,param_statistics 235 243 #endif 236 ,_param->_param_spr [i] 244 ,_param->_param_spr [i]//->_param_registerfile_multi_banked 237 245 ,_usage 238 246 ); … … 250 258 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 251 259 252 component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 260 component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 261 // component_spr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic::RegisterFile_Monolithic 253 262 (name.c_str() 254 263 #ifdef STATISTICS 255 264 ,param_statistics 256 265 #endif 257 ,_param->_param_spr_status [i] 266 ,_param->_param_spr_status [i]//->_param_registerfile_monolithic 258 267 ,_usage 259 268 ); … … 269 278 } 270 279 271 272 name = _name+"_glue";273 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str());274 275 component_glue= new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue276 (name.c_str()280 { 281 name = _name+"_glue"; 282 log_printf(INFO,Register_unit,FUNCTION,_("Create : %s"),name.c_str()); 283 284 component_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue 285 (name.c_str() 277 286 #ifdef STATISTICS 278 ,param_statistics 279 #endif 280 ,_param->_param_glue 281 ,_usage 282 ); 283 284 _component->set_component (component_glue->_component 285 #ifdef POSITION 286 , 50 287 , 50 288 , 10 289 , 10 290 #endif 291 ); 287 ,param_statistics 288 #endif 289 ,_param->_param_glue 290 ,_usage 291 ); 292 293 _component->set_component (component_glue->_component 294 #ifdef POSITION 295 , 50 296 , 50 297 , 10 298 , 10 299 #endif 300 ); 301 } 292 302 293 303 // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 304 std::string src,dest; 295 305 306 // ------------------------------------------------------------------- 307 // -----[ gpr ]------------------------------------------------------- 308 // ------------------------------------------------------------------- 296 309 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 297 310 { … … 300 313 log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str()); 301 314 315 // -----[ instance "" ]----------------------------------------------- 302 316 { 303 317 dest = _name; … … 310 324 } 311 325 326 // -----[ instance "read" ]------------------------------------------- 312 327 for (uint32_t j=0; j<_param->_nb_gpr_read; j++) 313 328 { … … 332 347 } 333 348 349 // -----[ instance "write" ]------------------------------------------ 334 350 for (uint32_t j=0; j<_param->_nb_gpr_write; j++) 335 351 { … … 353 369 dest, "in_GPR_WRITE_"+toString(j)+"_DATA"); 354 370 } 355 356 371 }// gpr 357 372 373 // ------------------------------------------------------------------- 374 // -----[ gpr_status ]------------------------------------------------ 375 // ------------------------------------------------------------------- 358 376 { 359 377 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 401 419 402 420 #ifdef POSITION 403 _component->interface_map (src , "write_"+toString( j),421 _component->interface_map (src , "write_"+toString(x), 404 422 dest,"gpr_write_status_"+toString(i)+"_"+toString(j)); 405 423 #endif … … 445 463 x++; 446 464 } 447 448 465 } 449 466 }// gpr_status 450 467 468 // ------------------------------------------------------------------- 469 // -----[ spr ]------------------------------------------------------- 470 // ------------------------------------------------------------------- 451 471 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 452 472 { … … 508 528 dest, "in_SPR_WRITE_"+toString(j)+"_DATA"); 509 529 } 510 511 530 }// spr 512 531 532 // ------------------------------------------------------------------- 533 // -----[ spr_status ]------------------------------------------------ 534 // ------------------------------------------------------------------- 513 535 { 514 536 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) … … 556 578 557 579 #ifdef POSITION 558 _component->interface_map (src , "write_"+toString( j),580 _component->interface_map (src , "write_"+toString(x), 559 581 dest,"spr_write_status_"+toString(i)+"_"+toString(j)); 560 582 #endif … … 581 603 582 604 #ifdef POSITION 583 _component->interface_map (src , "write_"+toString( j),605 _component->interface_map (src , "write_"+toString(x), 584 606 dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j)); 585 607 #endif … … 592 614 dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA"); 593 615 // dest,"out_CONST_0"); 594 616 595 617 dest = _name; 596 618 … … 600 622 x++; 601 623 } 602 603 604 624 } 605 625 }// spr_status 606 626 627 // ------------------------------------------------------------------- 628 // -----[ glue ]------------------------------------------------------ 629 // ------------------------------------------------------------------- 607 630 { 608 631 src = _name+"_glue"; … … 730 753 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 731 754 { 732 uint32_t x =_param->_nb_inst_insert_rob [i];755 uint32_t x = _param->_nb_inst_insert_rob [i]; 733 756 734 757 for (uint32_t j=0; j<x; j++) … … 758 781 } 759 782 } 760 761 783 }// glue 762 784 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h
r88 r131 15 15 #include <sys/time.h> 16 16 17 #define NB_ITERATION 128 18 #define CYCLE_MAX (128*NB_ITERATION) 19 17 20 #include "Common/include/Time.h" 18 #include " Behavioural/include/Selftest.h"21 #include "Common/include/Test.h" 19 22 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h" 20 23 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/main.cpp
r128 r131 315 315 num_thread_valid [i] = true; 316 316 317 int _return = EXIT_SUCCESS; 317 318 try 318 319 { … … 383 384 catch (morpheo::ErrorMorpheo & error) 384 385 { 385 msg (_("%s\n"),error.what ()); 386 exit (EXIT_FAILURE); 387 } 388 catch (...) 389 { 390 err (_("This test must generate a error.\n")); 391 exit (EXIT_FAILURE); 386 msg (_("<%s> :\n%s"),name.c_str(), error.what ()); 387 _return = EXIT_FAILURE; 388 } 389 390 try 391 { 392 if (_return == EXIT_SUCCESS) 393 TEST_OK("OOO_Engine : no error"); 394 else 395 TEST_KO("OOO_Engine : a lot of error"); 396 } 397 catch (morpheo::ErrorMorpheo & error) 398 { 399 // msg (_("<%s> :\n%s"),name.c_str(), error.what ()); 400 _return = EXIT_FAILURE; 392 401 } 393 402 … … 450 459 DELETE1(num_thread_valid , nb_thread); 451 460 452 return ( EXIT_SUCCESS);461 return (_return); 453 462 } 454 463 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp
r128 r131 7 7 */ 8 8 9 #define NB_ITERATION 12810 #define CYCLE_MAX (128*NB_ITERATION)11 12 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h" 13 #include "Common/include/Test.h"14 10 #include "Behavioural/include/Allocation.h" 15 11 … … 23 19 morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX); 24 20 #endif 21 22 _model.set_model(MODEL_SYSTEMC,true); 25 23 26 24 Tusage_t _usage = USE_ALL; … … 60 58 sc_signal<Ttype_t > ** in_EXECUTE_LOOP_IN_TYPE ; 61 59 sc_signal<Tlsq_ptr_t > ** in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE; 60 sc_signal<Tlsq_ptr_t > ** in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ; 61 sc_signal<Tcontrol_t > ** in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY ; 62 62 sc_signal<Tlsq_ptr_t > ** in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ; 63 63 sc_signal<Tcontrol_t > ** in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ; … … 125 125 ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_TYPE ," in_EXECUTE_LOOP_IN_TYPE ",Ttype_t ,_param->_nb_read_unit); 126 126 ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE," in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t ,_param->_nb_read_unit); 127 ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ," in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ",Tlsq_ptr_t ,_param->_nb_read_unit); 128 ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY ," in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY ",Tcontrol_t ,_param->_nb_read_unit); 127 129 ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ," in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t ,_param->_nb_read_unit); 128 130 ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ," in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ",Tcontrol_t ,_param->_nb_read_unit); … … 203 205 INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_TYPE ,_param->_nb_read_unit); 204 206 INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit); 207 INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit); 208 INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY ,_param->_nb_read_unit); 205 209 if (_param->_have_port_load_queue_ptr) 206 210 INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit); … … 319 323 DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_TYPE ,_param->_nb_read_unit); 320 324 DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit); 325 DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit); 326 DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY ,_param->_nb_read_unit); 321 327 DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit); 322 328 DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ,_param->_nb_read_unit); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h
r123 r131 209 209 210 210 #ifdef SYSTEMC 211 public : void constant (void); 211 212 public : void transition (void); 212 213 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State.cpp
r123 r131 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 // Constant 78 for (uint32_t i=0; i<_param->_nb_context; i++) 79 { 80 internal_BRANCH_EVENT_ACK [i] = 1; 81 PORT_WRITE(out_BRANCH_EVENT_ACK [i], internal_BRANCH_EVENT_ACK [i]); 82 } 77 #ifdef SYSTEMCASS_SPECIFIC 78 constant(); 79 #else 80 log_printf(INFO,Context_State,FUNCTION,_("Method - constant")); 83 81 84 // for (uint32_t i=0; i<_param->_nb_decod_unit; i++) 85 // { 86 // internal_DECOD_EVENT_ACK [i] = 1; 87 // PORT_WRITE(out_DECOD_EVENT_ACK [i], internal_DECOD_EVENT_ACK [i]); 88 // } 89 90 internal_COMMIT_EVENT_ACK = 1; 91 PORT_WRITE(out_COMMIT_EVENT_ACK, internal_COMMIT_EVENT_ACK); 92 93 for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++) 94 { 95 internal_BRANCH_COMPLETE_ACK [i] = 1; 96 PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]); 97 } 82 SC_METHOD (constant); 83 // dont_initialize (); 84 85 # ifdef SYSTEMCASS_SPECIFIC 86 // List dependency information 87 # endif 88 #endif 98 89 99 90 log_printf(INFO,Context_State,FUNCTION,_("Method - transition")); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h
r119 r131 180 180 181 181 #ifdef SYSTEMC 182 public : void constant (void); 182 183 public : void transition (void); 183 184 //public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp
r123 r131 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 // Constant 78 if (_param->_have_port_context_id) 79 for (uint32_t i=0; i<_param->_nb_decod_unit; ++i) 80 for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j) 81 PORT_WRITE(out_IFETCH_DECOD_UNIT_CONTEXT_ID [i][j],j); 82 77 #ifdef SYSTEMCASS_SPECIFIC 78 constant(); 79 #else 80 log_printf(INFO,Front_end_Glue,FUNCTION,_("<%s> : Method - constant"),_name.c_str()); 81 82 SC_METHOD (constant); 83 // dont_initialize (); 84 85 # ifdef SYSTEMCASS_SPECIFIC 86 // List dependency information 87 # endif 88 #endif 89 83 90 log_printf(INFO,Front_end_Glue,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); 84 91 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp
r113 r131 23 23 morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50); 24 24 #endif 25 26 _model.set_model(MODEL_SYSTEMC, true); 25 27 26 28 Tusage_t _usage = USE_ALL; … … 180 182 TEST(Tcontrol_t, out_EVENT_ACK->read() , true ); // can receveive an event 181 183 184 #ifdef SELFTEST 182 185 uint32_t jump = 7 ;// packet 183 186 uint32_t nb_packet = 1; … … 412 415 413 416 SC_START(1); 414 415 417 } 418 #else 419 SC_START(100); 420 #endif // SELFTEST 416 421 417 422 /******************************************************** -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h
r101 r131 167 167 168 168 #ifdef SYSTEMC 169 public : void constant (void); 169 170 public : void transition (void); 170 171 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 // Affect output constant 77 internal_EVENT_ACK = 1; 78 PORT_WRITE(out_EVENT_ACK, internal_EVENT_ACK); 76 #ifdef SYSTEMCASS_SPECIFIC 77 constant(); 78 #else 79 log_printf(INFO,Address_management,FUNCTION,"Method - constant"); 80 81 SC_METHOD (constant); 82 // dont_initialize (); 83 84 # ifdef SYSTEMCASS_SPECIFIC 85 // List dependency information 86 # endif 87 #endif 79 88 80 89 log_printf(INFO,Address_management,FUNCTION,"Method - transition"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp
r113 r131 107 107 ALLOC0_SC_SIGNAL(out_DECOD_BRANCH_STATE ,"out_DECOD_BRANCH_STATE ",Tbranch_state_t ); 108 108 ALLOC0_SC_SIGNAL(out_DECOD_BRANCH_UPDATE_PREDICTION_ID ,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID ",Tprediction_ptr_t ); 109 ALLOC0_SC_SIGNAL(out_DECOD_EXCEPTION ,"out_DECOD_EXCEPTION ",T prediction_ptr_t);109 ALLOC0_SC_SIGNAL(out_DECOD_EXCEPTION ,"out_DECOD_EXCEPTION ",Texception_t ); 110 110 ALLOC0_SC_SIGNAL( in_ICACHE_RSP_VAL ," in_ICACHE_RSP_VAL ",Tcontrol_t ); 111 111 ALLOC0_SC_SIGNAL(out_ICACHE_RSP_ACK ,"out_ICACHE_RSP_ACK ",Tcontrol_t ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/include/Ifetch_queue.h
r82 r131 145 145 146 146 #ifdef SYSTEMC 147 public : void constant (void); 147 148 public : void transition (void); 148 149 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 // constant output 77 internal_ICACHE_RSP_ACK = 1; 78 internal_EVENT_RESET_ACK = 1; 76 log_printf(INFO,Ifetch_queue,FUNCTION,_("<%s> Method - constant"),_name.c_str()); 79 77 80 PORT_WRITE(out_ICACHE_RSP_ACK , internal_ICACHE_RSP_ACK ); 81 PORT_WRITE(out_EVENT_RESET_ACK, internal_EVENT_RESET_ACK); 78 SC_METHOD (constant); 79 // dont_initialize (); 80 81 # ifdef SYSTEMCASS_SPECIFIC 82 // List dependency information 83 # endif 82 84 83 85 log_printf(INFO,Ifetch_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h
r85 r131 123 123 124 124 #ifdef SYSTEMC 125 public : void constant (void); 125 126 # if defined(STATISTICS) or defined(VHDL_TESTBENCH) 126 127 public : void transition (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 // Write constant 77 PORT_WRITE(out_ICACHE_REQ_TYPE,ICACHE_TYPE_LOAD); 76 #ifdef SYSTEMCASS_SPECIFIC 77 constant(); 78 #else 79 log_printf(INFO,Ifetch_unit_Glue,FUNCTION,"Method - constant"); 80 81 SC_METHOD (constant); 82 // dont_initialize (); 83 84 # ifdef SYSTEMCASS_SPECIFIC 85 // List dependency information 86 # endif 87 #endif 78 88 79 89 # if defined(STATISTICS) or defined(VHDL_TESTBENCH) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_allocation.cpp
r112 r131 156 156 { 157 157 name = _name+"_address_management"; 158 log_printf(I fetch_unit,Core,FUNCTION,_("Create : %s"),name.c_str());159 158 log_printf(INFO,Ifetch_unit,FUNCTION,_("Create : %s"),name.c_str()); 159 160 160 _component_address_management = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::address_management::Address_management 161 161 (name.c_str() … … 165 165 ,_param->_param_address_management 166 166 ,_usage); 167 167 168 168 _component->set_component (_component_address_management->_component 169 169 #ifdef POSITION … … 175 175 { 176 176 name = _name+"_ifetch_queue"; 177 log_printf(I fetch_unit,Core,FUNCTION,_("Create : %s"),name.c_str());178 177 log_printf(INFO,Ifetch_unit,FUNCTION,_("Create : %s"),name.c_str()); 178 179 179 _component_ifetch_queue = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_queue::Ifetch_queue 180 180 (name.c_str() … … 184 184 ,_param->_param_ifetch_queue 185 185 ,_usage); 186 186 187 187 _component->set_component (_component_ifetch_queue->_component 188 188 #ifdef POSITION … … 194 194 { 195 195 name = _name+"_ifetch_unit_glue"; 196 log_printf(I fetch_unit,Core,FUNCTION,_("Create : %s"),name.c_str());197 196 log_printf(INFO,Ifetch_unit,FUNCTION,_("Create : %s"),name.c_str()); 197 198 198 _component_ifetch_unit_glue = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_unit_glue::Ifetch_unit_Glue 199 199 (name.c_str() … … 203 203 ,_param->_param_ifetch_unit_glue 204 204 ,_usage); 205 205 206 206 _component->set_component (_component_ifetch_unit_glue->_component 207 207 #ifdef POSITION … … 219 219 { 220 220 src = _name+"_address_management"; 221 log_printf(INFO, Core,FUNCTION,_("Instance : %s"),src.c_str());221 log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str()); 222 222 223 223 { … … 337 337 { 338 338 src = _name+"_ifetch_queue"; 339 log_printf(INFO, Core,FUNCTION,_("Instance : %s"),src.c_str());339 log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str()); 340 340 341 341 { … … 459 459 { 460 460 src = _name+"_ifetch_unit_glue"; 461 log_printf(INFO, Core,FUNCTION,_("Instance : %s"),src.c_str());461 log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str()); 462 462 463 463 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h
r113 r131 150 150 151 151 #ifdef SYSTEMC 152 public : void constant (void); 152 153 public : void transition (void); 153 154 public : void genMealy_predict (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 // Constant 77 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 78 { 79 PORT_WRITE(out_PREDICT_ACK [i],1); 80 } 81 for (uint32_t i=0; i<_param->_nb_inst_decod; i++) 82 { 83 internal_DECOD_ACK [i] = 1; 84 PORT_WRITE(out_DECOD_ACK [i], internal_DECOD_ACK [i]); 85 } 86 for (uint32_t i=0; i<_param->_nb_inst_update; i++) 87 { 88 internal_UPDATE_ACK [i] = 1; 89 PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]); 90 } 76 #ifdef SYSTEMCASS_SPECIFIC 77 constant(); 78 #else 79 log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Method - constant"); 80 81 SC_METHOD (constant); 82 // dont_initialize (); 83 84 # ifdef SYSTEMCASS_SPECIFIC 85 // List dependency information 86 # endif 87 #endif 91 88 92 89 log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Method - transition"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Direction_Glue.h
r112 r131 130 130 131 131 #ifdef SYSTEMC 132 public : void constant (void); 132 133 # if defined(STATISTICS) or defined(VHDL_TESTBENCH) 133 134 public : void transition (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp
r123 r131 84 84 // no need update 85 85 need_genmealy_update = false; 86 for (uint32_t i=0; i<_param->_nb_inst_update; i++)87 PORT_WRITE(out_UPDATE_ACK [i], 1);88 86 89 87 // always ack 90 88 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 91 89 { 92 PORT_WRITE(out_PREDICT_ACK [i], 1);93 94 90 // constant direction : never / always 95 91 switch (_param->_predictor_scheme) … … 98 94 { 99 95 need_genmealy_predict = false; 100 PORT_WRITE(out_PREDICT_DIRECTION [i], 0);101 96 break; 102 97 } … … 104 99 { 105 100 need_genmealy_predict = false; 106 PORT_WRITE(out_PREDICT_DIRECTION [i], 1);107 101 break; 108 102 } … … 111 105 } 112 106 } 107 108 #ifdef SYSTEMCASS_SPECIFIC 109 constant(); 110 #else 111 log_printf(INFO,Direction_Glue,FUNCTION,"Method - constant"); 112 113 SC_METHOD (constant); 114 // dont_initialize (); 115 116 # ifdef SYSTEMCASS_SPECIFIC 117 // List dependency information 118 # endif 119 #endif 113 120 114 121 # if defined(STATISTICS) or defined(VHDL_TESTBENCH) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h
r115 r131 129 129 130 130 #ifdef SYSTEMC 131 public : void constant (void); 131 132 public : void transition (void); 132 133 public : void genMealy_predict (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor.cpp
r111 r131 72 72 if (usage_is_set(_usage,USE_SYSTEMC)) 73 73 { 74 // Constants : 75 for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)76 { 77 internal_PREDICT_ACK [i] = 1;78 PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]); 79 } 80 for (uint32_t i=0; i<_param->_nb_inst_update; ++i) 81 { 82 internal_UPDATE_ACK [i] = 1; 83 PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]); 84 } 85 74 #ifdef SYSTEMCASS_SPECIFIC 75 constant(); 76 #else 77 log_printf(INFO,Two_Level_Branch_Predictor,FUNCTION,_("<%s> : Method - constant"),_name.c_str()); 78 79 SC_METHOD (constant); 80 // dont_initialize (); 81 82 # ifdef SYSTEMCASS_SPECIFIC 83 // List dependency information 84 # endif 85 #endif 86 86 87 87 log_printf(INFO,Two_Level_Branch_Predictor,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h
r100 r131 143 143 144 144 #ifdef SYSTEMC 145 public : void constant (void); 145 146 public : void transition (void); 146 147 public : void genMealy_predict (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 77 { 78 internal_PREDICT_ACK [i] = 1; 79 PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]); 80 } 81 for (uint32_t i=0; i<_param->_nb_inst_decod ; i++) 82 { 83 internal_DECOD_ACK [i] = 1; 84 PORT_WRITE(out_DECOD_ACK [i], internal_DECOD_ACK [i]); 85 } 86 for (uint32_t i=0; i<_param->_nb_inst_update ; i++) 87 { 88 internal_UPDATE_ACK [i] = 1; 89 PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]); 90 } 76 #ifdef SYSTEMCASS_SPECIFIC 77 constant(); 78 #else 79 log_printf(INFO,Return_Address_Stack,FUNCTION,"Method - constant"); 91 80 81 SC_METHOD (constant); 82 // dont_initialize (); 83 84 # ifdef SYSTEMCASS_SPECIFIC 85 // List dependency information 86 # endif 87 #endif 92 88 log_printf(INFO,Return_Address_Stack,FUNCTION,"Method - transition"); 93 89 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h
r122 r131 254 254 255 255 #ifdef SYSTEMC 256 public : void constant (void); 256 257 public : void transition (void); 257 258 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp
r124 r131 76 76 if (usage_is_set(_usage,USE_SYSTEMC)) 77 77 { 78 // Constant 79 for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++) 80 { 81 internal_BRANCH_COMPLETE_ACK [i] = 1;82 PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]); 83 }84 for (uint32_t i=0; i<_param->_nb_context; ++i) 85 { 86 internal_EVENT_ACK [i] = 1; 87 PORT_WRITE(out_EVENT_ACK [i], internal_EVENT_ACK [i]); 88 } 89 78 #ifdef SYSTEMCASS_SPECIFIC 79 constant(); 80 #else 81 log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - constant"); 82 83 SC_METHOD (constant); 84 // dont_initialize (); 85 86 # ifdef SYSTEMCASS_SPECIFIC 87 // List dependency information 88 # endif 89 #endif 90 90 log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - transition"); 91 91 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/SelfTest/src/test.cpp
r128 r131 67 67 sc_signal<Toperation_t > ** out_DECOD_OPERATION ; 68 68 sc_signal<Tcontrol_t > ** out_DECOD_NO_EXECUTE ; 69 sc_signal<Tcontrol_t > ** out_DECOD_LAST_EVENT ; 69 70 sc_signal<Tcontrol_t > ** out_DECOD_IS_DELAY_SLOT ; 70 71 sc_signal<Tgeneral_data_t > ** out_DECOD_ADDRESS ; … … 144 145 ALLOC1_SC_SIGNAL(out_DECOD_OPERATION ,"out_DECOD_OPERATION ",Toperation_t ,_param->_sum_inst_decod); 145 146 ALLOC1_SC_SIGNAL(out_DECOD_NO_EXECUTE ,"out_DECOD_NO_EXECUTE ",Tcontrol_t ,_param->_sum_inst_decod); 147 ALLOC1_SC_SIGNAL(out_DECOD_LAST_EVENT ,"out_DECOD_LAST_EVENT ",Tcontrol_t ,_param->_sum_inst_decod); 146 148 ALLOC1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT ,"out_DECOD_IS_DELAY_SLOT ",Tcontrol_t ,_param->_sum_inst_decod); 147 149 ALLOC1_SC_SIGNAL(out_DECOD_ADDRESS ,"out_DECOD_ADDRESS ",Tgeneral_data_t ,_param->_sum_inst_decod); … … 234 236 INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_OPERATION ,_param->_sum_inst_decod); 235 237 INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_NO_EXECUTE ,_param->_sum_inst_decod); 238 INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_LAST_EVENT ,_param->_sum_inst_decod); 236 239 INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_IS_DELAY_SLOT ,_param->_sum_inst_decod); 237 240 #ifdef DEBUG … … 319 322 LABEL("Initialisation"); 320 323 321 for (uint32_t i=0; i<_param->_nb_context; ++i)322 {323 in_ICACHE_REQ_ACK [i]->write(0);324 in_ICACHE_RSP_VAL [i]->write(0);325 in_EVENT_ACK [i]->write(0);326 in_SPR_EVENT_ACK [i]->write(0);327 in_NB_INST_COMMIT_ALL [i]->write(0); // no inst328 in_NB_INST_COMMIT_MEM [i]->write(0); // no inst329 in_SPR_SR_IEE [i]->write(0); // interrupt disable330 in_SPR_SR_EPH [i]->write(0); // exception msb = 0331 in_INTERRUPT_ENABLE [i]->write(0); // no interrupt332 }333 for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)334 in_DECOD_ACK [i]->write(0);335 for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)336 in_BRANCH_COMPLETE_VAL [i]->write(0);337 in_COMMIT_EVENT_VAL->write(0);338 339 340 for (uint32_t i=0; i<_param->_nb_context; ++i)341 {342 TEST(Tcontrol_t,out_ICACHE_REQ_VAL [i]->read(),0);343 TEST(Tcontrol_t,out_ICACHE_RSP_ACK [i]->read(),1); // Can accept a respons344 TEST(Tcontrol_t,out_EVENT_VAL [i]->read(),0);345 TEST(Tcontrol_t,out_SPR_EVENT_VAL [i]->read(),0);346 TEST(Tdepth_t ,out_DEPTH_MIN [i]->read(),0); // no branch speculated347 TEST(Tdepth_t ,out_DEPTH_MAX [i]->read(),0); // no branch speculated348 TEST(Tdepth_t ,out_DEPTH_FULL [i]->read(),0); // no branch speculated349 }350 for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)351 TEST(Tcontrol_t,out_DECOD_VAL [i]->read(),0);352 for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)353 TEST(Tcontrol_t,out_BRANCH_COMPLETE_ACK [i]->read(),0); // can't accept (interactive)354 TEST(Tcontrol_t,out_COMMIT_EVENT_ACK ->read(),1); // can accept324 // for (uint32_t i=0; i<_param->_nb_context; ++i) 325 // { 326 // in_ICACHE_REQ_ACK [i]->write(0); 327 // in_ICACHE_RSP_VAL [i]->write(0); 328 // in_EVENT_ACK [i]->write(0); 329 // in_SPR_EVENT_ACK [i]->write(0); 330 // in_NB_INST_COMMIT_ALL [i]->write(0); // no inst 331 // in_NB_INST_COMMIT_MEM [i]->write(0); // no inst 332 // in_SPR_SR_IEE [i]->write(0); // interrupt disable 333 // in_SPR_SR_EPH [i]->write(0); // exception msb = 0 334 // in_INTERRUPT_ENABLE [i]->write(0); // no interrupt 335 // } 336 // for (uint32_t i=0; i<_param->_sum_inst_decod; ++i) 337 // in_DECOD_ACK [i]->write(0); 338 // for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i) 339 // in_BRANCH_COMPLETE_VAL [i]->write(0); 340 // in_COMMIT_EVENT_VAL->write(0); 341 342 343 // for (uint32_t i=0; i<_param->_nb_context; ++i) 344 // { 345 // TEST(Tcontrol_t,out_ICACHE_REQ_VAL [i]->read(),0); 346 // TEST(Tcontrol_t,out_ICACHE_RSP_ACK [i]->read(),1); // Can accept a respons 347 // TEST(Tcontrol_t,out_EVENT_VAL [i]->read(),0); 348 // TEST(Tcontrol_t,out_SPR_EVENT_VAL [i]->read(),0); 349 // TEST(Tdepth_t ,out_DEPTH_MIN [i]->read(),0); // no branch speculated 350 // TEST(Tdepth_t ,out_DEPTH_MAX [i]->read(),0); // no branch speculated 351 // TEST(Tdepth_t ,out_DEPTH_FULL [i]->read(),0); // no branch speculated 352 // } 353 // for (uint32_t i=0; i<_param->_sum_inst_decod; ++i) 354 // TEST(Tcontrol_t,out_DECOD_VAL [i]->read(),0); 355 // for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i) 356 // TEST(Tcontrol_t,out_BRANCH_COMPLETE_ACK [i]->read(),0); // can't accept (interactive) 357 // TEST(Tcontrol_t,out_COMMIT_EVENT_ACK ->read(),1); // can accept 355 358 356 359 LABEL("Reset"); … … 361 364 LABEL("Loop of Test"); 362 365 363 for (uint32_t iteration=0; iteration< NB_ITERATION; iteration ++)366 for (uint32_t iteration=0; iteration< NB_ITERATION; iteration ++) 364 367 { 365 368 LABEL("Iteration %d",iteration); … … 399 402 DELETE1_SC_SIGNAL(out_DECOD_OPERATION ,_param->_sum_inst_decod); 400 403 DELETE1_SC_SIGNAL(out_DECOD_NO_EXECUTE ,_param->_sum_inst_decod); 404 DELETE1_SC_SIGNAL(out_DECOD_LAST_EVENT ,_param->_sum_inst_decod); 401 405 DELETE1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT ,_param->_sum_inst_decod); 402 406 DELETE1_SC_SIGNAL(out_DECOD_ADDRESS ,_param->_sum_inst_decod); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h
r124 r131 338 338 339 339 #ifdef SYSTEMC 340 public : void constant (void); 340 341 public : void transition (void); 341 342 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit.cpp
r123 r131 76 76 if (usage_is_set(_usage,USE_SYSTEMC)) 77 77 { 78 // Constant 79 for (uint32_t i=0; i<_param->_nb_front_end; i++) 80 for (uint32_t j=0; j<_param->_nb_context [i]; j++) 81 { 82 internal_EVENT_ACK [i][j] = 1; 83 PORT_WRITE(out_EVENT_ACK [i][j], internal_EVENT_ACK [i][j]); 84 85 internal_RETIRE_EVENT_VAL [i][j] = 1; 86 PORT_WRITE(out_RETIRE_EVENT_VAL [i][j], internal_RETIRE_EVENT_VAL [i][j]); 87 } 78 #ifdef SYSTEMCASS_SPECIFIC 79 constant(); 80 #else 81 log_printf(INFO,Commit_unit,FUNCTION,_("<%s> Method - constant"),_name.c_str()); 82 83 SC_METHOD (constant); 84 // dont_initialize (); 85 86 # ifdef SYSTEMCASS_SPECIFIC 87 // List dependency information 88 # endif 89 #endif 88 90 89 91 log_printf(INFO,Commit_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/include/Reexecute_unit.h
r122 r131 199 199 private : bool must_reexecute (Tspr_address_t address, info_t & info); 200 200 201 public : void constant (void); 201 202 public : void transition (void); 202 203 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit.cpp
r123 r131 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 // Constant 78 for (uint32_t i=0; i<_param->_nb_inst_reexecute; ++i) 79 { 80 if (_param->_have_port_load_queue_ptr) 81 PORT_WRITE(out_REEXECUTE_LOAD_QUEUE_PTR_WRITE [i],0); 82 PORT_WRITE(out_REEXECUTE_READ_RA [i],0); 83 PORT_WRITE(out_REEXECUTE_NUM_REG_RA [i],0); 84 PORT_WRITE(out_REEXECUTE_READ_RB [i],0); 85 PORT_WRITE(out_REEXECUTE_NUM_REG_RB [i],0); 86 PORT_WRITE(out_REEXECUTE_READ_RC [i],0); 87 PORT_WRITE(out_REEXECUTE_NUM_REG_RC [i],0); 88 PORT_WRITE(out_REEXECUTE_WRITE_RE [i],0); 89 PORT_WRITE(out_REEXECUTE_NUM_REG_RE [i],0); 90 } 77 #ifdef SYSTEMCASS_SPECIFIC 78 constant(); 79 #else 80 log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Method - constant"),_name.c_str()); 91 81 82 SC_METHOD (constant); 83 // dont_initialize (); 84 85 # ifdef SYSTEMCASS_SPECIFIC 86 // List dependency information 87 # endif 88 #endif 92 89 93 90 log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_commit.cpp
r123 r131 131 131 else 132 132 { 133 for (uint32_t i=0; i<_param->_nb_bank; i++) 134 internal_QUEUE_PUSH [i] = 0; 135 133 136 #ifdef STATISTICS 134 137 for (uint32_t i=0; i<_param->_nb_inst_commit; ++i) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_transition.cpp
r101 r131 49 49 uint32_t y = internal_QUEUE_NUM_INST_EXECUTE [i]; 50 50 uint32_t z = internal_QUEUE_NUM_INST_COMMIT [i]; 51 51 52 log_printf(TRACE,Reexecute_unit,FUNCTION," * EXECUTE_LOOP[%d][%d] - COMMIT[%d]",x,y,z); 53 52 54 entry->state = STATE_SPR_ACCESS; 53 55 entry->context_id = (_param->_have_port_context_id )?PORT_READ(in_EXECUTE_LOOP_CONTEXT_ID [x][y]):0; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h
r122 r131 146 146 147 147 #ifdef SYSTEMC 148 public : void constant (void); 148 149 public : void transition (void); 149 150 public : void genMealy_insert (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 77 // Constant : accepted already transaction 78 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 79 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 80 { 81 internal_RETIRE_EVENT_ACK [i][j] = 1; 82 83 PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]); 84 } 76 #ifdef SYSTEMCASS_SPECIFIC 77 constant(); 78 #else 79 log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - constant"); 80 81 SC_METHOD (constant); 82 // dont_initialize (); 83 84 # ifdef SYSTEMCASS_SPECIFIC 85 // List dependency information 86 # endif 87 #endif 85 88 86 89 log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - transition"); -
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
r122 r131 169 169 170 170 #ifdef SYSTEMC 171 public : void constant (void); 171 172 public : void transition (void); 172 173 public : void genMealy_rename (void); -
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
r123 r131 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 // Constant : accepted already transaction 78 for (uint32_t i=0; i<_param->_nb_inst_insert; i++) 79 { 80 internal_RENAME_ACK [i] = 1; 81 internal_INSERT_ACK [i] = 1; 77 #ifdef SYSTEMCASS_SPECIFIC 78 constant(); 79 #else 80 log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - constant"); 82 81 83 PORT_WRITE(out_RENAME_ACK[i],internal_RENAME_ACK [i]); 84 PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]); 85 } 86 87 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 88 { 89 internal_RETIRE_ACK [i] = 1; 90 91 PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]); 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 } 82 SC_METHOD (constant); 83 // dont_initialize (); 84 85 # ifdef SYSTEMCASS_SPECIFIC 86 // List dependency information 87 # endif 88 #endif 101 89 102 90 log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - transition"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h
r123 r131 164 164 165 165 #ifdef SYSTEMC 166 public : void constant (void); 166 167 public : void transition (void); 167 168 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp
r123 r131 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 // Constant 77 for (uint32_t i=0; i<_param->_nb_inst_insert; i++) 78 { 79 internal_INSERT_ACK[i] = 1; 80 PORT_WRITE(out_INSERT_ACK[i], internal_INSERT_ACK[i]); 81 } 82 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 83 { 84 internal_RETIRE_ACK[i] = 1; 85 PORT_WRITE(out_RETIRE_ACK[i], internal_RETIRE_ACK[i]); 86 } 76 #ifdef SYSTEMCASS_SPECIFIC 77 constant(); 78 #else 79 log_printf(INFO,Stat_List_unit,FUNCTION,"Method - constant"); 80 81 SC_METHOD (constant); 82 // dont_initialize (); 83 84 # ifdef SYSTEMCASS_SPECIFIC 85 // List dependency information 86 # endif 87 #endif 87 88 88 89 log_printf(INFO,Stat_List_unit,FUNCTION,"Method - transition"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/SelfTest/src/test.cpp
r128 r131 61 61 sc_signal<Toperation_t > *** in_RENAME_OPERATION ; 62 62 sc_signal<Tcontrol_t > *** in_RENAME_NO_EXECUTE ; 63 sc_signal<Tcontrol_t > *** in_RENAME_LAST_EVENT ; 63 64 sc_signal<Tcontrol_t > *** in_RENAME_IS_DELAY_SLOT ; 64 65 sc_signal<Taddress_t > *** in_RENAME_ADDRESS ; … … 87 88 sc_signal<Toperation_t > ** out_ISSUE_OPERATION ; 88 89 sc_signal<Tlsq_ptr_t > ** out_ISSUE_STORE_QUEUE_PTR_WRITE ; 90 sc_signal<Tlsq_ptr_t > ** out_ISSUE_STORE_QUEUE_PTR_READ ; 91 sc_signal<Tcontrol_t > ** out_ISSUE_STORE_QUEUE_EMPTY ; 89 92 sc_signal<Tlsq_ptr_t > ** out_ISSUE_LOAD_QUEUE_PTR_WRITE ; 90 93 sc_signal<Tcontrol_t > ** out_ISSUE_HAS_IMMEDIAT ; … … 188 191 ALLOC2_SC_SIGNAL( in_RENAME_OPERATION ," in_RENAME_OPERATION ",Toperation_t ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 189 192 ALLOC2_SC_SIGNAL( in_RENAME_NO_EXECUTE ," in_RENAME_NO_EXECUTE ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 193 ALLOC2_SC_SIGNAL( in_RENAME_LAST_EVENT ," in_RENAME_LAST_EVENT ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 190 194 ALLOC2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT ," in_RENAME_IS_DELAY_SLOT ",Tcontrol_t ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 191 195 #ifdef DEBUG … … 216 220 ALLOC1_SC_SIGNAL(out_ISSUE_OPERATION ,"out_ISSUE_OPERATION ",Toperation_t ,_param->_nb_inst_issue); 217 221 ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE ,"out_ISSUE_STORE_QUEUE_PTR_WRITE ",Tlsq_ptr_t ,_param->_nb_inst_issue); 222 ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ ,"out_ISSUE_STORE_QUEUE_PTR_READ ",Tlsq_ptr_t ,_param->_nb_inst_issue); 223 ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_EMPTY ,"out_ISSUE_STORE_QUEUE_EMPTY ",Tcontrol_t ,_param->_nb_inst_issue); 218 224 ALLOC1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE ,"out_ISSUE_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t ,_param->_nb_inst_issue); 219 225 ALLOC1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT ,"out_ISSUE_HAS_IMMEDIAT ",Tcontrol_t ,_param->_nb_inst_issue); … … 329 335 INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_OPERATION ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 330 336 INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NO_EXECUTE ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 337 INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_LAST_EVENT ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 331 338 INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_IS_DELAY_SLOT ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 332 339 #ifdef DEBUG … … 360 367 INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_OPERATION ,_param->_nb_inst_issue); 361 368 INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_WRITE ,_param->_nb_inst_issue); 369 INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_READ ,_param->_nb_inst_issue); 370 INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_EMPTY ,_param->_nb_inst_issue); 362 371 if (_param->_have_port_load_queue_ptr) 363 372 INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_issue); … … 517 526 DELETE2_SC_SIGNAL( in_RENAME_OPERATION ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 518 527 DELETE2_SC_SIGNAL( in_RENAME_NO_EXECUTE ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 528 DELETE2_SC_SIGNAL( in_RENAME_LAST_EVENT ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 519 529 DELETE2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 520 530 #ifdef DEBUG … … 545 555 DELETE1_SC_SIGNAL(out_ISSUE_OPERATION ,_param->_nb_inst_issue); 546 556 DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE ,_param->_nb_inst_issue); 557 DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ ,_param->_nb_inst_issue); 558 DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_EMPTY ,_param->_nb_inst_issue); 547 559 DELETE1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_issue); 548 560 DELETE1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT ,_param->_nb_inst_issue); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h
r88 r131 139 139 140 140 #ifdef SYSTEMC 141 public : void constant (void); 141 142 public : void transition (void); 142 143 public : void genMoore (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit.cpp
r123 r131 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 // Constant 78 for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++) 79 { 80 internal_SPR_ACCESS_ACK [i] = 1; 81 PORT_WRITE(out_SPR_ACCESS_ACK [i], internal_SPR_ACCESS_ACK [i]); 82 } 77 #ifdef SYSTEMCASS_SPECIFIC 78 constant(); 79 #else 80 log_printf(INFO,Special_Register_unit,FUNCTION,_("<%s> : Method - constant"),_name.c_str()); 83 81 84 for (uint32_t i=0; i<_param->_nb_front_end; i++) 85 for (uint32_t j=0; j<_param->_nb_context[i]; j++) 86 { 87 internal_SPR_COMMIT_ACK [i][j] = 1; 88 internal_SPR_EVENT_ACK [i][j] = 1; 89 PORT_WRITE(out_SPR_COMMIT_ACK [i][j], internal_SPR_COMMIT_ACK [i][j]); 90 PORT_WRITE(out_SPR_EVENT_ACK [i][j], internal_SPR_EVENT_ACK [i][j]); 91 } 82 SC_METHOD (constant); 83 // dont_initialize (); 84 85 # ifdef SYSTEMCASS_SPECIFIC 86 // List dependency information 87 # endif 88 #endif 92 89 93 90 log_printf(INFO,Special_Register_unit,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp
r113 r131 32 32 exit (EXIT_FAILURE); 33 33 } 34 35 _model.set_model(MODEL_SYSTEMC,true); 34 36 35 37 Tusage_t _usage = USE_ALL; … … 123 125 // Initialisation 124 126 125 sc_start(0);127 SC_START(0); 126 128 127 129 for (uint32_t i=0; i<_param->_nb_port_write; i++) … … 134 136 NRESET.write(0); 135 137 136 sc_start(5);138 SC_START(5); 137 139 138 140 NRESET.write(1); 139 141 142 for (uint32_t i=0; i<_param->_nb_port_write; i++) 143 TEST(Tcontrol_t,WRITE_ACK [i],1); 144 for (uint32_t i=0; i<_param->_nb_port_read; i++) 145 TEST(Tcontrol_t,READ_ACK [i],1); 146 for (uint32_t i=0; i<_param->_nb_port_read_write; i++) 147 TEST(Tcontrol_t,READ_WRITE_ACK [i],1); 140 148 141 149 for (uint32_t nb_iteration=0; nb_iteration < NB_ITERATION; nb_iteration ++) … … 159 167 while (nb_ack < _param->_nb_word) 160 168 { 169 161 170 cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl; 162 171 … … 196 205 } 197 206 198 sc_start(1);207 SC_START(1); 199 208 200 209 // reset write_val port … … 219 228 } 220 229 221 sc_start(0);230 // SC_START(0); 222 231 } 223 232 … … 266 275 267 276 268 sc_start(1);277 SC_START(1); 269 278 270 279 // reset write_val port … … 297 306 } 298 307 299 sc_start(0);308 // SC_START(0); 300 309 } 301 310 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h
r82 r131 114 114 115 115 #ifdef SYSTEMC 116 public : void constant (void); 116 117 public : void transition (void); 117 118 //public : void genMoore (void) {/* empty */}; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp
r123 r131 56 56 if (usage_is_set(_usage,USE_SYSTEMC)) 57 57 { 58 59 # ifdef SYSTEMCASS_SPECIFIC 60 constant(); 61 #else 62 SC_METHOD (constant); 63 // dont_initialize (); 64 #endif 65 58 66 SC_METHOD (transition); 59 67 dont_initialize (); 60 68 sensitive << (*(in_CLOCK)).pos(); 61 69 62 70 SC_METHOD (genMealy_read); 63 71 dont_initialize (); … … 93 101 } 94 102 # endif 95 96 for (uint32_t i=0; i<_param->_nb_port_read ; i++)97 PORT_WRITE(out_READ_ACK [i], 1);98 for (uint32_t i=0; i<_param->_nb_port_write ; i++)99 PORT_WRITE(out_WRITE_ACK [i], 1);100 for (uint32_t i=0; i<_param->_nb_port_read_write ; i++)101 PORT_WRITE(out_READ_WRITE_ACK [i], 1);102 103 } 103 104 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp
r128 r131 114 114 115 115 #if defined(DEBUG_RegisterFile_Monolithic) and DEBUG_RegisterFile_Monolithic and (DEBUG >= DEBUG_TRACE) 116 if (0) 116 # if 1 117 117 { 118 118 log_printf(TRACE,RegisterFile,FUNCTION," * Dump RegisterFile"); … … 136 136 } 137 137 } 138 # endif 138 139 #endif 139 140 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
r113 r131 23 23 #endif 24 24 25 _model.set_model(MODEL_SYSTEMC,true); 26 25 27 Tusage_t _usage = USE_ALL; 26 28 … … 30 32 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT); 31 33 // _usage = usage_unset(_usage,USE_POSITION ); 32 _usage = usage_unset(_usage,USE_STATISTICS );34 // _usage = usage_unset(_usage,USE_STATISTICS ); 33 35 // _usage = usage_unset(_usage,USE_INFORMATION ); 34 36 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp
r113 r131 21 21 morpheo::behavioural::Parameters_Statistics * _param_stat = new morpheo::behavioural::Parameters_Statistics(5,50); 22 22 #endif 23 24 _model.set_model(MODEL_SYSTEMC,true); 23 25 24 26 Tusage_t _usage = USE_ALL; … … 170 172 } 171 173 172 SC_START(0);174 // SC_START(0); 173 175 } 174 176 … … 219 221 } 220 222 221 SC_START(0);223 // SC_START(0); 222 224 } 223 225 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp
r82 r131 3 3 * $Id$ 4 4 * 5 * [ 5 * [ Description ] 6 6 * 7 7 */ 8 8 9 9 #include "Behavioural/Generic/RegisterFile/include/RegisterFile.h" 10 #include "Behavioural/include/Allocation.h" 10 11 11 12 namespace morpheo { … … 13 14 namespace generic { 14 15 namespace registerfile { 15 16 16 17 17 void RegisterFile::allocation ( … … 27 27 log_printf(FUNC,RegisterFile,"allocation","Begin"); 28 28 29 // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 #ifdef SYSTEMCASS_SPECIFIC 30 // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 31 { 31 in_CLOCK = new SC_CLOCK ("in_CLOCK");32 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");32 __ALLOC0_SIGNAL(in_CLOCK ,"in_CLOCK" ,SC_CLOCK ); 33 __ALLOC0_SIGNAL(in_NRESET,"in_NRESET",SC_IN (Tcontrol_t)); 33 34 } 34 // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 { 37 __ALLOC1_INTERFACE_BEGIN("READ",_param->_nb_port_read); 35 38 36 in_READ_VAL = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];37 out_READ_ACK = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];38 if (_param->_have_port_address == true)39 in_READ_ADDRESS = new SC_IN (Taddress_t) * [_param->_nb_port_read];40 out_READ_DATA = new SC_OUT(Tdata_t ) * [_param->_nb_port_read];39 __ALLOC1_SIGNAL_IN ( in_READ_VAL ,"VAL" ,Tcontrol_t); 40 __ALLOC1_SIGNAL_OUT(out_READ_ACK ,"ACK" ,Tcontrol_t); 41 if (_param->_have_port_address) 42 __ALLOC1_SIGNAL_IN ( in_READ_ADDRESS,"ADDRESS",Taddress_t); 43 __ALLOC1_SIGNAL_OUT(out_READ_DATA ,"DATA" ,Tdata_t ); 41 44 42 for (uint32_t i=0; i<_param->_nb_port_read; i++) 43 { 44 rename = "in_READ_"+toString(i)+"_VAL" ; 45 in_READ_VAL [i] = new SC_IN (Tcontrol_t) (rename.c_str()); 46 rename = "out_READ_"+toString(i)+"_ACK" ; 47 out_READ_ACK [i] = new SC_OUT(Tcontrol_t) (rename.c_str()); 48 if (_param->_have_port_address == true) 49 { 50 rename = "in_READ_"+toString(i)+"_ADDRESS"; 51 in_READ_ADDRESS [i] = new SC_IN (Taddress_t) (rename.c_str()); 52 } 53 rename = "out_READ_"+toString(i)+"_DATA" ; 54 out_READ_DATA [i] = new SC_OUT(Tdata_t ) (rename.c_str()); 55 } 45 __ALLOC1_INTERFACE_END(_param->_nb_port_read); 46 } 56 47 57 // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 48 // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49 { 50 __ALLOC1_INTERFACE_BEGIN("WRITE",_param->_nb_port_write); 58 51 59 in_WRITE_VAL = new SC_IN (Tcontrol_t) * [_param->_nb_port_write]; 60 out_WRITE_ACK = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write]; 61 if (_param->_have_port_address == true) 62 in_WRITE_ADDRESS = new SC_IN (Taddress_t) * [_param->_nb_port_write]; 63 in_WRITE_DATA = new SC_IN (Tdata_t ) * [_param->_nb_port_write]; 64 65 for (uint32_t i=0; i<_param->_nb_port_write; i++) 66 { 67 rename = "in_WRITE_"+toString(i)+"_VAL" ; 68 in_WRITE_VAL [i] = new SC_IN (Tcontrol_t) (rename.c_str()); 69 rename = "out_WRITE_"+toString(i)+"_ACK" ; 70 out_WRITE_ACK [i] = new SC_OUT(Tcontrol_t) (rename.c_str()); 71 if (_param->_have_port_address == true) 72 { 73 rename = "in_WRITE_"+toString(i)+"_ADDRESS"; 74 in_WRITE_ADDRESS [i] = new SC_IN (Taddress_t) (rename.c_str()); 75 } 76 rename = "in_WRITE_"+toString(i)+"_DATA" ; 77 in_WRITE_DATA [i] = new SC_IN (Tdata_t ) (rename.c_str()); 78 } 52 __ALLOC1_SIGNAL_IN ( in_WRITE_VAL ,"VAL" ,Tcontrol_t); 53 __ALLOC1_SIGNAL_OUT(out_WRITE_ACK ,"ACK" ,Tcontrol_t); 54 if (_param->_have_port_address) 55 __ALLOC1_SIGNAL_IN ( in_WRITE_ADDRESS,"ADDRESS",Taddress_t); 56 __ALLOC1_SIGNAL_IN ( in_WRITE_DATA ,"DATA" ,Tdata_t ); 79 57 80 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58 __ALLOC1_INTERFACE_END(_param->_nb_port_write); 59 } 60 #endif 61 62 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 63 if (_param->_instance == instance_RegisterFile_Monolithic) 82 64 // =====[ component_RegisterFile_Monolithic ]========================= … … 106 88 // =====[ Component_RegisterFile_Monolithic - Instanciation ]========= 107 89 { 108 (*(component_RegisterFile_Monolithic ->in_CLOCK )) (*(in_CLOCK )); 90 #ifdef SYSTEMCASS_SPECIFIC 91 (*(component_RegisterFile_Monolithic ->in_CLOCK )) (*(in_CLOCK )); 109 92 (*(component_RegisterFile_Monolithic ->in_NRESET)) (*(in_NRESET)); 110 93 … … 126 109 (*(component_RegisterFile_Monolithic -> in_WRITE_DATA [i])) (*( in_WRITE_DATA [i])); 127 110 } 111 #else 112 in_CLOCK = component_RegisterFile_Monolithic-> in_CLOCK ; 113 in_NRESET = component_RegisterFile_Monolithic-> in_NRESET ; 114 115 in_READ_VAL = component_RegisterFile_Monolithic-> in_READ_VAL ; 116 out_READ_ACK = component_RegisterFile_Monolithic->out_READ_ACK ; 117 in_READ_ADDRESS = component_RegisterFile_Monolithic-> in_READ_ADDRESS ; 118 out_READ_DATA = component_RegisterFile_Monolithic->out_READ_DATA ; 119 120 in_WRITE_VAL = component_RegisterFile_Monolithic-> in_WRITE_VAL ; 121 out_WRITE_ACK = component_RegisterFile_Monolithic->out_WRITE_ACK ; 122 in_WRITE_ADDRESS = component_RegisterFile_Monolithic-> in_WRITE_ADDRESS; 123 in_WRITE_DATA = component_RegisterFile_Monolithic-> in_WRITE_DATA ; 124 #endif 128 125 } 129 126 else 130 127 // =====[ Component_RegisterFile_Multi_Banked - Instanciation ]======= 131 128 { 129 #ifdef SYSTEMCASS_SPECIFIC 132 130 (*(component_RegisterFile_Multi_Banked->in_CLOCK )) (*(in_CLOCK )); 133 131 (*(component_RegisterFile_Multi_Banked->in_NRESET)) (*(in_NRESET)); … … 150 148 (*(component_RegisterFile_Multi_Banked-> in_WRITE_DATA [i])) (*( in_WRITE_DATA [i])); 151 149 } 150 #else 151 in_CLOCK = component_RegisterFile_Multi_Banked-> in_CLOCK ; 152 in_NRESET = component_RegisterFile_Multi_Banked-> in_NRESET ; 153 154 in_READ_VAL = component_RegisterFile_Multi_Banked-> in_READ_VAL ; 155 out_READ_ACK = component_RegisterFile_Multi_Banked->out_READ_ACK ; 156 in_READ_ADDRESS = component_RegisterFile_Multi_Banked-> in_READ_ADDRESS ; 157 out_READ_DATA = component_RegisterFile_Multi_Banked->out_READ_DATA ; 158 159 in_WRITE_VAL = component_RegisterFile_Multi_Banked-> in_WRITE_VAL ; 160 out_WRITE_ACK = component_RegisterFile_Multi_Banked->out_WRITE_ACK ; 161 in_WRITE_ADDRESS = component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS; 162 in_WRITE_DATA = component_RegisterFile_Multi_Banked-> in_WRITE_DATA ; 163 #endif 164 152 165 } 153 166 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_deallocation.cpp
r128 r131 3 3 * $Id$ 4 4 * 5 * [ 5 * [ Description ] 6 6 * 7 7 */ … … 19 19 log_printf(FUNC,RegisterFile,"deallocation","Begin"); 20 20 21 #ifdef SYSTEMCASS_SPECIFIC 21 22 delete in_CLOCK; 22 23 delete in_NRESET; … … 52 53 delete [] in_WRITE_ADDRESS; 53 54 delete [] in_WRITE_DATA ; 55 #endif 54 56 55 // ~~~~~[ 57 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 58 57 59 // delete _component; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp
r97 r131 69 69 SC_METHOD (transition); 70 70 dont_initialize (); 71 sensitive _pos << *(in_CLOCK);71 sensitive << (*(in_CLOCK)).pos(); 72 72 # endif 73 73 … … 76 76 SC_METHOD (genMealy_entity); 77 77 dont_initialize (); 78 //sensitive_pos << *(in_CLOCK);79 78 for (uint32_t i=0; i<_param->_nb_entity; i++) 80 79 sensitive << *(in_VAL [i]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h
r88 r131 116 116 117 117 #ifdef SYSTEMC 118 public : void constant (void); 118 119 public : void transition (void); 119 120 public : void genMealy (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp
r123 r131 63 63 if (usage_is_set(_usage,USE_SYSTEMC)) 64 64 { 65 // Constant - ack is always at one 66 for (uint32_t i=0; i<_param->_nb_access; i++) 67 { 68 internal_ACCESS_ACK [i] = 1; 69 PORT_WRITE (out_ACCESS_ACK [i], internal_ACCESS_ACK [i]); 70 } 65 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method"); 71 66 72 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method"); 67 #ifdef SYSTEMCASS_SPECIFIC 68 constant(); 69 #else 70 SC_METHOD (constant); 71 // dont_initialize (); 72 #endif 73 73 74 SC_METHOD (transition); 74 75 dont_initialize (); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_allocation.cpp
r112 r131 28 28 log_printf(FUNC,Victim,FUNCTION,"Begin"); 29 29 30 30 #ifdef SYSTEMCASS_SPECIFIC 31 31 // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 32 { 33 __ALLOC0_SIGNAL (in_CLOCK ,"in_CLOCK" ,SC_CLOCK );34 __ALLOC0_SIGNAL (in_NRESET,"in_NRESET",SC_IN(Tcontrol_t));33 __ALLOC0_SIGNAL (in_CLOCK ,"in_CLOCK" ,SC_CLOCK ); 34 __ALLOC0_SIGNAL (in_NRESET,"in_NRESET",SC_IN(Tcontrol_t)); 35 35 } 36 36 … … 49 49 __ALLOC1_INTERFACE_END(_param->_nb_access); 50 50 } 51 #endif 51 52 52 53 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 88 89 case VICTIM_PSEUDO_LRU : 89 90 { 91 #ifdef SYSTEMCASS_SPECIFIC 90 92 { 91 93 (*(_component_victim_pseudo_lru-> in_CLOCK )) (*( in_CLOCK)); … … 103 105 (*(_component_victim_pseudo_lru->out_ACCESS_VICTIM [i])) (*(out_ACCESS_VICTIM [i])); 104 106 } 105 107 #else 108 in_CLOCK = _component_victim_pseudo_lru-> in_CLOCK ; 109 in_NRESET = _component_victim_pseudo_lru-> in_NRESET ; 110 in_ACCESS_VAL = _component_victim_pseudo_lru-> in_ACCESS_VAL ; 111 out_ACCESS_ACK = _component_victim_pseudo_lru->out_ACCESS_ACK ; 112 in_ACCESS_ADDRESS = _component_victim_pseudo_lru-> in_ACCESS_ADDRESS; 113 in_ACCESS_HIT = _component_victim_pseudo_lru-> in_ACCESS_HIT ; 114 in_ACCESS_ENTITY = _component_victim_pseudo_lru-> in_ACCESS_ENTITY ; 115 out_ACCESS_VICTIM = _component_victim_pseudo_lru->out_ACCESS_VICTIM ; 116 #endif 106 117 break; 107 118 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp
r128 r131 35 35 if (usage_is_set(_usage,USE_SYSTEMC)) 36 36 { 37 #ifdef SYSTEMCASS_SPECIFIC 37 38 delete in_CLOCK ; 38 39 delete in_NRESET; … … 56 57 delete [] in_ACCESS_ENTITY ; 57 58 delete [] out_ACCESS_VICTIM ; 59 #endif 58 60 } 59 61 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest
r128 r131 25 25 #MODELTECH_LIBRARY = $(LIBRARY) 26 26 27 EXEC_PREFIX = $(VALGRIND) 27 EXEC_PREFIX = 28 #$(VALGRIND) 28 29 EXEC_PARAMS = $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR_SYSTEMC)) 29 30 EXEC_LOG = $(patsubst $(DIR_CFG_GEN)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_GEN)/*.cfg)) \ 30 31 $(patsubst $(DIR_CFG_USER)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_USER)/*.cfg)) 31 EXEC = soft 32 BIN = Selftest.x 33 EXEC = $(DIR_BIN)/$(BIN) 32 34 33 35 #-----[ Rules ]-------------------------------------------- … … 41 43 @\ 42 44 $(MAKE) library;\ 43 $(MAKE) $( DIR_BIN)/$(EXEC).x;45 $(MAKE) $(EXEC); 44 46 45 47 execute_only : … … 170 172 done; 171 173 172 $(DIR_LOG)/%.exec.log : %.cfg $(EXEC) .x174 $(DIR_LOG)/%.exec.log : %.cfg $(EXEC) 173 175 @\ 174 176 $(ECHO) "Execute : $*";\ 175 export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)); $(EXEC_PREFIX) $( DIR_BIN)/$(EXEC).x$(EXEC_PARAMS) $* `$(CAT) $<` &> $@; \177 export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)); $(EXEC_PREFIX) $(EXEC) $(EXEC_PARAMS) $* `$(CAT) $<` &> $@; \ 176 178 declare timing=`$(GREP) -h "Timing" $@`; \ 177 179 $(GREP) -q "Timing" $@; \ … … 224 226 @$(RM) $(DIR_LOG) \ 225 227 $(DIR_CFG_USER)/*~ \ 226 $( DIR_BIN)/$(EXEC).x\228 $(EXEC) \ 227 229 *.vhdl \ 228 230 *.pos \ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h
r115 r131 42 42 #else 43 43 */ 44 44 45 # define PORT_MAP(x,a,b,c,d) \ 45 46 do \ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Model.h
r118 r131 31 31 class Model 32 32 { 33 private : static const model_type_t default_type = MODEL_SYSTEMC;34 private : static const bool default_debug = false;33 private : model_type_t default_type ; 34 private : bool default_debug; 35 35 36 36 private : std::map<std::string,model_t> models; … … 38 38 public : Model (void); 39 39 public : ~Model (void); 40 public : void set_model ( model_type_t type, bool debug); 40 41 public : void set_model (std::string component, model_type_t type, bool debug); 41 42 public : model_type_t get_type (std::string component); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h
r130 r131 10 10 #define MORPHEO_MAJOR_VERSION "0" 11 11 #define MORPHEO_MINOR_VERSION "2" 12 #define MORPHEO_REVISION "13 0"12 #define MORPHEO_REVISION "131" 13 13 #define MORPHEO_CODENAME "Castor" 14 14 15 #define MORPHEO_DATE_DAY " 30"16 #define MORPHEO_DATE_MONTH "0 6"15 #define MORPHEO_DATE_DAY "08" 16 #define MORPHEO_DATE_MONTH "07" 17 17 #define MORPHEO_DATE_YEAR "2009" 18 18 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp
r113 r131 51 51 52 52 // If all is ok, mapping 53 log_printf(TRACE,Behavioural,FUNCTION, _("Signal \"%s.%s\"\tlink with \"%s.%s\"") 54 ,entity_src ->get_name().c_str() 55 ,signal_src ->get_name().c_str() 56 ,entity_dest->get_name().c_str() 57 ,signal_dest->get_name().c_str()); 53 log_printf(TRACE,Behavioural,FUNCTION, _("Signal \"%s.%s\" (0x%x) \tlink with \"%s.%s\" (0x%x)") 54 , entity_src ->get_name().c_str() 55 , signal_src ->get_name().c_str() 56 ,(int)signal_src ->get_sc_signal() 57 , entity_dest->get_name().c_str() 58 , signal_dest->get_name().c_str() 59 ,(int)signal_dest->get_sc_signal() 60 ); 58 61 59 62 // need an internal signal ? -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp
r129 r131 18 18 // log_begin(Behavioural,FUNCTION); 19 19 20 default_type = MODEL_SYSTEMC; 21 default_debug = false; 22 20 23 set_model(NAME_true ,MODEL_SYSTEMC,true ); 21 24 set_model(NAME_false,MODEL_SYSTEMC,false); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp
r129 r131 11 11 namespace morpheo { 12 12 namespace behavioural { 13 14 #undef FUNCTION 15 #define FUNCTION "Model::set_model" 16 void Model::set_model (model_type_t type, bool debug) 17 { 18 // log_begin(Behavioural,FUNCTION); 19 20 default_type = type ; 21 default_debug = debug; 22 23 // log_end(Behavioural,FUNCTION); 24 } 13 25 14 26 #undef FUNCTION -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp
r82 r131 18 18 log_printf(FUNC,Behavioural,FUNCTION,"Begin"); 19 19 20 // log_printf(TRACE,Behavioural,FUNCTION,"Connection between : %s with %s",get_name().c_str(),signal_dest->get_name().c_str());21 // log_printf(ALL,Behavioural,FUNCTION," * source");22 // log_printf(ALL,Behavioural,FUNCTION," * direction : %s",toString(_direction).c_str());23 // log_printf(ALL,Behavioural,FUNCTION," * sc_signal : %.8x",_sc_signal);24 // log_printf(ALL,Behavioural,FUNCTION," * type_info : %s",toString(_type_info).c_str());25 // log_printf(ALL,Behavioural,FUNCTION," * destination");26 // log_printf(ALL,Behavioural,FUNCTION," * direction : %s",toString(signal_dest->_direction).c_str());27 // log_printf(ALL,Behavioural,FUNCTION," * sc_signal : %.8x",signal_dest->_sc_signal);28 // log_printf(ALL,Behavioural,FUNCTION," * type_info : %s",toString(signal_dest->_type_info).c_str());20 log_printf(TRACE,Behavioural,FUNCTION," * Connection between : %s with %s",get_name().c_str(),signal_dest->get_name().c_str()); 21 // log_printf(ALL,Behavioural,FUNCTION," * source"); 22 // log_printf(ALL,Behavioural,FUNCTION," * direction : %s",toString(_direction).c_str()); 23 // log_printf(ALL,Behavioural,FUNCTION," * sc_signal : %.8x",_sc_signal); 24 // log_printf(ALL,Behavioural,FUNCTION," * type_info : %s",toString(_type_info).c_str()); 25 // log_printf(ALL,Behavioural,FUNCTION," * destination"); 26 // log_printf(ALL,Behavioural,FUNCTION," * direction : %s",toString(signal_dest->_direction).c_str()); 27 // log_printf(ALL,Behavioural,FUNCTION," * sc_signal : %.8x",signal_dest->_sc_signal); 28 // log_printf(ALL,Behavioural,FUNCTION," * type_info : %s",toString(signal_dest->_type_info).c_str()); 29 29 30 TEST_PTR( _sc_signal);30 TEST_PTR( _sc_signal); 31 31 TEST_PTR(signal_dest->_sc_signal); 32 32 33 33 if ((_direction == IN ) and (signal_dest->_direction == IN )) 34 switch (_type_info) 35 { 36 case BOOL : {(*(static_cast<sc_in <bool > *>(_sc_signal))) (*(static_cast<sc_in <bool > *>(signal_dest->_sc_signal))); break;} 37 case UINT8_T : {(*(static_cast<sc_in <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in <uint8_t > *>(signal_dest->_sc_signal))); break;} 38 case UINT16_T : {(*(static_cast<sc_in <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in <uint16_t> *>(signal_dest->_sc_signal))); break;} 39 case UINT32_T : {(*(static_cast<sc_in <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in <uint32_t> *>(signal_dest->_sc_signal))); break;} 40 case UINT64_T : {(*(static_cast<sc_in <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in <uint64_t> *>(signal_dest->_sc_signal))); break;} 41 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 42 } 34 { 35 switch (_type_info) 36 { 37 case BOOL : {(*(static_cast<sc_in <bool > *>(_sc_signal))) (*(static_cast<sc_in <bool > *>(signal_dest->_sc_signal))); break;} 38 case UINT8_T : {(*(static_cast<sc_in <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in <uint8_t > *>(signal_dest->_sc_signal))); break;} 39 case UINT16_T : {(*(static_cast<sc_in <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in <uint16_t> *>(signal_dest->_sc_signal))); break;} 40 case UINT32_T : {(*(static_cast<sc_in <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in <uint32_t> *>(signal_dest->_sc_signal))); break;} 41 case UINT64_T : {(*(static_cast<sc_in <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in <uint64_t> *>(signal_dest->_sc_signal))); break;} 42 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 43 } 44 } 43 45 else 44 if ((_direction == IN ) and (signal_dest->_direction == OUT)) 45 switch (_type_info) 46 { 47 case BOOL : {(*(static_cast<sc_in <bool > *>(_sc_signal))) (*(static_cast<sc_out <bool > *>(signal_dest->_sc_signal))); break;} 48 case UINT8_T : {(*(static_cast<sc_in <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;} 49 case UINT16_T : {(*(static_cast<sc_in <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;} 50 case UINT32_T : {(*(static_cast<sc_in <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;} 51 case UINT64_T : {(*(static_cast<sc_in <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;} 52 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 53 } 54 else 55 if ((_direction == IN ) and (signal_dest->_direction == INTERNAL)) 56 switch (_type_info) 57 { 58 case BOOL : {(*(static_cast<sc_in <bool > *>(_sc_signal))) (*(static_cast<sc_signal<bool > *>(signal_dest->_sc_signal))); break;} 59 case UINT8_T : {(*(static_cast<sc_in <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;} 60 case UINT16_T : {(*(static_cast<sc_in <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;} 61 case UINT32_T : {(*(static_cast<sc_in <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;} 62 case UINT64_T : {(*(static_cast<sc_in <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;} 63 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 64 } 65 else 46 { 47 if ((_direction == IN ) and (signal_dest->_direction == OUT)) 48 { 49 switch (_type_info) 50 { 51 case BOOL : {(*(static_cast<sc_in <bool > *>(_sc_signal))) (*(static_cast<sc_out <bool > *>(signal_dest->_sc_signal))); break;} 52 case UINT8_T : {(*(static_cast<sc_in <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;} 53 case UINT16_T : {(*(static_cast<sc_in <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;} 54 case UINT32_T : {(*(static_cast<sc_in <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;} 55 case UINT64_T : {(*(static_cast<sc_in <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;} 56 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 57 } 58 } 59 else 60 { 61 if ((_direction == IN ) and (signal_dest->_direction == INTERNAL)) 62 { 63 switch (_type_info) 64 { 65 case BOOL : {(*(static_cast<sc_in <bool > *>(_sc_signal))) (*(static_cast<sc_signal<bool > *>(signal_dest->_sc_signal))); break;} 66 case UINT8_T : {(*(static_cast<sc_in <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;} 67 case UINT16_T : {(*(static_cast<sc_in <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;} 68 case UINT32_T : {(*(static_cast<sc_in <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;} 69 case UINT64_T : {(*(static_cast<sc_in <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;} 70 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 71 } 72 } 73 else 74 { 66 75 #ifdef SYSTEMCASS_SPECIFIC 67 68 69 70 71 72 73 74 75 76 77 76 if ((_direction == OUT) and (signal_dest->_direction == IN )) 77 switch (_type_info) 78 { 79 case BOOL : {(*(static_cast<sc_out <bool > *>(_sc_signal))) (*(static_cast<sc_in <bool > *>(signal_dest->_sc_signal))); break;} 80 case UINT8_T : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in <uint8_t > *>(signal_dest->_sc_signal))); break;} 81 case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in <uint16_t> *>(signal_dest->_sc_signal))); break;} 82 case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in <uint32_t> *>(signal_dest->_sc_signal))); break;} 83 case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in <uint64_t> *>(signal_dest->_sc_signal))); break;} 84 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 85 } 86 else 78 87 #endif 79 if ((_direction == OUT) and (signal_dest->_direction == OUT)) 80 switch (_type_info) 81 { 82 case BOOL : {(*(static_cast<sc_out <bool > *>(_sc_signal))) (*(static_cast<sc_out <bool > *>(signal_dest->_sc_signal))); break;} 83 case UINT8_T : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;} 84 case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;} 85 case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;} 86 case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;} 87 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 88 } 89 else 90 if ((_direction == OUT) and (signal_dest->_direction == INTERNAL)) 91 switch (_type_info) 92 { 93 case BOOL : {(*(static_cast<sc_out <bool > *>(_sc_signal))) (*(static_cast<sc_signal<bool > *>(signal_dest->_sc_signal))); break;} 94 case UINT8_T : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;} 95 case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;} 96 case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;} 97 case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;} 98 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 99 } 88 { 89 if ((_direction == OUT) and (signal_dest->_direction == OUT)) 90 { 91 switch (_type_info) 92 { 93 case BOOL : {(*(static_cast<sc_out <bool > *>(_sc_signal))) (*(static_cast<sc_out <bool > *>(signal_dest->_sc_signal))); break;} 94 case UINT8_T : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;} 95 case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;} 96 case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;} 97 case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;} 98 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 99 } 100 } 101 else 102 { 103 if ((_direction == OUT) and (signal_dest->_direction == INTERNAL)) 104 { 105 switch (_type_info) 106 { 107 case BOOL : {(*(static_cast<sc_out <bool > *>(_sc_signal))) (*(static_cast<sc_signal<bool > *>(signal_dest->_sc_signal))); break;} 108 case UINT8_T : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;} 109 case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;} 110 case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;} 111 case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;} 112 default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 113 } 114 } 100 115 // else 101 116 // if ((_direction == INTERNAL) and (signal_dest->_direction == IN )) … … 131 146 // default : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;} 132 147 // } 133 else 134 throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" can't been connected with signal \""+signal_dest->get_name()+"\" : illegal direction ("+toString(_direction)+" with "+toString(signal_dest->_direction)+").")); 148 else 149 { 150 throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" can't been connected with signal \""+signal_dest->get_name()+"\" : illegal direction ("+toString(_direction)+" with "+toString(signal_dest->_direction)+").")); 151 } 152 } 153 } 154 } 155 } 156 } 135 157 136 158 log_printf(FUNC,Behavioural,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_link.cpp
r129 r131 102 102 if (not source_have_multi_consumer) 103 103 connect (signal_dest); 104 else 105 msgWarning(_("Source have multi consumer !\n")); 104 106 105 107 log_printf(FUNC,Behavioural,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Common/include/Systemc.h
r113 r131 36 36 37 37 #ifdef MTI_SYSTEMC 38 # define simulation_run(x) do{ if (x>0) wait(TIME_PERIOD*x,TIME_UNIT); else for (int i=0; i<1000; ++i) wait(SC_ZERO_TIME); } while(0)38 # define simulation_run(x) do{ if (x>0) wait(TIME_PERIOD*x,TIME_UNIT); else for (int i=0; i<1000; ++i) wait(SC_ZERO_TIME); } while(0) 39 39 #else 40 # define simulation_run(x) do{ sc_start(x); } while(0) 40 # ifdef SYSTEMCASS_SPECIFIC 41 # define simulation_run(x) do{ sc_time t (x,TIME_UNIT); sc_start(t); } while(0) 42 # else // systemc 43 # define simulation_run(x) do{ if(x==0) {sc_start(SC_ZERO_TIME);} else {sc_time t (x,TIME_UNIT); sc_start(t);}} while(0) 44 # endif 41 45 #endif 42 46 43 47 #define simulation_cycle() sc_simulation_time()/TIME_PERIOD 44 48 // #define simulation_cycle() sc_time_stamp()/TIME_PERIOD 45 49 }; 46 50 #endif -
trunk/IPs/systemC/processor/Morpheo/Common/include/Test.h
r113 r131 119 119 TEST_KO("Maximal cycles Reached"); \ 120 120 } \ 121 121 \ 122 122 simulation_run(cycle_offset); \ 123 123 \ -
trunk/IPs/systemC/processor/Morpheo/Common/src/Translation.cpp
r88 r131 12 12 namespace morpheo { 13 13 14 #ifdef TRANSLATION 14 15 static bool translation_initialized; 16 #endif 15 17 16 18 void translation (void) -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_4.cfg
r124 r131 67 67 <timing type="2" latence="1" delay="1" /> 68 68 <timing type="3" latence="1" delay="1" /> 69 <timing type="4" latence=" 1" delay="1" />69 <timing type="4" latence="3" delay="1" /> 70 70 <timing type="6" latence="1" delay="1" /> 71 71 <timing type="7" latence="1" delay="1" /> … … 81 81 <timing type="2" latence="1" delay="1" /> 82 82 <timing type="3" latence="1" delay="1" /> 83 <timing type="4" latence=" 1" delay="1" />83 <timing type="4" latence="3" delay="1" /> 84 84 <timing type="6" latence="1" delay="1" /> 85 85 <timing type="7" latence="1" delay="1" /> -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w2_4.cfg
r124 r131 67 67 <timing type="2" latence="1" delay="1" /> 68 68 <timing type="3" latence="1" delay="1" /> 69 <timing type="4" latence=" 1" delay="1" />69 <timing type="4" latence="3" delay="1" /> 70 70 <timing type="6" latence="1" delay="1" /> 71 71 <timing type="7" latence="1" delay="1" /> … … 81 81 <timing type="2" latence="1" delay="1" /> 82 82 <timing type="3" latence="1" delay="1" /> 83 <timing type="4" latence=" 1" delay="1" />83 <timing type="4" latence="3" delay="1" /> 84 84 <timing type="6" latence="1" delay="1" /> 85 85 <timing type="7" latence="1" delay="1" /> -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w4_2.cfg
r124 r131 74 74 <timing type="2" latence="1" delay="1" /> 75 75 <timing type="3" latence="1" delay="1" /> 76 <timing type="4" latence=" 1" delay="1" />76 <timing type="4" latence="3" delay="1" /> 77 77 <timing type="6" latence="1" delay="1" /> 78 78 <timing type="7" latence="1" delay="1" /> -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w8_2.cfg
r129 r131 80 80 <timing type="2" latence="1" delay="1" /> 81 81 <timing type="3" latence="1" delay="1" /> 82 <timing type="4" latence=" 1" delay="1" />82 <timing type="4" latence="3" delay="1" /> 83 83 <timing type="6" latence="1" delay="1" /> 84 84 <timing type="7" latence="1" delay="1" /> -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x4_w8_1.cfg
r128 r131 80 80 <timing type="2" latence="1" delay="1" /> 81 81 <timing type="3" latence="1" delay="1" /> 82 <timing type="4" latence=" 1" delay="1" />82 <timing type="4" latence="3" delay="1" /> 83 83 <timing type="6" latence="1" delay="1" /> 84 84 <timing type="7" latence="1" delay="1" /> -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x4_w8_2.cfg
r129 r131 80 80 <timing type="2" latence="1" delay="1" /> 81 81 <timing type="3" latence="1" delay="1" /> 82 <timing type="4" latence=" 1" delay="1" />82 <timing type="4" latence="3" delay="1" /> 83 83 <timing type="6" latence="1" delay="1" /> 84 84 <timing type="7" latence="1" delay="1" /> -
trunk/IPs/systemC/processor/Morpheo/Files/debug.sim
r130 r131 8 8 <parameter name="use_vhdl_testbench_assert" value="0" /> 9 9 <parameter name="use_position" value="0" /> 10 <parameter name="use_statistics" value=" 1" />10 <parameter name="use_statistics" value="0" /> 11 11 <parameter name="use_information" value="0" /> 12 12 <parameter name="use_header" value="0" /> … … 109 109 110 110 <component name="Behavioural" model="systemc" debug="1" /> 111 <component name="Interface" model="systemc" debug=" 0" />112 <component name="Allocation" model="systemc" debug=" 0" />111 <component name="Interface" model="systemc" debug="1" /> 112 <component name="Allocation" model="systemc" debug="1" /> 113 113 114 114 </parameters>
Note: See TracChangeset
for help on using the changeset viewer.