Ignore:
Timestamp:
Jun 17, 2009, 2:11:25 PM (15 years ago)
Author:
rosiere
Message:

1) Add test and configuration
2) Fix Bug
3) Add log file in load store unit
4) Fix Bug in environment

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h

    r88 r124  
    3232  public : const uint32_t    _nb_port_write_by_bank; // Local  write port
    3333  public : const Tcrossbar_t _crossbar             ;
     34  public : const bool        _have_init_value;
     35  public : const std::string _init_value;
    3436
    3537  public : const uint32_t    _size_address         ;
     
    6062                        uint32_t    nb_port_read_by_bank ,
    6163                        uint32_t    nb_port_write_by_bank,
    62                         Tcrossbar_t crossbar             );
     64                        Tcrossbar_t crossbar             ,
     65                        std::string init_value=""        );
    6366//   public : Parameters  (Parameters & param) ;
    6467  public : ~Parameters () ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp

    r88 r124  
    2323                          uint32_t    nb_port_read_by_bank ,
    2424                          uint32_t    nb_port_write_by_bank,
    25                           Tcrossbar_t crossbar             ):
     25                          Tcrossbar_t crossbar             ,
     26                          std::string init_value
     27                          ):
    2628    _nb_port_read          (nb_port_read         ),
    2729    _nb_port_write         (nb_port_write        ),
     
    3234    _nb_port_write_by_bank (nb_port_write_by_bank),
    3335    _crossbar              (crossbar             ),
     36    _have_init_value       (init_value != ""     ),
     37    _init_value            (init_value           ),
    3438    _size_address          (static_cast<uint32_t>(ceil(log2(_nb_word)))),
    3539    _size_address_by_bank  (_size_address - static_cast<uint32_t>(ceil(log2(_nb_bank)))),
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp

    r111 r124  
    2525    // call function pointer
    2626//     (this->*function_transition) ();
    27 
    28     for (uint32_t i=0; i<_param->_nb_port_write; i++)
     27    if (_param->_have_init_value and (PORT_READ(in_NRESET) == 0))
    2928      {
    30         if (internal_WRITE_VAL [i] == 1)
    31           {
    32             Tdata_t data = PORT_READ(in_WRITE_DATA   [i]);
    33            
    34             // Write in registerFile
    35             reg_DATA[internal_WRITE_BANK[i]][internal_WRITE_NUM_REG[i]] = data;
    36           }
     29        for (uint32_t i=0; i<_param->_nb_bank; ++i)
     30          for (uint32_t j=0; j<_param->_nb_word; ++j)
     31          reg_DATA[i][j] = fromString<Tdata_t>(_param->_init_value);
     32      }
     33    else
     34      {
     35        for (uint32_t i=0; i<_param->_nb_port_write; i++)
     36          {
     37            if (internal_WRITE_VAL [i] == 1)
     38              {
     39                Tdata_t data = PORT_READ(in_WRITE_DATA   [i]);
     40               
     41                // Write in registerFile
     42                reg_DATA[internal_WRITE_BANK[i]][internal_WRITE_NUM_REG[i]] = data;
     43              }
     44          }
    3745      }
    3846
Note: See TracChangeset for help on using the changeset viewer.