Changeset 111 for 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_allocation.cpp
- Timestamp:
- Feb 27, 2009, 7:37:40 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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_allocation.cpp
r110 r111 19 19 namespace meta_predictor { 20 20 namespace two_level_branch_predictor { 21 22 23 21 24 22 #undef FUNCTION … … 58 56 in_NRESET = interface->set_signal_in <Tcontrol_t> ("nreset",1, RESET_VHDL_YES); 59 57 } 58 59 // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60 { 61 ALLOC1_INTERFACE("predict",IN,WEST,_("Predict direction interface"),_param->_nb_inst_predict); 62 63 ALLOC1_VALACK_IN ( in_PREDICT_VAL ,VAL); 64 ALLOC1_VALACK_OUT(out_PREDICT_ACK ,ACK); 65 ALLOC1_SIGNAL_IN ( in_PREDICT_ADDRESS ,"ADDRESS" ,Taddress_t,_param->_size_address); 66 ALLOC1_SIGNAL_OUT(out_PREDICT_DIRECTION ,"DIRECTION" ,Tcontrol_t,1 ); 67 ALLOC1_SIGNAL_OUT(out_PREDICT_HISTORY ,"HISTORY" ,Thistory_t,_param->_size_history); 68 if (_param->_update_on_prediction) 69 { 70 ALLOC1_SIGNAL_IN ( in_PREDICT_DIRECTION_VAL,"DIRECTION_VAL",Tcontrol_t,1 ); 71 ALLOC1_SIGNAL_IN ( in_PREDICT_DIRECTION ,"DIRECTION" ,Tcontrol_t,1 ); 72 } 73 } 74 75 // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 { 77 ALLOC1_INTERFACE("update",IN,WEST,_("Update direction interface"),_param->_nb_inst_update); 78 79 ALLOC1_VALACK_IN ( in_UPDATE_VAL ,VAL); 80 ALLOC1_VALACK_OUT(out_UPDATE_ACK ,ACK); 81 ALLOC1_SIGNAL_IN ( in_UPDATE_ADDRESS ,"ADDRESS" ,Taddress_t,_param->_size_address); 82 ALLOC1_SIGNAL_IN ( in_UPDATE_HISTORY ,"HISTORY" ,Thistory_t,_param->_size_history); 83 ALLOC1_SIGNAL_IN ( in_UPDATE_DIRECTION ,"DIRECTION" ,Tcontrol_t,1 ); 84 if (_param->_update_on_prediction) 85 ALLOC1_SIGNAL_IN ( in_UPDATE_MISS ,"MISS" ,Tcontrol_t,1 ); 86 } 87 88 if (usage_is_set(_usage,USE_SYSTEMC)) 89 { 90 if (_param->_have_bht) 91 { 92 ALLOC1(reg_BHT ,Thistory_t,_param->_bht_nb_shifter); 93 94 for (uint32_t i=0; i<_param->_bht_nb_shifter; ++i) 95 reg_BHT [i] = 0; 96 } 97 98 if (_param->_have_pht) 99 { 100 ALLOC2(reg_PHT ,Thistory_t,_param->_pht_nb_bank,_param->_pht_size_bank); 101 102 for (uint32_t i=0; i<_param->_pht_nb_bank; ++i) 103 for (uint32_t j=0; j<_param->_pht_size_bank; ++j) 104 reg_PHT [i][j] = 0; 105 } 106 107 108 ALLOC1(internal_PREDICT_ACK ,Tcontrol_t,_param->_nb_inst_predict); 109 if (_param->_update_on_prediction) 110 { 111 if (_param->_have_bht) 112 ALLOC1(internal_PREDICT_BHT_NUM_REG ,Thistory_t,_param->_nb_inst_predict); 113 if (_param->_have_pht) 114 { 115 ALLOC1(internal_PREDICT_PHT_NUM_BANK ,Thistory_t,_param->_nb_inst_predict); 116 ALLOC1(internal_PREDICT_PHT_NUM_REG ,Thistory_t,_param->_nb_inst_predict); 117 } 118 } 119 ALLOC1(internal_UPDATE_ACK ,Tcontrol_t,_param->_nb_inst_update ); 120 } 121 60 122 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 61 62 123 #ifdef POSITION 63 124 if (usage_is_set(_usage,USE_POSITION))
Note: See TracChangeset
for help on using the changeset viewer.