Ignore:
Timestamp:
Feb 1, 2011, 9:57:54 PM (13 years ago)
Author:
rosiere
Message:

1) Integration of RegisterFile_Internal_Banked in RegisterFile?
2) Erase "read_write" interface in RegisterFile_Monolithic component
3) Add smith predictor parameters in Load_store_pointer_unit.
4) Fix not statistics flags

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp

    r131 r146  
    7373  sc_signal<Tdata_t>                       WRITE_DATA    [_param->_nb_port_write];
    7474
    75   sc_signal<Tcontrol_t>                    READ_WRITE_VAL     [_param->_nb_port_read_write];
    76   sc_signal<Tcontrol_t>                    READ_WRITE_ACK     [_param->_nb_port_read_write];
    77   sc_signal<Tcontrol_t>                    READ_WRITE_RW      [_param->_nb_port_read_write];
    78   sc_signal<Taddress_t>                    READ_WRITE_ADDRESS [_param->_nb_port_read_write];
    79   sc_signal<Tdata_t>                       READ_WRITE_RDATA   [_param->_nb_port_read_write];
    80   sc_signal<Tdata_t>                       READ_WRITE_WDATA   [_param->_nb_port_read_write];
    81 
    8275  /********************************************************
    8376   * Instanciation
     
    10598      (*(registerfile-> in_WRITE_DATA    [i]))        (WRITE_DATA    [i]);
    10699    }
    107   for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
    108     {
    109       (*(registerfile-> in_READ_WRITE_VAL     [i])) (READ_WRITE_VAL      [i]);
    110       (*(registerfile->out_READ_WRITE_ACK     [i])) (READ_WRITE_ACK      [i]);
    111       (*(registerfile-> in_READ_WRITE_RW      [i])) (READ_WRITE_RW       [i]);
    112       if (_param->_have_port_address)
    113       (*(registerfile-> in_READ_WRITE_ADDRESS [i])) (READ_WRITE_ADDRESS  [i]);
    114       (*(registerfile-> in_READ_WRITE_WDATA   [i])) (READ_WRITE_WDATA    [i]);
    115       (*(registerfile->out_READ_WRITE_RDATA   [i])) (READ_WRITE_RDATA    [i]);
    116     }
    117100 
    118101  cout << "<" << name << "> Start Simulation ............" << endl;
     
    131114  for (uint32_t i=0; i<_param->_nb_port_read; i++)
    132115    READ_VAL  [i] .write (0);
    133   for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
    134     READ_WRITE_VAL  [i] .write (0);
    135116
    136117  NRESET.write(0);
     
    144125  for (uint32_t i=0; i<_param->_nb_port_read; i++)
    145126    TEST(Tcontrol_t,READ_ACK  [i],1);
    146   for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
    147     TEST(Tcontrol_t,READ_WRITE_ACK  [i],1);
    148127
    149128  for (uint32_t nb_iteration=0; nb_iteration < NB_ITERATION; nb_iteration ++)
     
    187166            }
    188167
    189           for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)
    190             {
    191               if ((address_next < _param->_nb_word) and
    192                   (READ_WRITE_VAL [num_port].read() == 0))
    193                 {
    194                   cout << "(" << num_port << ") [" << address_next << "] <= " << tab[address_next] << endl;
    195                  
    196                   READ_WRITE_VAL     [num_port] .write(1);
    197                   READ_WRITE_RW      [num_port] .write(RW_WRITE);
    198                   READ_WRITE_WDATA   [num_port] .write(tab[address_next]);
    199                   READ_WRITE_ADDRESS [num_port] .write(address_next++);
    200                  
    201                   // Address can be not a multiple of nb_port_write
    202                   if (address_next >= _param->_nb_word)
    203                     break;
    204                 }
    205             }
    206          
    207168          SC_START(1);
    208169
     
    217178                }
    218179            }
    219           // reset write_val port
    220           for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)
    221             {
    222               if ((READ_WRITE_ACK [num_port].read() == 1) and
    223                   (READ_WRITE_VAL [num_port].read() == 1))
    224                 {
    225                   READ_WRITE_VAL  [num_port] .write(0);
    226                   nb_ack ++;
    227                 }
    228             }
    229180
    230181//        SC_START(0);
     
    237188     
    238189      Tdata_t read_address       [_param->_nb_port_read];
    239       Tdata_t read_write_address [_param->_nb_port_read_write];
    240190
    241191      while (nb_ack < _param->_nb_word)
     
    258208            }
    259209
    260           for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)
    261             {
    262               if ((address_next < _param->_nb_word) and
    263                   (READ_WRITE_VAL [num_port].read() == 0))
    264                 {
    265                   read_write_address [num_port] = address_next++;
    266 
    267                   READ_WRITE_VAL     [num_port].write(1);
    268                   READ_WRITE_RW      [num_port].write(RW_READ);
    269                   READ_WRITE_ADDRESS [num_port].write(read_write_address [num_port]);
    270 
    271                   if (address_next >= _param->_nb_word)
    272                     break;
    273                 }
    274             }
    275 
    276210
    277211          SC_START(1);
     
    288222
    289223                  TEST(Tdata_t,READ_DATA [num_port].read(), tab[read_address [num_port]]);
    290                   nb_ack ++;
    291                 }
    292             }
    293 
    294           for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)
    295             {
    296               if ((READ_WRITE_ACK [num_port].read() == 1) and
    297                   (READ_WRITE_VAL [num_port].read() == 1))
    298                 {
    299                   READ_WRITE_VAL  [num_port] .write(0);
    300 
    301                   cout << "(" << num_port << ") [" << read_write_address [num_port] << "] => " << READ_WRITE_RDATA [num_port].read() << endl;
    302 
    303                   TEST(Tdata_t,READ_WRITE_RDATA [num_port].read(), tab[read_write_address [num_port]]);
    304224                  nb_ack ++;
    305225                }
Note: See TracChangeset for help on using the changeset viewer.