Changeset 56
- Timestamp:
- Sep 24, 2007, 5:10:46 PM (17 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural
- Files:
-
- 13 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/Makefile.deps
r55 r56 8 8 # DIR_MORPHEO must be defined 9 9 10 Reservation_station 10 Reservation_station = yes 11 11 12 12 ifndef Behavioural 13 13 include $(DIR_MORPHEO)/Behavioural/Makefile.deps 14 14 endif 15 ifndef Queue_Control 16 include $(DIR_MORPHEO)/Behavioural/Generic/Queue_Control/Makefile.deps 17 endif 15 18 16 19 #-----[ Library ]------------------------------------------ 17 Reservation_station_LIBRARY = -lReservation_station \ 20 Reservation_station_LIBRARY = -lReservation_station \ 21 $(Queue_Control_LIBRARY)\ 18 22 $(Behavioural_LIBRARY) 19 23 20 Reservation_station_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/lib \ 24 Reservation_station_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/lib \ 25 $(Queue_Control_DIR_LIBRARY)\ 21 26 $(Behavioural_DIR_LIBRARY) 22 27 … … 25 30 Reservation_station_library : 26 31 @\ 32 $(MAKE) Queue_Control_library; \ 27 33 $(MAKE) Behavioural_library; \ 28 34 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station --makefile=Makefile; … … 30 36 Reservation_station_library_clean : 31 37 @\ 38 $(MAKE) Queue_Control_library_clean; \ 32 39 $(MAKE) Behavioural_library_clean; \ 33 40 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station --makefile=Makefile clean; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h
r55 r56 14 14 15 15 #include <iostream> 16 #include <vector>17 16 #include "Common/include/ToString.h" 18 17 #include "Common/include/Debug.h" 19 18 19 #include "Behavioural/Generic/Queue_Control/include/Queue_Control.h" 20 20 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h" 21 21 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h" … … 29 29 30 30 using namespace std; 31 using namespace morpheo::behavioural::generic::queue_control; 31 32 32 33 namespace morpheo { … … 202 203 203 204 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 protected : vector<uint32_t> * _queue_control; 205 protected : uint32_t _queue_nb_elt; 205 protected : morpheo::behavioural::generic::queue_control::Queue_Control * _queue_control; 206 206 protected : Treservation_station_entry_t * _queue; 207 207 -
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]; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.flags
r55 r56 15 15 #-----[ Flags ]-------------------------------------------- 16 16 MORPHEO_FLAGS = -DSYSTEMC \ 17 -DVHDL \18 -DVHDL_TESTBENCH \19 -DSTATISTICS \20 17 -DDEBUG=DEBUG_TRACE 18 19 # -DVHDL \ 20 # -DVHDL_TESTBENCH \ 21 # -DSTATISTICS \ 21 22 # -DVHDL_TESTBENCH_ASSERT \ 22 23 # -DCONFIGURATION \ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h
r55 r56 6 6 #define DEBUG_Counter false 7 7 #define DEBUG_Group false 8 #define DEBUG_Queue_Control false 8 9 #define DEBUG_Shifter false 9 10 #define DEBUG_RegisterFile false … … 17 18 #define DEBUG_Multi_Execute_loop false 18 19 #define DEBUG_Execute_loop false 20 #define DEBUG_Multi_Execute_unit false 21 #define DEBUG_Execute_unit false 22 #define DEBUG_Load_store_unit true 19 23 #define DEBUG_Multi_Read_unit false 20 24 #define DEBUG_Read_unit false 21 25 #define DEBUG_Read_queue false 22 #define DEBUG_Reservation_station true26 #define DEBUG_Reservation_station false 23 27 #define DEBUG_Multi_Front_end false 24 28 #define DEBUG_Front_end false
Note: See TracChangeset
for help on using the changeset viewer.