Changeset 118 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp
- Timestamp:
- May 21, 2009, 12:01:32 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp
r117 r118 29 29 { 30 30 std::list<write_queue_entry_t *>::iterator it = _queue->begin(); 31 for (uint32_t i=0; i<_param->_nb_bypass_write; i++) 31 32 // first bypass is the write_queue_in 33 uint32_t first_index = ((_param->_bypass_write_scheme == BYPASS_WRITE_FROM_ALU)?1:0); 34 for (uint32_t i=first_index; i<_param->_nb_bypass_write; i++) 32 35 { 33 bool val = i < _queue->size(); 34 36 // before because first slot is on {GPR|SPR}_WRITE. Also, take next 37 if (it != _queue->end()) 38 it++; 39 40 uint32_t index = i; 41 // bool val = (i+1) < _queue->size(); 42 bool val = (it != _queue->end()); 43 35 44 if (val) 36 45 { 37 46 if (_param->_have_port_ooo_engine_id) 38 PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [i ], (*it)->_ooo_engine_id);39 PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG [i ], (*it)->_num_reg_rd);40 PORT_WRITE(out_BYPASS_WRITE_GPR_DATA [i ], (*it)->_data_rd );41 PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG [i ], (*it)->_num_reg_re);42 PORT_WRITE(out_BYPASS_WRITE_SPR_DATA [i ], (*it)->_data_re );47 PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [index], (*it)->_ooo_engine_id); 48 PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG [index], (*it)->_num_reg_rd); 49 PORT_WRITE(out_BYPASS_WRITE_GPR_DATA [index], (*it)->_data_rd ); 50 PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG [index], (*it)->_num_reg_re); 51 PORT_WRITE(out_BYPASS_WRITE_SPR_DATA [index], (*it)->_data_re ); 43 52 } 44 53 #ifdef SYSTEMC_VHDL_COMPATIBILITY … … 46 55 { 47 56 if (_param->_have_port_ooo_engine_id) 48 PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [i ], 0);49 PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG [i ], 0);50 PORT_WRITE(out_BYPASS_WRITE_GPR_DATA [i ], 0);51 PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG [i ], 0);52 PORT_WRITE(out_BYPASS_WRITE_SPR_DATA [i ], 0);57 PORT_WRITE(out_BYPASS_WRITE_OOO_ENGINE_ID [index], 0); 58 PORT_WRITE(out_BYPASS_WRITE_GPR_NUM_REG [index], 0); 59 PORT_WRITE(out_BYPASS_WRITE_GPR_DATA [index], 0); 60 PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG [index], 0); 61 PORT_WRITE(out_BYPASS_WRITE_SPR_DATA [index], 0); 53 62 } 54 63 #endif 55 64 56 PORT_WRITE(out_BYPASS_WRITE_GPR_VAL [i], val and (*it)->_write_rd ); 57 PORT_WRITE(out_BYPASS_WRITE_SPR_VAL [i], val and (*it)->_write_re ); 58 59 if (it != _queue->end()) 60 it++; 65 PORT_WRITE(out_BYPASS_WRITE_GPR_VAL [index], val and (*it)->_write_rd ); 66 PORT_WRITE(out_BYPASS_WRITE_SPR_VAL [index], val and (*it)->_write_re ); 61 67 } 62 68 }
Note: See TracChangeset
for help on using the changeset viewer.