Ignore:
Timestamp:
Jul 11, 2009, 6:39:35 PM (15 years ago)
Author:
rosiere
Message:

1) add constant method - compatibility with SystemC
2) add Script to test sensitive list
3) fix bug in sensitive list

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit
Files:
8 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

    r123 r132  
    9191        SC_METHOD (genMealy_predict);
    9292        dont_initialize ();
    93 //      sensitive << (*(in_CLOCK)).neg(); // don't use internal register
     93//      sensitive << (*(in_CLOCK)).neg(); // don't use internal register
     94        sensitive << (*(in_NRESET));
    9495
    9596        for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
     
    186187        dont_initialize ();
    187188//      sensitive << (*(in_CLOCK)).neg(); // don't use internal register
    188 
     189        sensitive << (*(in_NRESET));
     190                 
    189191        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    190192          {
     
    228230        dont_initialize ();
    229231//      sensitive << (*(in_CLOCK)).neg(); // don't use internal register
     232        sensitive << (*(in_NRESET));
    230233
    231234        for (uint32_t i=0; i<_param->_nb_inst_update; i++)
  • 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.cpp

    r131 r132  
    101101        SC_METHOD (genMealy_predict);
    102102        dont_initialize ();
    103         sensitive << (*(in_CLOCK)).neg(); // use internal register
     103        sensitive << (*(in_CLOCK)).neg() // use internal register
     104                  << (*(in_NRESET));
    104105        for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    105106          {
     
    147148        SC_METHOD (genMealy_decod);
    148149        dont_initialize ();
    149         sensitive << (*(in_CLOCK)).neg(); // use internal register
     150        sensitive << (*(in_CLOCK)).neg() // use internal register
     151                  << (*(in_NRESET));
    150152        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    151153          {
     
    179181        SC_METHOD (genMealy_update);
    180182        dont_initialize ();
    181         sensitive << (*(in_CLOCK)).neg(); // use internal register
     183        sensitive << (*(in_CLOCK)).neg() // use internal register
     184                  << (*(in_NRESET));
    182185        for (uint32_t i=0; i<_param->_nb_inst_update; i++)
    183186          {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp

    r131 r132  
    138138            dont_initialize ();
    139139//          sensitive << (*(in_CLOCK)).neg(); // don't use internal register
     140            sensitive << (*(in_NRESET));
    140141            for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    141142              {
     
    221222            dont_initialize ();
    222223//          sensitive << (*(in_CLOCK)).neg(); // don't use internal register
     224            sensitive << (*(in_NRESET));
    223225            for (uint32_t i=0; i<_param->_nb_inst_update; i++)
    224226              sensitive << (*(in_UPDATE_VAL               [i]))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue.cpp

    r112 r132  
    8787        dont_initialize ();
    8888//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     89        sensitive << (*(in_NRESET));
    8990        for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
    9091          {
     
    100101        dont_initialize ();
    101102//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     103        sensitive << (*(in_NRESET));
    102104        for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
    103105          sensitive << (*(in_UPDATE_HISTORY     [i]))
     
    114116        dont_initialize ();
    115117//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     118        sensitive << (*(in_NRESET));
    116119        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
    117120          {
     
    131134        dont_initialize ();
    132135//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     136        sensitive << (*(in_NRESET));
    133137        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
    134138          for (uint32_t j=0; j<_param->_nb_predictor; ++j)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor.cpp

    r131 r132  
    9999        SC_METHOD (genMealy_predict);
    100100        dont_initialize ();
    101         sensitive << (*(in_CLOCK)).neg(); // need internal register
     101        sensitive << (*(in_CLOCK)).neg() // need internal register
     102                  << (*(in_NRESET));
    102103
    103104        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/src/Prediction_unit_Glue.cpp

    r123 r132  
    9191       
    9292        dont_initialize ();
    93         sensitive << (*(in_CLOCK)).neg(); // use internal register
    94        
     93        sensitive << (*(in_CLOCK)).neg() // use internal register
     94                  << (*(in_NRESET));
    9595        for (uint32_t i=0; i<_param->_nb_context; i++)
    9696          {
     
    10341034        SC_METHOD (genMealy_decod);
    10351035        dont_initialize ();
    1036         sensitive << (*(in_CLOCK)).neg(); // use internal register
     1036        sensitive << (*(in_CLOCK)).neg() // use internal register
     1037                  << (*(in_NRESET));
    10371038        for (uint32_t i=0; i<_param->_nb_decod_unit; i++)
    10381039          for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++)
     
    17111712        dont_initialize ();
    17121713//      sensitive << (*(in_CLOCK)).neg(); // don't use internal register
     1714        sensitive << (*(in_NRESET));
    17131715        for (uint32_t i=0; i<_param->_nb_inst_branch_update; i++)
    17141716          sensitive << (*(in_UPDATE_BTB_ACK           [i]))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp

    r131 r132  
    100100        SC_METHOD (genMealy_decod);
    101101        dont_initialize ();
    102         sensitive << (*(in_CLOCK)).neg(); // use internal registers
     102        sensitive << (*(in_CLOCK)).neg() // use internal registers
     103                  << (*(in_NRESET));
    103104        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    104105          {
    105106            if (_param->_have_port_context_id)
    106107            sensitive << (*( in_DECOD_CONTEXT_ID [i]));
    107             sensitive << (*( in_DECOD_PUSH       [i]));
     108            sensitive << (*( in_DECOD_VAL        [i]))
     109                      << (*( in_DECOD_PUSH       [i]));
    108110          }
    109111
     
    130132        SC_METHOD (genMealy_predict);
    131133        dont_initialize ();
    132         sensitive << (*(in_CLOCK)).neg(); // use internal registers
     134        sensitive << (*(in_CLOCK)).neg() // use internal registers
     135                  << (*(in_NRESET));
    133136        for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    134137          {
    135138            if (_param->_have_port_context_id)
    136139            sensitive << (*( in_PREDICT_CONTEXT_ID [i]));
    137             sensitive << (*( in_PREDICT_PUSH       [i]));
     140            sensitive << (*( in_PREDICT_VAL        [i]))
     141                      << (*( in_PREDICT_PUSH       [i]));
    138142          }
    139143
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp

    r131 r132  
    112112        SC_METHOD (genMealy_predict);
    113113        dont_initialize ();
    114         sensitive << (*(in_CLOCK)).neg(); // use internal register
     114        sensitive << (*(in_CLOCK)).neg() // use internal register
     115                  << (*(in_NRESET));
    115116        for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    116117          {
     
    134135        SC_METHOD (genMealy_decod);
    135136        dont_initialize ();
    136         sensitive << (*(in_CLOCK)).neg(); // use internal register
     137        sensitive << (*(in_CLOCK)).neg() // use internal register
     138                  << (*(in_NRESET));
    137139        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    138140          {
     
    154156        SC_METHOD (genMealy_branch_complete);
    155157        dont_initialize ();
    156         sensitive << (*(in_CLOCK)).neg(); // use internal register
     158        sensitive << (*(in_CLOCK)).neg() // use internal register
     159                  << (*(in_NRESET));
    157160        for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
    158161          {
     
    161164            if (_param->_have_port_depth)
    162165            sensitive << (*(in_BRANCH_COMPLETE_DEPTH [i]));
    163             sensitive << (*(in_BRANCH_COMPLETE_NO_SEQUENCE [i]))
    164                       << (*(in_BRANCH_COMPLETE_ADDRESS [i]));
     166            sensitive << (*(in_BRANCH_COMPLETE_VAL         [i]))
     167                      << (*(in_BRANCH_COMPLETE_NO_SEQUENCE [i]))
     168                      << (*(in_BRANCH_COMPLETE_ADDRESS     [i]));
    165169          }
    166170       
Note: See TracChangeset for help on using the changeset viewer.