Ignore:
Timestamp:
Sep 24, 2007, 2:00:35 PM (17 years ago)
Author:
rosiere
Message:

Ajout SystemC read_queue et reservation_station
Ajout port au bloc registerfile_monolithic (à ajouter également au bloc registerfile et registerfile_multi_banked)
Modif param : passage de pointeur (attention, tous les composants n'ont pas été tous modifier)

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

    r54 r55  
    1111#include "Common/include/Test.h"
    1212
    13 #define NB_ITERATION  512
    14 #define CYCLE_MAX     (128*NB_ITERATION)
     13#define NB_ITERATION  64
     14#define CYCLE_MAX     (1024*NB_ITERATION)
    1515
    1616#define LABEL(str)                                                                       \
     
    7171  sc_signal<Tcontext_t         >         * READ_QUEUE_IN_CONTEXT_ID   = new sc_signal<Tcontext_t         >         ("READ_QUEUE_IN_CONTEXT_ID  ");
    7272  sc_signal<Tpacket_t          >         * READ_QUEUE_IN_PACKET_ID    = new sc_signal<Tpacket_t          >         ("READ_QUEUE_IN_PACKET_ID   ");
    73   sc_signal<uint32_t           >         * READ_QUEUE_IN_OPERATION    = new sc_signal<uint32_t           >         ("READ_QUEUE_IN_OPERATION   ");
     73  sc_signal<Toperation_t       >         * READ_QUEUE_IN_OPERATION    = new sc_signal<Toperation_t       >         ("READ_QUEUE_IN_OPERATION   ");
    7474  sc_signal<Ttype_t            >         * READ_QUEUE_IN_TYPE         = new sc_signal<Ttype_t            >         ("READ_QUEUE_IN_TYPE        ");
    7575  sc_signal<Tcontrol_t         >         * READ_QUEUE_IN_HAS_IMMEDIAT = new sc_signal<Tcontrol_t         >         ("READ_QUEUE_IN_HAS_IMMEDIAT");
     
    9292  sc_signal<Tcontext_t         >         * READ_QUEUE_OUT_CONTEXT_ID  = new sc_signal<Tcontext_t         >         ("READ_QUEUE_OUT_CONTEXT_ID  ");
    9393  sc_signal<Tpacket_t          >         * READ_QUEUE_OUT_PACKET_ID   = new sc_signal<Tpacket_t          >         ("READ_QUEUE_OUT_PACKET_ID   ");
    94   sc_signal<uint32_t           >         * READ_QUEUE_OUT_OPERATION   = new sc_signal<uint32_t           >         ("READ_QUEUE_OUT_OPERATION   ");
     94  sc_signal<Toperation_t       >         * READ_QUEUE_OUT_OPERATION   = new sc_signal<Toperation_t       >         ("READ_QUEUE_OUT_OPERATION   ");
    9595  sc_signal<Ttype_t            >         * READ_QUEUE_OUT_TYPE        = new sc_signal<Ttype_t            >         ("READ_QUEUE_OUT_TYPE        ");
    9696  sc_signal<Tcontrol_t         >         * READ_QUEUE_OUT_HAS_IMMEDIAT= new sc_signal<Tcontrol_t         >         ("READ_QUEUE_OUT_HAS_IMMEDIAT");
     
    163163    }
    164164
    165     // ~~~~~[ Interface "bypass_gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    166 
    167   sc_signal<Tcontrol_t         > ** BYPASS_GPR_WRITE_VAL        = new sc_signal<Tcontrol_t         > * [_param->_nb_gpr_write];
    168   sc_signal<Tcontext_t         > ** BYPASS_GPR_WRITE_CONTEXT_ID = new sc_signal<Tcontext_t         > * [_param->_nb_gpr_write];
    169   sc_signal<Tgeneral_address_t > ** BYPASS_GPR_WRITE_NUM_REG    = new sc_signal<Tgeneral_address_t > * [_param->_nb_gpr_write];
    170   sc_signal<Tgeneral_data_t    > ** BYPASS_GPR_WRITE_DATA       = new sc_signal<Tgeneral_data_t    > * [_param->_nb_gpr_write];
     165    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     166
     167  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];
     169  sc_signal<Tgeneral_address_t > ** GPR_WRITE_NUM_REG    = new sc_signal<Tgeneral_address_t > * [_param->_nb_gpr_write];
     170  sc_signal<Tgeneral_data_t    > ** GPR_WRITE_DATA       = new sc_signal<Tgeneral_data_t    > * [_param->_nb_gpr_write];
    171171
    172172  for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
    173173    {
    174       rename = "BYPASS_GPR_WRITE_"+toString(i)+"_VAL"       ;
    175       BYPASS_GPR_WRITE_VAL        [i] = new sc_signal<Tcontrol_t         > (rename.c_str());
    176       rename = "BYPASS_GPR_WRITE_"+toString(i)+"_CONTEXT_ID";
    177       BYPASS_GPR_WRITE_CONTEXT_ID [i] = new sc_signal<Tcontext_t         > (rename.c_str());
    178       rename = "BYPASS_GPR_WRITE_"+toString(i)+"_NUM_REG"   ;
    179       BYPASS_GPR_WRITE_NUM_REG    [i] = new sc_signal<Tgeneral_address_t > (rename.c_str());
    180       rename = "BYPASS_GPR_WRITE_"+toString(i)+"_DATA"      ;
    181       BYPASS_GPR_WRITE_DATA       [i] = new sc_signal<Tgeneral_data_t    > (rename.c_str());
    182     }
    183 
    184     // ~~~~~[ Interface "bypass_spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    185 
    186   sc_signal<Tcontrol_t         > ** BYPASS_SPR_WRITE_VAL        = new sc_signal<Tcontrol_t         > * [_param->_nb_spr_write];
    187   sc_signal<Tcontext_t         > ** BYPASS_SPR_WRITE_CONTEXT_ID = new sc_signal<Tcontext_t         > * [_param->_nb_spr_write];
    188   sc_signal<Tspecial_address_t > ** BYPASS_SPR_WRITE_NUM_REG    = new sc_signal<Tspecial_address_t > * [_param->_nb_spr_write];
    189   sc_signal<Tspecial_data_t    > ** BYPASS_SPR_WRITE_DATA       = new sc_signal<Tspecial_data_t    > * [_param->_nb_spr_write];
     174      rename = "GPR_WRITE_"+toString(i)+"_VAL"       ;
     175      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());
     178      rename = "GPR_WRITE_"+toString(i)+"_NUM_REG"   ;
     179      GPR_WRITE_NUM_REG    [i] = new sc_signal<Tgeneral_address_t > (rename.c_str());
     180      rename = "GPR_WRITE_"+toString(i)+"_DATA"      ;
     181      GPR_WRITE_DATA       [i] = new sc_signal<Tgeneral_data_t    > (rename.c_str());
     182    }
     183
     184    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     185
     186  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];
     188  sc_signal<Tspecial_address_t > ** SPR_WRITE_NUM_REG    = new sc_signal<Tspecial_address_t > * [_param->_nb_spr_write];
     189  sc_signal<Tspecial_data_t    > ** SPR_WRITE_DATA       = new sc_signal<Tspecial_data_t    > * [_param->_nb_spr_write];
    190190
    191191  for (uint32_t i=0; i<_param->_nb_spr_write; i++)
    192192    {
    193       rename = "BYPASS_SPR_WRITE_"+toString(i)+"_VAL"       ;
    194       BYPASS_SPR_WRITE_VAL        [i] = new sc_signal<Tcontrol_t         > (rename.c_str());
    195       rename = "BYPASS_SPR_WRITE_"+toString(i)+"_CONTEXT_ID";
    196       BYPASS_SPR_WRITE_CONTEXT_ID [i] = new sc_signal<Tcontext_t         > (rename.c_str());
    197       rename = "BYPASS_SPR_WRITE_"+toString(i)+"_NUM_REG"   ;
    198       BYPASS_SPR_WRITE_NUM_REG    [i] = new sc_signal<Tspecial_address_t > (rename.c_str());
    199       rename = "BYPASS_SPR_WRITE_"+toString(i)+"_DATA"      ;
    200       BYPASS_SPR_WRITE_DATA       [i] = new sc_signal<Tspecial_data_t    > (rename.c_str());
     193      rename = "SPR_WRITE_"+toString(i)+"_VAL"       ;
     194      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());
     197      rename = "SPR_WRITE_"+toString(i)+"_NUM_REG"   ;
     198      SPR_WRITE_NUM_REG    [i] = new sc_signal<Tspecial_address_t > (rename.c_str());
     199      rename = "SPR_WRITE_"+toString(i)+"_DATA"      ;
     200      SPR_WRITE_DATA       [i] = new sc_signal<Tspecial_data_t    > (rename.c_str());
    201201    }
    202202
     
    277277  for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
    278278    {
    279       (*(_Read_queue-> in_BYPASS_GPR_WRITE_VAL        [i])) (*(BYPASS_GPR_WRITE_VAL        [i]));
    280       (*(_Read_queue-> in_BYPASS_GPR_WRITE_CONTEXT_ID [i])) (*(BYPASS_GPR_WRITE_CONTEXT_ID [i]));
    281       (*(_Read_queue-> in_BYPASS_GPR_WRITE_NUM_REG    [i])) (*(BYPASS_GPR_WRITE_NUM_REG    [i]));
    282       (*(_Read_queue-> in_BYPASS_GPR_WRITE_DATA       [i])) (*(BYPASS_GPR_WRITE_DATA       [i]));
     279      (*(_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]));
     281      (*(_Read_queue-> in_GPR_WRITE_NUM_REG    [i])) (*(GPR_WRITE_NUM_REG    [i]));
     282      (*(_Read_queue-> in_GPR_WRITE_DATA       [i])) (*(GPR_WRITE_DATA       [i]));
    283283    }
    284284 
    285285  for (uint32_t i=0; i<_param->_nb_spr_write; i++)
    286286    {
    287       (*(_Read_queue-> in_BYPASS_SPR_WRITE_VAL        [i])) (*(BYPASS_SPR_WRITE_VAL        [i]));
    288       (*(_Read_queue-> in_BYPASS_SPR_WRITE_CONTEXT_ID [i])) (*(BYPASS_SPR_WRITE_CONTEXT_ID [i]));
    289       (*(_Read_queue-> in_BYPASS_SPR_WRITE_NUM_REG    [i])) (*(BYPASS_SPR_WRITE_NUM_REG    [i]));
    290       (*(_Read_queue-> in_BYPASS_SPR_WRITE_DATA       [i])) (*(BYPASS_SPR_WRITE_DATA       [i]));
     287      (*(_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]));
     289      (*(_Read_queue-> in_SPR_WRITE_NUM_REG    [i])) (*(SPR_WRITE_NUM_REG    [i]));
     290      (*(_Read_queue-> in_SPR_WRITE_DATA       [i])) (*(SPR_WRITE_DATA       [i]));
    291291    }
    292292
     
    321321
    322322//   for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
    323 //     BYPASS_GPR_WRITE_VAL    [i]->write (0);
     323//     GPR_WRITE_VAL    [i]->write (0);
    324324//   for (uint32_t i=0; i<_param->_nb_spr_write; i++)
    325 //     BYPASS_SPR_WRITE_VAL    [i]->write (0);
     325//     SPR_WRITE_VAL    [i]->write (0);
    326326
    327327  NRESET->write(0);
     
    337337      int32_t percent_transaction_queue_out    = (rand()%50)+25;
    338338      int32_t percent_registerfile_valid       = (rand()%50)+25;
    339       int32_t percent_transaction_registerfile = (rand()%50)+25;
     339      int32_t percent_transaction_registerfile = (rand()%74)+25;
    340340      int32_t percent_transaction_bypass       = (rand()%50)+25;
    341341     
     
    368368        }
    369369      // End initialisation .......
    370 
     370     
    371371      uint32_t request_in  = 0;
    372372      uint32_t request_out = 0;
     
    437437              Tgeneral_data_t    data    = rand()%(1<<_param->_size_general_data);
    438438             
    439               BYPASS_GPR_WRITE_VAL        [i]->write(val);           
    440               BYPASS_GPR_WRITE_CONTEXT_ID [i]->write(context);
    441               BYPASS_GPR_WRITE_NUM_REG    [i]->write(num_reg);
    442               BYPASS_GPR_WRITE_DATA       [i]->write(data);
     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);
    443443
    444444              if (val)
     
    455455              Tspecial_data_t    data    = rand()%(1<<_param->_size_special_data);
    456456             
    457               BYPASS_SPR_WRITE_VAL        [i]->write(val);           
    458               BYPASS_SPR_WRITE_CONTEXT_ID [i]->write(context);
    459               BYPASS_SPR_WRITE_NUM_REG    [i]->write(num_reg);
    460               BYPASS_SPR_WRITE_DATA       [i]->write(data);
     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);
    461461
    462462              if (val)
     
    483483
    484484              LABEL("Accepted READ_QUEUE_OUT ["+toString(packet_id)+"]");
    485 
     485             
    486486              TEST(uint32_t          , packet_id ,request_out);
    487487             
     
    579579  delete [] SPR_READ_DATA_VAL;
    580580
    581   delete [] BYPASS_GPR_WRITE_VAL        ;
    582   delete [] BYPASS_GPR_WRITE_CONTEXT_ID ;
    583   delete [] BYPASS_GPR_WRITE_NUM_REG    ;
    584   delete [] BYPASS_GPR_WRITE_DATA       ;
    585 
    586   delete [] BYPASS_SPR_WRITE_VAL        ;
    587   delete [] BYPASS_SPR_WRITE_CONTEXT_ID ;
    588   delete [] BYPASS_SPR_WRITE_NUM_REG    ;
    589   delete [] BYPASS_SPR_WRITE_DATA       ;
     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       ;
    590590#endif
    591591
Note: See TracChangeset for help on using the changeset viewer.