Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/SelfTest/Makefile
r81 r88 24 24 library_clean : Return_Address_Stack_library_clean 25 25 26 local_clean : 27 26 28 include $(DIR_COMPONENT)/Makefile.deps 27 29 include $(DIR_MORPHEO)/Behavioural/Makefile.flags -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/SelfTest/config_mono_context.cfg
r81 r88 3 3 2 4 *2 # size_queue [0] 4 4 32 32 *2 # size_address 5 1 1 +1# nb_inst_predict6 1 1 +1# nb_inst_decod7 1 1 +1# nb_inst_update5 1 4 *4 # nb_inst_predict 6 1 4 *4 # nb_inst_decod 7 1 4 *4 # nb_inst_update -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/SelfTest/config_multi_context.cfg
r81 r88 4 4 4 4 *2 # size_queue [1] 5 5 8 8 *2 # size_queue [2] 6 16 16*2 # size_queue [3]6 8 8 *2 # size_queue [3] 7 7 32 32 *2 # size_address 8 1 1 +1# nb_inst_predict9 1 1 +1# nb_inst_decod10 1 1 +1# nb_inst_update8 1 4 *4 # nb_inst_predict 9 1 4 *4 # nb_inst_decod 10 1 4 *4 # nb_inst_update -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/SelfTest/src/main.cpp
r81 r88 60 60 _nb_inst_predict , 61 61 _nb_inst_decod , 62 _nb_inst_update ); 62 _nb_inst_update , 63 true // is_toplevel 64 ); 63 65 64 66 msg(_("%s"),param->print(1).c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/SelfTest/src/test.cpp
r82 r88 23 23 #endif 24 24 25 Tusage_t _usage = USE_ALL; 26 27 // _usage = usage_unset(_usage,USE_SYSTEMC ); 28 // _usage = usage_unset(_usage,USE_VHDL ); 29 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); 30 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT); 31 // _usage = usage_unset(_usage,USE_POSITION ); 32 // _usage = usage_unset(_usage,USE_STATISTICS ); 33 // _usage = usage_unset(_usage,USE_INFORMATION ); 34 25 35 Return_Address_Stack * _Return_Address_Stack = new Return_Address_Stack 26 36 (name.c_str(), … … 29 39 #endif 30 40 _param, 31 USE_ALL);41 _usage); 32 42 33 43 #ifdef SYSTEMC … … 403 413 404 414 in_DECOD_VAL [port1]->write(0); 405 406 } 415 } 407 416 } 408 417 … … 419 428 delete in_NRESET; 420 429 421 delete [] in_PREDICT_VAL ; 422 delete [] out_PREDICT_ACK ; 423 delete [] in_PREDICT_CONTEXT_ID ; 424 delete [] out_PREDICT_HIT ; 425 delete [] in_PREDICT_PUSH ; 426 delete [] in_PREDICT_ADDRESS_PUSH ; 427 delete [] out_PREDICT_ADDRESS_POP ; 428 delete [] out_PREDICT_INDEX ; 429 delete [] in_DECOD_VAL ; 430 delete [] out_DECOD_ACK ; 431 delete [] in_DECOD_PUSH ; 432 delete [] in_DECOD_CONTEXT_ID ; 433 delete [] out_DECOD_HIT ; 434 delete [] in_DECOD_ADDRESS_PUSH ; 435 delete [] out_DECOD_ADDRESS_POP ; 436 delete [] out_DECOD_INDEX ; 437 delete [] in_DECOD_MISS_PREDICTION; 438 delete [] in_UPDATE_VAL ; 439 delete [] out_UPDATE_ACK ; 440 delete [] in_UPDATE_CONTEXT_ID ; 441 delete [] in_UPDATE_PUSH ; 442 delete [] in_UPDATE_INDEX ; 443 delete [] in_UPDATE_ADDRESS ; 444 delete [] in_UPDATE_MISS_PREDICTION; 445 delete [] in_UPDATE_PREDICTION_IFETCH; 430 DELETE1_SC_SIGNAL( in_PREDICT_VAL ,_param->_nb_inst_predict); 431 DELETE1_SC_SIGNAL(out_PREDICT_ACK ,_param->_nb_inst_predict); 432 DELETE1_SC_SIGNAL( in_PREDICT_CONTEXT_ID ,_param->_nb_inst_predict); 433 DELETE1_SC_SIGNAL(out_PREDICT_HIT ,_param->_nb_inst_predict); 434 DELETE1_SC_SIGNAL( in_PREDICT_PUSH ,_param->_nb_inst_predict); 435 DELETE1_SC_SIGNAL( in_PREDICT_ADDRESS_PUSH ,_param->_nb_inst_predict); 436 DELETE1_SC_SIGNAL(out_PREDICT_ADDRESS_POP ,_param->_nb_inst_predict); 437 DELETE1_SC_SIGNAL(out_PREDICT_INDEX ,_param->_nb_inst_predict); 438 439 DELETE1_SC_SIGNAL( in_DECOD_VAL ,_param->_nb_inst_decod); 440 DELETE1_SC_SIGNAL(out_DECOD_ACK ,_param->_nb_inst_decod); 441 DELETE1_SC_SIGNAL( in_DECOD_CONTEXT_ID ,_param->_nb_inst_decod); 442 DELETE1_SC_SIGNAL(out_DECOD_HIT ,_param->_nb_inst_decod); 443 DELETE1_SC_SIGNAL( in_DECOD_PUSH ,_param->_nb_inst_decod); 444 DELETE1_SC_SIGNAL( in_DECOD_ADDRESS_PUSH ,_param->_nb_inst_decod); 445 DELETE1_SC_SIGNAL(out_DECOD_ADDRESS_POP ,_param->_nb_inst_decod); 446 DELETE1_SC_SIGNAL(out_DECOD_INDEX ,_param->_nb_inst_decod); 447 DELETE1_SC_SIGNAL( in_DECOD_MISS_PREDICTION ,_param->_nb_inst_decod); 448 449 DELETE1_SC_SIGNAL( in_UPDATE_VAL ,_param->_nb_inst_update); 450 DELETE1_SC_SIGNAL(out_UPDATE_ACK ,_param->_nb_inst_update); 451 DELETE1_SC_SIGNAL( in_UPDATE_CONTEXT_ID ,_param->_nb_inst_update); 452 DELETE1_SC_SIGNAL( in_UPDATE_PUSH ,_param->_nb_inst_update); 453 DELETE1_SC_SIGNAL( in_UPDATE_ADDRESS ,_param->_nb_inst_update); 454 DELETE1_SC_SIGNAL( in_UPDATE_INDEX ,_param->_nb_inst_update); 455 DELETE1_SC_SIGNAL( in_UPDATE_MISS_PREDICTION ,_param->_nb_inst_update); 456 DELETE1_SC_SIGNAL( in_UPDATE_PREDICTION_IFETCH,_param->_nb_inst_update); 446 457 447 458 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Parameters.h
r81 r88 26 26 public : uint32_t _nb_context ; 27 27 public : uint32_t * _size_queue ;//[nb_context] 28 28 //public : uint32_t _size_address ; 29 29 public : uint32_t _nb_inst_predict; 30 30 public : uint32_t _nb_inst_decod ; 31 31 public : uint32_t _nb_inst_update ; 32 32 33 33 //public : uint32_t _size_context_id; 34 34 public : uint32_t _size_index ; 35 35 36 36 //public : uint32_t _have_port_context_id; 37 37 38 38 //-----[ methods ]----------------------------------------------------------- … … 42 42 uint32_t nb_inst_predict, 43 43 uint32_t nb_inst_decod , 44 uint32_t nb_inst_update ); 44 uint32_t nb_inst_update , 45 bool is_toplevel=false 46 ); 45 47 // public : Parameters (Parameters & param) ; 46 48 public : ~Parameters () ; 49 50 public : void copy (void); 47 51 48 52 public : Parameters_test msg_error (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Parameters.cpp
r81 r88 25 25 uint32_t nb_inst_predict, 26 26 uint32_t nb_inst_decod , 27 uint32_t nb_inst_update ) 27 uint32_t nb_inst_update , 28 bool is_toplevel 29 ) 28 30 { 29 31 log_printf(FUNC,Return_Address_Stack,FUNCTION,"Begin"); … … 31 33 _nb_context = nb_context ; 32 34 _size_queue = size_queue ; 33 _size_address = size_address ;34 35 _nb_inst_predict = nb_inst_predict; 35 36 _nb_inst_decod = nb_inst_decod ; 36 37 _nb_inst_update = nb_inst_update ; 37 38 38 _size_context_id = log2(nb_context);39 39 _size_index = max<uint32_t>(size_queue,nb_context); 40 40 41 _have_port_context_id = _size_context_id > 0;41 test(); 42 42 43 test(); 43 if (is_toplevel) 44 { 45 _size_instruction_address = size_address ; 46 _size_context_id = log2(nb_context); 47 _have_port_context_id = _size_context_id > 0; 48 49 copy (); 50 } 51 44 52 log_printf(FUNC,Return_Address_Stack,FUNCTION,"End"); 45 53 }; … … 62 70 }; 63 71 72 #undef FUNCTION 73 #define FUNCTION "Return_Address_Stack::copy" 74 void Parameters::copy (void) 75 { 76 log_printf(FUNC,Return_Address_Stack,FUNCTION,"Begin"); 77 log_printf(FUNC,Return_Address_Stack,FUNCTION,"End"); 78 }; 79 64 80 }; // end namespace return_address_stack 65 81 }; // end namespace prediction_unit -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Parameters_msg_error.cpp
r81 r88 29 29 for (uint32_t i=0; i<_nb_context; i++) 30 30 if (_size_queue [i] < 2) 31 test.error( "context \""+toString(i)+"\" : size_queue must be > 2");31 test.error(toString(_("context \"%d\" : size_queue must be >= 2\n"),i)); 32 32 33 33 log_printf(FUNC,Return_Address_Stack,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Parameters_print.cpp
r81 r88 28 28 xml.balise_open("return_address_stack"); 29 29 xml.singleton_begin("nb_context "); xml.attribut("value",toString(_nb_context )); xml.singleton_end(); 30 30 // xml.singleton_begin("size_address "); xml.attribut("value",toString(_size_address )); xml.singleton_end(); 31 31 xml.singleton_begin("nb_inst_predict"); xml.attribut("value",toString(_nb_inst_predict)); xml.singleton_end(); 32 32 xml.singleton_begin("nb_inst_decod "); xml.attribut("value",toString(_nb_inst_decod )); xml.singleton_end(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp
r81 r88 38 38 log_printf(FUNC,Return_Address_Stack,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Return_Address_Stac == true 41 log_printf(INFO,Return_Address_Stac,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 43 std::cout << *param << std::endl; 44 #endif 45 40 46 log_printf(INFO,Return_Address_Stack,FUNCTION,"Allocation"); 41 47 … … 47 53 48 54 #ifdef STATISTICS 49 if ( _usage & USE_STATISTICS)55 if (usage_is_set(_usage,USE_STATISTICS)) 50 56 { 51 57 log_printf(INFO,Return_Address_Stack,FUNCTION,"Allocation of statistics"); … … 56 62 57 63 #ifdef VHDL 58 if ( _usage & USE_VHDL)64 if (usage_is_set(_usage,USE_VHDL)) 59 65 { 60 66 // generate the vhdl … … 66 72 67 73 #ifdef SYSTEMC 68 if ( _usage & USE_SYSTEMC)74 if (usage_is_set(_usage,USE_SYSTEMC)) 69 75 { 70 76 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) … … 165 171 166 172 #ifdef STATISTICS 167 if ( _usage & USE_STATISTICS)173 if (usage_is_set(_usage,USE_STATISTICS)) 168 174 { 169 175 statistics_deallocation(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_allocation.cpp
r81 r88 17 17 namespace return_address_stack { 18 18 19 20 21 19 #undef FUNCTION 22 20 #define FUNCTION "Return_Address_Stack::allocation" 23 21 void Return_Address_Stack::allocation ( 24 22 #ifdef STATISTICS 25 23 morpheo::behavioural::Parameters_Statistics * param_statistics 26 24 #else 27 25 void 28 26 #endif 29 27 ) 30 28 { 31 29 log_printf(FUNC,Return_Address_Stack,FUNCTION,"Begin"); … … 65 63 ALLOC1_SIGNAL_OUT(out_PREDICT_HIT ,"hit" ,Tcontrol_t,1); 66 64 ALLOC1_SIGNAL_IN ( in_PREDICT_PUSH ,"push" ,Tcontrol_t,1); 67 ALLOC1_SIGNAL_IN ( in_PREDICT_ADDRESS_PUSH,"address_push",Taddress_t,_param->_size_ address);68 ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_POP ,"address_pop" ,Taddress_t,_param->_size_ address);65 ALLOC1_SIGNAL_IN ( in_PREDICT_ADDRESS_PUSH,"address_push",Taddress_t,_param->_size_instruction_address); 66 ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_POP ,"address_pop" ,Taddress_t,_param->_size_instruction_address); 69 67 ALLOC1_SIGNAL_OUT(out_PREDICT_INDEX ,"index" ,Tptr_t ,_param->_size_index); 70 68 } … … 79 77 ALLOC1_SIGNAL_OUT(out_DECOD_HIT ,"hit" ,Tcontrol_t,1); 80 78 ALLOC1_SIGNAL_IN ( in_DECOD_PUSH ,"push" ,Tcontrol_t,1); 81 ALLOC1_SIGNAL_IN ( in_DECOD_ADDRESS_PUSH ,"address_push" ,Taddress_t,_param->_size_ address);82 ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS_POP ,"address_pop" ,Taddress_t,_param->_size_ address);79 ALLOC1_SIGNAL_IN ( in_DECOD_ADDRESS_PUSH ,"address_push" ,Taddress_t,_param->_size_instruction_address); 80 ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS_POP ,"address_pop" ,Taddress_t,_param->_size_instruction_address); 83 81 ALLOC1_SIGNAL_OUT(out_DECOD_INDEX ,"index" ,Tptr_t ,_param->_size_index); 84 82 ALLOC1_SIGNAL_IN ( in_DECOD_MISS_PREDICTION,"miss_prediction",Tcontrol_t,1); … … 89 87 ALLOC1_INTERFACE("update", IN, SOUTH, "update's interface", _param->_nb_inst_update); 90 88 91 ALLOC1_VALACK_IN ( in_UPDATE_VAL ,VAL);92 ALLOC1_VALACK_OUT(out_UPDATE_ACK ,ACK);93 ALLOC1_SIGNAL_IN ( in_UPDATE_CONTEXT_ID ,"context_id",Tcontext_t,_param->_size_context_id);94 ALLOC1_SIGNAL_IN ( in_UPDATE_PUSH ,"push",Tcontrol_t,1);95 ALLOC1_SIGNAL_IN ( in_UPDATE_ADDRESS ,"address" ,Taddress_t,_param->_size_address);96 ALLOC1_SIGNAL_IN ( in_UPDATE_INDEX ,"index",Tptr_t ,_param->_size_index);97 ALLOC1_SIGNAL_IN ( in_UPDATE_MISS_PREDICTION ,"miss_prediction",Tcontrol_t,1);89 ALLOC1_VALACK_IN ( in_UPDATE_VAL ,VAL); 90 ALLOC1_VALACK_OUT(out_UPDATE_ACK ,ACK); 91 ALLOC1_SIGNAL_IN ( in_UPDATE_CONTEXT_ID ,"context_id" ,Tcontext_t,_param->_size_context_id); 92 ALLOC1_SIGNAL_IN ( in_UPDATE_PUSH ,"push" ,Tcontrol_t,1); 93 ALLOC1_SIGNAL_IN ( in_UPDATE_ADDRESS ,"address" ,Taddress_t,_param->_size_instruction_address); 94 ALLOC1_SIGNAL_IN ( in_UPDATE_INDEX ,"index" ,Tptr_t ,_param->_size_index); 95 ALLOC1_SIGNAL_IN ( in_UPDATE_MISS_PREDICTION ,"miss_prediction" ,Tcontrol_t,1); 98 96 ALLOC1_SIGNAL_IN ( in_UPDATE_PREDICTION_IFETCH,"prediction_ifetch",Tcontrol_t,1); 99 97 } 100 98 99 if (usage_is_set(_usage,USE_SYSTEMC)) 100 { 101 101 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 102 102 … … 118 118 internal_DECOD_HIT = new Tcontrol_t [_param->_nb_inst_decod ]; 119 119 internal_UPDATE_ACK = new Tcontrol_t [_param->_nb_inst_update ]; 120 } 120 121 121 122 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 122 123 123 124 #ifdef POSITION 124 _component->generate_file(); 125 if (usage_is_set(_usage,USE_POSITION)) 126 _component->generate_file(); 125 127 #endif 126 128 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_deallocation.cpp
r81 r88 7 7 8 8 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h" 9 #include "Behavioural/include/Allocation.h" 9 10 10 11 namespace morpheo { … … 23 24 log_printf(FUNC,Return_Address_Stack,FUNCTION,"Begin"); 24 25 25 if ( _usage & USE_SYSTEMC)26 if (usage_is_set(_usage,USE_SYSTEMC)) 26 27 { 27 28 delete in_CLOCK ; 28 29 delete in_NRESET; 29 30 30 delete [] in_PREDICT_VAL ; 31 delete [] out_PREDICT_ACK ; 32 if (_param->_have_port_context_id) 33 delete [] in_PREDICT_CONTEXT_ID ; 34 delete [] out_PREDICT_HIT ; 35 delete [] in_PREDICT_PUSH ; 36 delete [] in_PREDICT_ADDRESS_PUSH ; 37 delete [] out_PREDICT_ADDRESS_POP ; 38 delete [] out_PREDICT_INDEX ; 39 delete [] in_DECOD_VAL ; 40 delete [] out_DECOD_ACK ; 41 delete [] in_DECOD_PUSH ; 42 if (_param->_have_port_context_id) 43 delete [] in_DECOD_CONTEXT_ID ; 44 delete [] out_DECOD_HIT ; 45 delete [] in_DECOD_ADDRESS_PUSH ; 46 delete [] out_DECOD_ADDRESS_POP ; 47 delete [] out_DECOD_INDEX ; 48 delete [] in_DECOD_MISS_PREDICTION; 49 delete [] in_UPDATE_VAL ; 50 delete [] out_UPDATE_ACK ; 51 if (_param->_have_port_context_id) 52 delete [] in_UPDATE_CONTEXT_ID ; 53 delete [] in_UPDATE_PUSH ; 54 delete [] in_UPDATE_INDEX ; 55 delete [] in_UPDATE_ADDRESS ; 56 delete [] in_UPDATE_MISS_PREDICTION; 57 delete [] in_UPDATE_PREDICTION_IFETCH; 31 DELETE1_SIGNAL( in_PREDICT_VAL ,_param->_nb_inst_predict,1); 32 DELETE1_SIGNAL(out_PREDICT_ACK ,_param->_nb_inst_predict,1); 33 DELETE1_SIGNAL( in_PREDICT_CONTEXT_ID ,_param->_nb_inst_predict,_param->_size_context_id); 34 DELETE1_SIGNAL(out_PREDICT_HIT ,_param->_nb_inst_predict,1); 35 DELETE1_SIGNAL( in_PREDICT_PUSH ,_param->_nb_inst_predict,1); 36 DELETE1_SIGNAL( in_PREDICT_ADDRESS_PUSH ,_param->_nb_inst_predict,_param->_size_instruction_address); 37 DELETE1_SIGNAL(out_PREDICT_ADDRESS_POP ,_param->_nb_inst_predict,_param->_size_instruction_address); 38 DELETE1_SIGNAL(out_PREDICT_INDEX ,_param->_nb_inst_predict,_param->_size_index); 39 40 DELETE1_SIGNAL( in_DECOD_VAL ,_param->_nb_inst_decod,1); 41 DELETE1_SIGNAL(out_DECOD_ACK ,_param->_nb_inst_decod,1); 42 DELETE1_SIGNAL( in_DECOD_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id); 43 DELETE1_SIGNAL(out_DECOD_HIT ,_param->_nb_inst_decod,1); 44 DELETE1_SIGNAL( in_DECOD_PUSH ,_param->_nb_inst_decod,1); 45 DELETE1_SIGNAL( in_DECOD_ADDRESS_PUSH ,_param->_nb_inst_decod,_param->_size_instruction_address); 46 DELETE1_SIGNAL(out_DECOD_ADDRESS_POP ,_param->_nb_inst_decod,_param->_size_instruction_address); 47 DELETE1_SIGNAL(out_DECOD_INDEX ,_param->_nb_inst_decod,_param->_size_index); 48 DELETE1_SIGNAL( in_DECOD_MISS_PREDICTION ,_param->_nb_inst_decod,1); 49 50 DELETE1_SIGNAL( in_UPDATE_VAL ,_param->_nb_inst_update,1); 51 DELETE1_SIGNAL(out_UPDATE_ACK ,_param->_nb_inst_update,1); 52 DELETE1_SIGNAL( in_UPDATE_CONTEXT_ID ,_param->_nb_inst_update,_param->_size_context_id); 53 DELETE1_SIGNAL( in_UPDATE_PUSH ,_param->_nb_inst_update,1); 54 DELETE1_SIGNAL( in_UPDATE_ADDRESS ,_param->_nb_inst_update,_param->_size_instruction_address); 55 DELETE1_SIGNAL( in_UPDATE_INDEX ,_param->_nb_inst_update,_param->_size_index); 56 DELETE1_SIGNAL( in_UPDATE_MISS_PREDICTION ,_param->_nb_inst_update,1); 57 DELETE1_SIGNAL( in_UPDATE_PREDICTION_IFETCH,_param->_nb_inst_update,1); 58 59 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60 61 for (uint32_t i=0; i<_param->_nb_context; i++) 62 delete [] reg_stack [i]; 63 delete [] reg_stack; 64 delete [] reg_TOP; 65 delete [] reg_BOTTOM; 66 delete [] reg_NB_ELT; 67 delete [] reg_PREDICT_TOP; 68 delete [] reg_PREDICT_BOTTOM; 69 delete [] reg_PREDICT_NB_ELT; 70 71 delete [] internal_PREDICT_ACK; 72 delete [] internal_PREDICT_HIT; 73 delete [] internal_DECOD_ACK; 74 delete [] internal_DECOD_HIT; 75 delete [] internal_UPDATE_ACK; 58 76 } 59 60 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~61 62 delete [] reg_stack;63 delete [] reg_TOP;64 delete [] reg_BOTTOM;65 delete [] reg_NB_ELT;66 delete [] reg_PREDICT_TOP;67 delete [] reg_PREDICT_BOTTOM;68 delete [] reg_PREDICT_NB_ELT;69 70 delete [] internal_PREDICT_ACK;71 delete [] internal_PREDICT_HIT;72 delete [] internal_DECOD_ACK;73 delete [] internal_DECOD_HIT;74 delete [] internal_UPDATE_ACK;75 77 76 78 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_end_cycle.cpp
r81 r88 25 25 26 26 #ifdef STATISTICS 27 _stat->end_cycle(); 27 if (usage_is_set(_usage,USE_STATISTICS)) 28 _stat->end_cycle(); 28 29 #endif 29 30 … … 31 32 // Evaluation before read the ouput signal 32 33 // sc_start(0); 33 _interfaces->testbench(); 34 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 35 _interfaces->testbench(); 34 36 #endif 35 37 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_transition.cpp
r81 r88 191 191 192 192 // Scan full assoc !!! 193 for (uint32_t j=0; j<_param->_size_queue [ i]; j++)193 for (uint32_t j=0; j<_param->_size_queue [context]; j++) 194 194 // Test if this slot is tagged with "predict" : if true, tagged as miss 195 195 if (reg_stack [context][j]._predict)
Note: See TracChangeset
for help on using the changeset viewer.