Changeset 112 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src
- Timestamp:
- Mar 18, 2009, 11:36:26 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_allocation.cpp
r101 r112 16 16 namespace ifetch_unit { 17 17 namespace address_management { 18 19 20 18 21 19 #undef FUNCTION … … 58 56 // ~~~~~[ Interface : "address" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59 57 { 60 ALLOC _INTERFACE("address", OUT, SOUTH, "Access at request icache.");58 ALLOC0_INTERFACE_BEGIN("address", OUT, SOUTH, _("Access at request icache.")); 61 59 62 ALLOC_VALACK_OUT (out_ADDRESS_VAL ,VAL); 63 ALLOC_VALACK_IN ( in_ADDRESS_ACK ,ACK); 64 ALLOC_SIGNAL_OUT (out_ADDRESS_INSTRUCTION_ADDRESS ,"instruction_address" ,Tgeneral_address_t,_param->_size_instruction_address ); 65 ALLOC_SIGNAL_OUT (out_ADDRESS_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr ); 66 ALLOC_SIGNAL_OUT (out_ADDRESS_BRANCH_STATE ,"branch_state" ,Tbranch_state_t ,_param->_size_branch_state ); 67 ALLOC_SIGNAL_OUT (out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth); 60 ALLOC0_VALACK_OUT (out_ADDRESS_VAL ,VAL); 61 ALLOC0_VALACK_IN ( in_ADDRESS_ACK ,ACK); 62 ALLOC0_SIGNAL_OUT (out_ADDRESS_INSTRUCTION_ADDRESS ,"instruction_address" ,Tgeneral_address_t,_param->_size_instruction_address ); 63 ALLOC0_SIGNAL_OUT (out_ADDRESS_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr ); 64 ALLOC0_SIGNAL_OUT (out_ADDRESS_BRANCH_STATE ,"branch_state" ,Tbranch_state_t ,_param->_size_branch_state ); 65 ALLOC0_SIGNAL_OUT (out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth); 66 67 ALLOC0_INTERFACE_END(); 68 68 } 69 69 70 70 { 71 ALLOC1_INTERFACE ("address", OUT, SOUTH, "Access at request icache.",_param->_nb_instruction);71 ALLOC1_INTERFACE_BEGIN("address", OUT, SOUTH, _("Access at request icache."),_param->_nb_instruction); 72 72 73 73 ALLOC1_SIGNAL_OUT(out_ADDRESS_INSTRUCTION_ENABLE ,"instruction_enable" ,Tcontrol_t ,1); 74 75 ALLOC1_INTERFACE_END(_param->_nb_instruction); 74 76 } 75 77 76 78 // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 79 { 78 ALLOC _INTERFACE("predict", IN, NORTH, "Request the prediction unit.");80 ALLOC0_INTERFACE_BEGIN("predict", IN, NORTH, _("Request the prediction unit.")); 79 81 80 ALLOC_VALACK_OUT (out_PREDICT_VAL ,VAL); 81 ALLOC_VALACK_IN ( in_PREDICT_ACK ,ACK); 82 ALLOC_SIGNAL_OUT (out_PREDICT_PC_PREVIOUS ,"pc_previous" ,Tgeneral_address_t,_param->_size_instruction_address); 83 ALLOC_SIGNAL_OUT (out_PREDICT_PC_CURRENT ,"pc_current" ,Tgeneral_address_t,_param->_size_instruction_address); 84 ALLOC_SIGNAL_OUT (out_PREDICT_PC_CURRENT_IS_DS_TAKE ,"pc_current_is_ds_take" ,Tcontrol_t ,1); 85 ALLOC_SIGNAL_IN ( in_PREDICT_PC_NEXT ,"pc_next" ,Tgeneral_address_t,_param->_size_instruction_address); 86 ALLOC_SIGNAL_IN ( in_PREDICT_PC_NEXT_IS_DS_TAKE ,"pc_next_is_ds_take" ,Tcontrol_t ,1); 87 // ALLOC_SIGNAL_IN ( in_PREDICT_BRANCH_IS_CURRENT ,"branch_is_current" ,Tcontrol_t ,1); 88 ALLOC_SIGNAL_IN ( in_PREDICT_BRANCH_STATE ,"branch_state" ,Tbranch_state_t ,_param->_size_branch_state); 89 ALLOC_SIGNAL_IN ( in_PREDICT_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth); 90 ALLOC_SIGNAL_IN ( in_PREDICT_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr); 82 ALLOC0_VALACK_OUT (out_PREDICT_VAL ,VAL); 83 ALLOC0_VALACK_IN ( in_PREDICT_ACK ,ACK); 84 ALLOC0_SIGNAL_OUT (out_PREDICT_PC_PREVIOUS ,"pc_previous" ,Tgeneral_address_t,_param->_size_instruction_address); 85 ALLOC0_SIGNAL_OUT (out_PREDICT_PC_CURRENT ,"pc_current" ,Tgeneral_address_t,_param->_size_instruction_address); 86 ALLOC0_SIGNAL_OUT (out_PREDICT_PC_CURRENT_IS_DS_TAKE ,"pc_current_is_ds_take" ,Tcontrol_t ,1); 87 ALLOC0_SIGNAL_IN ( in_PREDICT_PC_NEXT ,"pc_next" ,Tgeneral_address_t,_param->_size_instruction_address); 88 ALLOC0_SIGNAL_IN ( in_PREDICT_PC_NEXT_IS_DS_TAKE ,"pc_next_is_ds_take" ,Tcontrol_t ,1); 89 // ALLOC0_SIGNAL_IN ( in_PREDICT_BRANCH_IS_CURRENT ,"branch_is_current" ,Tcontrol_t ,1); 90 ALLOC0_SIGNAL_IN ( in_PREDICT_BRANCH_STATE ,"branch_state" ,Tbranch_state_t ,_param->_size_branch_state); 91 ALLOC0_SIGNAL_IN ( in_PREDICT_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth); 92 ALLOC0_SIGNAL_IN ( in_PREDICT_INST_IFETCH_PTR ,"inst_ifetch_ptr" ,Tinst_ifetch_ptr_t,_param->_size_inst_ifetch_ptr); 93 94 ALLOC0_INTERFACE_END(); 91 95 } 92 96 { 93 ALLOC1_INTERFACE ("predict", IN, NORTH, "Request the prediction unit.",_param->_nb_instruction);97 ALLOC1_INTERFACE_BEGIN("predict", IN, NORTH, _("Request the prediction unit."),_param->_nb_instruction); 94 98 95 99 ALLOC1_SIGNAL_IN (in_PREDICT_INSTRUCTION_ENABLE ,"instruction_enable" ,Tcontrol_t ,1); 100 101 ALLOC1_INTERFACE_END(_param->_nb_instruction); 96 102 } 97 103 98 104 // ~~~~~[ Interface "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 99 105 { 100 ALLOC _INTERFACE("event", IN, SOUTH, "Event (miss, exception ...)");106 ALLOC0_INTERFACE_BEGIN("event", IN, SOUTH, _("Event (miss, exception ...)")); 101 107 102 ALLOC_VALACK_IN ( in_EVENT_VAL ,VAL); 103 ALLOC_VALACK_OUT(out_EVENT_ACK ,ACK); 104 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS ,"address" ,Tgeneral_address_t,_param->_size_instruction_address); 105 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS_NEXT ,"address_next" ,Tgeneral_address_t,_param->_size_instruction_address); 106 ALLOC_SIGNAL_IN ( in_EVENT_ADDRESS_NEXT_VAL,"address_next_val",Tcontrol_t,1); 107 ALLOC_SIGNAL_IN ( in_EVENT_IS_DS_TAKE ,"is_ds_take" ,Tcontrol_t,1); 108 ALLOC0_VALACK_IN ( in_EVENT_VAL ,VAL); 109 ALLOC0_VALACK_OUT(out_EVENT_ACK ,ACK); 110 ALLOC0_SIGNAL_IN ( in_EVENT_ADDRESS ,"address" ,Tgeneral_address_t,_param->_size_instruction_address); 111 ALLOC0_SIGNAL_IN ( in_EVENT_ADDRESS_NEXT ,"address_next" ,Tgeneral_address_t,_param->_size_instruction_address); 112 ALLOC0_SIGNAL_IN ( in_EVENT_ADDRESS_NEXT_VAL,"address_next_val",Tcontrol_t,1); 113 ALLOC0_SIGNAL_IN ( in_EVENT_IS_DS_TAKE ,"is_ds_take" ,Tcontrol_t,1); 114 115 ALLOC0_INTERFACE_END(); 108 116 } 109 117 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_deallocation.cpp
r101 r112 7 7 8 8 #include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h" 9 #include "Behavioural/include/Allocation.h" 9 10 10 11 namespace morpheo { … … 27 28 delete in_CLOCK ; 28 29 delete in_NRESET; 29 30 delete out_ADDRESS_VAL ; 31 delete in_ADDRESS_ACK ; 32 delete out_ADDRESS_INSTRUCTION_ADDRESS ; 33 delete [] out_ADDRESS_INSTRUCTION_ENABLE ; 34 if (_param->_have_port_inst_ifetch_ptr) 35 delete out_ADDRESS_INST_IFETCH_PTR ; 36 delete out_ADDRESS_BRANCH_STATE ; 37 if (_param->_have_port_depth) 38 delete out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID; 39 delete out_PREDICT_VAL ; 40 delete in_PREDICT_ACK ; 41 delete out_PREDICT_PC_PREVIOUS ; 42 delete out_PREDICT_PC_CURRENT ; 43 delete out_PREDICT_PC_CURRENT_IS_DS_TAKE ; 44 delete in_PREDICT_PC_NEXT ; 45 delete in_PREDICT_PC_NEXT_IS_DS_TAKE ; 46 delete [] in_PREDICT_INSTRUCTION_ENABLE ; 47 if (_param->_have_port_inst_ifetch_ptr) 48 delete in_PREDICT_INST_IFETCH_PTR ; 49 // delete in_PREDICT_BRANCH_IS_CURRENT ; 50 delete in_PREDICT_BRANCH_STATE ; 51 if (_param->_have_port_depth) 52 delete in_PREDICT_BRANCH_UPDATE_PREDICTION_ID; 53 delete in_EVENT_VAL ; 54 delete out_EVENT_ACK ; 55 delete in_EVENT_ADDRESS ; 56 delete in_EVENT_ADDRESS_NEXT ; 57 delete in_EVENT_ADDRESS_NEXT_VAL ; 58 delete in_EVENT_IS_DS_TAKE ; 59 60 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 61 if (usage_is_set(_usage,USE_SYSTEMC)) 62 { 63 delete reg_PC_ACCESS_INSTRUCTION_ENABLE ; 64 delete reg_PC_CURRENT_INSTRUCTION_ENABLE; 65 delete reg_PC_NEXT_INSTRUCTION_ENABLE ; 66 } 30 31 DELETE0_SIGNAL(out_ADDRESS_VAL ,1); 32 DELETE0_SIGNAL( in_ADDRESS_ACK ,1); 33 DELETE0_SIGNAL(out_ADDRESS_INSTRUCTION_ADDRESS ,_param->_size_instruction_address ); 34 DELETE0_SIGNAL(out_ADDRESS_INST_IFETCH_PTR ,_param->_size_inst_ifetch_ptr ); 35 DELETE0_SIGNAL(out_ADDRESS_BRANCH_STATE ,_param->_size_branch_state ); 36 DELETE0_SIGNAL(out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID,_param->_size_depth); 37 DELETE1_SIGNAL(out_ADDRESS_INSTRUCTION_ENABLE ,1,_param->_nb_instruction); 38 39 DELETE0_SIGNAL(out_PREDICT_VAL ,1); 40 DELETE0_SIGNAL( in_PREDICT_ACK ,1); 41 DELETE0_SIGNAL(out_PREDICT_PC_PREVIOUS ,_param->_size_instruction_address); 42 DELETE0_SIGNAL(out_PREDICT_PC_CURRENT ,_param->_size_instruction_address); 43 DELETE0_SIGNAL(out_PREDICT_PC_CURRENT_IS_DS_TAKE ,1); 44 DELETE0_SIGNAL( in_PREDICT_PC_NEXT ,_param->_size_instruction_address); 45 DELETE0_SIGNAL( in_PREDICT_PC_NEXT_IS_DS_TAKE ,1); 46 // DELETE0_SIGNAL( in_PREDICT_BRANCH_IS_CURRENT ,1); 47 DELETE0_SIGNAL( in_PREDICT_BRANCH_STATE ,_param->_size_branch_state); 48 DELETE0_SIGNAL( in_PREDICT_BRANCH_UPDATE_PREDICTION_ID,_param->_size_depth); 49 DELETE0_SIGNAL( in_PREDICT_INST_IFETCH_PTR ,_param->_size_inst_ifetch_ptr); 50 DELETE1_SIGNAL(in_PREDICT_INSTRUCTION_ENABLE ,1,_param->_nb_instruction); 51 52 DELETE0_SIGNAL( in_EVENT_VAL ,1); 53 DELETE0_SIGNAL(out_EVENT_ACK ,1); 54 DELETE0_SIGNAL( in_EVENT_ADDRESS ,_param->_size_instruction_address); 55 DELETE0_SIGNAL( in_EVENT_ADDRESS_NEXT ,_param->_size_instruction_address); 56 DELETE0_SIGNAL( in_EVENT_ADDRESS_NEXT_VAL,1); 57 DELETE0_SIGNAL( in_EVENT_IS_DS_TAKE ,1); 58 59 DELETE1(reg_PC_ACCESS_INSTRUCTION_ENABLE ,_param->_nb_instruction); 60 DELETE1(reg_PC_CURRENT_INSTRUCTION_ENABLE,_param->_nb_instruction); 61 DELETE1(reg_PC_NEXT_INSTRUCTION_ENABLE ,_param->_nb_instruction); 67 62 } 68 69 63 70 64 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: See TracChangeset
for help on using the changeset viewer.