Ignore:
Timestamp:
Mar 27, 2008, 11:04:49 AM (16 years ago)
Author:
rosiere
Message:

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp

    r75 r78  
    3535    vhdl->set_body ("--    Way Way Way Way Way Way Way Way   ");
    3636    vhdl->set_body ("--     0   1   2   3   4   5   6   7    ");
    37     for (uint32_t i=0; i<_param._nb_access; i++)
     37    for (uint32_t i=0; i<_param->_nb_access; i++)
    3838      {
    3939        vhdl->set_body ("");
     
    4242        std::string access_address;
    4343
    44         if (_param._size_table>1)
     44        if (_param->_size_table>1)
    4545          access_address = "conv_integer(in_ACCESS_"+toString(i)+"_ADDRESS)";
    4646        else
     
    5050        vhdl->set_body ("");
    5151
    52         for (int32_t j=static_cast<uint32_t>(log2(_param._nb_entity)-1); j>=0; j--)
     52        for (int32_t j=static_cast<uint32_t>(log2(_param->_nb_entity)-1); j>=0; j--)
    5353          {
    5454            vhdl->set_body ("access_entity_"+toString(i)+"("+toString(j)+") <= ");
     
    5656            uint32_t cpt=0;
    5757
    58             for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param._nb_entity-1); k+=(1<<(j+1)))
     58            for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param->_nb_entity-1); k+=(1<<(j+1)))
    5959              {
    6060                std::string cond = "";
    6161               
    6262                // Create the condition
    63                 for (uint32_t l=j+1; l<static_cast<uint32_t>(log2(_param._nb_entity));l++)
     63                for (uint32_t l=j+1; l<static_cast<uint32_t>(log2(_param->_nb_entity));l++)
    6464                  {
    6565                    if (l==static_cast<uint32_t>(j+1))
     
    8585    vhdl->set_body ("");
    8686    vhdl->set_body ("-- port access");
    87     for (uint32_t i=0; i<_param._nb_access; i++)
    88       for (int32_t j=static_cast<uint32_t>(log2(_param._nb_entity)-1); j>=0; j--)
     87    for (uint32_t i=0; i<_param->_nb_access; i++)
     88      for (int32_t j=static_cast<uint32_t>(log2(_param->_nb_entity)-1); j>=0; j--)
    8989        {
    9090          uint32_t cpt=0;
    9191         
    92           for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param._nb_entity-1); k+=(1<<(j+1)))
     92          for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param->_nb_entity-1); k+=(1<<(j+1)))
    9393            {
    9494              bool   have_cond = false;
     
    9696             
    9797              // condition to change the bit
    98               for (uint32_t l=j+1; l<static_cast<uint32_t>(log2(_param._nb_entity));l++)
     98              for (uint32_t l=j+1; l<static_cast<uint32_t>(log2(_param->_nb_entity));l++)
    9999                {
    100100                  have_cond = true;
     
    118118    vhdl->set_body ("");
    119119    vhdl->set_body ("-- port update");
    120     for (uint32_t i=0; i<_param._nb_update; i++)
    121       for (int32_t j=static_cast<uint32_t>(log2(_param._nb_entity)-1); j>=0; j--)
     120    for (uint32_t i=0; i<_param->_nb_update; i++)
     121      for (int32_t j=static_cast<uint32_t>(log2(_param->_nb_entity)-1); j>=0; j--)
    122122        {
    123123          uint32_t cpt=0;
    124124         
    125           for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param._nb_entity-1); k+=(1<<(j+1)))
     125          for (int32_t k=(1<<j)-1; k<static_cast<int32_t>(_param->_nb_entity-1); k+=(1<<(j+1)))
    126126            {
    127127              bool   have_cond = false;
     
    129129             
    130130              // condition to change the bit
    131               for (uint32_t l=j+1; l<static_cast<uint32_t>(log2(_param._nb_entity));l++)
     131              for (uint32_t l=j+1; l<static_cast<uint32_t>(log2(_param->_nb_entity));l++)
    132132                {
    133133                  have_cond = true;
     
    146146                  std::string update_address;
    147147
    148                   if (_param._size_table>1)
     148                  if (_param->_size_table>1)
    149149                    update_address = "conv_integer(in_UPDATE_"+toString(i)+"_ADDRESS)";
    150150                  else
     
    168168    vhdl->set_body ("\tif in_CLOCK'event and in_CLOCK = '1' then");
    169169    vhdl->set_body ("\t\t-- Access port");
    170     for (uint32_t i=0; i<_param._nb_access; i++)
     170    for (uint32_t i=0; i<_param->_nb_access; i++)
    171171      {
    172172        std::string access_address;
    173173
    174         if (_param._size_table>1)
     174        if (_param->_size_table>1)
    175175          access_address = "conv_integer(in_ACCESS_"+toString(i)+"_ADDRESS)";
    176176        else
     
    183183
    184184    vhdl->set_body ("\t\t-- Update port");
    185     for (uint32_t i=0; i<_param._nb_update; i++)
     185    for (uint32_t i=0; i<_param->_nb_update; i++)
    186186      {
    187187        std::string update_address;
    188188
    189         if (_param._size_table>1)
     189        if (_param->_size_table>1)
    190190          update_address = "conv_integer(in_UPDATE_"+toString(i)+"_ADDRESS)";
    191191        else
     
    207207    vhdl->set_body ("-- Ack is always ");
    208208    vhdl->set_body ("");
    209     for (uint32_t i=0; i<_param._nb_access; i++)
     209    for (uint32_t i=0; i<_param->_nb_access; i++)
    210210      {
    211211        vhdl->set_body ("out_ACCESS_"+toString(i)+"_ACK    <= '1';");
     
    213213      }
    214214    vhdl->set_body ("");
    215     for (uint32_t i=0; i<_param._nb_update; i++)
     215    for (uint32_t i=0; i<_param->_nb_update; i++)
    216216      {
    217217        vhdl->set_body ("out_UPDATE_"+toString(i)+"_ACK    <= '1';");
Note: See TracChangeset for help on using the changeset viewer.