Changeset 66 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp
- Timestamp:
- Dec 6, 2007, 11:03:00 AM (17 years ago)
- File:
-
- 1 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/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
Note: See TracChangeset
for help on using the changeset viewer.