Changeset 66 for trunk/IPs/systemC
- Timestamp:
- Dec 6, 2007, 11:03:00 AM (17 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo
- Files:
-
- 1 deleted
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config0.cfg
r55 r66 1 1 Read_queue 2 2 2 8 *2 # size_queue 3 4 4 *2 # nb_context 3 1 1 *2 # nb_context 4 1 1 *2 # nb_front_end 5 4 4 *2 # nb_ooo_engine 4 6 32 32 *2 # nb_packet 5 7 16 16 +1 # size_general_data -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config1.cfg
r55 r66 1 1 Read_queue 2 2 4 4 *2 # size_queue 3 4 4 *2 # nb_context 3 1 1 *2 # nb_context 4 1 1 *2 # nb_front_end 5 1 1 *2 # nb_ooo_engine 4 6 32 32 *2 # nb_packet 5 7 16 16 +1 # size_general_data -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/main.cpp
r55 r66 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h" 9 9 10 #define NB_PARAMS 010 #define NB_PARAMS 13 11 11 12 12 void usage (int argc, char * argv[]) … … 16 16 << " - size_queue (unsigned int)" << endl 17 17 << " - nb_context (unsigned int)" << endl 18 << " - nb_front_end (unsigned int)" << endl 19 << " - nb_ooo_engine (unsigned int)" << endl 18 20 << " - nb_packet (unsigned int)" << endl 19 21 << " - size_general_data (unsigned int)" << endl … … 40 42 #endif 41 43 { 42 if (argc <2+NB_PARAMS)44 if (argc != 2+NB_PARAMS) 43 45 usage (argc, argv); 44 46 45 const string name = argv[1]; 46 const uint32_t size_queue = atoi(argv[ 2]); 47 const uint32_t nb_context = atoi(argv[ 3]); 48 const uint32_t nb_packet = atoi(argv[ 4]); 49 const uint32_t size_general_data = atoi(argv[ 5]); 50 const uint32_t size_special_data = atoi(argv[ 6]); 51 const uint32_t nb_general_register = atoi(argv[ 7]); 52 const uint32_t nb_special_register = atoi(argv[ 8]); 53 const uint32_t nb_operation = atoi(argv[ 9]); 54 const uint32_t nb_type = atoi(argv[10]); 55 const uint32_t nb_gpr_write = atoi(argv[11]); 56 const uint32_t nb_spr_write = atoi(argv[12]); 47 uint32_t x=1; 48 const string name = argv[x++]; 49 const uint32_t size_queue = atoi(argv[x++]); 50 const uint32_t nb_context = atoi(argv[x++]); 51 const uint32_t nb_front_end = atoi(argv[x++]); 52 const uint32_t nb_ooo_engine = atoi(argv[x++]); 53 const uint32_t nb_packet = atoi(argv[x++]); 54 const uint32_t size_general_data = atoi(argv[x++]); 55 const uint32_t size_special_data = atoi(argv[x++]); 56 const uint32_t nb_general_register = atoi(argv[x++]); 57 const uint32_t nb_special_register = atoi(argv[x++]); 58 const uint32_t nb_operation = atoi(argv[x++]); 59 const uint32_t nb_type = atoi(argv[x++]); 60 const uint32_t nb_gpr_write = atoi(argv[x++]); 61 const uint32_t nb_spr_write = atoi(argv[x++]); 57 62 58 63 try … … 61 66 ( size_queue 62 67 ,nb_context 68 ,nb_front_end 69 ,nb_ooo_engine 63 70 ,nb_packet 64 71 ,size_general_data -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp
r55 r66 8 8 9 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h" 10 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h"11 10 #include "Common/include/Test.h" 12 11 13 #define NB_ITERATION 64 12 #define NB_ITERATION 1 13 //64 14 14 #define CYCLE_MAX (1024*NB_ITERATION) 15 15 … … 70 70 sc_signal<Tcontrol_t > * READ_QUEUE_IN_ACK = new sc_signal<Tcontrol_t > ("READ_QUEUE_IN_ACK "); 71 71 sc_signal<Tcontext_t > * READ_QUEUE_IN_CONTEXT_ID = new sc_signal<Tcontext_t > ("READ_QUEUE_IN_CONTEXT_ID "); 72 sc_signal<Tpacket_t > * READ_QUEUE_IN_PACKET_ID = new sc_signal<Tpacket_t > ("READ_QUEUE_IN_PACKET_ID "); 72 sc_signal<Tcontext_t > * READ_QUEUE_IN_FRONT_END_ID = new sc_signal<Tcontext_t > ("READ_QUEUE_IN_FRONT_END_ID "); 73 sc_signal<Tcontext_t > * READ_QUEUE_IN_OOO_ENGINE_ID= new sc_signal<Tcontext_t > ("READ_QUEUE_IN_OOO_ENGINE_ID"); 74 sc_signal<Tpacket_t > * READ_QUEUE_IN_ROB_ID = new sc_signal<Tpacket_t > ("READ_QUEUE_IN_ROB_ID "); 73 75 sc_signal<Toperation_t > * READ_QUEUE_IN_OPERATION = new sc_signal<Toperation_t > ("READ_QUEUE_IN_OPERATION "); 74 76 sc_signal<Ttype_t > * READ_QUEUE_IN_TYPE = new sc_signal<Ttype_t > ("READ_QUEUE_IN_TYPE "); … … 90 92 sc_signal<Tcontrol_t > * READ_QUEUE_OUT_VAL = new sc_signal<Tcontrol_t > ("READ_QUEUE_OUT_VAL "); 91 93 sc_signal<Tcontrol_t > * READ_QUEUE_OUT_ACK = new sc_signal<Tcontrol_t > ("READ_QUEUE_OUT_ACK "); 92 sc_signal<Tcontext_t > * READ_QUEUE_OUT_CONTEXT_ID = new sc_signal<Tcontext_t > ("READ_QUEUE_OUT_CONTEXT_ID "); 93 sc_signal<Tpacket_t > * READ_QUEUE_OUT_PACKET_ID = new sc_signal<Tpacket_t > ("READ_QUEUE_OUT_PACKET_ID "); 94 sc_signal<Tcontext_t > * READ_QUEUE_OUT_CONTEXT_ID = new sc_signal<Tcontext_t > ("READ_QUEUE_OUT_CONTEXT_ID "); 95 sc_signal<Tcontext_t > * READ_QUEUE_OUT_FRONT_END_ID = new sc_signal<Tcontext_t > ("READ_QUEUE_OUT_FRONT_END_ID "); 96 sc_signal<Tcontext_t > * READ_QUEUE_OUT_OOO_ENGINE_ID = new sc_signal<Tcontext_t > ("READ_QUEUE_OUT_OOO_ENGINE_ID"); 97 sc_signal<Tpacket_t > * READ_QUEUE_OUT_ROB_ID = new sc_signal<Tpacket_t > ("READ_QUEUE_OUT_ROB_ID "); 94 98 sc_signal<Toperation_t > * READ_QUEUE_OUT_OPERATION = new sc_signal<Toperation_t > ("READ_QUEUE_OUT_OPERATION "); 95 99 sc_signal<Ttype_t > * READ_QUEUE_OUT_TYPE = new sc_signal<Ttype_t > ("READ_QUEUE_OUT_TYPE "); … … 117 121 sc_signal<Tcontrol_t > ** GPR_READ_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_read]; 118 122 sc_signal<Tcontrol_t > ** GPR_READ_ACK = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_read]; 119 sc_signal<Tcontext_t > ** GPR_READ_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_gpr_read];123 sc_signal<Tcontext_t > ** GPR_READ_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_gpr_read]; 120 124 sc_signal<Tgeneral_address_t > ** GPR_READ_NUM_REG = new sc_signal<Tgeneral_address_t > * [_param->_nb_gpr_read]; 121 125 sc_signal<Tgeneral_data_t > ** GPR_READ_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_gpr_read]; … … 128 132 rename = "GPR_READ_"+toString(i)+"_ACK"; 129 133 GPR_READ_ACK [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 130 rename = "GPR_READ_"+toString(i)+"_ CONTEXT_ID";131 GPR_READ_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());134 rename = "GPR_READ_"+toString(i)+"_OOO_ENGINE_ID"; 135 GPR_READ_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 132 136 rename = "GPR_READ_"+toString(i)+"_NUM_REG"; 133 137 GPR_READ_NUM_REG [i] = new sc_signal<Tgeneral_address_t > (rename.c_str()); … … 142 146 sc_signal<Tcontrol_t > ** SPR_READ_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_spr_read]; 143 147 sc_signal<Tcontrol_t > ** SPR_READ_ACK = new sc_signal<Tcontrol_t > * [_param->_nb_spr_read]; 144 sc_signal<Tcontext_t > ** SPR_READ_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_spr_read];148 sc_signal<Tcontext_t > ** SPR_READ_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_spr_read]; 145 149 sc_signal<Tspecial_address_t > ** SPR_READ_NUM_REG = new sc_signal<Tspecial_address_t > * [_param->_nb_spr_read]; 146 150 sc_signal<Tspecial_data_t > ** SPR_READ_DATA = new sc_signal<Tspecial_data_t > * [_param->_nb_spr_read]; … … 153 157 rename = "SPR_READ_"+toString(i)+"_ACK"; 154 158 SPR_READ_ACK [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 155 rename = "SPR_READ_"+toString(i)+"_ CONTEXT_ID";156 SPR_READ_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());159 rename = "SPR_READ_"+toString(i)+"_OOO_ENGINE_ID"; 160 SPR_READ_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 157 161 rename = "SPR_READ_"+toString(i)+"_NUM_REG"; 158 162 SPR_READ_NUM_REG [i] = new sc_signal<Tspecial_address_t > (rename.c_str()); … … 166 170 167 171 sc_signal<Tcontrol_t > ** GPR_WRITE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_write]; 168 sc_signal<Tcontext_t > ** GPR_WRITE_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_gpr_write];172 sc_signal<Tcontext_t > ** GPR_WRITE_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_gpr_write]; 169 173 sc_signal<Tgeneral_address_t > ** GPR_WRITE_NUM_REG = new sc_signal<Tgeneral_address_t > * [_param->_nb_gpr_write]; 170 174 sc_signal<Tgeneral_data_t > ** GPR_WRITE_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_gpr_write]; … … 174 178 rename = "GPR_WRITE_"+toString(i)+"_VAL" ; 175 179 GPR_WRITE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 176 rename = "GPR_WRITE_"+toString(i)+"_ CONTEXT_ID";177 GPR_WRITE_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());180 rename = "GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID"; 181 GPR_WRITE_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 178 182 rename = "GPR_WRITE_"+toString(i)+"_NUM_REG" ; 179 183 GPR_WRITE_NUM_REG [i] = new sc_signal<Tgeneral_address_t > (rename.c_str()); … … 185 189 186 190 sc_signal<Tcontrol_t > ** SPR_WRITE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_spr_write]; 187 sc_signal<Tcontext_t > ** SPR_WRITE_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_spr_write];191 sc_signal<Tcontext_t > ** SPR_WRITE_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_spr_write]; 188 192 sc_signal<Tspecial_address_t > ** SPR_WRITE_NUM_REG = new sc_signal<Tspecial_address_t > * [_param->_nb_spr_write]; 189 193 sc_signal<Tspecial_data_t > ** SPR_WRITE_DATA = new sc_signal<Tspecial_data_t > * [_param->_nb_spr_write]; … … 193 197 rename = "SPR_WRITE_"+toString(i)+"_VAL" ; 194 198 SPR_WRITE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 195 rename = "SPR_WRITE_"+toString(i)+"_ CONTEXT_ID";196 SPR_WRITE_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());199 rename = "SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID"; 200 SPR_WRITE_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 197 201 rename = "SPR_WRITE_"+toString(i)+"_NUM_REG" ; 198 202 SPR_WRITE_NUM_REG [i] = new sc_signal<Tspecial_address_t > (rename.c_str()); … … 214 218 (*(_Read_queue->out_READ_QUEUE_IN_ACK )) (*(READ_QUEUE_IN_ACK )); 215 219 (*(_Read_queue-> in_READ_QUEUE_IN_CONTEXT_ID )) (*(READ_QUEUE_IN_CONTEXT_ID )); 216 (*(_Read_queue-> in_READ_QUEUE_IN_PACKET_ID )) (*(READ_QUEUE_IN_PACKET_ID )); 220 (*(_Read_queue-> in_READ_QUEUE_IN_FRONT_END_ID )) (*(READ_QUEUE_IN_FRONT_END_ID )); 221 (*(_Read_queue-> in_READ_QUEUE_IN_OOO_ENGINE_ID )) (*(READ_QUEUE_IN_OOO_ENGINE_ID )); 222 (*(_Read_queue-> in_READ_QUEUE_IN_ROB_ID )) (*(READ_QUEUE_IN_ROB_ID )); 217 223 (*(_Read_queue-> in_READ_QUEUE_IN_OPERATION )) (*(READ_QUEUE_IN_OPERATION )); 218 224 (*(_Read_queue-> in_READ_QUEUE_IN_TYPE )) (*(READ_QUEUE_IN_TYPE )); … … 233 239 (*(_Read_queue-> in_READ_QUEUE_OUT_ACK )) (*(READ_QUEUE_OUT_ACK )); 234 240 (*(_Read_queue->out_READ_QUEUE_OUT_CONTEXT_ID )) (*(READ_QUEUE_OUT_CONTEXT_ID )); 235 (*(_Read_queue->out_READ_QUEUE_OUT_PACKET_ID )) (*(READ_QUEUE_OUT_PACKET_ID )); 241 (*(_Read_queue->out_READ_QUEUE_OUT_FRONT_END_ID )) (*(READ_QUEUE_OUT_FRONT_END_ID )); 242 (*(_Read_queue->out_READ_QUEUE_OUT_OOO_ENGINE_ID )) (*(READ_QUEUE_OUT_OOO_ENGINE_ID )); 243 (*(_Read_queue->out_READ_QUEUE_OUT_ROB_ID )) (*(READ_QUEUE_OUT_ROB_ID )); 236 244 (*(_Read_queue->out_READ_QUEUE_OUT_OPERATION )) (*(READ_QUEUE_OUT_OPERATION )); 237 245 (*(_Read_queue->out_READ_QUEUE_OUT_TYPE )) (*(READ_QUEUE_OUT_TYPE )); … … 259 267 (*(_Read_queue->out_GPR_READ_VAL [i])) (*(GPR_READ_VAL [i])); 260 268 (*(_Read_queue-> in_GPR_READ_ACK [i])) (*(GPR_READ_ACK [i])); 261 (*(_Read_queue->out_GPR_READ_ CONTEXT_ID [i])) (*(GPR_READ_CONTEXT_ID [i]));269 (*(_Read_queue->out_GPR_READ_OOO_ENGINE_ID [i])) (*(GPR_READ_OOO_ENGINE_ID [i])); 262 270 (*(_Read_queue->out_GPR_READ_NUM_REG [i])) (*(GPR_READ_NUM_REG [i])); 263 271 (*(_Read_queue-> in_GPR_READ_DATA [i])) (*(GPR_READ_DATA [i])); … … 269 277 (*(_Read_queue->out_SPR_READ_VAL [i])) (*(SPR_READ_VAL [i])); 270 278 (*(_Read_queue-> in_SPR_READ_ACK [i])) (*(SPR_READ_ACK [i])); 271 (*(_Read_queue->out_SPR_READ_ CONTEXT_ID [i])) (*(SPR_READ_CONTEXT_ID [i]));279 (*(_Read_queue->out_SPR_READ_OOO_ENGINE_ID [i])) (*(SPR_READ_OOO_ENGINE_ID [i])); 272 280 (*(_Read_queue->out_SPR_READ_NUM_REG [i])) (*(SPR_READ_NUM_REG [i])); 273 281 (*(_Read_queue-> in_SPR_READ_DATA [i])) (*(SPR_READ_DATA [i])); … … 278 286 { 279 287 (*(_Read_queue-> in_GPR_WRITE_VAL [i])) (*(GPR_WRITE_VAL [i])); 280 (*(_Read_queue-> in_GPR_WRITE_ CONTEXT_ID [i])) (*(GPR_WRITE_CONTEXT_ID [i]));288 (*(_Read_queue-> in_GPR_WRITE_OOO_ENGINE_ID [i])) (*(GPR_WRITE_OOO_ENGINE_ID [i])); 281 289 (*(_Read_queue-> in_GPR_WRITE_NUM_REG [i])) (*(GPR_WRITE_NUM_REG [i])); 282 290 (*(_Read_queue-> in_GPR_WRITE_DATA [i])) (*(GPR_WRITE_DATA [i])); … … 286 294 { 287 295 (*(_Read_queue-> in_SPR_WRITE_VAL [i])) (*(SPR_WRITE_VAL [i])); 288 (*(_Read_queue-> in_SPR_WRITE_ CONTEXT_ID [i])) (*(SPR_WRITE_CONTEXT_ID [i]));296 (*(_Read_queue-> in_SPR_WRITE_OOO_ENGINE_ID [i])) (*(SPR_WRITE_OOO_ENGINE_ID [i])); 289 297 (*(_Read_queue-> in_SPR_WRITE_NUM_REG [i])) (*(SPR_WRITE_NUM_REG [i])); 290 298 (*(_Read_queue-> in_SPR_WRITE_DATA [i])) (*(SPR_WRITE_DATA [i])); … … 304 312 srand(seed); 305 313 306 Tcontext_t _ context_id [nb_request];314 Tcontext_t _ooo_engine_id [nb_request]; 307 315 Tcontrol_t _read_ra [nb_request]; 308 316 Tgeneral_address_t _num_reg_ra [nb_request]; … … 313 321 314 322 // emulation of registerFile 315 Tcontrol_t _gpr_val [_param->_nb_general_register][_param->_nb_ context];316 Tgeneral_data_t _gpr [_param->_nb_general_register][_param->_nb_ context];317 Tcontrol_t _spr_val [_param->_nb_special_register][_param->_nb_ context];318 Tspecial_data_t _spr [_param->_nb_special_register][_param->_nb_ context];323 Tcontrol_t _gpr_val [_param->_nb_general_register][_param->_nb_ooo_engine]; 324 Tgeneral_data_t _gpr [_param->_nb_general_register][_param->_nb_ooo_engine]; 325 Tcontrol_t _spr_val [_param->_nb_special_register][_param->_nb_ooo_engine]; 326 Tspecial_data_t _spr [_param->_nb_special_register][_param->_nb_ooo_engine]; 319 327 320 328 SC_START(0); … … 344 352 for (uint32_t i=0; i<nb_request; i++) 345 353 { 346 _ context_id [i] = rand()% _param->_nb_context;354 _ooo_engine_id [i] = rand()% _param->_nb_ooo_engine ; 347 355 _read_ra [i] = rand()% 2 ; 348 356 _num_reg_ra [i] = rand()% _param->_nb_general_register ; … … 354 362 355 363 // emulation of registerFile 356 for (uint32_t j=0; j<_param->_nb_ context; j++)364 for (uint32_t j=0; j<_param->_nb_ooo_engine; j++) 357 365 { 358 366 for (uint32_t i=0; i<_param->_nb_general_register; i++) … … 377 385 ((rand()%100) < percent_transaction_queue_in)) 378 386 { 379 READ_QUEUE_IN_VAL ->write(1); 380 READ_QUEUE_IN_CONTEXT_ID ->write(_context_id [request_in]); 381 READ_QUEUE_IN_PACKET_ID ->write(request_in); 387 READ_QUEUE_IN_VAL ->write(1); 388 READ_QUEUE_IN_OOO_ENGINE_ID ->write(_ooo_engine_id [request_in]); 389 READ_QUEUE_IN_CONTEXT_ID ->write((2*_ooo_engine_id [request_in])%_param->_nb_context ); 390 READ_QUEUE_IN_FRONT_END_ID ->write((3*_ooo_engine_id [request_in])%_param->_nb_front_end); 391 READ_QUEUE_IN_ROB_ID ->write(request_in); 382 392 READ_QUEUE_IN_OPERATION ->write(0); 383 393 READ_QUEUE_IN_TYPE ->write(0); … … 408 418 if (GPR_READ_VAL [i]->read()) 409 419 { 410 Tgeneral_address_t num_reg = GPR_READ_NUM_REG [i]->read();411 Tcontext_t context = GPR_READ_ CONTEXT_ID [i]->read();420 Tgeneral_address_t num_reg = GPR_READ_NUM_REG [i]->read(); 421 Tcontext_t context = GPR_READ_OOO_ENGINE_ID [i]->read(); 412 422 413 423 GPR_READ_DATA [i]->write(_gpr [num_reg][context]); … … 421 431 if (SPR_READ_VAL [i]->read()) 422 432 { 423 Tspecial_address_t num_reg = SPR_READ_NUM_REG [i]->read();424 Tcontext_t context = SPR_READ_ CONTEXT_ID [i]->read();433 Tspecial_address_t num_reg = SPR_READ_NUM_REG [i]->read(); 434 Tcontext_t context = SPR_READ_OOO_ENGINE_ID [i]->read(); 425 435 426 436 SPR_READ_DATA [i]->write(_spr [num_reg][context]); … … 433 443 { 434 444 Tcontrol_t val = (rand()%100) < percent_transaction_bypass; 435 Tcontext_t context = rand()% _param->_nb_context;445 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 436 446 Tgeneral_address_t num_reg = rand()% _param->_nb_general_register; 437 447 Tgeneral_data_t data = rand()%(1<<_param->_size_general_data); 438 448 439 GPR_WRITE_VAL [i]->write(val);440 GPR_WRITE_ CONTEXT_ID [i]->write(context);441 GPR_WRITE_NUM_REG [i]->write(num_reg);442 GPR_WRITE_DATA [i]->write(data);449 GPR_WRITE_VAL [i]->write(val); 450 GPR_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine); 451 GPR_WRITE_NUM_REG [i]->write(num_reg); 452 GPR_WRITE_DATA [i]->write(data); 443 453 444 454 if (val) 445 455 { 446 _gpr [num_reg][ context] = data;447 _gpr_val [num_reg][ context] = 1;456 _gpr [num_reg][ooo_engine] = data; 457 _gpr_val [num_reg][ooo_engine] = 1; 448 458 } 449 459 } … … 451 461 { 452 462 Tcontrol_t val = (rand()%100) < percent_transaction_bypass; 453 Tcontext_t context = rand()% _param->_nb_context;463 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 454 464 Tspecial_address_t num_reg = rand()% _param->_nb_special_register; 455 465 Tspecial_data_t data = rand()%(1<<_param->_size_special_data); 456 466 457 SPR_WRITE_VAL [i]->write(val);458 SPR_WRITE_ CONTEXT_ID [i]->write(context);459 SPR_WRITE_NUM_REG [i]->write(num_reg);460 SPR_WRITE_DATA [i]->write(data);467 SPR_WRITE_VAL [i]->write(val); 468 SPR_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine); 469 SPR_WRITE_NUM_REG [i]->write(num_reg); 470 SPR_WRITE_DATA [i]->write(data); 461 471 462 472 if (val) 463 473 { 464 _spr [num_reg][ context] = data;465 _spr_val [num_reg][ context] = 1;474 _spr [num_reg][ooo_engine] = data; 475 _spr_val [num_reg][ooo_engine] = 1; 466 476 } 467 477 } … … 480 490 (READ_QUEUE_OUT_ACK->read() == 1)) 481 491 { 482 Tpacket_t packet_id = READ_QUEUE_OUT_PACKET_ID->read();483 484 LABEL("Accepted READ_QUEUE_OUT ["+toString( packet_id)+"]");492 Tpacket_t rob_id = READ_QUEUE_OUT_ROB_ID->read(); 493 Tcontext_t ctxt = _ooo_engine_id [rob_id]; 494 LABEL("Accepted READ_QUEUE_OUT ["+toString(rob_id)+"]"); 485 495 486 TEST(uint32_t , packet_id ,request_out);496 TEST(uint32_t , rob_id ,request_out); 487 497 488 498 request_out ++; 489 499 490 TEST(Tcontext_t ,READ_QUEUE_OUT_CONTEXT_ID ->read(),_context_id [packet_id]); 491 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RA ->read(),_read_ra [packet_id]); 492 TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RA ->read(),_num_reg_ra [packet_id]); 493 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RA_VAL->read(),not READ_QUEUE_OUT_READ_RA->read() or _gpr_val [_num_reg_ra[packet_id]][_context_id [packet_id]]); 500 TEST(Tcontext_t ,READ_QUEUE_OUT_OOO_ENGINE_ID ->read(),ctxt); 501 TEST(Tcontext_t ,READ_QUEUE_OUT_CONTEXT_ID ->read(),(2*ctxt)%_param->_nb_context ); 502 TEST(Tcontext_t ,READ_QUEUE_OUT_FRONT_END_ID ->read(),(3*ctxt)%_param->_nb_front_end); 503 504 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RA ->read(),_read_ra [rob_id]); 505 TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RA ->read(),_num_reg_ra [rob_id]); 506 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RA_VAL->read(),not READ_QUEUE_OUT_READ_RA->read() or _gpr_val [_num_reg_ra[rob_id]][ctxt]); 494 507 if (READ_QUEUE_OUT_READ_RA ->read() and 495 508 READ_QUEUE_OUT_DATA_RA_VAL->read()) 496 TEST(Tgeneral_data_t ,READ_QUEUE_OUT_DATA_RA ->read(),_gpr [_num_reg_ra[ packet_id]][_context_id [packet_id]]);497 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RB ->read(),_read_rb [ packet_id]);498 TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RB ->read(),_num_reg_rb [ packet_id]);499 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RB_VAL->read(),not READ_QUEUE_OUT_READ_RB->read() or _gpr_val [_num_reg_rb[ packet_id]][_context_id [packet_id]]);509 TEST(Tgeneral_data_t ,READ_QUEUE_OUT_DATA_RA ->read(),_gpr [_num_reg_ra[rob_id]][ctxt]); 510 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RB ->read(),_read_rb [rob_id]); 511 TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RB ->read(),_num_reg_rb [rob_id]); 512 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RB_VAL->read(),not READ_QUEUE_OUT_READ_RB->read() or _gpr_val [_num_reg_rb[rob_id]][ctxt]); 500 513 if (READ_QUEUE_OUT_READ_RB ->read() and 501 514 READ_QUEUE_OUT_DATA_RB_VAL->read()) 502 TEST(Tgeneral_data_t ,READ_QUEUE_OUT_DATA_RB ->read(),_gpr [_num_reg_rb[ packet_id]][_context_id [packet_id]]);503 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RC ->read(),_read_rc [ packet_id]);504 TEST(Tspecial_address_t,READ_QUEUE_OUT_NUM_REG_RC ->read(),_num_reg_rc [ packet_id]);505 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RC_VAL->read(),not READ_QUEUE_OUT_READ_RC->read() or _spr_val [_num_reg_rc[ packet_id]][_context_id [packet_id]]);515 TEST(Tgeneral_data_t ,READ_QUEUE_OUT_DATA_RB ->read(),_gpr [_num_reg_rb[rob_id]][ctxt]); 516 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RC ->read(),_read_rc [rob_id]); 517 TEST(Tspecial_address_t,READ_QUEUE_OUT_NUM_REG_RC ->read(),_num_reg_rc [rob_id]); 518 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RC_VAL->read(),not READ_QUEUE_OUT_READ_RC->read() or _spr_val [_num_reg_rc[rob_id]][ctxt]); 506 519 if (READ_QUEUE_OUT_READ_RC ->read() and 507 520 READ_QUEUE_OUT_DATA_RC_VAL->read()) 508 TEST(Tspecial_data_t ,READ_QUEUE_OUT_DATA_RC ->read(),_spr [_num_reg_rc[ packet_id]][_context_id [packet_id]]);521 TEST(Tspecial_data_t ,READ_QUEUE_OUT_DATA_RC ->read(),_spr [_num_reg_rc[rob_id]][ctxt]); 509 522 } 510 523 SC_START(1); … … 520 533 cout << "<" << name << "> ............ Stop Simulation" << endl; 521 534 522 delete CLOCK; 523 delete NRESET; 524 525 delete READ_QUEUE_IN_VAL ; 526 delete READ_QUEUE_IN_ACK ; 527 delete READ_QUEUE_IN_CONTEXT_ID ; 528 delete READ_QUEUE_IN_PACKET_ID ; 529 delete READ_QUEUE_IN_OPERATION ; 530 delete READ_QUEUE_IN_TYPE ; 531 delete READ_QUEUE_IN_HAS_IMMEDIAT ; 532 delete READ_QUEUE_IN_IMMEDIAT ; 533 delete READ_QUEUE_IN_READ_RA ; 534 delete READ_QUEUE_IN_NUM_REG_RA ; 535 delete READ_QUEUE_IN_READ_RB ; 536 delete READ_QUEUE_IN_NUM_REG_RB ; 537 delete READ_QUEUE_IN_READ_RC ; 538 delete READ_QUEUE_IN_NUM_REG_RC ; 539 delete READ_QUEUE_IN_WRITE_RD ; 540 delete READ_QUEUE_IN_NUM_REG_RD ; 541 delete READ_QUEUE_IN_WRITE_RE ; 542 delete READ_QUEUE_IN_NUM_REG_RE ; 543 544 delete READ_QUEUE_OUT_VAL ; 545 delete READ_QUEUE_OUT_ACK ; 546 delete READ_QUEUE_OUT_CONTEXT_ID ; 547 delete READ_QUEUE_OUT_PACKET_ID ; 548 delete READ_QUEUE_OUT_OPERATION ; 549 delete READ_QUEUE_OUT_TYPE ; 550 delete READ_QUEUE_OUT_HAS_IMMEDIAT; 551 delete READ_QUEUE_OUT_IMMEDIAT ; 552 delete READ_QUEUE_OUT_READ_RA ; 553 delete READ_QUEUE_OUT_NUM_REG_RA ; 554 delete READ_QUEUE_OUT_DATA_RA_VAL ; 555 delete READ_QUEUE_OUT_DATA_RA ; 556 delete READ_QUEUE_OUT_READ_RB ; 557 delete READ_QUEUE_OUT_NUM_REG_RB ; 558 delete READ_QUEUE_OUT_DATA_RB_VAL ; 559 delete READ_QUEUE_OUT_DATA_RB ; 560 delete READ_QUEUE_OUT_READ_RC ; 561 delete READ_QUEUE_OUT_NUM_REG_RC ; 562 delete READ_QUEUE_OUT_DATA_RC_VAL ; 563 delete READ_QUEUE_OUT_DATA_RC ; 564 delete READ_QUEUE_OUT_WRITE_RD ; 565 delete READ_QUEUE_OUT_NUM_REG_RD ; 566 delete READ_QUEUE_OUT_WRITE_RE ; 567 delete READ_QUEUE_OUT_NUM_REG_RE ; 568 569 delete [] GPR_READ_VAL ; 570 delete [] GPR_READ_ACK ; 571 delete [] GPR_READ_NUM_REG ; 572 delete [] GPR_READ_DATA ; 573 delete [] GPR_READ_DATA_VAL; 574 575 delete [] SPR_READ_VAL ; 576 delete [] SPR_READ_ACK ; 577 delete [] SPR_READ_NUM_REG ; 578 delete [] SPR_READ_DATA ; 579 delete [] SPR_READ_DATA_VAL; 580 581 delete [] GPR_WRITE_VAL ; 582 delete [] GPR_WRITE_CONTEXT_ID ; 583 delete [] GPR_WRITE_NUM_REG ; 584 delete [] GPR_WRITE_DATA ; 585 586 delete [] SPR_WRITE_VAL ; 587 delete [] SPR_WRITE_CONTEXT_ID ; 588 delete [] SPR_WRITE_NUM_REG ; 589 delete [] SPR_WRITE_DATA ; 535 // delete CLOCK; 536 // delete NRESET; 537 538 // delete READ_QUEUE_IN_VAL ; 539 // delete READ_QUEUE_IN_ACK ; 540 // delete READ_QUEUE_IN_CONTEXT_ID ; 541 // delete READ_QUEUE_IN_FRONT_END_ID; 542 // delete READ_QUEUE_IN_OOO_ENGINE_ID; 543 // delete READ_QUEUE_IN_ROB_ID ; 544 // delete READ_QUEUE_IN_OPERATION ; 545 // delete READ_QUEUE_IN_TYPE ; 546 // delete READ_QUEUE_IN_HAS_IMMEDIAT ; 547 // delete READ_QUEUE_IN_IMMEDIAT ; 548 // delete READ_QUEUE_IN_READ_RA ; 549 // delete READ_QUEUE_IN_NUM_REG_RA ; 550 // delete READ_QUEUE_IN_READ_RB ; 551 // delete READ_QUEUE_IN_NUM_REG_RB ; 552 // delete READ_QUEUE_IN_READ_RC ; 553 // delete READ_QUEUE_IN_NUM_REG_RC ; 554 // delete READ_QUEUE_IN_WRITE_RD ; 555 // delete READ_QUEUE_IN_NUM_REG_RD ; 556 // delete READ_QUEUE_IN_WRITE_RE ; 557 // delete READ_QUEUE_IN_NUM_REG_RE ; 558 559 // delete READ_QUEUE_OUT_VAL ; 560 // delete READ_QUEUE_OUT_ACK ; 561 // delete READ_QUEUE_OUT_CONTEXT_ID ; 562 // delete READ_QUEUE_OUT_FRONT_END_ID; 563 // delete READ_QUEUE_OUT_OOO_ENGINE_ID; 564 // delete READ_QUEUE_OUT_ROB_ID ; 565 // delete READ_QUEUE_OUT_OPERATION ; 566 // delete READ_QUEUE_OUT_TYPE ; 567 // delete READ_QUEUE_OUT_HAS_IMMEDIAT; 568 // delete READ_QUEUE_OUT_IMMEDIAT ; 569 // delete READ_QUEUE_OUT_READ_RA ; 570 // delete READ_QUEUE_OUT_NUM_REG_RA ; 571 // delete READ_QUEUE_OUT_DATA_RA_VAL ; 572 // delete READ_QUEUE_OUT_DATA_RA ; 573 // delete READ_QUEUE_OUT_READ_RB ; 574 // delete READ_QUEUE_OUT_NUM_REG_RB ; 575 // delete READ_QUEUE_OUT_DATA_RB_VAL ; 576 // delete READ_QUEUE_OUT_DATA_RB ; 577 // delete READ_QUEUE_OUT_READ_RC ; 578 // delete READ_QUEUE_OUT_NUM_REG_RC ; 579 // delete READ_QUEUE_OUT_DATA_RC_VAL ; 580 // delete READ_QUEUE_OUT_DATA_RC ; 581 // delete READ_QUEUE_OUT_WRITE_RD ; 582 // delete READ_QUEUE_OUT_NUM_REG_RD ; 583 // delete READ_QUEUE_OUT_WRITE_RE ; 584 // delete READ_QUEUE_OUT_NUM_REG_RE ; 585 586 // delete [] GPR_READ_VAL ; 587 // delete [] GPR_READ_ACK ; 588 // delete [] GPR_READ_NUM_REG ; 589 // delete [] GPR_READ_DATA ; 590 // delete [] GPR_READ_DATA_VAL; 591 // delete [] GPR_READ_OOO_ENGINE_ID ; 592 593 // delete [] SPR_READ_VAL ; 594 // delete [] SPR_READ_ACK ; 595 // delete [] SPR_READ_NUM_REG ; 596 // delete [] SPR_READ_DATA ; 597 // delete [] SPR_READ_DATA_VAL; 598 // delete [] SPR_READ_OOO_ENGINE_ID ; 599 600 // delete [] GPR_WRITE_VAL ; 601 // delete [] GPR_WRITE_OOO_ENGINE_ID ; 602 // delete [] GPR_WRITE_NUM_REG ; 603 // delete [] GPR_WRITE_DATA ; 604 605 // delete [] SPR_WRITE_VAL ; 606 // delete [] SPR_WRITE_OOO_ENGINE_ID ; 607 // delete [] SPR_WRITE_NUM_REG ; 608 // delete [] SPR_WRITE_DATA ; 590 609 #endif 591 610 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h
r55 r66 11 11 #include "Common/include/Debug.h" 12 12 #include "Behavioural/include/Parameters.h" 13 #include "Behavioural/include/Types.h" 14 13 15 #include <math.h> 14 16 … … 28 30 public : const uint32_t _size_queue ; 29 31 public : const uint32_t _nb_context ; 32 public : const uint32_t _nb_front_end ; 33 public : const uint32_t _nb_ooo_engine ; 30 34 public : const uint32_t _nb_packet ; 31 35 public : const uint32_t _size_general_data ; … … 41 45 public : const uint32_t _nb_spr_read ; 42 46 public : const uint32_t _size_context_id ; 43 public : const uint32_t _size_packet_id ; 47 public : const uint32_t _size_front_end_id ; 48 public : const uint32_t _size_ooo_engine_id ; 49 public : const uint32_t _size_rob_id ; 44 50 public : const uint32_t _size_general_register; 45 51 public : const uint32_t _size_special_register; … … 50 56 public : Parameters (uint32_t size_queue , 51 57 uint32_t nb_context , 58 uint32_t nb_front_end , 59 uint32_t nb_ooo_engine , 52 60 uint32_t nb_packet , 53 61 uint32_t size_general_data , -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h
r55 r66 17 17 #include "Common/include/ToString.h" 18 18 #include "Common/include/Debug.h" 19 #include "Behavioural/include/Types.h" 19 20 20 21 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h" 21 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h"22 22 #ifdef STATISTICS 23 23 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Statistics.h" … … 42 42 { 43 43 public : Tcontext_t _context_id ; 44 public : Tpacket_t _packet_id ; 44 public : Tcontext_t _front_end_id ; 45 public : Tcontext_t _ooo_engine_id; 46 public : Tpacket_t _rob_id ; 45 47 public : Toperation_t _operation ; 46 48 public : Ttype_t _type ; … … 61 63 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x) 62 64 { 63 output_stream << " * _context_id : " << toString(x._context_id ) << endl 64 << " * _packet_id : " << toString(x._packet_id ) << endl 65 << " * _operation : " << toString(x._operation ) << endl 66 << " * _type : " << toString(x._type ) << endl 67 << " * _has_immediat: " << toString(x._has_immediat) << endl 68 << " * _immediat : " << toString(x._immediat ) << endl 69 << " * _read_ra : " << toString(x._read_ra ) << endl 70 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << endl 71 << " * _read_rb : " << toString(x._read_rb ) << endl 72 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << endl 73 << " * _read_rc : " << toString(x._read_rc ) << endl 74 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << endl 75 << " * _write_rd : " << toString(x._write_rd ) << endl 76 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << endl 77 << " * _write_re : " << toString(x._write_re ) << endl 78 << " * _num_reg_re : " << toString(x._num_reg_re ) << endl; 65 output_stream << " * _context_id : " << toString(x._context_id ) << endl 66 << " * _front_end_id : " << toString(x._front_end_id ) << endl 67 << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << endl 68 << " * _rob_id : " << toString(x._rob_id ) << endl 69 << " * _operation : " << toString(x._operation ) << endl 70 << " * _type : " << toString(x._type ) << endl 71 << " * _has_immediat : " << toString(x._has_immediat ) << endl 72 << " * _immediat : " << toString(x._immediat ) << endl 73 << " * _read_ra : " << toString(x._read_ra ) << endl 74 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << endl 75 << " * _read_rb : " << toString(x._read_rb ) << endl 76 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << endl 77 << " * _read_rc : " << toString(x._read_rc ) << endl 78 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << endl 79 << " * _write_rd : " << toString(x._write_rd ) << endl 80 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << endl 81 << " * _write_re : " << toString(x._write_re ) << endl 82 << " * _num_reg_re : " << toString(x._num_reg_re ) << endl; 79 83 80 84 return output_stream; … … 86 90 { 87 91 public : Tcontext_t _context_id ; 88 public : Tpacket_t _packet_id ; 92 public : Tcontext_t _front_end_id ; 93 public : Tcontext_t _ooo_engine_id; 94 public : Tpacket_t _rob_id ; 89 95 public : Toperation_t _operation ; 90 96 public : Ttype_t _type ; … … 118 124 119 125 _context_id = x._context_id ; 120 _packet_id = x._packet_id ; 126 _front_end_id = x._front_end_id ; 127 _ooo_engine_id= x._ooo_engine_id; 128 _rob_id = x._rob_id ; 121 129 _operation = x._operation ; 122 130 _type = x._type ; … … 151 159 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x) 152 160 { 153 output_stream << " * _context_id : " << x._context_id << endl 154 << " * _packet_id : " << x._packet_id << endl 155 << " * _operation : " << x._operation << endl 156 << " * _type : " << x._type << endl 157 << " * _has_immediat: " << x._has_immediat << endl 158 << " * _immediat : " << x._immediat << endl 159 << " * _read_ra : " << x._read_ra << endl 160 << " * _read_ra_val : " << x._read_ra_val << endl 161 << " * _num_reg_ra : " << x._num_reg_ra << endl 162 << " * _data_ra_val : " << x._data_ra_val << endl 163 << " * _data_ra : " << x._data_ra << endl 164 << " * _read_rb : " << x._read_rb << endl 165 << " * _read_rb_val : " << x._read_rb_val << endl 166 << " * _num_reg_rb : " << x._num_reg_rb << endl 167 << " * _data_rb_val : " << x._data_rb_val << endl 168 << " * _data_rb : " << x._data_rb << endl 169 << " * _read_rc : " << x._read_rc << endl 170 << " * _read_rc_val : " << x._read_rc_val << endl 171 << " * _num_reg_rc : " << x._num_reg_rc << endl 172 << " * _data_rc_val : " << x._data_rc_val << endl 173 << " * _data_rc : " << x._data_rc << endl 174 << " * _write_rd : " << x._write_rd << endl 175 << " * _num_reg_rd : " << x._num_reg_rd << endl 176 << " * _write_re : " << x._write_re << endl 177 << " * _num_reg_re : " << x._num_reg_re << endl; 161 output_stream << " * _context_id : " << x._context_id << endl 162 << " * _front_end_id : " << x._front_end_id << endl 163 << " * _ooo_engine_id : " << x._ooo_engine_id<< endl 164 << " * _rob_id : " << x._rob_id << endl 165 << " * _operation : " << x._operation << endl 166 << " * _type : " << x._type << endl 167 << " * _has_immediat : " << x._has_immediat << endl 168 << " * _immediat : " << x._immediat << endl 169 << " * _read_ra : " << x._read_ra << endl 170 << " * _read_ra_val : " << x._read_ra_val << endl 171 << " * _num_reg_ra : " << x._num_reg_ra << endl 172 << " * _data_ra_val : " << x._data_ra_val << endl 173 << " * _data_ra : " << x._data_ra << endl 174 << " * _read_rb : " << x._read_rb << endl 175 << " * _read_rb_val : " << x._read_rb_val << endl 176 << " * _num_reg_rb : " << x._num_reg_rb << endl 177 << " * _data_rb_val : " << x._data_rb_val << endl 178 << " * _data_rb : " << x._data_rb << endl 179 << " * _read_rc : " << x._read_rc << endl 180 << " * _read_rc_val : " << x._read_rc_val << endl 181 << " * _num_reg_rc : " << x._num_reg_rc << endl 182 << " * _data_rc_val : " << x._data_rc_val << endl 183 << " * _data_rc : " << x._data_rc << endl 184 << " * _write_rd : " << x._write_rd << endl 185 << " * _num_reg_rd : " << x._num_reg_rd << endl 186 << " * _write_re : " << x._write_re << endl 187 << " * _num_reg_re : " << x._num_reg_re << endl; 178 188 179 189 return output_stream; … … 209 219 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_IN_ACK ; 210 220 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_CONTEXT_ID ; 211 public : SC_IN (Tpacket_t ) * in_READ_QUEUE_IN_PACKET_ID ; 221 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_FRONT_END_ID ; 222 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_OOO_ENGINE_ID; 223 public : SC_IN (Tpacket_t ) * in_READ_QUEUE_IN_ROB_ID ; 212 224 public : SC_IN (Toperation_t ) * in_READ_QUEUE_IN_OPERATION ; 213 225 public : SC_IN (Ttype_t ) * in_READ_QUEUE_IN_TYPE ; … … 229 241 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_VAL ; 230 242 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_OUT_ACK ; 231 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_CONTEXT_ID ; 232 public : SC_OUT(Tpacket_t ) * out_READ_QUEUE_OUT_PACKET_ID ; 243 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_CONTEXT_ID ; 244 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_FRONT_END_ID ; 245 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_OOO_ENGINE_ID; 246 public : SC_OUT(Tpacket_t ) * out_READ_QUEUE_OUT_ROB_ID ; 233 247 public : SC_OUT(Toperation_t ) * out_READ_QUEUE_OUT_OPERATION ; 234 248 public : SC_OUT(Ttype_t ) * out_READ_QUEUE_OUT_TYPE ; … … 254 268 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 269 256 public : SC_OUT(Tcontrol_t ) ** out_GPR_READ_VAL ;257 public : SC_IN (Tcontrol_t ) ** in_GPR_READ_ACK ;258 public : SC_OUT(Tcontext_t ) ** out_GPR_READ_ CONTEXT_ID;259 public : SC_OUT(Tgeneral_address_t) ** out_GPR_READ_NUM_REG ;260 public : SC_IN (Tgeneral_data_t ) ** in_GPR_READ_DATA ;261 public : SC_IN (Tcontrol_t ) ** in_GPR_READ_DATA_VAL ;270 public : SC_OUT(Tcontrol_t ) ** out_GPR_READ_VAL ; 271 public : SC_IN (Tcontrol_t ) ** in_GPR_READ_ACK ; 272 public : SC_OUT(Tcontext_t ) ** out_GPR_READ_OOO_ENGINE_ID; 273 public : SC_OUT(Tgeneral_address_t) ** out_GPR_READ_NUM_REG ; 274 public : SC_IN (Tgeneral_data_t ) ** in_GPR_READ_DATA ; 275 public : SC_IN (Tcontrol_t ) ** in_GPR_READ_DATA_VAL ; 262 276 263 277 // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 264 278 265 public : SC_OUT(Tcontrol_t ) ** out_SPR_READ_VAL ;266 public : SC_IN (Tcontrol_t ) ** in_SPR_READ_ACK ;267 public : SC_OUT(Tcontext_t ) ** out_SPR_READ_ CONTEXT_ID;268 public : SC_OUT(Tspecial_address_t) ** out_SPR_READ_NUM_REG ;269 public : SC_IN (Tspecial_data_t ) ** in_SPR_READ_DATA ;270 public : SC_IN (Tcontrol_t ) ** in_SPR_READ_DATA_VAL ;279 public : SC_OUT(Tcontrol_t ) ** out_SPR_READ_VAL ; 280 public : SC_IN (Tcontrol_t ) ** in_SPR_READ_ACK ; 281 public : SC_OUT(Tcontext_t ) ** out_SPR_READ_OOO_ENGINE_ID; 282 public : SC_OUT(Tspecial_address_t) ** out_SPR_READ_NUM_REG ; 283 public : SC_IN (Tspecial_data_t ) ** in_SPR_READ_DATA ; 284 public : SC_IN (Tcontrol_t ) ** in_SPR_READ_DATA_VAL ; 271 285 272 286 // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 273 287 274 public : SC_IN (Tcontrol_t ) ** in_GPR_WRITE_VAL ;275 public : SC_IN (Tcontext_t ) ** in_GPR_WRITE_ CONTEXT_ID;276 public : SC_IN (Tgeneral_address_t) ** in_GPR_WRITE_NUM_REG ;277 public : SC_IN (Tgeneral_data_t ) ** in_GPR_WRITE_DATA ;288 public : SC_IN (Tcontrol_t ) ** in_GPR_WRITE_VAL ; 289 public : SC_IN (Tcontext_t ) ** in_GPR_WRITE_OOO_ENGINE_ID; 290 public : SC_IN (Tgeneral_address_t) ** in_GPR_WRITE_NUM_REG ; 291 public : SC_IN (Tgeneral_data_t ) ** in_GPR_WRITE_DATA ; 278 292 279 293 // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 294 281 public : SC_IN (Tcontrol_t ) ** in_SPR_WRITE_VAL ;282 public : SC_IN (Tcontext_t ) ** in_SPR_WRITE_ CONTEXT_ID;283 public : SC_IN (Tspecial_address_t) ** in_SPR_WRITE_NUM_REG ;284 public : SC_IN (Tspecial_data_t ) ** in_SPR_WRITE_DATA ;295 public : SC_IN (Tcontrol_t ) ** in_SPR_WRITE_VAL ; 296 public : SC_IN (Tcontext_t ) ** in_SPR_WRITE_OOO_ENGINE_ID; 297 public : SC_IN (Tspecial_address_t) ** in_SPR_WRITE_NUM_REG ; 298 public : SC_IN (Tspecial_data_t ) ** in_SPR_WRITE_DATA ; 285 299 286 300 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters.cpp
r55 r66 20 20 Parameters::Parameters (uint32_t size_queue , 21 21 uint32_t nb_context , 22 uint32_t nb_front_end , 23 uint32_t nb_ooo_engine , 22 24 uint32_t nb_packet , 23 25 uint32_t size_general_data , … … 31 33 _size_queue (size_queue ), 32 34 _nb_context (nb_context ), 35 _nb_front_end (nb_front_end ), 36 _nb_ooo_engine (nb_ooo_engine ), 33 37 _nb_packet (nb_packet ), 34 38 _size_general_data (size_general_data ), … … 44 48 _nb_spr_read (1 ), 45 49 _size_context_id (static_cast<uint32_t>(log2(_nb_context ))), 46 _size_packet_id (static_cast<uint32_t>(log2(_nb_packet ))), 50 _size_front_end_id (static_cast<uint32_t>(log2(_nb_front_end ))), 51 _size_ooo_engine_id (static_cast<uint32_t>(log2(_nb_ooo_engine ))), 52 _size_rob_id (static_cast<uint32_t>(log2(_nb_packet ))), 47 53 _size_general_register (static_cast<uint32_t>(log2(_nb_general_register))), 48 54 _size_special_register (static_cast<uint32_t>(log2(_nb_special_register))), … … 58 64 _size_queue (param._size_queue ), 59 65 _nb_context (param._nb_context ), 66 _nb_front_end (param._nb_front_end ), 67 _nb_ooo_engine (param._nb_ooo_engine ), 60 68 _nb_packet (param._nb_packet ), 61 69 _size_general_data (param._size_general_data ), … … 71 79 _nb_spr_read (param._nb_spr_read ), 72 80 _size_context_id (param._size_context_id ), 73 _size_packet_id (param._size_packet_id ), 81 _size_front_end_id (param._size_front_end_id ), 82 _size_ooo_engine_id (param._size_ooo_engine_id ), 83 _size_rob_id (param._size_rob_id ), 74 84 _size_general_register (param._size_general_register ), 75 85 _size_special_register (param._size_special_register ), -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_msg_error.cpp
r55 r66 7 7 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h" 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Types.h"10 9 #include <sstream> 11 10 using namespace std; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_print.cpp
r55 r66 29 29 xml.singleton_begin("size_queue "); xml.attribut("value",toString(_size_queue )); xml.singleton_end(); 30 30 xml.singleton_begin("nb_context "); xml.attribut("value",toString(_nb_context )); xml.singleton_end(); 31 xml.singleton_begin("nb_front_end "); xml.attribut("value",toString(_nb_front_end )); xml.singleton_end(); 32 xml.singleton_begin("nb_ooo_engine "); xml.attribut("value",toString(_nb_ooo_engine )); xml.singleton_end(); 31 33 xml.singleton_begin("nb_packet "); xml.attribut("value",toString(_nb_packet )); xml.singleton_end(); 32 34 xml.singleton_begin("size_general_data "); xml.attribut("value",toString(_size_general_data )); xml.singleton_end(); … … 36 38 xml.singleton_begin("nb_operation "); xml.attribut("value",toString(_nb_operation )); xml.singleton_end(); 37 39 xml.singleton_begin("nb_type "); xml.attribut("value",toString(_nb_type )); xml.singleton_end(); 38 xml.singleton_begin("nb_gpr_write "); xml.attribut("value",toString(_nb_gpr_write )); xml.singleton_end(); 40 xml.singleton_begin("nb_gpr_write "); xml.attribut("value",toString(_nb_gpr_write )); xml.singleton_end(); 39 41 xml.singleton_begin("nb_spr_write "); xml.attribut("value",toString(_nb_spr_write )); xml.singleton_end(); 40 42 xml.balise_close(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp
r55 r66 78 78 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 79 79 sensitive << *(in_GPR_WRITE_VAL [i]) 80 << *(in_GPR_WRITE_ CONTEXT_ID [i])80 << *(in_GPR_WRITE_OOO_ENGINE_ID [i]) 81 81 << *(in_GPR_WRITE_NUM_REG [i]); 82 82 for (uint32_t i=0; i<_param->_nb_spr_write; i++) 83 83 sensitive << *(in_SPR_WRITE_VAL [i]) 84 << *(in_SPR_WRITE_ CONTEXT_ID [i])84 << *(in_SPR_WRITE_OOO_ENGINE_ID [i]) 85 85 << *(in_SPR_WRITE_NUM_REG [i]); 86 86 … … 94 94 { 95 95 (*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_VAL [i])); 96 (*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_ CONTEXT_ID [i]));96 (*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i])); 97 97 (*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_NUM_REG [i])); 98 98 } … … 100 100 { 101 101 (*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_VAL [i])); 102 (*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_ CONTEXT_ID [i]));102 (*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_OOO_ENGINE_ID [i])); 103 103 (*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_NUM_REG [i])); 104 104 } … … 116 116 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 117 117 sensitive << *(in_GPR_WRITE_VAL [i]) 118 << *(in_GPR_WRITE_ CONTEXT_ID [i])118 << *(in_GPR_WRITE_OOO_ENGINE_ID [i]) 119 119 << *(in_GPR_WRITE_NUM_REG [i]) 120 120 << *(in_GPR_WRITE_DATA [i]); … … 134 134 { 135 135 (*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_VAL [i])); 136 (*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_ CONTEXT_ID [i]));136 (*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i])); 137 137 (*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_NUM_REG [i])); 138 138 (*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_VAL [i])); 139 (*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_ CONTEXT_ID [i]));139 (*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i])); 140 140 (*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_NUM_REG [i])); 141 141 142 142 (*(out_READ_QUEUE_OUT_DATA_RA )) (*(in_GPR_WRITE_VAL [i])); 143 (*(out_READ_QUEUE_OUT_DATA_RA )) (*(in_GPR_WRITE_ CONTEXT_ID [i]));143 (*(out_READ_QUEUE_OUT_DATA_RA )) (*(in_GPR_WRITE_OOO_ENGINE_ID [i])); 144 144 (*(out_READ_QUEUE_OUT_DATA_RA )) (*(in_GPR_WRITE_NUM_REG [i])); 145 145 (*(out_READ_QUEUE_OUT_DATA_RA )) (*(in_GPR_WRITE_DATA [i])); 146 146 (*(out_READ_QUEUE_OUT_DATA_RB )) (*(in_GPR_WRITE_VAL [i])); 147 (*(out_READ_QUEUE_OUT_DATA_RB )) (*(in_GPR_WRITE_ CONTEXT_ID [i]));147 (*(out_READ_QUEUE_OUT_DATA_RB )) (*(in_GPR_WRITE_OOO_ENGINE_ID [i])); 148 148 (*(out_READ_QUEUE_OUT_DATA_RB )) (*(in_GPR_WRITE_NUM_REG [i])); 149 149 (*(out_READ_QUEUE_OUT_DATA_RB )) (*(in_GPR_WRITE_DATA [i])); … … 162 162 for (uint32_t i=0; i<_param->_nb_spr_write; i++) 163 163 sensitive << *(in_SPR_WRITE_VAL [i]) 164 << *(in_SPR_WRITE_ CONTEXT_ID [i])164 << *(in_SPR_WRITE_OOO_ENGINE_ID [i]) 165 165 << *(in_SPR_WRITE_NUM_REG [i]) 166 166 << *(in_SPR_WRITE_DATA [i]); … … 177 177 { 178 178 (*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_VAL [i])); 179 (*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_ CONTEXT_ID [i]));179 (*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_OOO_ENGINE_ID [i])); 180 180 (*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_NUM_REG [i])); 181 181 182 182 (*(out_READ_QUEUE_OUT_DATA_RC )) (*(in_SPR_WRITE_VAL [i])); 183 (*(out_READ_QUEUE_OUT_DATA_RC )) (*(in_SPR_WRITE_ CONTEXT_ID [i]));183 (*(out_READ_QUEUE_OUT_DATA_RC )) (*(in_SPR_WRITE_OOO_ENGINE_ID [i])); 184 184 (*(out_READ_QUEUE_OUT_DATA_RC )) (*(in_SPR_WRITE_NUM_REG [i])); 185 185 (*(out_READ_QUEUE_OUT_DATA_RC )) (*(in_SPR_WRITE_DATA [i])); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp
r55 r66 62 62 in_READ_QUEUE_IN_VAL = interface->set_signal_valack_in ("val" , VAL); 63 63 out_READ_QUEUE_IN_ACK = interface->set_signal_valack_out ("ack" , ACK); 64 in_READ_QUEUE_IN_CONTEXT_ID = interface->set_signal_in <Tcontext_t > ("context_id" ,_param->_size_context_id ); 65 in_READ_QUEUE_IN_PACKET_ID = interface->set_signal_in <Tpacket_t > ("packet_id" ,_param->_size_packet_id ); 64 in_READ_QUEUE_IN_CONTEXT_ID = interface->set_signal_in <Tcontext_t > ("context_id" ,_param->_size_context_id ); 65 in_READ_QUEUE_IN_FRONT_END_ID = interface->set_signal_in <Tcontext_t > ("front_end_id" ,_param->_size_front_end_id ); 66 in_READ_QUEUE_IN_OOO_ENGINE_ID = interface->set_signal_in <Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id ); 67 in_READ_QUEUE_IN_ROB_ID = interface->set_signal_in <Tpacket_t > ("rob_id" ,_param->_size_rob_id ); 66 68 in_READ_QUEUE_IN_OPERATION = interface->set_signal_in <Toperation_t > ("operation" ,_param->_size_operation ); 67 69 in_READ_QUEUE_IN_TYPE = interface->set_signal_in <Ttype_t > ("type" ,_param->_size_type ); … … 92 94 out_READ_QUEUE_OUT_VAL = interface->set_signal_valack_out ("val" , VAL); 93 95 in_READ_QUEUE_OUT_ACK = interface->set_signal_valack_in ("ack" , ACK); 94 out_READ_QUEUE_OUT_CONTEXT_ID = interface->set_signal_out <Tcontext_t > ("context_id" ,_param->_size_context_id ); 95 out_READ_QUEUE_OUT_PACKET_ID = interface->set_signal_out <Tpacket_t > ("packet_id" ,_param->_size_packet_id ); 96 97 out_READ_QUEUE_OUT_CONTEXT_ID = interface->set_signal_out <Tcontext_t > ("context_id" ,_param->_size_context_id ); 98 out_READ_QUEUE_OUT_FRONT_END_ID = interface->set_signal_out <Tcontext_t > ("front_end_id" ,_param->_size_front_end_id ); 99 out_READ_QUEUE_OUT_OOO_ENGINE_ID = interface->set_signal_out <Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id ); 100 out_READ_QUEUE_OUT_ROB_ID = interface->set_signal_out <Tpacket_t > ("rob_id" ,_param->_size_rob_id ); 96 101 out_READ_QUEUE_OUT_OPERATION = interface->set_signal_out <Toperation_t > ("operation" ,_param->_size_operation ); 97 102 out_READ_QUEUE_OUT_TYPE = interface->set_signal_out <Ttype_t > ("type" ,_param->_size_type ); … … 118 123 // ~~~~~[ Interface : "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 119 124 120 out_GPR_READ_VAL = new SC_OUT(Tcontrol_t ) * [_param->_nb_gpr_read];121 in_GPR_READ_ACK = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_read];122 out_GPR_READ_ CONTEXT_ID= new SC_OUT(Tcontext_t ) * [_param->_nb_gpr_read];123 out_GPR_READ_NUM_REG = new SC_OUT(Tgeneral_address_t) * [_param->_nb_gpr_read];124 in_GPR_READ_DATA = new SC_IN (Tgeneral_data_t ) * [_param->_nb_gpr_read];125 in_GPR_READ_DATA_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_read];125 out_GPR_READ_VAL = new SC_OUT(Tcontrol_t ) * [_param->_nb_gpr_read]; 126 in_GPR_READ_ACK = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_read]; 127 out_GPR_READ_OOO_ENGINE_ID= new SC_OUT(Tcontext_t ) * [_param->_nb_gpr_read]; 128 out_GPR_READ_NUM_REG = new SC_OUT(Tgeneral_address_t) * [_param->_nb_gpr_read]; 129 in_GPR_READ_DATA = new SC_IN (Tgeneral_data_t ) * [_param->_nb_gpr_read]; 130 in_GPR_READ_DATA_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_read]; 126 131 127 132 for (uint32_t i=0; i<_param->_nb_gpr_read; i++) … … 135 140 ); 136 141 137 out_GPR_READ_VAL [i] = interface->set_signal_valack_out ("val" , VAL);138 in_GPR_READ_ACK [i] = interface->set_signal_valack_in ("ack" , ACK);139 out_GPR_READ_ CONTEXT_ID [i] = interface->set_signal_out <Tcontext_t > ("context_id",_param->_size_context_id);140 out_GPR_READ_NUM_REG [i] = interface->set_signal_out <Tgeneral_address_t> ("num_reg" ,_param->_size_general_register);141 in_GPR_READ_DATA [i] = interface->set_signal_in <Tgeneral_data_t > ("data" ,_param->_size_general_data);142 in_GPR_READ_DATA_VAL [i] = interface->set_signal_in <Tcontrol_t > ("data_val" ,1);142 out_GPR_READ_VAL [i] = interface->set_signal_valack_out ("val" , VAL); 143 in_GPR_READ_ACK [i] = interface->set_signal_valack_in ("ack" , ACK); 144 out_GPR_READ_OOO_ENGINE_ID [i] = interface->set_signal_out <Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id); 145 out_GPR_READ_NUM_REG [i] = interface->set_signal_out <Tgeneral_address_t> ("num_reg" ,_param->_size_general_register); 146 in_GPR_READ_DATA [i] = interface->set_signal_in <Tgeneral_data_t > ("data" ,_param->_size_general_data); 147 in_GPR_READ_DATA_VAL [i] = interface->set_signal_in <Tcontrol_t > ("data_val" ,1); 143 148 } 144 149 145 150 // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 151 147 out_SPR_READ_VAL = new SC_OUT(Tcontrol_t ) * [_param->_nb_spr_read];148 in_SPR_READ_ACK = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_read];149 out_SPR_READ_ CONTEXT_ID= new SC_OUT(Tcontext_t ) * [_param->_nb_spr_read];150 out_SPR_READ_NUM_REG = new SC_OUT(Tspecial_address_t) * [_param->_nb_spr_read];151 in_SPR_READ_DATA = new SC_IN (Tspecial_data_t ) * [_param->_nb_spr_read];152 in_SPR_READ_DATA_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_read];152 out_SPR_READ_VAL = new SC_OUT(Tcontrol_t ) * [_param->_nb_spr_read]; 153 in_SPR_READ_ACK = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_read]; 154 out_SPR_READ_OOO_ENGINE_ID= new SC_OUT(Tcontext_t ) * [_param->_nb_spr_read]; 155 out_SPR_READ_NUM_REG = new SC_OUT(Tspecial_address_t) * [_param->_nb_spr_read]; 156 in_SPR_READ_DATA = new SC_IN (Tspecial_data_t ) * [_param->_nb_spr_read]; 157 in_SPR_READ_DATA_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_read]; 153 158 154 159 for (uint32_t i=0; i<_param->_nb_spr_read; i++) … … 162 167 ); 163 168 164 out_SPR_READ_VAL [i] = interface->set_signal_valack_out ("val" , VAL);165 in_SPR_READ_ACK [i] = interface->set_signal_valack_in ("ack" , ACK);166 out_SPR_READ_ CONTEXT_ID [i] = interface->set_signal_out <Tcontext_t > ("context_id",_param->_size_context_id);167 out_SPR_READ_NUM_REG [i] = interface->set_signal_out <Tspecial_address_t> ("num_reg" ,_param->_size_special_register);168 in_SPR_READ_DATA [i] = interface->set_signal_in <Tspecial_data_t > ("data" ,_param->_size_special_data);169 in_SPR_READ_DATA_VAL [i] = interface->set_signal_in <Tcontrol_t > ("data_val" ,1);169 out_SPR_READ_VAL [i] = interface->set_signal_valack_out ("val" , VAL); 170 in_SPR_READ_ACK [i] = interface->set_signal_valack_in ("ack" , ACK); 171 out_SPR_READ_OOO_ENGINE_ID [i] = interface->set_signal_out <Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id); 172 out_SPR_READ_NUM_REG [i] = interface->set_signal_out <Tspecial_address_t> ("num_reg" ,_param->_size_special_register); 173 in_SPR_READ_DATA [i] = interface->set_signal_in <Tspecial_data_t > ("data" ,_param->_size_special_data); 174 in_SPR_READ_DATA_VAL [i] = interface->set_signal_in <Tcontrol_t > ("data_val" ,1); 170 175 } 171 176 172 177 // ~~~~~[ Interface : "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 173 178 174 in_GPR_WRITE_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_write];175 in_GPR_WRITE_ CONTEXT_ID= new SC_IN (Tcontext_t ) * [_param->_nb_gpr_write];176 in_GPR_WRITE_NUM_REG = new SC_IN (Tgeneral_address_t) * [_param->_nb_gpr_write];177 in_GPR_WRITE_DATA = new SC_IN (Tgeneral_data_t ) * [_param->_nb_gpr_write];179 in_GPR_WRITE_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_gpr_write]; 180 in_GPR_WRITE_OOO_ENGINE_ID= new SC_IN (Tcontext_t ) * [_param->_nb_gpr_write]; 181 in_GPR_WRITE_NUM_REG = new SC_IN (Tgeneral_address_t) * [_param->_nb_gpr_write]; 182 in_GPR_WRITE_DATA = new SC_IN (Tgeneral_data_t ) * [_param->_nb_gpr_write]; 178 183 179 184 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) … … 187 192 ); 188 193 189 in_GPR_WRITE_VAL [i] = interface->set_signal_valack_in ("val" , VAL);190 in_GPR_WRITE_ CONTEXT_ID [i] = interface->set_signal_in <Tcontext_t > ("context_id",_param->_size_context_id);191 in_GPR_WRITE_NUM_REG [i] = interface->set_signal_in <Tgeneral_address_t> ("num_reg" ,_param->_size_general_register);192 in_GPR_WRITE_DATA [i] = interface->set_signal_in <Tgeneral_data_t > ("data" ,_param->_size_general_data);194 in_GPR_WRITE_VAL [i] = interface->set_signal_valack_in ("val" , VAL); 195 in_GPR_WRITE_OOO_ENGINE_ID [i] = interface->set_signal_in <Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id); 196 in_GPR_WRITE_NUM_REG [i] = interface->set_signal_in <Tgeneral_address_t> ("num_reg" ,_param->_size_general_register); 197 in_GPR_WRITE_DATA [i] = interface->set_signal_in <Tgeneral_data_t > ("data" ,_param->_size_general_data); 193 198 } 194 199 195 200 // ~~~~~[ Interface : "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 201 197 in_SPR_WRITE_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_write];198 in_SPR_WRITE_ CONTEXT_ID= new SC_IN (Tcontext_t ) * [_param->_nb_spr_write];199 in_SPR_WRITE_NUM_REG = new SC_IN (Tspecial_address_t) * [_param->_nb_spr_write];200 in_SPR_WRITE_DATA = new SC_IN (Tspecial_data_t ) * [_param->_nb_spr_write];202 in_SPR_WRITE_VAL = new SC_IN (Tcontrol_t ) * [_param->_nb_spr_write]; 203 in_SPR_WRITE_OOO_ENGINE_ID= new SC_IN (Tcontext_t ) * [_param->_nb_spr_write]; 204 in_SPR_WRITE_NUM_REG = new SC_IN (Tspecial_address_t) * [_param->_nb_spr_write]; 205 in_SPR_WRITE_DATA = new SC_IN (Tspecial_data_t ) * [_param->_nb_spr_write]; 201 206 202 207 for (uint32_t i=0; i<_param->_nb_spr_write; i++) … … 210 215 ); 211 216 212 in_SPR_WRITE_VAL [i] = interface->set_signal_valack_in("val" , VAL);213 in_SPR_WRITE_ CONTEXT_ID [i] = interface->set_signal_in <Tcontext_t > ("context_id",_param->_size_context_id);214 in_SPR_WRITE_NUM_REG [i] = interface->set_signal_in <Tspecial_address_t> ("num_reg" ,_param->_size_special_register);215 in_SPR_WRITE_DATA [i] = interface->set_signal_in <Tspecial_data_t > ("data" ,_param->_size_special_data);217 in_SPR_WRITE_VAL [i] = interface->set_signal_valack_in ("val" , VAL); 218 in_SPR_WRITE_OOO_ENGINE_ID [i] = interface->set_signal_in <Tcontext_t > ("ooo_engine_id",_param->_size_ooo_engine_id); 219 in_SPR_WRITE_NUM_REG [i] = interface->set_signal_in <Tspecial_address_t> ("num_reg" ,_param->_size_special_register); 220 in_SPR_WRITE_DATA [i] = interface->set_signal_in <Tspecial_data_t > ("data" ,_param->_size_special_data); 216 221 } 217 222 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp
r55 r66 31 31 delete out_READ_QUEUE_IN_ACK ; 32 32 delete in_READ_QUEUE_IN_CONTEXT_ID ; 33 delete in_READ_QUEUE_IN_PACKET_ID ; 33 delete in_READ_QUEUE_IN_FRONT_END_ID ; 34 delete in_READ_QUEUE_IN_OOO_ENGINE_ID ; 35 delete in_READ_QUEUE_IN_ROB_ID ; 34 36 delete in_READ_QUEUE_IN_OPERATION ; 35 37 delete in_READ_QUEUE_IN_TYPE ; … … 51 53 delete in_READ_QUEUE_OUT_ACK ; 52 54 delete out_READ_QUEUE_OUT_CONTEXT_ID ; 53 delete out_READ_QUEUE_OUT_PACKET_ID ; 55 delete out_READ_QUEUE_OUT_FRONT_END_ID ; 56 delete out_READ_QUEUE_OUT_OOO_ENGINE_ID ; 57 delete out_READ_QUEUE_OUT_ROB_ID ; 54 58 delete out_READ_QUEUE_OUT_OPERATION ; 55 59 delete out_READ_QUEUE_OUT_TYPE ; … … 77 81 delete [] out_GPR_READ_VAL ; 78 82 delete [] in_GPR_READ_ACK ; 79 delete [] out_GPR_READ_ CONTEXT_ID;83 delete [] out_GPR_READ_OOO_ENGINE_ID; 80 84 delete [] out_GPR_READ_NUM_REG ; 81 85 delete [] in_GPR_READ_DATA ; … … 86 90 delete [] out_SPR_READ_VAL ; 87 91 delete [] in_SPR_READ_ACK ; 88 delete [] out_SPR_READ_ CONTEXT_ID;92 delete [] out_SPR_READ_OOO_ENGINE_ID; 89 93 delete [] out_SPR_READ_NUM_REG ; 90 94 delete [] in_SPR_READ_DATA ; … … 94 98 95 99 delete [] in_GPR_WRITE_VAL ; 96 delete [] in_GPR_WRITE_ CONTEXT_ID;100 delete [] in_GPR_WRITE_OOO_ENGINE_ID; 97 101 delete [] in_GPR_WRITE_NUM_REG ; 98 102 delete [] in_GPR_WRITE_DATA ; … … 101 105 102 106 delete [] in_SPR_WRITE_VAL ; 103 delete [] in_SPR_WRITE_ CONTEXT_ID;107 delete [] in_SPR_WRITE_OOO_ENGINE_ID; 104 108 delete [] in_SPR_WRITE_NUM_REG ; 105 109 delete [] in_SPR_WRITE_DATA ; 106 110 107 111 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 108 113 while (_queue->empty() == false) 109 114 { … … 111 116 _queue->pop(); 112 117 } 113 114 118 delete _queue; 115 119 delete _queue_head; 116 117 120 delete _component; 118 119 121 log_printf(FUNC,Read_queue,"deallocation","End"); 120 122 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp
r55 r66 66 66 { 67 67 // Test if this bypass is valid 68 if ( (PORT_READ (in_GPR_WRITE_VAL [i]) == 1) and69 (PORT_READ (in_GPR_WRITE_ CONTEXT_ID [i]) == _queue_head->_context_id)68 if ( (PORT_READ (in_GPR_WRITE_VAL [i]) == 1) and 69 (PORT_READ (in_GPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id) 70 70 ) 71 71 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_spr.cpp
r55 r66 51 51 { 52 52 // Test if this bypass is valid 53 if ( (PORT_READ (in_SPR_WRITE_VAL [i]) == 1) and54 (PORT_READ (in_SPR_WRITE_ CONTEXT_ID [i]) == _queue_head->_context_id)53 if ( (PORT_READ (in_SPR_WRITE_VAL [i]) == 1) and 54 (PORT_READ (in_SPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id) 55 55 ) 56 56 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_val.cpp
r55 r66 42 42 { 43 43 // Test if this bypass is valid 44 if ( (PORT_READ (in_GPR_WRITE_VAL [i]) == 1) and45 (PORT_READ (in_GPR_WRITE_ CONTEXT_ID [i]) == _queue_head->_context_id)44 if ( (PORT_READ (in_GPR_WRITE_VAL [i]) == 1) and 45 (PORT_READ (in_GPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id) 46 46 ) 47 47 { … … 59 59 { 60 60 // Test if this bypass is valid 61 if ( (PORT_READ (in_SPR_WRITE_VAL [i]) == 1) and62 (PORT_READ (in_SPR_WRITE_ CONTEXT_ID [i]) == _queue_head->_context_id)61 if ( (PORT_READ (in_SPR_WRITE_VAL [i]) == 1) and 62 (PORT_READ (in_SPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id) 63 63 ) 64 64 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp
r55 r66 33 33 // PORT_WRITE (out_READ_QUEUE_OUT_VAL , not_empty ); // in genMealy_val 34 34 35 PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID , _queue_head->_context_id ); 36 PORT_WRITE (out_READ_QUEUE_OUT_PACKET_ID , _queue_head->_packet_id ); 35 PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID , _queue_head->_context_id ); 36 PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id); 37 PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id); 38 PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID , _queue_head->_rob_id ); 37 39 PORT_WRITE (out_READ_QUEUE_OUT_OPERATION , _queue_head->_operation ); 38 40 PORT_WRITE (out_READ_QUEUE_OUT_TYPE , _queue_head->_type ); … … 57 59 58 60 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59 PORT_WRITE (out_GPR_READ_VAL [0], not_empty and _queue_head->_read_ra_val);60 PORT_WRITE (out_GPR_READ_VAL [1], not_empty and _queue_head->_read_rb_val);61 PORT_WRITE (out_GPR_READ_ CONTEXT_ID [0], _queue_head->_context_id);62 PORT_WRITE (out_GPR_READ_ CONTEXT_ID [1], _queue_head->_context_id);63 PORT_WRITE (out_GPR_READ_NUM_REG [0], _queue_head->_num_reg_ra);64 PORT_WRITE (out_GPR_READ_NUM_REG [1], _queue_head->_num_reg_rb);61 PORT_WRITE (out_GPR_READ_VAL [0], not_empty and _queue_head->_read_ra_val); 62 PORT_WRITE (out_GPR_READ_VAL [1], not_empty and _queue_head->_read_rb_val); 63 PORT_WRITE (out_GPR_READ_OOO_ENGINE_ID [0], _queue_head->_ooo_engine_id); 64 PORT_WRITE (out_GPR_READ_OOO_ENGINE_ID [1], _queue_head->_ooo_engine_id); 65 PORT_WRITE (out_GPR_READ_NUM_REG [0], _queue_head->_num_reg_ra); 66 PORT_WRITE (out_GPR_READ_NUM_REG [1], _queue_head->_num_reg_rb); 65 67 66 68 // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67 PORT_WRITE (out_SPR_READ_VAL [0], not_empty and _queue_head->_read_rc_val);68 PORT_WRITE (out_SPR_READ_ CONTEXT_ID [0], _queue_head->_context_id);69 PORT_WRITE (out_SPR_READ_NUM_REG [0], _queue_head->_num_reg_rc);69 PORT_WRITE (out_SPR_READ_VAL [0], not_empty and _queue_head->_read_rc_val); 70 PORT_WRITE (out_SPR_READ_OOO_ENGINE_ID [0], _queue_head->_ooo_engine_id); 71 PORT_WRITE (out_SPR_READ_NUM_REG [0], _queue_head->_num_reg_rc); 70 72 71 73 log_printf(FUNC,Read_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp
r55 r66 57 57 58 58 entry->_context_id = PORT_READ(in_READ_QUEUE_IN_CONTEXT_ID ); 59 entry->_packet_id = PORT_READ(in_READ_QUEUE_IN_PACKET_ID ); 59 entry->_front_end_id = PORT_READ(in_READ_QUEUE_IN_FRONT_END_ID); 60 entry->_ooo_engine_id= PORT_READ(in_READ_QUEUE_IN_OOO_ENGINE_ID); 61 entry->_rob_id = PORT_READ(in_READ_QUEUE_IN_ROB_ID ); 60 62 entry->_operation = PORT_READ(in_READ_QUEUE_IN_OPERATION ); 61 63 entry->_type = PORT_READ(in_READ_QUEUE_IN_TYPE ); … … 73 75 entry->_num_reg_re = PORT_READ(in_READ_QUEUE_IN_NUM_REG_RE ); 74 76 75 log_printf(TRACE,Read_queue,FUNCTION," * push (id : %d-%d)",entry->_context_id, entry->_ packet_id);77 log_printf(TRACE,Read_queue,FUNCTION," * push (id : %d-%d)",entry->_context_id, entry->_rob_id); 76 78 _queue->push(entry); 77 79 … … 91 93 { 92 94 // Pop the entry 93 log_printf(TRACE,Read_queue,FUNCTION," * pop (id : %d-%d)",_queue->front()->_context_id, _queue->front()->_ packet_id);95 log_printf(TRACE,Read_queue,FUNCTION," * pop (id : %d-%d)",_queue->front()->_context_id, _queue->front()->_rob_id); 94 96 _queue->pop(); 95 97 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp
r62 r66 52 52 SC_METHOD (transition); 53 53 dont_initialize (); 54 sensitive _pos << *(in_CLOCK);54 sensitive << (*(in_CLOCK)).pos(); 55 55 56 56 SC_METHOD (genMealy_read); 57 57 dont_initialize (); 58 sensitive _neg << *(in_CLOCK);58 sensitive << (*(in_CLOCK)).neg(); 59 59 for (uint32_t i=0; i<_param->_nb_port_read; i++) 60 60 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp
r42 r66 46 46 SC_METHOD (transition); 47 47 dont_initialize (); 48 sensitive _pos << *(in_CLOCK);48 sensitive << (*(in_CLOCK)).pos(); 49 49 #endif 50 50 51 51 SC_METHOD (genMealy_shift); 52 52 dont_initialize (); 53 sensitive _neg << *(in_CLOCK);53 sensitive << (*(in_CLOCK)).neg(); 54 54 for (uint32_t i=0; i<param._nb_port; i++) 55 55 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp
r42 r66 52 52 SC_METHOD (transition); 53 53 dont_initialize (); 54 sensitive _pos << *(in_CLOCK);54 sensitive << (*(in_CLOCK)).pos(); 55 55 56 56 SC_METHOD (genMealy_access); 57 57 dont_initialize (); 58 sensitive _neg << *(in_CLOCK);58 sensitive << (*(in_CLOCK)).neg(); 59 59 for (uint32_t i=0; i<_param._nb_access; i++) 60 60 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.flags
r64 r66 6 6 7 7 #-----[ Simulator ]---------------------------------------- 8 SIMULATOR = systemcass_deps 8 #SIMULATOR = systemcass_deps 9 SIMULATOR = systemc 9 10 10 11 # 3 simulators : … … 14 15 15 16 #-----[ Flags ]-------------------------------------------- 16 MORPHEO_FLAGS = -DSYSTEMC \ 17 -DVHDL \ 18 -DVHDL_TESTBENCH \ 19 -DVHDL_TESTBENCH_ASSERT \ 20 -DDEBUG=DEBUG_TRACE 17 #MORPHEO_FLAGS = -DSYSTEMC \ 18 # -DVHDL \ 19 # -DVHDL_TESTBENCH \ 20 # -DVHDL_TESTBENCH_ASSERT \ 21 # -DDEBUG=DEBUG_ALL 22 23 MORPHEO_FLAGS = -DSYSTEMC 21 24 22 25 # -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf
r62 r66 3 3 # 4 4 5 all: _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest _Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest _Generic/Select/Select_Priority_Fixed/SelfTest _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest _Core/Multi_Execute_loop/Execute_loop/Register_unit/ Register_unit_Glue/SelfTest5 all: _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest _Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest _Generic/Select/Select_Priority_Fixed/SelfTest _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest _Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest _Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest 6 6 7 7 _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest: … … 14 14 make all -C Generic/Select/Select_Priority_Fixed/SelfTest 15 15 16 _Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest: 17 make all -C Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest 18 16 19 _Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest: 17 20 make all -C Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest … … 21 24 make clean -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 22 25 make clean -C Generic/Select/Select_Priority_Fixed/SelfTest 26 make clean -C Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest 23 27 make clean -C Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest 24 28 … … 29 33 make install -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 30 34 make install -C Generic/Select/Select_Priority_Fixed/SelfTest 35 make install -C Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest 31 36 make install -C Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest 32 37 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp
r57 r66 61 61 SC_METHOD (transition); 62 62 dont_initialize (); 63 sensitive _pos << *(in_CLOCK);63 sensitive << (*(in_CLOCK)).pos(); 64 64 //#endif 65 65 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h
r62 r66 2 2 #define DEBUG_COMPONENT_H 3 3 4 #define DEBUG_Behavioural false4 #define DEBUG_Behavioural true 5 5 #define DEBUG_Generic false 6 6 #define DEBUG_Counter false -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h
r59 r66 14 14 // ***** general 15 15 typedef bool Tcontrol_t; 16 typedef uint 8_tToperation_t;17 //typedef uint 8_tTdestination1_t;18 //typedef uint 8_tTdestination2_t;19 //typedef uint 8_tTexec_flag_t;16 typedef uint32_t Toperation_t; 17 //typedef uint32_t Tdestination1_t; 18 //typedef uint32_t Tdestination2_t; 19 //typedef uint32_t Texec_flag_t; 20 20 //typedef bool Texec_excep_t; 21 //typedef uint 8_tTcondition_t;22 //typedef uint 8_tTbranch_state_t;21 //typedef uint32_t Tcondition_t; 22 //typedef uint32_t Tbranch_state_t; 23 23 24 typedef uint 8_tTexception_t;25 typedef uint 8_tTcontext_t;26 typedef uint 8_tTpacket_t;27 typedef uint 8_tTtype_t;24 typedef uint32_t Texception_t; 25 typedef uint32_t Tcontext_t; 26 typedef uint32_t Tpacket_t; 27 typedef uint32_t Ttype_t; 28 28 29 29 // ***** Register 30 typedef uint 8_tTgeneral_address_t;30 typedef uint32_t Tgeneral_address_t; 31 31 typedef uint32_t Tgeneral_data_t; 32 typedef uint 8_tTspecial_address_t;32 typedef uint32_t Tspecial_address_t; 33 33 typedef uint32_t Tspecial_data_t; 34 34 35 35 // ***** component dependant 36 36 // ~~~~~ load store queue 37 typedef uint 8_tTaccess_t;38 typedef uint 8_tTlsq_ptr_t;37 typedef uint32_t Taccess_t; 38 typedef uint32_t Tlsq_ptr_t; 39 39 typedef uint32_t Tdcache_address_t; 40 40 typedef uint32_t Tdcache_data_t; 41 41 typedef bool Tdcache_error_t; 42 typedef uint 8_tTdcache_type_t;42 typedef uint32_t Tdcache_type_t; 43 43 44 44 }; // end namespace behavioural -
trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info
r62 r66 19 19 target_dep all Generic/Select/Select_Priority_Fixed/SelfTest 20 20 target_dep all Generic/RegisterFile/RegisterFile_Monolithic/SelfTest 21 target_dep all Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest 21 22 target_dep all Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest 22 23 # mkf include path -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_testbench_generate_file.cpp
r44 r66 42 42 vhdl->set_body("instance_"+_name+" : "+_name); 43 43 vhdl->set_body("port map ("); 44 44 45 45 list<string>::iterator i = list_signal->begin(); 46 46 if (i != list_signal->end()) … … 101 101 vhdl->set_body("end process;"); 102 102 103 104 103 vhdl->generate_file(false,true); 105 104 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp
r62 r66 53 53 } 54 54 else 55 #ifdef SYSTEMCASS_SPECIFIC 55 56 if ((_direction == OUT) and (signal_dest->_direction == IN )) 56 57 switch (_type_info) … … 64 65 } 65 66 else 67 #endif 66 68 if ((_direction == OUT) and (signal_dest->_direction == OUT)) 67 69 switch (_type_info) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_std_logic.cpp
r57 r66 53 53 { 54 54 log_printf(FUNC,Behavioural,FUNCTION,"Begin"); 55 cout << toString(value) << endl; 55 56 string _return = std_logic_conv(size,toString(value)); 56 57 log_printf(FUNC,Behavioural,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Common/include/ToString.h
r43 r66 5 5 * $Id$ 6 6 * 7 * [ Description ] 7 * with a stephane dubuisson initial idea 8 * 9 * [ Description ] 8 10 * 9 11 */ … … 23 25 template<typename T> inline std::string toString (const T& x) 24 26 { 25 ostringstream out ;27 ostringstream out(""); 26 28 out << x; 27 29 return out.str(); … … 30 32 template<> inline std::string toString<bool> (const bool& x) 31 33 { 32 ostringstream out ;34 ostringstream out(""); 33 35 //out << boolalpha << x; 34 36 out << x; … … 39 41 { 40 42 const int sigdigits = std::numeric_limits<float>::digits10; 41 ostringstream out ;43 ostringstream out(""); 42 44 out << setprecision(sigdigits) << x; 43 45 return out.str(); … … 47 49 { 48 50 const int sigdigits = std::numeric_limits<double>::digits10; 49 ostringstream out ;51 ostringstream out(""); 50 52 out << setprecision(sigdigits) << x; 51 53 return out.str(); … … 55 57 { 56 58 const int sigdigits = std::numeric_limits<long double>::digits10; 57 ostringstream out ;59 ostringstream out(""); 58 60 out << setprecision(sigdigits) << x; 59 61 return out.str(); 60 62 } 63 64 // template<> inline std::string toString< int8_t> (const int8_t& x) 65 // { 66 // ostringstream out(""); 67 // out << x; 68 // return out.str(); 69 // } 70 71 // template<> inline std::string toString<uint8_t> (const uint8_t& x) 72 // { 73 // ostringstream out(""); 74 // out << x; 75 // return out.str(); 76 // } 77 78 // template<> inline std::string toString< int16_t> (const int16_t& x) 79 // { 80 // ostringstream out(""); 81 // out << x; 82 // return out.str(); 83 // } 84 85 // template<> inline std::string toString<uint16_t> (const uint16_t& x) 86 // { 87 // ostringstream out(""); 88 // out << x; 89 // return out.str(); 90 // } 91 92 // template<> inline std::string toString< int32_t> (const int32_t& x) 93 // { 94 // ostringstream out(""); 95 // out << x; 96 // return out.str(); 97 // } 98 99 // template<> inline std::string toString<uint32_t> (const uint32_t& x) 100 // { 101 // ostringstream out(""); 102 // out << x; 103 // return out.str(); 104 // } 61 105 62 106 }; // end namespace morpheo
Note: See TracChangeset
for help on using the changeset viewer.