Ignore:
Timestamp:
Jun 26, 2009, 10:43:23 AM (15 years ago)
Author:
rosiere
Message:

1) Correct bug in link two signal
2) Fix error detected with valgrind
3) modif distexe script

File:
1 edited

Legend:

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

    r111 r128  
    2222    log_function(RegisterFile_Monolithic,FUNCTION,_name.c_str());
    2323
    24     if (_param->_have_init_value and (PORT_READ(in_NRESET) == 0))
     24    if (PORT_READ(in_NRESET) == 0)
    2525      {
    26         for (uint32_t i=0; i<_param->_nb_word; ++i)
    27           reg_DATA[i] = fromString<Tdata_t>(_param->_init_value);
     26        if (_param->_have_init_value)
     27          {
     28            for (uint32_t i=0; i<_param->_nb_word; ++i)
     29              reg_DATA[i] = fromString<Tdata_t>(_param->_init_value);
     30          }
     31        else
     32          {
     33            for (uint32_t i=0; i<_param->_nb_word; ++i)
     34              reg_DATA[i] = 0;
     35          }
    2836      }
    2937    else
     
    3139        for (uint32_t i=0; i<_param->_nb_port_write; i++)
    3240          {
     41            log_printf(TRACE,RegisterFile,FUNCTION,"  * WRITE [%d] : %d",i,PORT_READ(in_WRITE_VAL[i]));
     42
    3343            // Have a write?
    3444            if ( PORT_READ(in_WRITE_VAL[i]) == true)
     
    3848                  (*_stat_nb_write) ++;
    3949#endif   
    40                
     50
    4151                Taddress_t address = (_param->_have_port_address)?PORT_READ(in_WRITE_ADDRESS[i]):0;
    4252                Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
     53
     54                log_printf(TRACE,RegisterFile,FUNCTION,"    * address : %d",address);
     55                log_printf(TRACE,RegisterFile,FUNCTION,"    * gloup");
     56                log_printf(TRACE,RegisterFile,FUNCTION,"    * data    : %d",data);
    4357               
    4458                log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
     59
     60#ifdef DEBUG_TEST
     61                if (address >= _param->_nb_word)
     62                  throw ERRORMORPHEO(FUNCTION,toString(_("Address (%d) is invalid (size : %d).\n"),address,_param->_nb_word));
     63#endif
    4564               
    4665                // Write in registerFile
     
    5069        for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
    5170          {
     71            log_printf(TRACE,RegisterFile,FUNCTION,"  * READ_WRITE [%d] : %d",i,PORT_READ(in_READ_WRITE_VAL[i]));
     72
    5273            // Have a read_write?
    5374            if (PORT_READ(in_READ_WRITE_VAL[i]) == true)
     
    6586                    log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
    6687                   
     88
     89#ifdef DEBUG_TEST
     90                if (address >= _param->_nb_word)
     91                  throw ERRORMORPHEO(FUNCTION,toString(_("Address (%d) is invalid (size : %d).\n"),address,_param->_nb_word));
     92#endif
     93
    6794                    // Write in registerFile
    6895                    reg_DATA[address] = data;
Note: See TracChangeset for help on using the changeset viewer.