Ignore:
Timestamp:
Feb 9, 2009, 11:55:26 PM (15 years ago)
Author:
rosiere
Message:

1) RAT : Fix bug when update and event in same cycle
2) Context State : Compute depth
3) Load Store Unit : In check logic, translate all access in little endian. More easy to check
4) UFPT : End Event

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

Legend:

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

    r81 r106  
    1515namespace registerfile_monolithic    {
    1616
     17#undef  FUNCTION
     18#define FUNCTION "RegisterFile_Monolithic::genMealy_read"
    1719  void RegisterFile_Monolithic::genMealy_read (void)
    1820  {
    19     log_printf(FUNC,RegisterFile,"genMealy_read","Begin");
     21    log_begin(RegisterFile_Monolithic,FUNCTION);
     22    log_function(RegisterFile_Monolithic,FUNCTION,_name.c_str());
    2023
    2124    for (uint32_t i=0; i<_param->_nb_port_read; i++)
     
    3134            Tdata_t    data    = reg_DATA[address];
    3235
    33             log_printf(TRACE,RegisterFile,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
     36            log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
    3437
    3538            // Write in registerFile
     
    3841        else
    3942          {
    40             //log_printf(TRACE,RegisterFile,"genMealy_read","Read  [%d] : No   transaction",i);
     43            //log_printf(TRACE,RegisterFile,FUNCTION,"Read  [%d] : No   transaction",i);
    4144            PORT_WRITE(out_READ_DATA[i],0);
    4245          }
     
    6063            data = reg_DATA[address];
    6164
    62             log_printf(TRACE,RegisterFile,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
     65            log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
    6366          }
    6467        else
    6568          {
    66             //log_printf(TRACE,RegisterFile,"genMealy_read","Read  [%d] : No   transaction",i);
     69            //log_printf(TRACE,RegisterFile,FUNCTION,"Read  [%d] : No   transaction",i);
    6770            data = 0;
    6871          }
     
    7174      }
    7275
    73     log_printf(FUNC,RegisterFile,"genMealy_read","End");
    74        
     76    log_end(RegisterFile_Monolithic,FUNCTION);
    7577  };
    7678
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp

    r101 r106  
    1414namespace registerfile               {
    1515namespace registerfile_monolithic    {
     16
     17#undef  FUNCTION
     18#define FUNCTION "RegisterFile_Monolithic::transition"
    1619  void RegisterFile_Monolithic::transition (void)
    1720  {
    18     log_printf(FUNC,RegisterFile,"transition","Begin");
     21    log_begin(RegisterFile_Monolithic,FUNCTION);
     22    log_function(RegisterFile_Monolithic,FUNCTION,_name.c_str());
    1923
    2024    if (_param->_have_init_value and (PORT_READ(in_NRESET) == 0))
     
    3842                Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
    3943               
    40                 log_printf(TRACE,RegisterFile,"transition","[%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
     44                log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
    4145               
    4246                // Write in registerFile
     
    5963                    Tdata_t    data    = PORT_READ(in_READ_WRITE_WDATA  [i]);
    6064                   
    61                     log_printf(TRACE,RegisterFile,"transition","[%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
     65                    log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
    6266                   
    6367                    // Write in registerFile
     
    8286#endif   
    8387
     88#if defined(DEBUG_RegisterFile_Monolithic) and DEBUG_RegisterFile_Monolithic and (DEBUG >= DEBUG_TRACE)
     89    {
     90      log_printf(TRACE,RegisterFile,FUNCTION,"  * Dump RegisterFile");
     91
     92      uint32_t limit = 4;
     93     
     94      for (uint32_t i=0; i<_param->_nb_word; i+=limit)
     95        {
     96          std::string str = "";
     97         
     98          for (uint32_t j=0; j<limit; j++)
     99            {
     100              uint32_t index = i+j;
     101              if (index >= _param->_nb_word)
     102                break;
     103              else
     104                str+=toString("[%.4d] %.8x ",index,reg_DATA[index]);
     105            }
     106
     107          log_printf(TRACE,RegisterFile,FUNCTION,"  %s",str.c_str());
     108        }
     109    }
     110#endif
     111
    84112#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    85113    end_cycle();
    86114#endif
    87     log_printf(FUNC,RegisterFile,"transition","End");
     115
     116    log_end(RegisterFile_Monolithic,FUNCTION);
    88117  };
    89118
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::full_crossbar_genMealy_read"
    1921  void RegisterFile_Multi_Banked::full_crossbar_genMealy_read (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    2326    bool read_port_use [_param->_nb_bank][_param->_nb_port_read_by_bank];
     
    3235        bool ack = false;
    3336
    34         log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","read[%d] : %d",i,val);
     37        log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * read [%d] : %d",i,val);
    3538
    3639        if (val == true)
     
    4346              address = 0;
    4447
    45             log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * address   : %d",address);
     48            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
    4649            Taddress_t bank    = address_bank    (address);
    47             log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank      : %d",bank   );
     50            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
    4851
    4952            // Search loop
     
    5962                    Taddress_t num_reg = address_num_reg (address);
    6063
    61                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * num_reg   : %d",num_reg);
    62                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank_port : %d",j);
     64                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
     65                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j);
    6366
    6467                    Tdata_t    data    = reg_DATA[bank][num_reg];
    6568                   
    66                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * data      : %d",data);
     69                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * data      : %d",data);
    6770
    6871                    PORT_WRITE(out_READ_DATA [i], data);
     
    7780      }
    7881
    79     log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","End");
     82    log_end(RegisterFile_Multi_Banked,FUNCTION);
    8083  };
    8184
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::full_crossbar_genMealy_write"
    1921  void RegisterFile_Multi_Banked::full_crossbar_genMealy_write (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    2326    bool write_port_use [_param->_nb_bank][_param->_nb_port_write_by_bank];
     
    3235        bool ack = false;
    3336
    34         log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write","write[%d] : %d",i,val);
     37        log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * write [%d] : %d",i,val);
    3538
    3639        if (val == true)
     
    4346            else
    4447              address = 0;
    45             log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * address   : %d",address);
     48            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
    4649            Taddress_t bank    = address_bank    (address);
    47             log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * bank      : %d",bank   );
     50            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
    4851
    4952            // Search loop
     
    6063                    Taddress_t num_reg = address_num_reg (address);
    6164
    62                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * num_reg   : %d",num_reg);
    63                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * bank_port : %d",j      );
     65                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
     66                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j      );
    6467                                   
    6568                    internal_WRITE_NUM_REG [i] = num_reg;
     
    7780      }
    7881
    79     log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write","End");
     82    log_end(RegisterFile_Multi_Banked,FUNCTION);
    8083  };
    8184
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_transition.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::full_crossbar_genMealy_transition"
    1921  void RegisterFile_Multi_Banked::full_crossbar_transition (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_transition","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    23     log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_transition","End");
     26    log_end(RegisterFile_Multi_Banked,FUNCTION);
    2427  };
    2528
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_read.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::genMealy_read"
    1921  void RegisterFile_Multi_Banked::genMealy_read (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_read","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    2326    // call function pointer
    2427    (this->*function_genMealy_read) ();
    2528
    26 
    27     log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_read","End");
     29    log_end(RegisterFile_Multi_Banked,FUNCTION);
    2830  };
    2931
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_write.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::genMealy_write"
    1921  void RegisterFile_Multi_Banked::genMealy_write (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_write","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    2326    // call function pointer
    2427    (this->*function_genMealy_write) ();
    2528
    26     log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_write","End");
     29    log_end(RegisterFile_Multi_Banked,FUNCTION);
    2730  };
    2831
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::partial_crossbar_genMealy_read"
    1921  void RegisterFile_Multi_Banked::partial_crossbar_genMealy_read (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_read","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    2326    bool read_port_use [_param->_nb_bank][_param->_nb_port_read_by_bank];
     
    3235        bool ack = false;
    3336
    34         log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","read[%d] : %d",i,val);
     37        log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * read [%d] : %d",i,val);
    3538
    3639        if (val == true)
     
    4245            else
    4346              address = 0;
    44             log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * address   : %d",address);
     47            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
    4548            Taddress_t bank    = address_bank    (address);
    46             log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank      : %d",bank   );
     49            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
    4750
    4851//          // Search loop
     
    6164                    Taddress_t num_reg = address_num_reg (address);
    6265
    63                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * num_reg   : %d",num_reg);
    64                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank_port : %d",j);
     66                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
     67                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j);
    6568
    6669                    Tdata_t    data    = reg_DATA[bank][num_reg];
    6770                   
    68                     log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * data      : %d",data);
     71                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * data      : %d",data);
    6972
    7073                    PORT_WRITE(out_READ_DATA [i], data);
     
    7982      }
    8083
    81     log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_read","End");
     84    log_end(RegisterFile_Multi_Banked,FUNCTION);
    8285  };
    8386
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::partial_crossbar_genMealy_write"
    1921  void RegisterFile_Multi_Banked::partial_crossbar_genMealy_write (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    2326    bool write_port_use [_param->_nb_bank][_param->_nb_port_write_by_bank];
     
    3134        bool ack = false;
    3235
    33         log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write","write[%d] : %d",i,val);
     36        log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * write [%d] : %d",i,val);
    3437
    3538        if (val == true)
     
    4245            else
    4346              address = 0;
    44             log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * address   : %d",address);
     47            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
    4548            Taddress_t bank    = address_bank    (address);
    46             log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * bank      : %d",bank   );
     49            log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
    4750
    4851//          // Search loop
     
    6164                    Taddress_t num_reg = address_num_reg (address);
    6265
    63                     log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * num_reg   : %d",num_reg);
    64                     log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * bank_port : %d",j      );
     66                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
     67                    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j      );
    6568                                   
    6669                    internal_WRITE_NUM_REG [i] = num_reg;
     
    7982      }
    8083
    81     log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write","End");
     84    log_end(RegisterFile_Multi_Banked,FUNCTION);
    8285  };
    8386
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_transition.cpp

    r81 r106  
    1717
    1818
     19#undef  FUNCTION
     20#define FUNCTION "RegisterFile_Multi_Banked::partial_crossbar_transition"
    1921  void RegisterFile_Multi_Banked::partial_crossbar_transition (void)
    2022  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_transition","Begin");
     23    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     24    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2225
    23     log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_transition","End");
     26    log_end(RegisterFile_Multi_Banked,FUNCTION);
    2427  };
    2528
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp

    r81 r106  
    1616namespace registerfile_multi_banked {
    1717
    18 
     18#undef  FUNCTION
     19#define FUNCTION "RegisterFile_Multi_Banked::transition"
    1920  void RegisterFile_Multi_Banked::transition (void)
    2021  {
    21     log_printf(FUNC,RegisterFile_Multi_Banked,"transition","Begin");
     22    log_begin(RegisterFile_Multi_Banked,FUNCTION);
     23    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
    2224   
    2325    // call function pointer
     
    3537      }
    3638
     39#if defined(DEBUG_RegisterFile_Multi_Banked) and DEBUG_RegisterFile_Multi_Banked and (DEBUG >= DEBUG_TRACE)
     40    {
     41      log_printf(TRACE,RegisterFile,FUNCTION,"  * Dump RegisterFile");
     42
     43      uint32_t limit = 4;
     44     
     45      for (uint32_t i=0; i<_param->_nb_bank; i++)
     46        {
     47         
     48          log_printf(TRACE,RegisterFile,FUNCTION,"  Bank %d",i);
     49
     50          for (uint32_t j=0; j<_param->_nb_word_by_bank; j+=limit)
     51            {
     52              std::string str = "";
     53             
     54              for (uint32_t k=0; k<limit; k++)
     55                {
     56                  uint32_t index = j+k;
     57                  if (index >= _param->_nb_word)
     58                    break;
     59                  else
     60                    str+=toString("[%.4d] %.8x ",index,reg_DATA[i][index]);
     61                }
     62             
     63              log_printf(TRACE,RegisterFile,FUNCTION,"  %s",str.c_str());
     64            }
     65        }
     66    }
     67#endif
     68
    3769#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    3870    end_cycle();
    3971#endif
    4072
    41     log_printf(FUNC,RegisterFile_Multi_Banked,"transition","End");
     73    log_end(RegisterFile_Multi_Banked,FUNCTION);
    4274  };
    4375
Note: See TracChangeset for help on using the changeset viewer.