Changeset 139 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit
- Timestamp:
- Jul 30, 2010, 4:47:27 PM (14 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h
r137 r139 91 91 public : SC_OUT(Tcontrol_t ) ** out_DECOD_NO_EXECUTE ;//[nb_inst_decod] 92 92 public : SC_OUT(Tcontrol_t ) ** out_DECOD_IS_DELAY_SLOT ;//[nb_inst_decod] 93 public : SC_OUT(Tcontrol_t ) ** out_DECOD_SAVE_RAT ;//[nb_inst_decod] 93 94 #ifdef DEBUG 94 95 public : SC_OUT(Tgeneral_data_t ) ** out_DECOD_ADDRESS ;//[nb_inst_decod] … … 145 146 private : Tgeneral_data_t * reg_CONTEXT_ADDRESS_PREVIOUS ; //[nb_context] 146 147 private : Tcontrol_t * reg_CONTEXT_IS_DELAY_SLOT ; //[nb_context] 148 //private : Tcontrol_t * reg_CONTEXT_SAVE_RAT ; //[nb_context] 147 149 private : Tcontrol_t * internal_CONTEXT_HAVE_TRANSACTION; //[nb_context] 148 150 private : Tgeneral_data_t * internal_CONTEXT_ADDRESS_PREVIOUS; //[nb_context] 149 151 private : Tcontrol_t * internal_CONTEXT_IS_DELAY_SLOT ; //[nb_context] 152 //private : Tcontrol_t * internal_CONTEXT_SAVE_RAT ; //[nb_context] 150 153 151 154 private : Tcontrol_t * internal_DECOD_VAL ; //[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
r137 r139 90 90 ALLOC1_SIGNAL_OUT(out_DECOD_NO_EXECUTE ,"no_execute" ,Tcontrol_t ,1 ); 91 91 ALLOC1_SIGNAL_OUT(out_DECOD_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t ,1 ); 92 ALLOC1_SIGNAL_OUT(out_DECOD_SAVE_RAT ,"save_rat" ,Tcontrol_t ,1 ); 92 93 #ifdef DEBUG 93 94 ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS ,"address" ,Tgeneral_data_t ,_param->_size_instruction_address ); … … 165 166 ALLOC1(reg_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context); 166 167 ALLOC1(reg_CONTEXT_IS_DELAY_SLOT ,Tcontrol_t ,_param->_nb_context); 168 // ALLOC1(reg_CONTEXT_SAVE_RAT ,Tcontrol_t ,_param->_nb_context); 167 169 168 170 ALLOC1(internal_CONTEXT_HAVE_TRANSACTION ,Tcontrol_t ,_param->_nb_context); 169 171 ALLOC1(internal_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context); 170 172 ALLOC1(internal_CONTEXT_IS_DELAY_SLOT ,Tcontrol_t ,_param->_nb_context); 173 // ALLOC1(internal_CONTEXT_SAVE_RAT ,Tcontrol_t ,_param->_nb_context); 171 174 172 175 #ifdef STATISTICS -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
r137 r139 51 51 DELETE1_SIGNAL(out_DECOD_NO_EXECUTE ,_param->_nb_inst_decod,1 ); 52 52 DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT,_param->_nb_inst_decod,1 ); 53 DELETE1_SIGNAL(out_DECOD_SAVE_RAT ,_param->_nb_inst_decod,1 ); 53 54 #ifdef DEBUG 54 55 DELETE1_SIGNAL(out_DECOD_ADDRESS ,_param->_nb_inst_decod,_param->_size_instruction_address ); … … 99 100 DELETE1(reg_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context); 100 101 DELETE1(reg_CONTEXT_IS_DELAY_SLOT ,_param->_nb_context); 102 // DELETE1(reg_CONTEXT_SAVE_RAT ,_param->_nb_context); 103 101 104 DELETE1(internal_CONTEXT_HAVE_TRANSACTION ,_param->_nb_context); 102 105 DELETE1(internal_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context); 103 106 DELETE1(internal_CONTEXT_IS_DELAY_SLOT ,_param->_nb_context); 107 // DELETE1(internal_CONTEXT_SAVE_RAT ,_param->_nb_context); 104 108 105 109 #ifdef STATISTICS -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp
r137 r139 59 59 internal_CONTEXT_ADDRESS_PREVIOUS [i] = reg_CONTEXT_ADDRESS_PREVIOUS [i]; 60 60 internal_CONTEXT_IS_DELAY_SLOT [i] = reg_CONTEXT_IS_DELAY_SLOT [i]; 61 // internal_CONTEXT_SAVE_RAT [i] = reg_CONTEXT_SAVE_RAT [i]; 61 62 62 63 can_continue [i] = PORT_READ(in_CONTEXT_DECOD_ENABLE [i]); … … 169 170 // Depth current. If have decod a branch and i can continue : depth = depth_next 170 171 Tdepth_t depth = (_param->_have_port_depth)?PORT_READ(in_CONTEXT_DEPTH [x]):0; 172 // Tcontrol_t save_rat = internal_CONTEXT_SAVE_RAT [x]; 173 Tcontrol_t no_execute = _decod_instruction->_no_execute; 171 174 172 175 if ((_param->_nb_branch_speculated[x] > 0) and have_decod_branch [x]) … … 182 185 PORT_WRITE(out_DECOD_TYPE [i], type); 183 186 PORT_WRITE(out_DECOD_OPERATION [i], _decod_instruction->_operation ); 184 PORT_WRITE(out_DECOD_NO_EXECUTE [i], _decod_instruction->_no_execute);187 PORT_WRITE(out_DECOD_NO_EXECUTE [i], no_execute); 185 188 PORT_WRITE(out_DECOD_IS_DELAY_SLOT [i], _decod_instruction->_is_delay_slot ); 189 // PORT_WRITE(out_DECOD_SAVE_RAT [i], save_rat); 190 PORT_WRITE(out_DECOD_SAVE_RAT [i], ((type == TYPE_BRANCH) and not no_execute)); 186 191 #ifdef DEBUG 187 192 PORT_WRITE(out_DECOD_ADDRESS [i], addr); … … 288 293 internal_CONTEXT_ADDRESS_PREVIOUS [x] = addr; 289 294 internal_CONTEXT_IS_DELAY_SLOT [x] = (type == TYPE_BRANCH); // next is a delay slot if current have branch type 295 // internal_CONTEXT_SAVE_RAT [x] = ((type == TYPE_BRANCH) and not no_execute); 290 296 } 291 297 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_transition.cpp
r88 r139 32 32 reg_CONTEXT_ADDRESS_PREVIOUS [i] = 0xfc; // 0x100-4. (0x100 : reset address) 33 33 reg_CONTEXT_IS_DELAY_SLOT [i] = 0; 34 // reg_CONTEXT_SAVE_RAT [i] = 0; 34 35 } 35 36 } … … 44 45 reg_CONTEXT_ADDRESS_PREVIOUS [i] = internal_CONTEXT_ADDRESS_PREVIOUS [i]; 45 46 reg_CONTEXT_IS_DELAY_SLOT [i] = internal_CONTEXT_IS_DELAY_SLOT [i]; 47 // reg_CONTEXT_SAVE_RAT [i] = internal_CONTEXT_SAVE_RAT [i]; 46 48 } 47 49 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h
r137 r139 82 82 public : SC_IN (Tcontrol_t ) ** in_DECOD_IN_NO_EXECUTE ;//[nb_inst_decod] 83 83 public : SC_IN (Tcontrol_t ) ** in_DECOD_IN_IS_DELAY_SLOT ;//[nb_inst_decod] 84 public : SC_IN (Tcontrol_t ) ** in_DECOD_IN_SAVE_RAT ;//[nb_inst_decod] 84 85 #ifdef DEBUG 85 86 public : SC_IN (Tgeneral_data_t ) ** in_DECOD_IN_ADDRESS ;//[nb_inst_decod] … … 115 116 public : SC_OUT(Tcontrol_t ) ** out_DECOD_OUT_LAST_EVENT ;//[nb_inst_decod] 116 117 public : SC_OUT(Tcontrol_t ) ** out_DECOD_OUT_IS_DELAY_SLOT ;//[nb_inst_decod] 118 public : SC_OUT(Tcontrol_t ) ** out_DECOD_OUT_SAVE_RAT ;//[nb_inst_decod] 117 119 #ifdef DEBUG 118 120 public : SC_OUT(Tgeneral_data_t ) ** out_DECOD_OUT_ADDRESS ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h
r137 r139 40 40 public : Tcontrol_t * _no_execute ; 41 41 public : Tcontrol_t * _is_delay_slot ; 42 public : Tcontrol_t * _save_rat ; 42 43 #ifdef DEBUG 43 44 public : Tgeneral_data_t * _address ; … … 72 73 ALLOC1(_no_execute ,Tcontrol_t ,_nb_inst); 73 74 ALLOC1(_is_delay_slot ,Tcontrol_t ,_nb_inst); 75 ALLOC1(_save_rat ,Tcontrol_t ,_nb_inst); 74 76 #ifdef DEBUG 75 77 ALLOC1(_address ,Tgeneral_data_t ,_nb_inst); … … 107 109 DELETE1(_no_execute ,_nb_inst); 108 110 DELETE1(_is_delay_slot ,_nb_inst); 111 DELETE1(_save_rat ,_nb_inst); 109 112 #ifdef DEBUG 110 113 DELETE1(_address ,_nb_inst); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp
r137 r139 70 70 ALLOC1_SIGNAL_IN ( in_DECOD_IN_NO_EXECUTE ,"no_execute" ,Tcontrol_t ,1 ); 71 71 ALLOC1_SIGNAL_IN ( in_DECOD_IN_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t ,1 ); 72 ALLOC1_SIGNAL_IN ( in_DECOD_IN_SAVE_RAT ,"save_rat" ,Tcontrol_t ,1 ); 72 73 #ifdef DEBUG 73 74 ALLOC1_SIGNAL_IN ( in_DECOD_IN_ADDRESS ,"address" ,Tgeneral_data_t ,_param->_size_instruction_address ); … … 109 110 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_LAST_EVENT ,"last_event" ,Tcontrol_t ,1 ); 110 111 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_IS_DELAY_SLOT ,"is_delay_slot",Tcontrol_t ,1 ); 112 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_SAVE_RAT ,"save_rat" ,Tcontrol_t ,1 ); 111 113 #ifdef DEBUG 112 114 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_ADDRESS ,"address" ,Tgeneral_data_t ,_param->_size_instruction_address ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp
r137 r139 40 40 DELETE1_SIGNAL( in_DECOD_IN_NO_EXECUTE ,_param->_nb_inst_decod,1 ); 41 41 DELETE1_SIGNAL( in_DECOD_IN_IS_DELAY_SLOT ,_param->_nb_inst_decod,1 ); 42 DELETE1_SIGNAL( in_DECOD_IN_SAVE_RAT ,_param->_nb_inst_decod,1 ); 42 43 #ifdef DEBUG 43 44 DELETE1_SIGNAL( in_DECOD_IN_ADDRESS ,_param->_nb_inst_decod,_param->_size_instruction_address ); … … 72 73 DELETE1_SIGNAL(out_DECOD_OUT_LAST_EVENT ,_param->_nb_inst_decod,1 ); 73 74 DELETE1_SIGNAL(out_DECOD_OUT_IS_DELAY_SLOT ,_param->_nb_inst_decod,1 ); 75 DELETE1_SIGNAL(out_DECOD_OUT_SAVE_RAT ,_param->_nb_inst_decod,1 ); 74 76 #ifdef DEBUG 75 77 DELETE1_SIGNAL(out_DECOD_OUT_ADDRESS ,_param->_nb_inst_decod,_param->_size_instruction_address ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp
r137 r139 64 64 PORT_WRITE(out_DECOD_OUT_LAST_EVENT [i],0); 65 65 PORT_WRITE(out_DECOD_OUT_IS_DELAY_SLOT [i],reg_QUEUE[num_bank].front()->_is_delay_slot [0]); 66 PORT_WRITE(out_DECOD_OUT_SAVE_RAT [i],reg_QUEUE[num_bank].front()->_save_rat [0]); 66 67 #ifdef DEBUG 67 68 PORT_WRITE(out_DECOD_OUT_ADDRESS [i],reg_QUEUE[num_bank].front()->_address [0]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp
r137 r139 81 81 entry->_no_execute [0] = PORT_READ(in_DECOD_IN_NO_EXECUTE [i]); 82 82 entry->_is_delay_slot [0] = PORT_READ(in_DECOD_IN_IS_DELAY_SLOT [i]); 83 entry->_save_rat [0] = PORT_READ(in_DECOD_IN_SAVE_RAT [i]); 83 84 #ifdef DEBUG 84 85 entry->_address [0] = PORT_READ(in_DECOD_IN_ADDRESS [i]); … … 186 187 it++) 187 188 { 188 log_printf(TRACE,Decod_queue,FUNCTION," * [%.4d][%.4d] %.3d %.2d, %.2d %.3d %.1d %.1d , 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d"189 log_printf(TRACE,Decod_queue,FUNCTION," * [%.4d][%.4d] %.3d %.2d, %.2d %.3d %.1d %.1d %.1d, 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d" 189 190 ,i 190 191 ,x … … 195 196 ,(*it)->_no_execute [0] 196 197 ,(*it)->_is_delay_slot [0] 198 ,(*it)->_save_rat [0] 197 199 ,(*it)->_address [0] 198 200 ,(*it)->_address [0]<<2 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp
r137 r139 64 64 PORT_WRITE(out_DECOD_OUT_LAST_EVENT [i],0); 65 65 PORT_WRITE(out_DECOD_OUT_IS_DELAY_SLOT [i],reg_QUEUE->front()->_is_delay_slot [index]); 66 PORT_WRITE(out_DECOD_OUT_SAVE_RAT [i],reg_QUEUE->front()->_save_rat [index]); 66 67 #ifdef DEBUG 67 68 PORT_WRITE(out_DECOD_OUT_ADDRESS [i],reg_QUEUE->front()->_address [index]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp
r137 r139 84 84 entry->_no_execute [i] = PORT_READ(in_DECOD_IN_NO_EXECUTE [i]); 85 85 entry->_is_delay_slot [i] = PORT_READ(in_DECOD_IN_IS_DELAY_SLOT [i]); 86 entry->_save_rat [i] = PORT_READ(in_DECOD_IN_SAVE_RAT [i]); 86 87 #ifdef DEBUG 87 88 entry->_address [i] = PORT_READ(in_DECOD_IN_ADDRESS [i]); … … 196 197 { 197 198 if ((*it)->_val [i]) 198 log_printf(TRACE,Decod_queue,FUNCTION," * [%.4d][%.4d] %.1d, %.3d %.2d, %.2d %.3d %.1d %.1d , 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d"199 log_printf(TRACE,Decod_queue,FUNCTION," * [%.4d][%.4d] %.1d, %.3d %.2d, %.2d %.3d %.1d %.1d %.1d, 0x%.8x (0x%.8x), %.1d 0x%.8x, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d, %.1d %.2d" 199 200 ,x 200 201 ,i … … 206 207 ,(*it)->_no_execute [i] 207 208 ,(*it)->_is_delay_slot [i] 209 ,(*it)->_save_rat [i] 208 210 ,(*it)->_address [i] 209 211 ,(*it)->_address [i]<<2 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h
r137 r139 92 92 public : SC_OUT(Tcontrol_t ) ** out_DECOD_LAST_EVENT ;//[nb_inst_decod] 93 93 public : SC_OUT(Tcontrol_t ) ** out_DECOD_IS_DELAY_SLOT ;//[nb_inst_decod] 94 public : SC_OUT(Tcontrol_t ) ** out_DECOD_SAVE_RAT ;//[nb_inst_decod] 94 95 #ifdef DEBUG 95 96 public : SC_OUT(Tgeneral_data_t ) ** out_DECOD_ADDRESS ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp
r137 r139 89 89 ALLOC1_SIGNAL_OUT(out_DECOD_LAST_EVENT ,"last_event" ,Tcontrol_t ,1 ); 90 90 ALLOC1_SIGNAL_OUT(out_DECOD_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t ,1 ); 91 ALLOC1_SIGNAL_OUT(out_DECOD_SAVE_RAT ,"save_rat" ,Tcontrol_t ,1 ); 91 92 #ifdef DEBUG 92 93 ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS ,"address" ,Tgeneral_data_t ,_param->_size_instruction_address ); … … 308 309 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_IS_DELAY_SLOT", 309 310 dest, "in_DECOD_IN_"+toString(i)+"_IS_DELAY_SLOT"); 311 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_SAVE_RAT" , 312 dest, "in_DECOD_IN_"+toString(i)+"_SAVE_RAT" ); 310 313 #ifdef DEBUG 311 314 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_ADDRESS" , … … 454 457 // in_DECOD_IN_NO_EXECUTE - component decod 455 458 // in_DECOD_IN_IS_DELAY_SLOT - component decod 459 // in_DECOD_IN_SAVE_RAT - component decod 456 460 // in_DECOD_IN_ADDRESS - component decod 457 461 // in_DECOD_IN_ADDRESS_NEXT - component decod … … 506 510 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_IS_DELAY_SLOT", 507 511 dest,"out_DECOD_" +toString(i)+"_IS_DELAY_SLOT"); 512 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_SAVE_RAT" , 513 dest,"out_DECOD_" +toString(i)+"_SAVE_RAT" ); 508 514 #ifdef DEBUG 509 515 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_ADDRESS" , -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp
r137 r139 52 52 DELETE1_SIGNAL(out_DECOD_LAST_EVENT ,_param->_nb_inst_decod,1 ); 53 53 DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT ,_param->_nb_inst_decod,1 ); 54 DELETE1_SIGNAL(out_DECOD_SAVE_RAT ,_param->_nb_inst_decod,1 ); 54 55 #ifdef DEBUG 55 56 DELETE1_SIGNAL(out_DECOD_ADDRESS ,_param->_nb_inst_decod,_param->_size_instruction_address );
Note: See TracChangeset
for help on using the changeset viewer.