Ignore:
Timestamp:
Dec 6, 2007, 11:03:00 AM (17 years ago)
Author:
rosiere
Message:
  • un pas de plus vers la compatibilite avec systemC
  • modification de l'interface de read_queue : context_id devient context_id, front_end_id et ooo_engine_id
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  
    88
    99#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"
    1110#include "Common/include/Test.h"
    1211
    13 #define NB_ITERATION  64
     12#define NB_ITERATION  1
     13//64
    1414#define CYCLE_MAX     (1024*NB_ITERATION)
    1515
     
    7070  sc_signal<Tcontrol_t         >         * READ_QUEUE_IN_ACK          = new sc_signal<Tcontrol_t         >         ("READ_QUEUE_IN_ACK         ");
    7171  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   ");
    7375  sc_signal<Toperation_t       >         * READ_QUEUE_IN_OPERATION    = new sc_signal<Toperation_t       >         ("READ_QUEUE_IN_OPERATION   ");
    7476  sc_signal<Ttype_t            >         * READ_QUEUE_IN_TYPE         = new sc_signal<Ttype_t            >         ("READ_QUEUE_IN_TYPE        ");
     
    9092  sc_signal<Tcontrol_t         >         * READ_QUEUE_OUT_VAL         = new sc_signal<Tcontrol_t         >         ("READ_QUEUE_OUT_VAL         ");
    9193  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   ");
    9498  sc_signal<Toperation_t       >         * READ_QUEUE_OUT_OPERATION   = new sc_signal<Toperation_t       >         ("READ_QUEUE_OUT_OPERATION   ");
    9599  sc_signal<Ttype_t            >         * READ_QUEUE_OUT_TYPE        = new sc_signal<Ttype_t            >         ("READ_QUEUE_OUT_TYPE        ");
     
    117121  sc_signal<Tcontrol_t         > ** GPR_READ_VAL        = new sc_signal<Tcontrol_t         > * [_param->_nb_gpr_read];
    118122  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];
    120124  sc_signal<Tgeneral_address_t > ** GPR_READ_NUM_REG    = new sc_signal<Tgeneral_address_t > * [_param->_nb_gpr_read];
    121125  sc_signal<Tgeneral_data_t    > ** GPR_READ_DATA       = new sc_signal<Tgeneral_data_t    > * [_param->_nb_gpr_read];
     
    128132      rename = "GPR_READ_"+toString(i)+"_ACK";     
    129133      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());
    132136      rename = "GPR_READ_"+toString(i)+"_NUM_REG";
    133137      GPR_READ_NUM_REG    [i] = new sc_signal<Tgeneral_address_t > (rename.c_str());
     
    142146  sc_signal<Tcontrol_t         > ** SPR_READ_VAL        = new sc_signal<Tcontrol_t         > * [_param->_nb_spr_read];
    143147  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];
    145149  sc_signal<Tspecial_address_t > ** SPR_READ_NUM_REG    = new sc_signal<Tspecial_address_t > * [_param->_nb_spr_read];
    146150  sc_signal<Tspecial_data_t    > ** SPR_READ_DATA       = new sc_signal<Tspecial_data_t    > * [_param->_nb_spr_read];
     
    153157      rename = "SPR_READ_"+toString(i)+"_ACK";     
    154158      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());
    157161      rename = "SPR_READ_"+toString(i)+"_NUM_REG";
    158162      SPR_READ_NUM_REG     [i] = new sc_signal<Tspecial_address_t > (rename.c_str());
     
    166170
    167171  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];
    169173  sc_signal<Tgeneral_address_t > ** GPR_WRITE_NUM_REG    = new sc_signal<Tgeneral_address_t > * [_param->_nb_gpr_write];
    170174  sc_signal<Tgeneral_data_t    > ** GPR_WRITE_DATA       = new sc_signal<Tgeneral_data_t    > * [_param->_nb_gpr_write];
     
    174178      rename = "GPR_WRITE_"+toString(i)+"_VAL"       ;
    175179      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());
    178182      rename = "GPR_WRITE_"+toString(i)+"_NUM_REG"   ;
    179183      GPR_WRITE_NUM_REG    [i] = new sc_signal<Tgeneral_address_t > (rename.c_str());
     
    185189
    186190  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];
    188192  sc_signal<Tspecial_address_t > ** SPR_WRITE_NUM_REG    = new sc_signal<Tspecial_address_t > * [_param->_nb_spr_write];
    189193  sc_signal<Tspecial_data_t    > ** SPR_WRITE_DATA       = new sc_signal<Tspecial_data_t    > * [_param->_nb_spr_write];
     
    193197      rename = "SPR_WRITE_"+toString(i)+"_VAL"       ;
    194198      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());
    197201      rename = "SPR_WRITE_"+toString(i)+"_NUM_REG"   ;
    198202      SPR_WRITE_NUM_REG    [i] = new sc_signal<Tspecial_address_t > (rename.c_str());
     
    214218  (*(_Read_queue->out_READ_QUEUE_IN_ACK            )) (*(READ_QUEUE_IN_ACK            ));
    215219  (*(_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         ));
    217223  (*(_Read_queue-> in_READ_QUEUE_IN_OPERATION      )) (*(READ_QUEUE_IN_OPERATION      ));
    218224  (*(_Read_queue-> in_READ_QUEUE_IN_TYPE           )) (*(READ_QUEUE_IN_TYPE           ));
     
    233239  (*(_Read_queue-> in_READ_QUEUE_OUT_ACK           )) (*(READ_QUEUE_OUT_ACK           ));
    234240  (*(_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        ));
    236244  (*(_Read_queue->out_READ_QUEUE_OUT_OPERATION     )) (*(READ_QUEUE_OUT_OPERATION     ));
    237245  (*(_Read_queue->out_READ_QUEUE_OUT_TYPE          )) (*(READ_QUEUE_OUT_TYPE          ));
     
    259267      (*(_Read_queue->out_GPR_READ_VAL         [i])) (*(GPR_READ_VAL         [i]));
    260268      (*(_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]));
    262270      (*(_Read_queue->out_GPR_READ_NUM_REG     [i])) (*(GPR_READ_NUM_REG     [i]));
    263271      (*(_Read_queue-> in_GPR_READ_DATA        [i])) (*(GPR_READ_DATA        [i]));
     
    269277      (*(_Read_queue->out_SPR_READ_VAL         [i])) (*(SPR_READ_VAL         [i]));
    270278      (*(_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]));
    272280      (*(_Read_queue->out_SPR_READ_NUM_REG     [i])) (*(SPR_READ_NUM_REG     [i]));
    273281      (*(_Read_queue-> in_SPR_READ_DATA        [i])) (*(SPR_READ_DATA        [i]));
     
    278286    {
    279287      (*(_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]));
    281289      (*(_Read_queue-> in_GPR_WRITE_NUM_REG    [i])) (*(GPR_WRITE_NUM_REG    [i]));
    282290      (*(_Read_queue-> in_GPR_WRITE_DATA       [i])) (*(GPR_WRITE_DATA       [i]));
     
    286294    {
    287295      (*(_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]));
    289297      (*(_Read_queue-> in_SPR_WRITE_NUM_REG    [i])) (*(SPR_WRITE_NUM_REG    [i]));
    290298      (*(_Read_queue-> in_SPR_WRITE_DATA       [i])) (*(SPR_WRITE_DATA       [i]));
     
    304312  srand(seed);
    305313
    306   Tcontext_t         _context_id [nb_request];
     314  Tcontext_t         _ooo_engine_id [nb_request];
    307315  Tcontrol_t         _read_ra    [nb_request];
    308316  Tgeneral_address_t _num_reg_ra [nb_request];
     
    313321
    314322  // 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];
    319327
    320328  SC_START(0);
     
    344352      for (uint32_t i=0; i<nb_request; i++)
    345353        {
    346           _context_id   [i] = rand()% _param->_nb_context            ;
     354          _ooo_engine_id   [i] = rand()% _param->_nb_ooo_engine         ;
    347355          _read_ra      [i] = rand()% 2                              ;
    348356          _num_reg_ra   [i] = rand()% _param->_nb_general_register   ;
     
    354362     
    355363      // 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++)
    357365        {
    358366          for (uint32_t i=0; i<_param->_nb_general_register; i++)
     
    377385              ((rand()%100) < percent_transaction_queue_in))
    378386            {
    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);
    382392              READ_QUEUE_IN_OPERATION   ->write(0);
    383393              READ_QUEUE_IN_TYPE        ->write(0);
     
    408418              if (GPR_READ_VAL [i]->read())
    409419                {
    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();
    412422
    413423                  GPR_READ_DATA     [i]->write(_gpr    [num_reg][context]);
     
    421431              if (SPR_READ_VAL [i]->read())
    422432                {
    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();
    425435
    426436                  SPR_READ_DATA     [i]->write(_spr    [num_reg][context]);
     
    433443            {
    434444              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;
    436446              Tgeneral_address_t num_reg = rand()% _param->_nb_general_register;
    437447              Tgeneral_data_t    data    = rand()%(1<<_param->_size_general_data);
    438448             
    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);
    443453
    444454              if (val)
    445455                {
    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;
    448458                }
    449459            }
     
    451461            {
    452462              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;
    454464              Tspecial_address_t num_reg = rand()% _param->_nb_special_register;
    455465              Tspecial_data_t    data    = rand()%(1<<_param->_size_special_data);
    456466             
    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);
    461471
    462472              if (val)
    463473                {
    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;
    466476                }
    467477            }
     
    480490              (READ_QUEUE_OUT_ACK->read() == 1))
    481491            {
    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)+"]");
    485495             
    486               TEST(uint32_t          , packet_id ,request_out);
     496              TEST(uint32_t          , rob_id ,request_out);
    487497             
    488498              request_out ++;
    489499
    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]);
    494507              if (READ_QUEUE_OUT_READ_RA    ->read() and
    495508                  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]);
    500513              if (READ_QUEUE_OUT_READ_RB    ->read() and
    501514                  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]);
    506519              if (READ_QUEUE_OUT_READ_RC    ->read() and
    507520                  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]);
    509522            }
    510523          SC_START(1);
     
    520533  cout << "<" << name << "> ............ Stop Simulation" << endl;
    521534
    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       ;
    590609#endif
    591610
Note: See TracChangeset for help on using the changeset viewer.