Changeset 56 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src
- Timestamp:
- Sep 24, 2007, 5:10:46 PM (17 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp
r55 r56 234 234 _component->generate_file(); 235 235 #endif 236 _queue_control = new vector<uint32_t>;236 _queue_control = new morpheo::behavioural::generic::queue_control::Queue_Control::Queue_Control(_param->_size_queue); 237 237 _queue = new Treservation_station_entry_t [_param->_size_queue]; 238 238 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp
r55 r56 29 29 30 30 // accept a new instructions when reservation_station is not full 31 internal_RESERVATION_STATION_IN_ACK = _queue_nb_elt < _param->_size_queue;31 internal_RESERVATION_STATION_IN_ACK = not _queue_control->full(); 32 32 33 33 PORT_WRITE(out_RESERVATION_STATION_IN_ACK, internal_RESERVATION_STATION_IN_ACK); … … 37 37 for (uint32_t i=0; i<_param->_size_queue; i++) 38 38 { 39 bool val = i <_queue_ nb_elt;39 bool val = i <_queue_control->nb_elt(); 40 40 uint32_t index = (*_queue_control)[i]; 41 41 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp
r55 r56 47 47 if (PORT_READ(in_NRESET) == 0) 48 48 { 49 // clear all element in control.50 _queue_nb_elt = 0;51 52 49 _queue_control->clear(); 53 for (uint32_t i=0; i<_param->_size_queue; i++)54 _queue_control->push_back(i);55 50 } 56 51 else … … 63 58 64 59 // Write in reservation station 65 uint32_t index = (*_queue_control)[_queue_nb_elt]; 66 _queue_nb_elt ++; 60 uint32_t index = _queue_control->push(); 67 61 68 62 log_printf(TRACE,Reservation_station,FUNCTION," * index : %d",index); … … 96 90 97 91 // scan in reverse order, because when we pop the queue there are an auto reorder 98 for (int32_t i=(static_cast<int32_t>(_queue_ nb_elt))-1;i>=0; i--)92 for (int32_t i=(static_cast<int32_t>(_queue_control->nb_elt()))-1;i>=0; i--) 99 93 { 100 94 uint32_t index = (*_queue_control)[i]; … … 105 99 log_printf(TRACE,Reservation_station,FUNCTION,"POP [%d]",i); 106 100 107 _queue_control->erase (_queue_control->begin()+i); 108 _queue_control->push_back(index); 109 _queue_nb_elt --; 101 _queue_control->pop(i); 110 102 111 103 log_printf(TRACE,Reservation_station,FUNCTION," * index : %d",index); … … 118 110 119 111 // scan all entry 120 for (uint32_t i=0; i<_queue_ nb_elt; i++)112 for (uint32_t i=0; i<_queue_control->nb_elt(); i++) 121 113 { 122 114 uint32_t index = (*_queue_control)[i];
Note: See TracChangeset
for help on using the changeset viewer.