Ignore:
Timestamp:
Dec 31, 2008, 11:18:08 AM (15 years ago)
Author:
rosiere
Message:

1) Fix bug (read unit, RAT -> write in R0, SPR desallocation ...)
2) Change VHDL Execute_queue -> use Generic/Queue?
3) Complete document on VHDL generation
4) Add soc test

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_branch_complete.cpp

    r97 r98  
    4040        Tbranch_condition_t condition = reg_UPDATE_PREDICTION_TABLE [context][depth]._condition   ;
    4141
    42         Tcontrol_t          flag      = PORT_READ(in_BRANCH_COMPLETE_FLAG [i]);
     42        Tcontrol_t          no_sequence = PORT_READ(in_BRANCH_COMPLETE_NO_SEQUENCE [i]);
    4343        Taddress_t          addr_good = PORT_READ(in_BRANCH_COMPLETE_ADDRESS [i]);
    4444
     
    4646        log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * depth          : %d",depth  );
    4747        log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * condition      : %s",toString(condition).c_str());
    48         log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * flag           : %d",flag);
     48        log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * no_sequence    : %d",no_sequence);
    4949        log_printf(TRACE,Update_Prediction_Table,FUNCTION,"    * address_good   : %.8x",addr_good);
    5050
     
    7474            }
    7575          case BRANCH_CONDITION_FLAG_UNSET                        : // l.bnf
    76             {
    77               //addr_dest : compute in decod stage
    78               //miss if the direction is bad
    79               log_printf(TRACE,Update_Prediction_Table,FUNCTION,"      * BRANCH_CONDITION_FLAG_UNSET");
    80 
    81               Tcontrol_t take_good = not flag; // flag set = not take
    82 
    83               miss = (take != take_good);
    84               take = take_good;
    85 
    86 #ifdef DEBUG_TEST
    87 //               if (addr_dest != addr_good)
    88 //                 throw ERRORMORPHEO(FUNCTION,toString("Branch_complete[%d] (condition %s) : bad destination address.",i,toString(condition).c_str()));
    89 #endif
    90 
    91               break;
    92             }
    9376          case BRANCH_CONDITION_FLAG_SET                          : // l.bf
    9477            {
    9578              //addr_dest : compute in decod stage
    9679              //miss if the direction is bad
    97               log_printf(TRACE,Update_Prediction_Table,FUNCTION,"      * BRANCH_CONDITION_FLAG_SET");
     80              log_printf(TRACE,Update_Prediction_Table,FUNCTION,"      * BRANCH_CONDITION_FLAG");
    9881
    99               Tcontrol_t take_good = flag; // flag set = take
     82//               Tcontrol_t take_good = not flag; // flag set = not take
     83//               Tcontrol_t take_good = flag; // flag set = take
     84              Tcontrol_t take_good = no_sequence;
    10085
    10186              miss = (take != take_good);
Note: See TracChangeset for help on using the changeset viewer.