Changeset 111 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include
- Timestamp:
- Feb 27, 2009, 7:37:40 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h
r110 r111 136 136 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 137 138 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 139 private : std::list<decod_queue_entry_t*>* reg_QUEUE ; 140 private : uint32_t * reg_NB_INST ;//[nb_context] 141 private : uint32_t reg_LAST_SLOT ; 138 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 139 140 // implementation : common 141 private : std::list<decod_queue_entry_t*> * reg_QUEUE ; 142 private : uint32_t * reg_NB_INST ;//[nb_context] 143 // implementation : one_fifo only 144 private : uint32_t reg_LAST_SLOT ; 145 // implementation : multi_fifo only 146 private : uint32_t reg_NUM_BANK_HEAD ; 147 private : uint32_t reg_NUM_BANK_TAIL ; 142 148 143 149 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 // implementation : common 144 151 private : Tcontrol_t * internal_DECOD_IN_ACK ;//[nb_inst_decod] 145 152 private : Tcontrol_t * internal_DECOD_OUT_VAL ;//[nb_inst_decod] 146 153 private : Tcontrol_t * internal_DECOD_OUT_ACK ;//[nb_inst_decod] 154 // implementation : one_fifo only 155 // implementation : multi_fifo only 156 157 // function pointer 158 public : void (morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Decod_queue::*function_transition ) (void); 159 public : void (morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Decod_queue::*function_genMoore ) (void); 160 public : void (morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Decod_queue::*function_genMealy_decod_out) (void); 147 161 #endif 148 162 … … 177 191 178 192 #ifdef SYSTEMC 179 public : void transition (void); 180 public : void genMoore (void); 181 public : void genMealy_decod_out (void); 193 public : void transition (void); 194 public : void genMoore (void); 195 public : void genMealy_decod_out (void); 196 197 public : void function_one_fifo_transition (void); 198 public : void function_one_fifo_genMoore (void); 199 public : void function_one_fifo_genMealy_decod_out (void); 200 201 public : void function_multi_fifo_transition (void); 202 public : void function_multi_fifo_genMoore (void); 203 public : void function_multi_fifo_genMealy_decod_out (void); 182 204 #endif 183 205 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Parameters.h
r109 r111 11 11 #include "Common/include/Debug.h" 12 12 #include "Behavioural/include/Parameters.h" 13 #include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h" 13 14 14 15 namespace morpheo { … … 24 25 { 25 26 //-----[ fields ]------------------------------------------------------------ 26 public : uint32_t _nb_context ; 27 public : uint32_t _nb_inst_decod ; 28 public : uint32_t _size_queue ; 29 //public : uint32_t _size_general_data ; 30 public : uint32_t * _nb_branch_speculated ; //[nb_context] 31 public : uint32_t _nb_instruction_in_queue; 27 public : uint32_t _nb_context ; 28 public : uint32_t _nb_inst_decod ; 29 public : uint32_t _size_queue ; 30 public : Tdecod_queue_scheme_t _queue_scheme ; 31 //public : uint32_t _size_general_data ; 32 public : uint32_t * _nb_branch_speculated ; //[nb_context] 33 public : uint32_t _nb_instruction_in_queue; 34 35 public : uint32_t _nb_bank; 32 36 33 37 //-----[ methods ]----------------------------------------------------------- 34 public : Parameters (uint32_t nb_context , 35 uint32_t nb_inst_decod , 36 uint32_t size_queue , 37 uint32_t size_general_data , 38 uint32_t * nb_branch_speculated, 39 bool is_toplevel=false ); 38 public : Parameters (uint32_t nb_context , 39 uint32_t nb_inst_decod , 40 uint32_t size_queue , 41 Tdecod_queue_scheme_t queue_scheme , 42 uint32_t size_general_data , 43 uint32_t * nb_branch_speculated, 44 bool is_toplevel=false ); 40 45 // public : Parameters (Parameters & param) ; 41 46 public : ~Parameters () ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h
r108 r111 18 18 namespace decod_unit { 19 19 namespace decod_queue { 20 21 typedef enum 22 { 23 DECOD_QUEUE_SCHEME_ONE_FIFO // One fifo with a instruction bundle per slot ( internal fragmentation) 24 ,DECOD_QUEUE_SCHEME_MULTI_FIFO // One fifo per instruction. Rename in order (no internal fragmentation) 25 } Tdecod_queue_scheme_t; 20 26 21 27 class decod_queue_entry_t … … 117 123 }; // end namespace multi_front_end 118 124 }; // end namespace core 125 }; // end namespace behavioural 119 126 120 }; // end namespace behavioural 127 template<> inline std::string toString<morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Tdecod_queue_scheme_t>(const morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Tdecod_queue_scheme_t& x) 128 { 129 switch (x) 130 { 131 case morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::DECOD_QUEUE_SCHEME_ONE_FIFO : return "one_fifo" ; break; 132 case morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::DECOD_QUEUE_SCHEME_MULTI_FIFO : return "multi_fifo"; break; 133 default : return ""; break; 134 } 135 }; 136 137 template<> inline morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Tdecod_queue_scheme_t fromString<morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::Tdecod_queue_scheme_t>(const std::string& x) 138 { 139 if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::DECOD_QUEUE_SCHEME_ONE_FIFO ))) == 0) or 140 (x.compare("one_fifo") == 0)) 141 return morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::DECOD_QUEUE_SCHEME_ONE_FIFO; 142 if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::DECOD_QUEUE_SCHEME_MULTI_FIFO))) == 0) or 143 (x.compare("multi_fifo") == 0)) 144 return morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod_queue::DECOD_QUEUE_SCHEME_MULTI_FIFO; 145 146 throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\"")); 147 }; 148 149 121 150 }; // end namespace morpheo 122 151
Note: See TracChangeset
for help on using the changeset viewer.