Changeset 66


Ignore:
Timestamp:
Dec 6, 2007, 11:03:00 AM (16 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
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  
    11Read_queue
    222       8       *2      # size_queue   
    3 4       4       *2      # nb_context         
     31       1       *2      # nb_context         
     41       1       *2      # nb_front_end       
     54       4       *2      # nb_ooo_engine     
    4632      32      *2      # nb_packet         
    5716      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  
    11Read_queue
    224       4       *2      # size_queue   
    3 4       4       *2      # nb_context         
     31       1       *2      # nb_context         
     41       1       *2      # nb_front_end
     51       1       *2      # nb_ooo_engine
    4632      32      *2      # nb_packet         
    5716      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  
    88#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h"
    99
    10 #define NB_PARAMS 0
     10#define NB_PARAMS 13
    1111
    1212void usage (int argc, char * argv[])
     
    1616       << " - size_queue          (unsigned int)" << endl
    1717       << " - nb_context          (unsigned int)" << endl
     18       << " - nb_front_end        (unsigned int)" << endl
     19       << " - nb_ooo_engine       (unsigned int)" << endl
    1820       << " - nb_packet           (unsigned int)" << endl
    1921       << " - size_general_data   (unsigned int)" << endl
     
    4042#endif
    4143{
    42   if (argc < 2+NB_PARAMS)
     44  if (argc != 2+NB_PARAMS)
    4345    usage (argc, argv);
    4446
    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++]);
    5762
    5863  try
     
    6166        ( size_queue   
    6267         ,nb_context         
     68         ,nb_front_end       
     69         ,nb_ooo_engine
    6370         ,nb_packet         
    6471         ,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  
    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
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h

    r55 r66  
    1111#include "Common/include/Debug.h"
    1212#include "Behavioural/include/Parameters.h"
     13#include "Behavioural/include/Types.h"
     14
    1315#include <math.h>
    1416
     
    2830  public : const uint32_t    _size_queue           ;
    2931  public : const uint32_t    _nb_context           ;
     32  public : const uint32_t    _nb_front_end         ;
     33  public : const uint32_t    _nb_ooo_engine        ;
    3034  public : const uint32_t    _nb_packet            ;
    3135  public : const uint32_t    _size_general_data    ;
     
    4145  public : const uint32_t    _nb_spr_read          ;   
    4246  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          ;
    4450  public : const uint32_t    _size_general_register;
    4551  public : const uint32_t    _size_special_register;
     
    5056  public : Parameters  (uint32_t size_queue         ,
    5157                        uint32_t nb_context         ,
     58                        uint32_t nb_front_end       ,
     59                        uint32_t nb_ooo_engine      ,
    5260                        uint32_t nb_packet          ,
    5361                        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  
    1717#include "Common/include/ToString.h"
    1818#include "Common/include/Debug.h"
     19#include "Behavioural/include/Types.h"
    1920
    2021#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"
    2222#ifdef STATISTICS
    2323#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Statistics.h"
     
    4242  {
    4343  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       ;
    4547  public    : Toperation_t       _operation    ;
    4648  public    : Ttype_t            _type         ;
     
    6163                                morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x)
    6264    {
    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;
    7983
    8084      return output_stream;
     
    8690  {
    8791  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       ;
    8995  public    : Toperation_t       _operation    ;
    9096  public    : Ttype_t            _type         ;
     
    118124         
    119125      _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       ;
    121129      _operation    = x._operation    ;
    122130      _type         = x._type         ;
     
    151159                                morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x)
    152160    {
    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;
    178188
    179189      return output_stream;
     
    209219  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_IN_ACK          ;
    210220  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       ;
    212224  public    : SC_IN (Toperation_t      )    *  in_READ_QUEUE_IN_OPERATION    ;
    213225  public    : SC_IN (Ttype_t           )    *  in_READ_QUEUE_IN_TYPE         ;
     
    229241  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_VAL         ;
    230242  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       ;
    233247  public    : SC_OUT(Toperation_t      )    * out_READ_QUEUE_OUT_OPERATION   ;
    234248  public    : SC_OUT(Ttype_t           )    * out_READ_QUEUE_OUT_TYPE        ;
     
    254268    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    255269
    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     ;
    262276
    263277    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    264278
    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     ;
    271285
    272286    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    273287
    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         ;
    278292
    279293    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    280294
    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         ;
    285299
    286300    // ~~~~~[ 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  
    2020  Parameters::Parameters (uint32_t size_queue         ,
    2121                          uint32_t nb_context         ,
     22                          uint32_t nb_front_end       ,
     23                          uint32_t nb_ooo_engine      ,
    2224                          uint32_t nb_packet          ,
    2325                          uint32_t size_general_data  ,
     
    3133    _size_queue            (size_queue           ),
    3234    _nb_context            (nb_context           ),
     35    _nb_front_end          (nb_front_end         ),
     36    _nb_ooo_engine         (nb_ooo_engine        ),
    3337    _nb_packet             (nb_packet            ),
    3438    _size_general_data     (size_general_data    ),
     
    4448    _nb_spr_read           (1                    ),
    4549    _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          ))),
    4753    _size_general_register (static_cast<uint32_t>(log2(_nb_general_register))),
    4854    _size_special_register (static_cast<uint32_t>(log2(_nb_special_register))),
     
    5864    _size_queue            (param._size_queue            ),
    5965    _nb_context            (param._nb_context            ),
     66    _nb_front_end          (param._nb_front_end          ),
     67    _nb_ooo_engine         (param._nb_ooo_engine         ),
    6068    _nb_packet             (param._nb_packet             ),
    6169    _size_general_data     (param._size_general_data     ),
     
    7179    _nb_spr_read           (param._nb_spr_read           ),
    7280    _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           ),
    7484    _size_general_register (param._size_general_register ),
    7585    _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  
    77
    88#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"
    109#include <sstream>
    1110using 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  
    2929    xml.singleton_begin("size_queue         "); xml.attribut("value",toString(_size_queue         )); xml.singleton_end();
    3030    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();
    3133    xml.singleton_begin("nb_packet          "); xml.attribut("value",toString(_nb_packet          )); xml.singleton_end();
    3234    xml.singleton_begin("size_general_data  "); xml.attribut("value",toString(_size_general_data  )); xml.singleton_end();
     
    3638    xml.singleton_begin("nb_operation       "); xml.attribut("value",toString(_nb_operation       )); xml.singleton_end();
    3739    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();
    3941    xml.singleton_begin("nb_spr_write       "); xml.attribut("value",toString(_nb_spr_write       )); xml.singleton_end();
    4042    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  
    7878    for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
    7979      sensitive << *(in_GPR_WRITE_VAL        [i])
    80                 << *(in_GPR_WRITE_CONTEXT_ID [i])
     80                << *(in_GPR_WRITE_OOO_ENGINE_ID [i])
    8181                << *(in_GPR_WRITE_NUM_REG    [i]);
    8282    for (uint32_t i=0; i<_param->_nb_spr_write; i++)
    8383      sensitive << *(in_SPR_WRITE_VAL        [i])
    84                 << *(in_SPR_WRITE_CONTEXT_ID [i])
     84                << *(in_SPR_WRITE_OOO_ENGINE_ID [i])
    8585                << *(in_SPR_WRITE_NUM_REG    [i]);
    8686
     
    9494      {
    9595        (*(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]));
    9797        (*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_NUM_REG    [i]));
    9898      }
     
    100100      {
    101101        (*(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]));
    103103        (*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_NUM_REG    [i]));
    104104      }
     
    116116    for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
    117117      sensitive << *(in_GPR_WRITE_VAL        [i])
    118                 << *(in_GPR_WRITE_CONTEXT_ID [i])
     118                << *(in_GPR_WRITE_OOO_ENGINE_ID [i])
    119119                << *(in_GPR_WRITE_NUM_REG    [i])
    120120                << *(in_GPR_WRITE_DATA       [i]);
     
    134134      {
    135135        (*(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]));
    137137        (*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_NUM_REG    [i]));
    138138        (*(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]));
    140140        (*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_NUM_REG    [i]));
    141141
    142142        (*(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]));
    144144        (*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_NUM_REG    [i]));
    145145        (*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_DATA       [i]));
    146146        (*(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]));
    148148        (*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_NUM_REG    [i]));
    149149        (*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_DATA       [i]));
     
    162162    for (uint32_t i=0; i<_param->_nb_spr_write; i++)
    163163      sensitive << *(in_SPR_WRITE_VAL        [i])
    164                 << *(in_SPR_WRITE_CONTEXT_ID [i])
     164                << *(in_SPR_WRITE_OOO_ENGINE_ID [i])
    165165                << *(in_SPR_WRITE_NUM_REG    [i])
    166166                << *(in_SPR_WRITE_DATA       [i]);
     
    177177      {
    178178        (*(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]));
    180180        (*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_NUM_REG    [i]));
    181181
    182182        (*(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]));
    184184        (*(out_READ_QUEUE_OUT_DATA_RC    )) (*(in_SPR_WRITE_NUM_REG    [i]));
    185185        (*(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  
    6262       in_READ_QUEUE_IN_VAL            = interface->set_signal_valack_in        ("val"    , VAL);
    6363      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           );
    6668       in_READ_QUEUE_IN_OPERATION      = interface->set_signal_in  <Toperation_t      > ("operation"   ,_param->_size_operation        );
    6769       in_READ_QUEUE_IN_TYPE           = interface->set_signal_in  <Ttype_t           > ("type"        ,_param->_size_type             );
     
    9294      out_READ_QUEUE_OUT_VAL            = interface->set_signal_valack_out       ("val"    , VAL);
    9395       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           );
    96101      out_READ_QUEUE_OUT_OPERATION      = interface->set_signal_out <Toperation_t      > ("operation"   ,_param->_size_operation        );
    97102      out_READ_QUEUE_OUT_TYPE           = interface->set_signal_out <Ttype_t           > ("type"        ,_param->_size_type             );
     
    118123    // ~~~~~[ Interface : "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    119124   
    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];
    126131
    127132    for (uint32_t i=0; i<_param->_nb_gpr_read; i++)
     
    135140                                                                );
    136141
    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);
    143148      }
    144149     
    145150    // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    146151   
    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];
    153158
    154159    for (uint32_t i=0; i<_param->_nb_spr_read; i++)
     
    162167                                                                );
    163168
    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);
    170175      }
    171176
    172177    // ~~~~~[ Interface : "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    173178   
    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];
    178183
    179184    for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
     
    187192                                                                );
    188193
    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);
    193198      }
    194199
    195200    // ~~~~~[ Interface : "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    196201   
    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];
    201206
    202207    for (uint32_t i=0; i<_param->_nb_spr_write; i++)
     
    210215                                                                );
    211216
    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);
    216221      }
    217222
  • 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  
    3131    delete    out_READ_QUEUE_IN_ACK            ;
    3232    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         ;
    3436    delete     in_READ_QUEUE_IN_OPERATION      ;
    3537    delete     in_READ_QUEUE_IN_TYPE           ;
     
    5153    delete     in_READ_QUEUE_OUT_ACK            ;
    5254    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         ;
    5458    delete    out_READ_QUEUE_OUT_OPERATION      ;
    5559    delete    out_READ_QUEUE_OUT_TYPE           ;
     
    7781    delete [] out_GPR_READ_VAL       ;
    7882    delete []  in_GPR_READ_ACK       ;
    79     delete [] out_GPR_READ_CONTEXT_ID;
     83    delete [] out_GPR_READ_OOO_ENGINE_ID;
    8084    delete [] out_GPR_READ_NUM_REG   ;
    8185    delete []  in_GPR_READ_DATA      ;
     
    8690    delete [] out_SPR_READ_VAL       ;
    8791    delete []  in_SPR_READ_ACK       ;
    88     delete [] out_SPR_READ_CONTEXT_ID;
     92    delete [] out_SPR_READ_OOO_ENGINE_ID;
    8993    delete [] out_SPR_READ_NUM_REG   ;
    9094    delete []  in_SPR_READ_DATA      ;
     
    9498   
    9599    delete []  in_GPR_WRITE_VAL       ;
    96     delete []  in_GPR_WRITE_CONTEXT_ID;
     100    delete []  in_GPR_WRITE_OOO_ENGINE_ID;
    97101    delete []  in_GPR_WRITE_NUM_REG   ;
    98102    delete []  in_GPR_WRITE_DATA      ;
     
    101105   
    102106    delete []  in_SPR_WRITE_VAL       ;
    103     delete []  in_SPR_WRITE_CONTEXT_ID;
     107    delete []  in_SPR_WRITE_OOO_ENGINE_ID;
    104108    delete []  in_SPR_WRITE_NUM_REG   ;
    105109    delete []  in_SPR_WRITE_DATA      ;
    106110
    107111    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     112
    108113    while (_queue->empty() == false)
    109114      {
     
    111116        _queue->pop();
    112117      }
    113    
    114118    delete _queue;
    115119    delete _queue_head;
    116 
    117120    delete _component;
    118 
    119121    log_printf(FUNC,Read_queue,"deallocation","End");
    120122  };
  • 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  
    6666      {
    6767        // Test if this bypass is valid
    68         if ( (PORT_READ (in_GPR_WRITE_VAL        [i]) == 1) and
    69              (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)
    7070             )
    7171          {
  • 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  
    5151      {
    5252        // Test if this bypass is valid
    53         if ( (PORT_READ (in_SPR_WRITE_VAL        [i]) == 1) and
    54              (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)
    5555             )
    5656          {
  • 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  
    4242      {
    4343        // Test if this bypass is valid
    44         if ( (PORT_READ (in_GPR_WRITE_VAL        [i]) == 1) and
    45              (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)
    4646             )
    4747          {
     
    5959      {
    6060        // Test if this bypass is valid
    61         if ( (PORT_READ (in_SPR_WRITE_VAL        [i]) == 1) and
    62              (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)
    6363             )
    6464          {
  • 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  
    3333//  PORT_WRITE (out_READ_QUEUE_OUT_VAL         , not_empty    );              // in genMealy_val
    3434
    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      );
    3739    PORT_WRITE (out_READ_QUEUE_OUT_OPERATION   , _queue_head->_operation   );
    3840    PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
     
    5759
    5860    // ~~~~~[ 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);
    6567
    6668    // ~~~~~[ 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);
    7072                   
    7173    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  
    5757
    5858            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      );
    6062            entry->_operation    = PORT_READ(in_READ_QUEUE_IN_OPERATION   );
    6163            entry->_type         = PORT_READ(in_READ_QUEUE_IN_TYPE        );
     
    7375            entry->_num_reg_re   = PORT_READ(in_READ_QUEUE_IN_NUM_REG_RE  );
    7476
    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);
    7678            _queue->push(entry);
    7779
     
    9193          {
    9294            // 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);
    9496            _queue->pop();
    9597
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp

    r62 r66  
    5252        SC_METHOD (transition);
    5353        dont_initialize ();
    54         sensitive_pos << *(in_CLOCK);
     54        sensitive << (*(in_CLOCK)).pos();
    5555       
    5656        SC_METHOD (genMealy_read);
    5757        dont_initialize ();
    58         sensitive_neg << *(in_CLOCK);
     58        sensitive << (*(in_CLOCK)).neg();
    5959        for (uint32_t i=0; i<_param->_nb_port_read; i++)
    6060          {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp

    r42 r66  
    4646    SC_METHOD (transition);
    4747    dont_initialize ();
    48     sensitive_pos << *(in_CLOCK);
     48    sensitive << (*(in_CLOCK)).pos();
    4949#endif
    5050
    5151    SC_METHOD (genMealy_shift);
    5252    dont_initialize ();
    53     sensitive_neg << *(in_CLOCK);
     53    sensitive << (*(in_CLOCK)).neg();
    5454    for (uint32_t i=0; i<param._nb_port; i++)
    5555      {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp

    r42 r66  
    5252    SC_METHOD (transition);
    5353    dont_initialize ();
    54     sensitive_pos << *(in_CLOCK);
     54    sensitive << (*(in_CLOCK)).pos();
    5555
    5656    SC_METHOD (genMealy_access);
    5757    dont_initialize ();
    58     sensitive_neg << *(in_CLOCK);
     58    sensitive << (*(in_CLOCK)).neg();
    5959    for (uint32_t i=0; i<_param._nb_access; i++)
    6060      {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.flags

    r64 r66  
    66
    77#-----[ Simulator ]----------------------------------------
    8 SIMULATOR                       = systemcass_deps
     8#SIMULATOR                      = systemcass_deps
     9SIMULATOR                       = systemc
    910
    1011# 3 simulators :
     
    1415
    1516#-----[ 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
     23MORPHEO_FLAGS                   =       -DSYSTEMC               
    2124
    2225#
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf

    r62 r66  
    33#
    44
    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/SelfTest
     5all: _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
    66
    77_Generic/RegisterFile/RegisterFile_Monolithic/SelfTest:
     
    1414        make all -C Generic/Select/Select_Priority_Fixed/SelfTest
    1515
     16_Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest:
     17        make all -C Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest
     18
    1619_Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest:
    1720        make all -C Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest
     
    2124        make clean -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest
    2225        make clean -C Generic/Select/Select_Priority_Fixed/SelfTest
     26        make clean -C Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest
    2327        make clean -C Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest
    2428
     
    2933        make install -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest
    3034        make install -C Generic/Select/Select_Priority_Fixed/SelfTest
     35        make install -C Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest
    3136        make install -C Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest
    3237
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp

    r57 r66  
    6161    SC_METHOD (transition);
    6262    dont_initialize ();
    63     sensitive_pos << *(in_CLOCK);
     63    sensitive << (*(in_CLOCK)).pos();
    6464//#endif
    6565
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h

    r62 r66  
    22#define DEBUG_COMPONENT_H
    33
    4 #define DEBUG_Behavioural                                         false
     4#define DEBUG_Behavioural                                         true
    55#define   DEBUG_Generic                                           false
    66#define     DEBUG_Counter                                         false
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h

    r59 r66  
    1414  // ***** general
    1515  typedef bool          Tcontrol_t;
    16   typedef uint8_t       Toperation_t;
    17 //typedef uint8_t       Tdestination1_t;
    18 //typedef uint8_t       Tdestination2_t;
    19 //typedef uint8_t       Texec_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;
    2020//typedef bool          Texec_excep_t;
    21 //typedef uint8_t       Tcondition_t;
    22 //typedef uint8_t       Tbranch_state_t;
     21//typedef uint32_t      Tcondition_t;
     22//typedef uint32_t      Tbranch_state_t;
    2323
    24   typedef uint8_t       Texception_t;
    25   typedef uint8_t       Tcontext_t;
    26   typedef uint8_t       Tpacket_t;
    27   typedef uint8_t       Ttype_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;
    2828
    2929  // ***** Register
    30   typedef uint8_t       Tgeneral_address_t;
     30  typedef uint32_t      Tgeneral_address_t;
    3131  typedef uint32_t      Tgeneral_data_t;
    32   typedef uint8_t       Tspecial_address_t;
     32  typedef uint32_t      Tspecial_address_t;
    3333  typedef uint32_t      Tspecial_data_t;
    3434
    3535  // ***** component dependant
    3636  // ~~~~~ load store queue
    37   typedef uint8_t       Taccess_t;
    38   typedef uint8_t       Tlsq_ptr_t;
     37  typedef uint32_t      Taccess_t;
     38  typedef uint32_t      Tlsq_ptr_t;
    3939  typedef uint32_t      Tdcache_address_t;
    4040  typedef uint32_t      Tdcache_data_t;
    4141  typedef bool          Tdcache_error_t;
    42   typedef uint8_t       Tdcache_type_t;
     42  typedef uint32_t      Tdcache_type_t;
    4343
    4444}; // end namespace behavioural
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info

    r62 r66  
    1919target_dep              all             Generic/Select/Select_Priority_Fixed/SelfTest
    2020target_dep              all             Generic/RegisterFile/RegisterFile_Monolithic/SelfTest
     21target_dep              all             Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest
    2122target_dep              all             Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest
    2223# mkf include path
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_testbench_generate_file.cpp

    r44 r66  
    4242    vhdl->set_body("instance_"+_name+" : "+_name);
    4343    vhdl->set_body("port map (");
    44    
     44
    4545    list<string>::iterator i   = list_signal->begin();
    4646    if (i != list_signal->end())
     
    101101    vhdl->set_body("end process;");
    102102
    103 
    104103    vhdl->generate_file(false,true);
    105104
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp

    r62 r66  
    5353            }
    5454        else
     55#ifdef SYSTEMCASS_SPECIFIC
    5556          if ((_direction == OUT) and (signal_dest->_direction == IN ))
    5657            switch (_type_info)
     
    6465              }
    6566          else
     67#endif
    6668            if ((_direction == OUT) and (signal_dest->_direction == OUT))
    6769              switch (_type_info)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_std_logic.cpp

    r57 r66  
    5353  {
    5454    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
     55    cout << toString(value) << endl;
    5556    string _return = std_logic_conv(size,toString(value));
    5657    log_printf(FUNC,Behavioural,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Common/include/ToString.h

    r43 r66  
    55 * $Id$
    66 *
    7  * [ Description ]
     7 * with a stephane dubuisson initial idea
     8 *
     9 * [ Description ]
    810 *
    911 */
     
    2325  template<typename T> inline std::string toString             (const T& x)
    2426  {
    25     ostringstream out;
     27    ostringstream out("");
    2628    out << x;
    2729    return out.str();
     
    3032  template<>           inline std::string toString<bool>       (const bool& x)
    3133  {
    32     ostringstream out;
     34    ostringstream out("");
    3335    //out << boolalpha << x;
    3436    out << x;
     
    3941  {
    4042    const int sigdigits = std::numeric_limits<float>::digits10;
    41     ostringstream out;
     43    ostringstream out("");
    4244    out << setprecision(sigdigits) << x;
    4345    return out.str();
     
    4749  {
    4850    const int sigdigits = std::numeric_limits<double>::digits10;
    49     ostringstream out;
     51    ostringstream out("");
    5052    out << setprecision(sigdigits) << x;
    5153    return out.str();
     
    5557  {
    5658    const int sigdigits = std::numeric_limits<long double>::digits10;
    57     ostringstream out;
     59    ostringstream out("");
    5860    out << setprecision(sigdigits) << x;
    5961    return out.str();
    6062  }
     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//   }
    61105 
    62106}; // end namespace morpheo             
Note: See TracChangeset for help on using the changeset viewer.