Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 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_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue/src/Branch_Target_Buffer_Glue.cpp

    r81 r88  
    3939    log_printf(FUNC,Branch_Target_Buffer_Glue,FUNCTION,"Begin");
    4040
     41#if DEBUG_Branch_Target_Buffer_Glue == true
     42    log_printf(INFO,Branch_Target_Buffer_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     43
     44    std::cout << *param << std::endl;
     45#endif   
     46
    4147    log_printf(INFO,Branch_Target_Buffer_Glue,FUNCTION,"Allocation");
    4248
     
    4854
    4955#ifdef STATISTICS
    50     if (_usage & USE_STATISTICS)
     56    if (usage_is_set(_usage,USE_STATISTICS))
    5157      {
    5258        log_printf(INFO,Branch_Target_Buffer_Glue,FUNCTION,"Allocation of statistics");
     
    5763
    5864#ifdef VHDL
    59     if (_usage & USE_VHDL)
     65    if (usage_is_set(_usage,USE_VHDL))
    6066      {
    6167        // generate the vhdl
     
    6773
    6874#ifdef SYSTEMC
    69     if (_usage & USE_SYSTEMC)
     75    if (usage_is_set(_usage,USE_SYSTEMC))
    7076      {
    7177# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     
    104110          }
    105111       
    106 # ifdef SYSTEMCASS_SPECIFIC
    107         // List dependency information
    108 
    109         for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    110           {
    111             for (uint32_t j=0; j<_param->_associativity; j++)
    112             (*(out_PREDICT_HIT            [i])) (*(in_PREDICT_REGISTER_HIT          [i][j]));
    113             if (_param->_have_port_victim)
    114             (*(out_PREDICT_HIT            [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    115 
    116             for (uint32_t j=0; j<_param->_associativity; j++)
    117             (*(out_PREDICT_ADDRESS_SRC    [i])) (*(in_PREDICT_REGISTER_ADDRESS_SRC  [i][j]));
    118             if (_param->_have_port_victim)
    119             (*(out_PREDICT_ADDRESS_SRC    [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    120 
    121             for (uint32_t j=0; j<_param->_associativity; j++)
    122             (*(out_PREDICT_ADDRESS_DEST   [i])) (*(in_PREDICT_REGISTER_ADDRESS_DEST [i][j]));
    123             if (_param->_have_port_victim)
    124             (*(out_PREDICT_ADDRESS_DEST   [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    125 
    126             for (uint32_t j=0; j<_param->_associativity; j++)
    127             (*(out_PREDICT_CONDITION      [i])) (*(in_PREDICT_REGISTER_CONDITION    [i][j]));
    128             if (_param->_have_port_victim)
    129             (*(out_PREDICT_CONDITION      [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    130 
    131             for (uint32_t j=0; j<_param->_associativity; j++)
    132             (*(out_PREDICT_LAST_TAKE      [i])) (*(in_PREDICT_REGISTER_LAST_TAKE    [i][j]));
    133             if (_param->_have_port_victim)
    134             (*(out_PREDICT_LAST_TAKE      [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    135 
    136             for (uint32_t j=0; j<_param->_associativity; j++)
    137             (*(out_PREDICT_IS_ACCURATE    [i])) (*(in_PREDICT_REGISTER_IS_ACCURATE  [i][j]));
    138             if (_param->_have_port_victim)
    139             (*(out_PREDICT_IS_ACCURATE    [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    140 
    141 
    142             (*(out_PREDICT_ACK            [i])) (*(in_PREDICT_REGISTER_ACK          [i]));
    143             if (_param->_have_port_victim)
    144               {
    145             (*(out_PREDICT_ACK            [i])) (*(in_PREDICT_SORT_VAL              [i]));
    146             (*(out_PREDICT_ACK            [i])) (*(in_PREDICT_VICTIM_ACK            [i]));
    147               }
    148 
    149             (*(out_PREDICT_REGISTER_VAL   [i])) (*(in_PREDICT_VAL                   [i]));
    150             if (_param->_have_port_victim)
    151               {
    152             (*(out_PREDICT_REGISTER_VAL   [i])) (*(in_PREDICT_SORT_VAL              [i]));
    153             (*(out_PREDICT_REGISTER_VAL   [i])) (*(in_PREDICT_VICTIM_ACK            [i]));
    154               }
    155 
    156             if (_param->_have_port_victim)
    157               {
    158             (*(out_PREDICT_VICTIM_VAL     [i])) (*(in_PREDICT_VAL                   [i]));
    159             (*(out_PREDICT_VICTIM_VAL     [i])) (*(in_PREDICT_REGISTER_ACK          [i]));
    160             (*(out_PREDICT_VICTIM_VAL     [i])) (*(in_PREDICT_SORT_VAL              [i]));
    161 
    162             for (uint32_t j=0; j<_param->_associativity; j++)
    163             (*(out_PREDICT_VICTIM_HIT     [i])) (*(in_PREDICT_REGISTER_HIT          [i][j]));
    164             (*(out_PREDICT_VICTIM_HIT     [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    165 
    166             if (not _param->_is_full_associative)
    167               {
    168             for (uint32_t j=0; j<_param->_associativity; j++)
    169             (*(out_PREDICT_VICTIM_ADDRESS [i])) (*(in_PREDICT_REGISTER_ADDRESS_SRC  [i][j]));
    170             (*(out_PREDICT_VICTIM_ADDRESS [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    171               }
    172             (*(out_PREDICT_VICTIM_INDEX   [i])) (*(in_PREDICT_SORT_INDEX            [i]));
    173               }
    174           }
    175 # endif
     112// # ifdef SYSTEMCASS_SPECIFIC
     113//      // List dependency information
     114
     115//      for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
     116//        {
     117//          for (uint32_t j=0; j<_param->_associativity; j++)
     118//          (*(out_PREDICT_HIT            [i])) (*(in_PREDICT_REGISTER_HIT          [i][j]));
     119//          if (_param->_have_port_victim)
     120//          (*(out_PREDICT_HIT            [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     121
     122//          for (uint32_t j=0; j<_param->_associativity; j++)
     123//          (*(out_PREDICT_ADDRESS_SRC    [i])) (*(in_PREDICT_REGISTER_ADDRESS_SRC  [i][j]));
     124//          if (_param->_have_port_victim)
     125//          (*(out_PREDICT_ADDRESS_SRC    [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     126
     127//          for (uint32_t j=0; j<_param->_associativity; j++)
     128//          (*(out_PREDICT_ADDRESS_DEST   [i])) (*(in_PREDICT_REGISTER_ADDRESS_DEST [i][j]));
     129//          if (_param->_have_port_victim)
     130//          (*(out_PREDICT_ADDRESS_DEST   [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     131
     132//          for (uint32_t j=0; j<_param->_associativity; j++)
     133//          (*(out_PREDICT_CONDITION      [i])) (*(in_PREDICT_REGISTER_CONDITION    [i][j]));
     134//          if (_param->_have_port_victim)
     135//          (*(out_PREDICT_CONDITION      [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     136
     137//          for (uint32_t j=0; j<_param->_associativity; j++)
     138//          (*(out_PREDICT_LAST_TAKE      [i])) (*(in_PREDICT_REGISTER_LAST_TAKE    [i][j]));
     139//          if (_param->_have_port_victim)
     140//          (*(out_PREDICT_LAST_TAKE      [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     141
     142//          for (uint32_t j=0; j<_param->_associativity; j++)
     143//          (*(out_PREDICT_IS_ACCURATE    [i])) (*(in_PREDICT_REGISTER_IS_ACCURATE  [i][j]));
     144//          if (_param->_have_port_victim)
     145//          (*(out_PREDICT_IS_ACCURATE    [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     146
     147
     148//          (*(out_PREDICT_ACK            [i])) (*(in_PREDICT_REGISTER_ACK          [i]));
     149//          if (_param->_have_port_victim)
     150//            {
     151//          (*(out_PREDICT_ACK            [i])) (*(in_PREDICT_SORT_VAL              [i]));
     152//          (*(out_PREDICT_ACK            [i])) (*(in_PREDICT_VICTIM_ACK            [i]));
     153//            }
     154
     155//          (*(out_PREDICT_REGISTER_VAL   [i])) (*(in_PREDICT_VAL                   [i]));
     156//          if (_param->_have_port_victim)
     157//            {
     158//          (*(out_PREDICT_REGISTER_VAL   [i])) (*(in_PREDICT_SORT_VAL              [i]));
     159//          (*(out_PREDICT_REGISTER_VAL   [i])) (*(in_PREDICT_VICTIM_ACK            [i]));
     160//            }
     161
     162//          if (_param->_have_port_victim)
     163//            {
     164//          (*(out_PREDICT_VICTIM_VAL     [i])) (*(in_PREDICT_VAL                   [i]));
     165//          (*(out_PREDICT_VICTIM_VAL     [i])) (*(in_PREDICT_REGISTER_ACK          [i]));
     166//          (*(out_PREDICT_VICTIM_VAL     [i])) (*(in_PREDICT_SORT_VAL              [i]));
     167
     168//          for (uint32_t j=0; j<_param->_associativity; j++)
     169//          (*(out_PREDICT_VICTIM_HIT     [i])) (*(in_PREDICT_REGISTER_HIT          [i][j]));
     170//          (*(out_PREDICT_VICTIM_HIT     [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     171
     172//          if (not _param->_is_full_associative)
     173//            {
     174//          for (uint32_t j=0; j<_param->_associativity; j++)
     175//          (*(out_PREDICT_VICTIM_ADDRESS [i])) (*(in_PREDICT_REGISTER_ADDRESS_SRC  [i][j]));
     176//          (*(out_PREDICT_VICTIM_ADDRESS [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     177//            }
     178//          (*(out_PREDICT_VICTIM_INDEX   [i])) (*(in_PREDICT_SORT_INDEX            [i]));
     179//            }
     180//        }
     181// # endif
    176182
    177183        log_printf(INFO,Branch_Target_Buffer_Glue,FUNCTION,"Method - genMealy_decod");
     
    271277
    272278#ifdef STATISTICS
    273     if (_usage & USE_STATISTICS)
     279    if (usage_is_set(_usage,USE_STATISTICS))
    274280      {
    275281        statistics_deallocation();
Note: See TracChangeset for help on using the changeset viewer.