Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (15 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_transition.cpp

    r81 r88  
    2626    if (PORT_READ(in_NRESET) == 0)
    2727      {
    28         select.clear();
    29         reg_FRONT_END_PRIORITY = 0;
     28        _priority->reset();
    3029      }
    3130    else
    3231      {
    33         switch (_param->_priority)
    34           {
    35           case PRIORITY_STATIC :
    36             {
    37               reg_FRONT_END_PRIORITY = (reg_FRONT_END_PRIORITY+_param->_nb_front_end_select)%_param->_nb_front_end;
    38               break;
    39             }
    40           case PRIORITY_ROUND_ROBIN :
    41             {
    42               reg_FRONT_END_PRIORITY = (reg_FRONT_END_PRIORITY+1)%_param->_nb_front_end;
    43               break;
    44             }
    45           default:
    46             {
    47               break;
    48             }
    49           }
    50 
    51         // flush list
    52         select.clear();
    53        
    54         // Compute next scan order !!!
    55         switch (_param->_load_balancing)
    56           {
    57           case LOAD_BALANCING_BALANCE :
    58             {
    59               for (uint32_t j=0; j<_param->_max_nb_inst_decod; j++)
    60                 for (uint32_t i=0; i<_param->_nb_front_end_select; i++)
    61                   {
    62                     uint32_t x=(reg_FRONT_END_PRIORITY+i)%_param->_nb_front_end;
    63                    
    64                     // Test valid inst_decod
    65                     if (j < _param->_nb_inst_decod[x])
    66                       select.push_back(select_t(x,j));
    67                   }
    68                  
    69               break;
    70             }
    71           case LOAD_BALANCING_MAXIMUM_FOR_PRIORITY :
    72             {
    73 
    74               for (uint32_t i=0; i<_param->_nb_front_end_select; i++)
    75                 {
    76                   uint32_t x=(reg_FRONT_END_PRIORITY+i)%_param->_nb_front_end;
    77                  
    78                   for (uint32_t j=0; j<_param->_nb_inst_decod[x]; j++)
    79                     select.push_back(select_t(x,j));
    80                 }
    81 
    82               break;
    83             }
    84           default :
    85             {
    86               break;
    87             }
    88           }
     32        _priority->transition();
    8933
    9034// #if (DEBUG >= DEBUG_TRACE)
Note: See TracChangeset for help on using the changeset viewer.