Changeset 136 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_genMoore.cpp
- Timestamp:
- Oct 20, 2009, 8:52:15 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_genMoore.cpp
r132 r136 24 24 log_function(Ifetch_queue,FUNCTION,_name.c_str()); 25 25 26 if (PORT_READ(in_NRESET)) 27 { 28 // ========================================================== 29 // =====[ ADDRESS ]========================================== 30 // ========================================================== 31 { 32 internal_ADDRESS_ACK = (_queue[reg_PTR_WRITE]->_state == IFETCH_QUEUE_STATE_EMPTY); 33 34 log_printf(TRACE,Ifetch_queue,FUNCTION," * ADDRESS_ACK : %d",internal_ADDRESS_ACK); 35 36 if (_param->_have_port_ifetch_queue_ptr) 37 PORT_WRITE(out_ADDRESS_IFETCH_QUEUE_ID, reg_PTR_WRITE); 38 } 39 40 // ========================================================== 41 // =====[ DECOD ]============================================ 42 // ========================================================== 43 { 44 bool ack = (_queue[reg_PTR_READ]->_state == IFETCH_QUEUE_STATE_HAVE_RSP); 45 46 for (uint32_t i=0; i<_param->_nb_instruction; i++) 47 { 48 internal_DECOD_VAL [i] = ack and _queue[reg_PTR_READ]->_instruction_enable [i]; 49 50 log_printf(TRACE,Ifetch_queue,FUNCTION," * DECOD_VAL [%d] : %d",i,internal_DECOD_VAL [i]); 51 52 PORT_WRITE(out_DECOD_INSTRUCTION [i], _queue[reg_PTR_READ]->_instruction [i]); 53 } 54 55 PORT_WRITE(out_DECOD_ADDRESS , _queue[reg_PTR_READ]->_address ); 56 if (_param->_have_port_inst_ifetch_ptr) 57 PORT_WRITE(out_DECOD_INST_IFETCH_PTR , _queue[reg_PTR_READ]->_inst_ifetch_ptr ); 58 PORT_WRITE(out_DECOD_BRANCH_STATE , _queue[reg_PTR_READ]->_branch_state ); 59 if (_param->_have_port_depth) 60 PORT_WRITE(out_DECOD_BRANCH_UPDATE_PREDICTION_ID, _queue[reg_PTR_READ]->_branch_update_prediction_id); 61 PORT_WRITE(out_DECOD_EXCEPTION , _queue[reg_PTR_READ]->_exception ); 62 } 63 } 64 else 65 { 66 // Reset 67 internal_ADDRESS_ACK = 0; 68 for (uint32_t i=0; i<_param->_nb_instruction; i++) 69 internal_DECOD_VAL [i] = 0; 70 71 } 72 73 // Write Output 74 PORT_WRITE(out_ADDRESS_ACK , internal_ADDRESS_ACK); 75 for (uint32_t i=0; i<_param->_nb_instruction; i++) 76 PORT_WRITE(out_DECOD_VAL [i], internal_DECOD_VAL [i]); 26 (this->*function_genMoore) (); 77 27 78 28 log_end(Ifetch_queue,FUNCTION);
Note: See TracChangeset
for help on using the changeset viewer.