Changeset 112 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit
- Timestamp:
- Mar 18, 2009, 11:36:26 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp
r110 r112 104 104 ALLOC1_SC_SIGNAL( in_CONTEXT_DEPTH_VAL ," in_CONTEXT_DEPTH_VAL ",Tcontrol_t ,_param->_nb_context); 105 105 ALLOC1_SC_SIGNAL( in_CONTEXT_DEPTH ," in_CONTEXT_DEPTH ",Tdepth_t ,_param->_nb_context); 106 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_VAL ,"out_CONTEXT_EVENT_VAL ",Tcontrol_t );107 ALLOC _SC_SIGNAL( in_CONTEXT_EVENT_ACK ," in_CONTEXT_EVENT_ACK ",Tcontrol_t );108 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ,"out_CONTEXT_EVENT_CONTEXT_ID ",Tcontext_t );109 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_DEPTH ,"out_CONTEXT_EVENT_DEPTH ",Tdepth_t );110 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_TYPE ,"out_CONTEXT_EVENT_TYPE ",Tevent_type_t );111 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT ,"out_CONTEXT_EVENT_IS_DELAY_SLOT ",Tcontrol_t );112 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS ,"out_CONTEXT_EVENT_ADDRESS ",Tgeneral_data_t );113 ALLOC _SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,"out_CONTEXT_EVENT_ADDRESS_EPCR ",Tgeneral_data_t );106 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_VAL ,"out_CONTEXT_EVENT_VAL ",Tcontrol_t ); 107 ALLOC0_SC_SIGNAL( in_CONTEXT_EVENT_ACK ," in_CONTEXT_EVENT_ACK ",Tcontrol_t ); 108 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ,"out_CONTEXT_EVENT_CONTEXT_ID ",Tcontext_t ); 109 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_DEPTH ,"out_CONTEXT_EVENT_DEPTH ",Tdepth_t ); 110 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_TYPE ,"out_CONTEXT_EVENT_TYPE ",Tevent_type_t ); 111 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT ,"out_CONTEXT_EVENT_IS_DELAY_SLOT ",Tcontrol_t ); 112 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS ,"out_CONTEXT_EVENT_ADDRESS ",Tgeneral_data_t ); 113 ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,"out_CONTEXT_EVENT_ADDRESS_EPCR ",Tgeneral_data_t ); 114 114 115 115 /******************************************************** … … 135 135 { 136 136 if (_param->_have_port_inst_ifetch_ptr) 137 INSTANCE _SC_SIGNAL(_Decod, in_IFETCH_INST_IFETCH_PTR [i]);137 INSTANCE0_SC_SIGNAL(_Decod, in_IFETCH_INST_IFETCH_PTR [i]); 138 138 // if (_param->_have_port_branch_update_prediction_id) 139 139 if (_param->_have_port_depth) 140 INSTANCE _SC_SIGNAL(_Decod, in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);140 INSTANCE0_SC_SIGNAL(_Decod, in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]); 141 141 } 142 142 … … 188 188 for (uint32_t i=0; i<_param->_nb_context; i++) 189 189 if (_param->_have_port_depth) 190 INSTANCE _SC_SIGNAL(_Decod, in_CONTEXT_DEPTH [i]);191 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_VAL );192 INSTANCE _SC_SIGNAL(_Decod, in_CONTEXT_EVENT_ACK );190 INSTANCE0_SC_SIGNAL(_Decod, in_CONTEXT_DEPTH [i]); 191 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_VAL ); 192 INSTANCE0_SC_SIGNAL(_Decod, in_CONTEXT_EVENT_ACK ); 193 193 if (_param->_have_port_context_id) 194 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_CONTEXT_ID );194 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_CONTEXT_ID ); 195 195 if (_param->_have_port_depth) 196 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_DEPTH );197 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_TYPE );198 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_IS_DELAY_SLOT );199 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_ADDRESS );200 INSTANCE _SC_SIGNAL(_Decod,out_CONTEXT_EVENT_ADDRESS_EPCR );196 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_DEPTH ); 197 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_TYPE ); 198 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_IS_DELAY_SLOT ); 199 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_ADDRESS ); 200 INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_ADDRESS_EPCR ); 201 201 202 202 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Parameters.h
r88 r112 23 23 namespace decod { 24 24 25 const uint32_t nb_opcod_type = 14; 26 const uint32_t tab_opcod_type [] = {MAX_OPCOD_0, 27 MAX_OPCOD_1 , 28 MAX_OPCOD_2 , 29 MAX_OPCOD_3 , 30 MAX_OPCOD_4 , 31 MAX_OPCOD_5 , 32 MAX_OPCOD_6 , 33 MAX_OPCOD_7 , 34 MAX_OPCOD_8 , 35 MAX_OPCOD_9 , 36 MAX_OPCOD_10, 37 MAX_OPCOD_11, 38 MAX_OPCOD_12, 39 MAX_OPCOD_13}; 40 25 41 class Parameters : public morpheo::behavioural::Parameters 26 42 { … … 37 53 public : bool ** _instruction_implemeted ; //[nb_context][nb_instruction] 38 54 public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (void); 39 55 40 56 public : uint32_t _max_nb_inst_fetch; 41 57 //public : uint32_t _size_address_inst; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
r110 r112 58 58 // ~~~~~[ Interface : "ifetch" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59 59 { 60 ALLOC2_INTERFACE ("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context, _param->_nb_inst_fetch[it1]);60 ALLOC2_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context, _param->_nb_inst_fetch[it1]); 61 61 62 62 … … 64 64 _ALLOC2_VALACK_OUT(out_IFETCH_ACK ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]); 65 65 _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION,"instruction", Tinstruction_t, _param->_size_instruction,_param->_nb_context, _param->_nb_inst_fetch[it1]); 66 } 67 { 68 ALLOC1_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context); 66 67 ALLOC2_INTERFACE_END(_param->_nb_context, _param->_nb_inst_fetch[it1]); 68 } 69 { 70 ALLOC1_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context); 69 71 72 70 73 ALLOC1_SIGNAL_IN (in_IFETCH_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 71 74 ALLOC1_SIGNAL_IN (in_IFETCH_ADDRESS ,"address" ,Tgeneral_address_t ,_param->_size_instruction_address ); … … 75 78 ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth ); 76 79 ALLOC1_SIGNAL_IN (in_IFETCH_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception_ifetch); 80 81 ALLOC1_INTERFACE_END(_param->_nb_context); 77 82 } 78 83 79 84 // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 85 { 81 ALLOC1_INTERFACE ("decod", OUT, EAST, "Instructiont decoded", _param->_nb_inst_decod);86 ALLOC1_INTERFACE_BEGIN("decod", OUT, EAST, _("Instructiont decoded"), _param->_nb_inst_decod); 82 87 83 88 ALLOC1_VALACK_OUT(out_DECOD_VAL ,VAL); … … 107 112 ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION_USE,"exception_use",Texception_t ,_param->_size_exception_use ); 108 113 ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception_decod ); 114 115 ALLOC1_INTERFACE_END(_param->_nb_inst_decod); 109 116 } 110 117 111 118 // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 119 { 113 ALLOC1_INTERFACE ("predict",OUT,NORTH,"Decod a branch -> inform the branch predictor.",_param->_nb_inst_decod);120 ALLOC1_INTERFACE_BEGIN("predict",OUT,NORTH,_("Decod a branch -> inform the branch predictor."),_param->_nb_inst_decod); 114 121 115 122 ALLOC1_VALACK_OUT(out_PREDICT_VAL ,VAL); … … 125 132 ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_DEST ,"address_dest" ,Tgeneral_data_t ,_param->_size_instruction_address ); 126 133 ALLOC1_SIGNAL_IN ( in_PREDICT_CAN_CONTINUE ,"can_continue" ,Tcontrol_t ,1 ); 134 135 ALLOC1_INTERFACE_END(_param->_nb_inst_decod); 127 136 } 128 137 129 138 // ~~~~~[ Interface : "context" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 139 { 131 ALLOC1_INTERFACE ("context", IN, NORTH, "context's information", _param->_nb_context);140 ALLOC1_INTERFACE_BEGIN("context", IN, NORTH, _("context's information"), _param->_nb_context); 132 141 133 142 ALLOC1_SIGNAL_IN (in_CONTEXT_DECOD_ENABLE,"decod_enable",Tcontrol_t,1); 134 143 ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH_VAL ,"depth_val" ,Tcontrol_t,1); 135 144 ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth); 145 146 ALLOC1_INTERFACE_END(_param->_nb_context); 136 147 } 137 148 138 149 // ~~~~~[ Interface : "context_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 139 150 { 140 ALLOC_INTERFACE("context_event", OUT, NORTH, "context's evenement"); 141 142 ALLOC_VALACK_OUT(out_CONTEXT_EVENT_VAL ,VAL); 143 ALLOC_VALACK_IN ( in_CONTEXT_EVENT_ACK ,ACK); 144 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 145 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 146 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE ,"type" ,Tevent_type_t ,_param->_size_event_type ); 147 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t ,1 ); 148 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_instruction_address); 149 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address); 151 ALLOC0_INTERFACE_BEGIN("context_event", OUT, NORTH, _("context's evenement")); 152 153 ALLOC0_VALACK_OUT(out_CONTEXT_EVENT_VAL ,VAL); 154 ALLOC0_VALACK_IN ( in_CONTEXT_EVENT_ACK ,ACK); 155 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 156 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 157 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE ,"type" ,Tevent_type_t ,_param->_size_event_type ); 158 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t ,1 ); 159 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_instruction_address); 160 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address); 161 162 ALLOC0_INTERFACE_END(); 150 163 } 151 164 … … 154 167 if (usage_is_set(_usage,USE_SYSTEMC)) 155 168 { 156 reg_CONTEXT_ADDRESS_PREVIOUS = new Tgeneral_data_t [_param->_nb_context];157 reg_CONTEXT_IS_DELAY_SLOT = new Tcontrol_t [_param->_nb_context];158 159 internal_CONTEXT_HAVE_TRANSACTION = new Tcontrol_t [_param->_nb_context];160 internal_CONTEXT_ADDRESS_PREVIOUS = new Tgeneral_data_t [_param->_nb_context];161 internal_CONTEXT_IS_DELAY_SLOT = new Tcontrol_t [_param->_nb_context];169 ALLOC1(reg_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context); 170 ALLOC1(reg_CONTEXT_IS_DELAY_SLOT ,Tcontrol_t ,_param->_nb_context); 171 172 ALLOC1(internal_CONTEXT_HAVE_TRANSACTION ,Tcontrol_t ,_param->_nb_context); 173 ALLOC1(internal_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context); 174 ALLOC1(internal_CONTEXT_IS_DELAY_SLOT ,Tcontrol_t ,_param->_nb_context); 162 175 163 176 #ifdef STATISTICS 164 internal_DECOD_VAL = new Tcontrol_t [_param->_nb_inst_decod];177 ALLOC1(internal_DECOD_VAL ,Tcontrol_t ,_param->_nb_inst_decod); 165 178 #endif 166 179 } … … 174 187 _param->_nb_context_select); 175 188 176 const uint32_t nb_opcod_type = 14; 177 const uint32_t tab_opcod_type [] = {MAX_OPCOD_0, 178 MAX_OPCOD_1 , 179 MAX_OPCOD_2 , 180 MAX_OPCOD_3 , 181 MAX_OPCOD_4 , 182 MAX_OPCOD_5 , 183 MAX_OPCOD_6 , 184 MAX_OPCOD_7 , 185 MAX_OPCOD_8 , 186 MAX_OPCOD_9 , 187 MAX_OPCOD_10, 188 MAX_OPCOD_11, 189 MAX_OPCOD_12, 190 MAX_OPCOD_13}; 191 192 _function_decod = new function_decod_t *** [_param->_nb_context]; 193 _function_custom = new function_decod_t *** [_param->_nb_context]; 189 ALLOC3(_function_decod ,function_decod_t *,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]); 190 ALLOC3(_function_custom,function_decod_t *,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]); 191 194 192 for (uint32_t i=0; i<_param->_nb_context; i++) 195 193 { 196 _function_decod [i] = new function_decod_t ** [nb_opcod_type];197 _function_custom [i] = new function_decod_t ** [nb_opcod_type];198 194 for (uint32_t j=0; j<nb_opcod_type; j++) 199 { 200 _function_decod [i][j] = new function_decod_t * [tab_opcod_type[j]]; 201 _function_custom [i][j] = new function_decod_t * [tab_opcod_type[j]]; 202 for (uint32_t k=0; k<tab_opcod_type[j]; k++) 203 { 204 _function_decod [i][j][k] = &(instruction_illegal); 205 _function_custom [i][j][k] = &(instruction_illegal); 206 } 207 } 195 for (uint32_t k=0; k<tab_opcod_type[j]; k++) 196 { 197 _function_decod [i][j][k] = &(instruction_illegal); 198 _function_custom [i][j][k] = &(instruction_illegal); 199 } 208 200 209 201 // Create indirection … … 454 446 } 455 447 456 _decod_instruction = new decod_instruction_t;457 458 _decod_param = new decod_param_t * [_param->_nb_context]; 448 ALLOC0(_decod_instruction,decod_instruction_t); 449 ALLOC1(_decod_param,decod_param_t *,_param->_nb_context); 450 459 451 for (uint32_t i=0; i<_param->_nb_context; i++) 460 452 _decod_param [i] = new decod_param_t (_param->_size_general_data, -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
r110 r112 85 85 DELETE1_SIGNAL(in_CONTEXT_DEPTH , _param->_nb_context,_param->_size_depth); 86 86 87 DELETE _SIGNAL(out_CONTEXT_EVENT_VAL ,1);88 DELETE _SIGNAL( in_CONTEXT_EVENT_ACK ,1);89 DELETE _SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ,_param->_size_context_id );90 DELETE _SIGNAL(out_CONTEXT_EVENT_DEPTH ,_param->_size_depth );91 DELETE _SIGNAL(out_CONTEXT_EVENT_TYPE ,_param->_size_event_type );92 DELETE _SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT,1 );93 DELETE _SIGNAL(out_CONTEXT_EVENT_ADDRESS ,_param->_size_instruction_address);94 DELETE _SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address);87 DELETE0_SIGNAL(out_CONTEXT_EVENT_VAL ,1); 88 DELETE0_SIGNAL( in_CONTEXT_EVENT_ACK ,1); 89 DELETE0_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ,_param->_size_context_id ); 90 DELETE0_SIGNAL(out_CONTEXT_EVENT_DEPTH ,_param->_size_depth ); 91 DELETE0_SIGNAL(out_CONTEXT_EVENT_TYPE ,_param->_size_event_type ); 92 DELETE0_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT,1 ); 93 DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS ,_param->_size_instruction_address); 94 DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address); 95 95 96 96 97 98 delete reg_CONTEXT_ADDRESS_PREVIOUS ; 99 delete [] reg_CONTEXT_IS_DELAY_SLOT ; 100 101 delete [] internal_CONTEXT_HAVE_TRANSACTION ; 102 delete [] internal_CONTEXT_ADDRESS_PREVIOUS ; 103 delete [] internal_CONTEXT_IS_DELAY_SLOT ; 104 97 DELETE1(reg_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context); 98 DELETE1(reg_CONTEXT_IS_DELAY_SLOT ,_param->_nb_context); 99 DELETE1(internal_CONTEXT_HAVE_TRANSACTION ,_param->_nb_context); 100 DELETE1(internal_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context); 101 DELETE1(internal_CONTEXT_IS_DELAY_SLOT ,_param->_nb_context); 102 105 103 #ifdef STATISTICS 106 delete [] internal_DECOD_VAL;104 DELETE1(internal_DECOD_VAL ,_param->_nb_inst_decod); 107 105 #endif 108 106 } … … 111 109 delete _priority; 112 110 113 114 const uint32_t nb_opcod_type = 14; 111 DELETE3(_function_decod ,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]); 112 DELETE3(_function_custom ,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]); 113 DELETE0(_decod_instruction); 115 114 116 115 for (uint32_t i=0; i<_param->_nb_context; i++) 117 { 118 for (uint32_t j=0; j<nb_opcod_type; j++) 119 { 120 delete [] _function_decod [i][j]; 121 delete [] _function_custom [i][j]; 122 } 123 delete [] _function_decod [i]; 124 delete [] _function_custom [i]; 125 } 126 delete [] _function_decod ; 127 delete [] _function_custom; 128 delete _decod_instruction; 129 delete _decod_param ; 116 delete _decod_param [i]; 117 DELETE1(_decod_param ,_param->_nb_context); 118 130 119 delete _component; 131 120 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h
r111 r112 10 10 11 11 #include "Behavioural/include/Types.h" 12 #include "Behavioural/include/Allocation.h" 12 13 13 14 namespace morpheo { … … 58 59 _nb_inst (nb_inst) 59 60 { 60 _val = new Tcontrol_t [_nb_inst];61 _context_id = new Tcontext_t [_nb_inst];62 _depth = new Tdepth_t [_nb_inst];63 _type = new Ttype_t [_nb_inst];64 _operation = new Toperation_t [_nb_inst];65 _no_execute = new Tcontrol_t [_nb_inst];66 _is_delay_slot = new Tcontrol_t [_nb_inst];61 ALLOC1(_val ,Tcontrol_t ,_nb_inst); 62 ALLOC1(_context_id ,Tcontext_t ,_nb_inst); 63 ALLOC1(_depth ,Tdepth_t ,_nb_inst); 64 ALLOC1(_type ,Ttype_t ,_nb_inst); 65 ALLOC1(_operation ,Toperation_t ,_nb_inst); 66 ALLOC1(_no_execute ,Tcontrol_t ,_nb_inst); 67 ALLOC1(_is_delay_slot ,Tcontrol_t ,_nb_inst); 67 68 #ifdef DEBUG 68 _address = new Tgeneral_data_t [_nb_inst];69 ALLOC1(_address ,Tgeneral_data_t ,_nb_inst); 69 70 #endif 70 _address_next = new Tgeneral_data_t [_nb_inst];71 _has_immediat = new Tcontrol_t [_nb_inst];72 _immediat = new Tgeneral_data_t [_nb_inst];73 _read_ra = new Tcontrol_t [_nb_inst];74 _num_reg_ra = new Tgeneral_address_t [_nb_inst];75 _read_rb = new Tcontrol_t [_nb_inst];76 _num_reg_rb = new Tgeneral_address_t [_nb_inst];77 _read_rc = new Tcontrol_t [_nb_inst];78 _num_reg_rc = new Tspecial_address_t [_nb_inst];79 _write_rd = new Tcontrol_t [_nb_inst];80 _num_reg_rd = new Tgeneral_address_t [_nb_inst];81 _write_re = new Tcontrol_t [_nb_inst];82 _num_reg_re = new Tspecial_address_t [_nb_inst];83 _exception_use = new Texception_t [_nb_inst];84 _exception = new Texception_t [_nb_inst];71 ALLOC1(_address_next ,Tgeneral_data_t ,_nb_inst); 72 ALLOC1(_has_immediat ,Tcontrol_t ,_nb_inst); 73 ALLOC1(_immediat ,Tgeneral_data_t ,_nb_inst); 74 ALLOC1(_read_ra ,Tcontrol_t ,_nb_inst); 75 ALLOC1(_num_reg_ra ,Tgeneral_address_t ,_nb_inst); 76 ALLOC1(_read_rb ,Tcontrol_t ,_nb_inst); 77 ALLOC1(_num_reg_rb ,Tgeneral_address_t ,_nb_inst); 78 ALLOC1(_read_rc ,Tcontrol_t ,_nb_inst); 79 ALLOC1(_num_reg_rc ,Tspecial_address_t ,_nb_inst); 80 ALLOC1(_write_rd ,Tcontrol_t ,_nb_inst); 81 ALLOC1(_num_reg_rd ,Tgeneral_address_t ,_nb_inst); 82 ALLOC1(_write_re ,Tcontrol_t ,_nb_inst); 83 ALLOC1(_num_reg_re ,Tspecial_address_t ,_nb_inst); 84 ALLOC1(_exception_use ,Texception_t ,_nb_inst); 85 ALLOC1(_exception ,Texception_t ,_nb_inst); 85 86 86 87 for (uint32_t i=0; i<_nb_inst; i++) … … 90 91 public : ~decod_queue_entry_t (void) 91 92 { 92 delete [] _val;93 delete [] _context_id;94 delete [] _depth;95 delete [] _type;96 delete [] _operation;97 delete [] _no_execute;98 delete [] _is_delay_slot;93 DELETE1(_val ,_nb_inst); 94 DELETE1(_context_id ,_nb_inst); 95 DELETE1(_depth ,_nb_inst); 96 DELETE1(_type ,_nb_inst); 97 DELETE1(_operation ,_nb_inst); 98 DELETE1(_no_execute ,_nb_inst); 99 DELETE1(_is_delay_slot ,_nb_inst); 99 100 #ifdef DEBUG 100 delete [] _address;101 DELETE1(_address ,_nb_inst); 101 102 #endif 102 delete [] _address_next;103 delete [] _has_immediat;104 delete [] _immediat;105 delete [] _read_ra;106 delete [] _num_reg_ra;107 delete [] _read_rb;108 delete [] _num_reg_rb;109 delete [] _read_rc;110 delete [] _num_reg_rc;111 delete [] _write_rd;112 delete [] _num_reg_rd;113 delete [] _write_re;114 delete [] _num_reg_re;115 delete [] _exception_use;116 delete [] _exception;103 DELETE1(_address_next ,_nb_inst); 104 DELETE1(_has_immediat ,_nb_inst); 105 DELETE1(_immediat ,_nb_inst); 106 DELETE1(_read_ra ,_nb_inst); 107 DELETE1(_num_reg_ra ,_nb_inst); 108 DELETE1(_read_rb ,_nb_inst); 109 DELETE1(_num_reg_rb ,_nb_inst); 110 DELETE1(_read_rc ,_nb_inst); 111 DELETE1(_num_reg_rc ,_nb_inst); 112 DELETE1(_write_rd ,_nb_inst); 113 DELETE1(_num_reg_rd ,_nb_inst); 114 DELETE1(_write_re ,_nb_inst); 115 DELETE1(_num_reg_re ,_nb_inst); 116 DELETE1(_exception_use ,_nb_inst); 117 DELETE1(_exception ,_nb_inst); 117 118 } 118 119 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp
r111 r112 57 57 // ~~~~~[ Interface : "decod_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58 58 { 59 ALLOC1_INTERFACE ("decod_in",IN ,WEST,"Input of decod_queue", _param->_nb_inst_decod);59 ALLOC1_INTERFACE_BEGIN("decod_in",IN ,WEST,_("Input of decod_queue"), _param->_nb_inst_decod); 60 60 61 61 ALLOC1_VALACK_IN ( in_DECOD_IN_VAL ,VAL); … … 85 85 ALLOC1_SIGNAL_IN ( in_DECOD_IN_EXCEPTION_USE ,"exception_use",Texception_t ,_param->_size_exception_use ); 86 86 ALLOC1_SIGNAL_IN ( in_DECOD_IN_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception_decod ); 87 88 ALLOC1_INTERFACE_END(_param->_nb_inst_decod); 87 89 } 88 90 89 91 // ~~~~~[ Interface : "decod_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 92 { 91 ALLOC1_INTERFACE ("decod_out",OUT,EAST,"Output of decod_queue", _param->_nb_inst_decod);93 ALLOC1_INTERFACE_BEGIN("decod_out",OUT,EAST,_("Output of decod_queue"), _param->_nb_inst_decod); 92 94 93 95 ALLOC1_VALACK_OUT(out_DECOD_OUT_VAL ,VAL); … … 117 119 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_EXCEPTION_USE ,"exception_use",Texception_t ,_param->_size_exception_use ); 118 120 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception_decod ); 121 122 ALLOC1_INTERFACE_END(_param->_nb_inst_decod); 119 123 } 120 124 121 125 // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 122 126 { 123 ALLOC1_INTERFACE ("depth",IN ,NORTH,"Depth", _param->_nb_context);127 ALLOC1_INTERFACE_BEGIN("depth",IN ,NORTH,_("Depth"), _param->_nb_context); 124 128 125 129 ALLOC1_SIGNAL_IN ( in_DEPTH_MIN ,"min" ,Tdepth_t ,_param->_size_depth); 126 130 ALLOC1_SIGNAL_IN ( in_DEPTH_MAX ,"max" ,Tdepth_t ,_param->_size_depth); 127 131 ALLOC1_SIGNAL_IN ( in_DEPTH_FULL ,"full" ,Tcontrol_t ,1); 132 133 ALLOC1_INTERFACE_END(_param->_nb_context); 128 134 } 129 135 130 136 // ~~~~~[ Interface : "nb_inst" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 131 137 { 132 ALLOC1_INTERFACE ("nb_inst",OUT,NORTH,"Instruction's number", _param->_nb_context);138 ALLOC1_INTERFACE_BEGIN("nb_inst",OUT,NORTH,_("Instruction's number"), _param->_nb_context); 133 139 134 140 ALLOC1_SIGNAL_OUT(out_NB_INST_ALL ,"all" ,Tcontext_t ,_param->_size_nb_inst_decod); 141 142 ALLOC1_INTERFACE_END(_param->_nb_context); 135 143 } 136 144 … … 140 148 switch (_param->_queue_scheme) 141 149 { 142 case DECOD_QUEUE_SCHEME_ONE_FIFO : reg_QUEUE = new std::list<decod_queue_entry_t*>; break;150 case DECOD_QUEUE_SCHEME_ONE_FIFO : ALLOC0(reg_QUEUE,std::list<decod_queue_entry_t*>); break; 143 151 case DECOD_QUEUE_SCHEME_MULTI_FIFO : ALLOC1(reg_QUEUE,std::list<decod_queue_entry_t*>,_param->_nb_bank); break; 144 152 } 145 reg_NB_INST = new uint32_t [_param->_nb_context]; 153 154 ALLOC1(reg_NB_INST,uint32_t,_param->_nb_context); 146 155 147 156 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 internal_DECOD_IN_ACK = new Tcontrol_t [_param->_nb_inst_decod];149 internal_DECOD_OUT_VAL = new Tcontrol_t [_param->_nb_inst_decod];150 internal_DECOD_OUT_ACK = new Tcontrol_t [_param->_nb_inst_decod];157 ALLOC1(internal_DECOD_IN_ACK ,Tcontrol_t,_param->_nb_inst_decod); 158 ALLOC1(internal_DECOD_OUT_VAL,Tcontrol_t,_param->_nb_inst_decod); 159 ALLOC1(internal_DECOD_OUT_ACK,Tcontrol_t,_param->_nb_inst_decod); 151 160 } 152 161 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp
r111 r112 92 92 switch (_param->_queue_scheme) 93 93 { 94 case DECOD_QUEUE_SCHEME_ONE_FIFO : delete reg_QUEUE; break; 95 case DECOD_QUEUE_SCHEME_MULTI_FIFO : DELETE1(reg_QUEUE,_param->_nb_bank); break; 96 } 97 delete [] reg_NB_INST; 94 case DECOD_QUEUE_SCHEME_ONE_FIFO : 95 { 96 while (not reg_QUEUE->empty()) 97 { 98 delete reg_QUEUE->front(); 99 reg_QUEUE->pop_front(); 100 } 101 102 DELETE0(reg_QUEUE); 103 break; 104 } 105 case DECOD_QUEUE_SCHEME_MULTI_FIFO : 106 { 107 for (uint32_t i=0; i<_param->_nb_bank; ++i) 108 while (not reg_QUEUE[i].empty()) 109 { 110 delete reg_QUEUE[i].front(); 111 reg_QUEUE[i].pop_front(); 112 } 113 114 DELETE1(reg_QUEUE,_param->_nb_bank); break; 115 } 116 } 117 118 DELETE1(reg_NB_INST ,_param->_nb_context); 98 119 99 120 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100 delete [] internal_DECOD_IN_ACK;101 delete [] internal_DECOD_OUT_VAL;102 delete [] internal_DECOD_OUT_ACK;121 DELETE1(internal_DECOD_IN_ACK ,_param->_nb_inst_decod); 122 DELETE1(internal_DECOD_OUT_VAL,_param->_nb_inst_decod); 123 DELETE1(internal_DECOD_OUT_ACK,_param->_nb_inst_decod); 103 124 } 104 125 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp
r111 r112 28 28 { 29 29 for (uint32_t i=0; i<_param->_nb_bank; ++i) 30 reg_QUEUE[i].clear(); 30 while (not reg_QUEUE[i].empty()) 31 { 32 delete reg_QUEUE[i].front(); 33 reg_QUEUE[i].pop_front(); 34 } 31 35 32 36 for (uint32_t i=0; i<_param->_nb_context; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp
r111 r112 27 27 if (PORT_READ(in_NRESET) == 0) 28 28 { 29 reg_QUEUE->clear(); 29 while (not reg_QUEUE->empty()) 30 { 31 delete reg_QUEUE->front(); 32 reg_QUEUE->pop_front(); 33 } 30 34 31 35 for (uint32_t i=0; i<_param->_nb_context; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/SelfTest/src/test.cpp
r110 r112 115 115 ALLOC1_SC_SIGNAL( in_CONTEXT_DEPTH ," in_CONTEXT_DEPTH ",Tdepth_t ,_param->_nb_context); 116 116 117 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_VAL ,"out_CONTEXT_EVENT_VAL ",Tcontrol_t );118 ALLOC _SC_SIGNAL( in_CONTEXT_EVENT_ACK ," in_CONTEXT_EVENT_ACK ",Tcontrol_t );119 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_CONTEXT_ID ,"out_CONTEXT_EVENT_CONTEXT_ID ",Tcontext_t );120 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_DEPTH ,"out_CONTEXT_EVENT_DEPTH ",Tdepth_t );121 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_TYPE ,"out_CONTEXT_EVENT_TYPE ",Tevent_type_t );122 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_IS_DELAY_SLOT ,"out_CONTEXT_EVENT_IS_DELAY_SLOT ",Tcontrol_t );123 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS ,"out_CONTEXT_EVENT_ADDRESS ",Tgeneral_data_t );124 ALLOC _SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS_EPCR ,"out_CONTEXT_EVENT_ADDRESS_EPCR ",Tgeneral_data_t );117 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_VAL ,"out_CONTEXT_EVENT_VAL ",Tcontrol_t ); 118 ALLOC0_SC_SIGNAL( in_CONTEXT_EVENT_ACK ," in_CONTEXT_EVENT_ACK ",Tcontrol_t ); 119 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_CONTEXT_ID ,"out_CONTEXT_EVENT_CONTEXT_ID ",Tcontext_t ); 120 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_DEPTH ,"out_CONTEXT_EVENT_DEPTH ",Tdepth_t ); 121 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_TYPE ,"out_CONTEXT_EVENT_TYPE ",Tevent_type_t ); 122 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_IS_DELAY_SLOT ,"out_CONTEXT_EVENT_IS_DELAY_SLOT ",Tcontrol_t ); 123 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS ,"out_CONTEXT_EVENT_ADDRESS ",Tgeneral_data_t ); 124 ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS_EPCR ,"out_CONTEXT_EVENT_ADDRESS_EPCR ",Tgeneral_data_t ); 125 125 126 126 /******************************************************** … … 144 144 { 145 145 if (_param->_have_port_inst_ifetch_ptr) 146 INSTANCE _SC_SIGNAL(_Decod_unit,in_IFETCH_INST_IFETCH_PTR[i]);146 INSTANCE0_SC_SIGNAL(_Decod_unit,in_IFETCH_INST_IFETCH_PTR[i]); 147 147 if (_param->_have_port_depth) 148 INSTANCE _SC_SIGNAL(_Decod_unit,in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);148 INSTANCE0_SC_SIGNAL(_Decod_unit,in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]); 149 149 } 150 150 … … 210 210 INSTANCE1_SC_SIGNAL(_Decod_unit, in_CONTEXT_DEPTH ,_param->_nb_context); 211 211 212 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_VAL );213 INSTANCE _SC_SIGNAL( _Decod_unit, in_CONTEXT_EVENT_ACK );212 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_VAL ); 213 INSTANCE0_SC_SIGNAL( _Decod_unit, in_CONTEXT_EVENT_ACK ); 214 214 if (_param->_have_port_context_id) 215 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_CONTEXT_ID );215 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_CONTEXT_ID ); 216 216 if (_param->_have_port_depth) 217 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_DEPTH );218 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_TYPE );219 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_IS_DELAY_SLOT );220 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS );221 INSTANCE _SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS_EPCR );217 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_DEPTH ); 218 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_TYPE ); 219 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_IS_DELAY_SLOT ); 220 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS ); 221 INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS_EPCR ); 222 222 223 223 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); … … 538 538 DELETE1_SC_SIGNAL( in_CONTEXT_DEPTH ,_param->_nb_context); 539 539 540 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_VAL );541 DELETE _SC_SIGNAL(in_CONTEXT_EVENT_ACK );542 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID );543 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_DEPTH );544 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_TYPE );545 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT );546 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS );547 DELETE _SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR );540 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_VAL ); 541 DELETE0_SC_SIGNAL( in_CONTEXT_EVENT_ACK ); 542 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ); 543 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_DEPTH ); 544 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_TYPE ); 545 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT ); 546 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS ); 547 DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ); 548 548 } 549 549 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp
r110 r112 58 58 // ~~~~~[ Interface : "ifetch" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59 59 { 60 ALLOC2_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context, _param->_nb_inst_fetch[it1]); 61 60 ALLOC2_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context, _param->_nb_inst_fetch[it1]); 62 61 63 62 _ALLOC2_VALACK_IN ( in_IFETCH_VAL ,VAL, _param->_nb_context, _param->_nb_inst_fetch[it1]); 64 63 _ALLOC2_VALACK_OUT(out_IFETCH_ACK ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]); 65 64 _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION,"instruction", Tinstruction_t, _param->_size_instruction,_param->_nb_context, _param->_nb_inst_fetch[it1]); 66 } 67 { 68 ALLOC1_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context); 65 66 ALLOC2_INTERFACE_END(_param->_nb_context, _param->_nb_inst_fetch[it1]); 67 } 68 { 69 ALLOC1_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context); 69 70 70 71 ALLOC1_SIGNAL_IN (in_IFETCH_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); … … 75 76 ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t ,_param->_size_depth ); 76 77 ALLOC1_SIGNAL_IN (in_IFETCH_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception_ifetch); 78 79 ALLOC1_INTERFACE_END(_param->_nb_context); 77 80 } 78 81 79 82 // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 83 { 81 ALLOC1_INTERFACE ("decod", OUT, EAST, "Instructiont decoded", _param->_nb_inst_decod);84 ALLOC1_INTERFACE_BEGIN("decod", OUT, EAST, _("Instruction decoded"), _param->_nb_inst_decod); 82 85 83 86 ALLOC1_VALACK_OUT(out_DECOD_VAL ,VAL); … … 107 110 ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION_USE,"exception_use",Texception_t ,_param->_size_exception_use ); 108 111 ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception_decod ); 112 113 ALLOC1_INTERFACE_END(_param->_nb_inst_decod); 109 114 } 110 115 111 116 // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 117 { 113 ALLOC1_INTERFACE ("predict",OUT,NORTH,"Decod a branch -> inform the branch predictor.",_param->_nb_inst_decod);118 ALLOC1_INTERFACE_BEGIN("predict",OUT,NORTH,_("Decod a branch -> inform the branch predictor."),_param->_nb_inst_decod); 114 119 115 120 ALLOC1_VALACK_OUT(out_PREDICT_VAL ,VAL); … … 125 130 ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_DEST ,"address_dest" ,Tgeneral_data_t ,_param->_size_instruction_address ); 126 131 ALLOC1_SIGNAL_IN ( in_PREDICT_CAN_CONTINUE ,"can_continue" ,Tcontrol_t ,1 ); 127 } 128 132 133 ALLOC1_INTERFACE_END(_param->_nb_inst_decod); 134 } 135 129 136 // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 137 { 131 ALLOC1_INTERFACE ("depth",IN ,NORTH,"Depth", _param->_nb_context);138 ALLOC1_INTERFACE_BEGIN("depth",IN ,NORTH,_("Depth"), _param->_nb_context); 132 139 133 140 ALLOC1_SIGNAL_IN ( in_DEPTH_MIN ,"min" ,Tdepth_t ,_param->_size_depth); 134 141 ALLOC1_SIGNAL_IN ( in_DEPTH_MAX ,"max" ,Tdepth_t ,_param->_size_depth); 135 142 ALLOC1_SIGNAL_IN ( in_DEPTH_FULL ,"full" ,Tcontrol_t ,1); 143 144 ALLOC1_INTERFACE_END(_param->_nb_context); 136 145 } 137 146 138 147 // ~~~~~[ Interface : "nb_inst" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 139 148 { 140 ALLOC1_INTERFACE ("nb_inst",OUT,NORTH,"Instruction's number", _param->_nb_context);149 ALLOC1_INTERFACE_BEGIN("nb_inst",OUT,NORTH,_("Instruction's number"), _param->_nb_context); 141 150 142 151 ALLOC1_SIGNAL_OUT(out_NB_INST_DECOD_ALL ,"decod_all" ,Tcontext_t ,_param->_size_nb_inst_decod); 152 153 ALLOC1_INTERFACE_END(_param->_nb_context); 143 154 } 144 155 145 156 // ~~~~~[ Interface : "context" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 157 { 147 ALLOC1_INTERFACE ("context", IN, NORTH, "context's information", _param->_nb_context);158 ALLOC1_INTERFACE_BEGIN("context", IN, NORTH, _("context's information"), _param->_nb_context); 148 159 149 160 ALLOC1_SIGNAL_IN (in_CONTEXT_DECOD_ENABLE,"decod_enable",Tcontrol_t,1); 150 161 ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH_VAL ,"depth_val" ,Tcontrol_t,1); 151 162 ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth); 163 164 ALLOC1_INTERFACE_END(_param->_nb_context); 152 165 } 153 166 154 167 // ~~~~~[ Interface : "context_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 155 168 { 156 ALLOC_INTERFACE("context_event", OUT, NORTH, "context's evenement"); 157 158 ALLOC_VALACK_OUT(out_CONTEXT_EVENT_VAL ,VAL); 159 ALLOC_VALACK_IN ( in_CONTEXT_EVENT_ACK ,ACK); 160 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 161 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 162 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE ,"type" ,Tevent_type_t ,_param->_size_event_type ); 163 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t ,1 ); 164 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_instruction_address); 165 ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address); 169 ALLOC0_INTERFACE_BEGIN("context_event", OUT, NORTH, _("context's evenement")); 170 171 ALLOC0_VALACK_OUT(out_CONTEXT_EVENT_VAL ,VAL); 172 ALLOC0_VALACK_IN ( in_CONTEXT_EVENT_ACK ,ACK); 173 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 174 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 175 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE ,"type" ,Tevent_type_t ,_param->_size_event_type ); 176 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t ,1 ); 177 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_instruction_address); 178 ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address); 179 180 ALLOC0_INTERFACE_END(); 166 181 } 167 182 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp
r110 r112 89 89 DELETE1_SIGNAL(in_CONTEXT_DEPTH ,_param->_nb_context,_param->_size_depth); 90 90 91 DELETE _SIGNAL(out_CONTEXT_EVENT_VAL ,1);92 DELETE _SIGNAL( in_CONTEXT_EVENT_ACK ,1);93 DELETE _SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ,_param->_size_context_id );94 DELETE _SIGNAL(out_CONTEXT_EVENT_DEPTH ,_param->_size_depth );95 DELETE _SIGNAL(out_CONTEXT_EVENT_TYPE ,_param->_size_event_type );96 DELETE _SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT ,1 );97 DELETE _SIGNAL(out_CONTEXT_EVENT_ADDRESS ,_param->_size_instruction_address);98 DELETE _SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address);91 DELETE0_SIGNAL(out_CONTEXT_EVENT_VAL ,1); 92 DELETE0_SIGNAL( in_CONTEXT_EVENT_ACK ,1); 93 DELETE0_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID ,_param->_size_context_id ); 94 DELETE0_SIGNAL(out_CONTEXT_EVENT_DEPTH ,_param->_size_depth ); 95 DELETE0_SIGNAL(out_CONTEXT_EVENT_TYPE ,_param->_size_event_type ); 96 DELETE0_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT ,1 ); 97 DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS ,_param->_size_instruction_address); 98 DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address); 99 99 } 100 100 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: See TracChangeset
for help on using the changeset viewer.