Ignore:
Timestamp:
May 1, 2008, 6:48:45 PM (16 years ago)
Author:
rosiere
Message:
  • support locale (now must "just" translate)
  • update all component with new test format
  • update all component with usage
  • New component : decod queue and prediction_unit
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register_transition.cpp

    r81 r82  
    3232    else
    3333      {
     34        if (not _param->_have_port_victim)
     35          {
     36            genMealy_decod  ();
     37            genMealy_update ();
     38          }
     39
    3440        // =======================================================
    3541        // =====[ PREDICT ]=======================================
     
    6672                  reg_BTB[num_bank][num_entry]._condition        = cond;
    6773                  reg_BTB[num_bank][num_entry]._last_take        = PORT_READ(in_DECOD_LAST_TAKE    [i]);
    68                   reg_BTB[num_bank][num_entry]._accurate         = _param->_first_accurate_if_hit;
     74                  reg_BTB[num_bank][num_entry]._accurate         = (PORT_READ(in_DECOD_IS_ACCURATE [i]))?_param->_first_accurate_if_hit:_param->_first_accurate_if_miss;
    6975                }
    7076              // else (hit) : no update -> it's not the last result of the branch
     
    116122
    117123                  accurate_new =  (miss_pred)?_param->_first_accurate_if_miss:_param->_first_accurate_if_hit;
     124
     125                  reg_BTB[num_bank][num_entry]._val              = 1;
     126                  reg_BTB[num_bank][num_entry]._context          = (_param->_have_port_context_id)?PORT_READ(in_UPDATE_CONTEXT_ID [i]):0;
     127                  reg_BTB[num_bank][num_entry]._address_src      = PORT_READ(in_UPDATE_ADDRESS_SRC  [i]);
     128                  reg_BTB[num_bank][num_entry]._condition        = PORT_READ(in_UPDATE_CONDITION    [i]);
     129                  reg_BTB[num_bank][num_entry]._last_take        = PORT_READ(in_UPDATE_LAST_TAKE    [i]);
    118130                }
    119131
    120132              // =====[ All Case ]
    121               reg_BTB[num_bank][num_entry]._val              = 1;
    122               reg_BTB[num_bank][num_entry]._context          = (_param->_have_port_context_id)?PORT_READ(in_UPDATE_CONTEXT_ID [i]):0;
    123               reg_BTB[num_bank][num_entry]._address_src      = PORT_READ(in_UPDATE_ADDRESS_SRC  [i]);
    124               reg_BTB[num_bank][num_entry]._condition        = PORT_READ(in_UPDATE_CONDITION    [i]);
    125 
    126               reg_BTB[num_bank][num_entry]._address_dest_val = 1;
    127               reg_BTB[num_bank][num_entry]._address_dest     = PORT_READ(in_UPDATE_ADDRESS_DEST [i]);
    128               reg_BTB[num_bank][num_entry]._last_take        = PORT_READ(in_UPDATE_LAST_TAKE    [i]);
     133              if (reg_BTB[num_bank][num_entry]._address_dest_val == 0)
     134                {
     135                  reg_BTB[num_bank][num_entry]._address_dest_val = 1;
     136                  reg_BTB[num_bank][num_entry]._address_dest     = PORT_READ(in_UPDATE_ADDRESS_DEST [i]);
     137                }
    129138              reg_BTB[num_bank][num_entry]._accurate         = accurate_new;
    130139            }
Note: See TracChangeset for help on using the changeset viewer.