Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit
- Files:
-
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/Makefile
r81 r88 24 24 library_clean : Execute_queue_library_clean 25 25 26 local_clean : 27 26 28 include $(DIR_COMPONENT)/Makefile.deps 27 29 include $(DIR_MORPHEO)/Behavioural/Makefile.flags -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/configuration.cfg
r81 r88 1 1 Execute_queue 2 8 8*2 # uint32_t size_queue2 8 16 *2 # uint32_t size_queue 3 3 1 1 *2 # uint32_t nb_context 4 4 1 1 *2 # uint32_t nb_front_end 5 5 1 4 *2 # uint32_t nb_ooo_engine 6 32 32*2 # uint32_t nb_packet6 64 64 *2 # uint32_t nb_packet 7 7 32 32 *2 # uint32_t size_general_data 8 8 2 2 *2 # uint32_t size_special_data -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/main.cpp
r81 r88 54 54 nb_packet , 55 55 size_general_data , 56 size_special_data ); 56 size_special_data , 57 true // is_toplevel 58 ); 57 59 58 60 msg(_("%s"),param->print(1).c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/test.cpp
r82 r88 7 7 */ 8 8 9 #define NB_ITERATION 1 9 #define NB_ITERATION 16 10 10 #define CYCLE_MAX (128*NB_ITERATION) 11 11 … … 27 27 public : Tcontrol_t _no_sequence ; 28 28 public : Tgeneral_data_t _address ; 29 public : Tgeneral_data_t _data ; 29 30 30 31 public : entry_t (Tcontext_t context_id , … … 37 38 Texception_t exception , 38 39 Tcontrol_t no_sequence , 39 Tgeneral_data_t address ) 40 Tgeneral_data_t address , 41 Tgeneral_data_t data ) 40 42 { 41 43 _context_id = context_id ; … … 49 51 _no_sequence = no_sequence ; 50 52 _address = address ; 53 _data = data ; 51 54 }; 52 55 … … 63 66 << " * _exception : " << toString(x._exception ) << std::endl 64 67 << " * _no_sequence : " << toString(x._no_sequence ) << std::endl 65 << " * _address : " << toString(x._address ) << std::endl; 68 << " * _address : " << toString(x._address ) << std::endl 69 << " * _data : " << toString(x._data ) << std::endl; 66 70 67 71 return output_stream; … … 80 84 morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50); 81 85 #endif 86 87 Tusage_t _usage = USE_ALL; 88 89 // _usage = usage_unset(_usage,USE_SYSTEMC ); 90 // _usage = usage_unset(_usage,USE_VHDL ); 91 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); 92 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT); 93 // _usage = usage_unset(_usage,USE_POSITION ); 94 // _usage = usage_unset(_usage,USE_STATISTICS ); 95 // _usage = usage_unset(_usage,USE_INFORMATION ); 82 96 83 97 Execute_queue * _Execute_queue = new Execute_queue … … 87 101 #endif 88 102 _param, 89 USE_ALL);103 _usage); 90 104 91 105 #ifdef SYSTEMC … … 110 124 ALLOC_SC_SIGNAL ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE ," in_EXECUTE_QUEUE_IN_NO_SEQUENCE" , Tcontrol_t ); 111 125 ALLOC_SC_SIGNAL ( in_EXECUTE_QUEUE_IN_ADDRESS ," in_EXECUTE_QUEUE_IN_ADDRESS" , Tgeneral_data_t ); 126 ALLOC_SC_SIGNAL ( in_EXECUTE_QUEUE_IN_DATA ," in_EXECUTE_QUEUE_IN_DATA" , Tgeneral_data_t ); 112 127 ALLOC_SC_SIGNAL (out_EXECUTE_QUEUE_OUT_VAL ,"out_EXECUTE_QUEUE_OUT_VAL" , Tcontrol_t ); 113 128 ALLOC_SC_SIGNAL ( in_EXECUTE_QUEUE_OUT_ACK ," in_EXECUTE_QUEUE_OUT_ACK" , Tcontrol_t ); … … 122 137 ALLOC_SC_SIGNAL (out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" , Tcontrol_t ); 123 138 ALLOC_SC_SIGNAL (out_EXECUTE_QUEUE_OUT_ADDRESS ,"out_EXECUTE_QUEUE_OUT_ADDRESS" , Tgeneral_data_t ); 139 ALLOC_SC_SIGNAL (out_EXECUTE_QUEUE_OUT_DATA ,"out_EXECUTE_QUEUE_OUT_DATA" , Tgeneral_data_t ); 124 140 125 141 … … 141 157 if (_param->_have_port_ooo_engine_id) 142 158 INSTANCE_SC_SIGNAL (_Execute_queue, in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ); 143 if (_param->_have_port_ packet_id)159 if (_param->_have_port_rob_ptr) 144 160 INSTANCE_SC_SIGNAL (_Execute_queue, in_EXECUTE_QUEUE_IN_PACKET_ID ); 145 161 //INSTANCE_SC_SIGNAL (_Execute_queue, in_EXECUTE_QUEUE_IN_OPERATION ); … … 149 165 INSTANCE_SC_SIGNAL (_Execute_queue, in_EXECUTE_QUEUE_IN_NO_SEQUENCE ); 150 166 INSTANCE_SC_SIGNAL (_Execute_queue, in_EXECUTE_QUEUE_IN_ADDRESS ); 167 INSTANCE_SC_SIGNAL (_Execute_queue, in_EXECUTE_QUEUE_IN_DATA ); 151 168 152 169 INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_VAL ); … … 158 175 if (_param->_have_port_ooo_engine_id) 159 176 INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID); 160 if (_param->_have_port_ packet_id)177 if (_param->_have_port_rob_ptr) 161 178 INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_PACKET_ID ); 162 179 //INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_OPERATION ); … … 166 183 INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ); 167 184 INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_ADDRESS ); 185 INSTANCE_SC_SIGNAL (_Execute_queue, out_EXECUTE_QUEUE_OUT_DATA ); 168 186 169 187 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); … … 212 230 range<Texception_t >(rand(),_param->_size_exception ), 213 231 range<Tcontrol_t >(rand(),1 ), 232 range<Tgeneral_data_t >(rand(),_param->_size_general_data ), 214 233 range<Tgeneral_data_t >(rand(),_param->_size_general_data )); 215 234 } … … 236 255 in_EXECUTE_QUEUE_IN_NO_SEQUENCE ->write(request [nb_request_in]->_no_sequence ); 237 256 in_EXECUTE_QUEUE_IN_ADDRESS ->write(request [nb_request_in]->_address ); 257 in_EXECUTE_QUEUE_IN_DATA ->write(request [nb_request_in]->_data ); 238 258 } 239 259 in_EXECUTE_QUEUE_OUT_ACK ->write((rand()%100)<percent_transaction_execute_queue_out); … … 261 281 { 262 282 Tcontext_t packet; 263 if (_param->_have_port_ packet_id)283 if (_param->_have_port_rob_ptr) 264 284 packet = out_EXECUTE_QUEUE_OUT_PACKET_ID->read(); 265 285 else … … 281 301 TEST(Tcontrol_t , out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ->read(), request [packet]->_no_sequence ); 282 302 TEST(Tgeneral_data_t, out_EXECUTE_QUEUE_OUT_ADDRESS ->read(), request [packet]->_address ); 303 TEST(Tgeneral_data_t, out_EXECUTE_QUEUE_OUT_DATA ->read(), request [packet]->_data ); 283 304 284 305 nb_request_out ++; … … 313 334 delete in_EXECUTE_QUEUE_IN_NO_SEQUENCE ; 314 335 delete in_EXECUTE_QUEUE_IN_ADDRESS ; 336 delete in_EXECUTE_QUEUE_IN_DATA ; 315 337 316 338 delete out_EXECUTE_QUEUE_OUT_VAL ; … … 326 348 delete out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ; 327 349 delete out_EXECUTE_QUEUE_OUT_ADDRESS ; 350 delete out_EXECUTE_QUEUE_OUT_DATA ; 328 351 #endif 329 352 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h
r82 r88 79 79 public : SC_IN (Tcontrol_t ) * in_EXECUTE_QUEUE_IN_NO_SEQUENCE ; 80 80 public : SC_IN (Tgeneral_data_t ) * in_EXECUTE_QUEUE_IN_ADDRESS ; 81 public : SC_IN (Tgeneral_data_t ) * in_EXECUTE_QUEUE_IN_DATA ; 81 82 82 83 // -----[ Interface "Execute_queue_out" ]----------------------------- … … 93 94 public : SC_OUT(Tcontrol_t ) * out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ; 94 95 public : SC_OUT(Tgeneral_data_t ) * out_EXECUTE_QUEUE_OUT_ADDRESS ; 96 public : SC_OUT(Tgeneral_data_t ) * out_EXECUTE_QUEUE_OUT_DATA ; 95 97 96 98 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h
r81 r88 26 26 { 27 27 //-----[ fields ]------------------------------------------------------------ 28 public : constuint32_t _size_queue ;29 public : constuint32_t _nb_context ;30 public : constuint32_t _nb_front_end ;31 public : constuint32_t _nb_ooo_engine ;32 public : constuint32_t _nb_packet ;33 public : constuint32_t _size_general_data ;34 public : constuint32_t _size_special_data ;28 public : uint32_t _size_queue ; 29 public : uint32_t _nb_context ; 30 public : uint32_t _nb_front_end ; 31 public : uint32_t _nb_ooo_engine ; 32 public : uint32_t _nb_packet ; 33 //public : uint32_t _size_general_data ; 34 //public : uint32_t _size_special_data ; 35 35 36 public : constuint32_t _size_context_id ;37 public : constuint32_t _size_front_end_id ;38 public : constuint32_t _size_ooo_engine_id ;39 public : constuint32_t _size_packet_id ;36 //public : uint32_t _size_context_id ; 37 //public : uint32_t _size_front_end_id ; 38 //public : uint32_t _size_ooo_engine_id ; 39 //public : uint32_t _size_packet_id ; 40 40 41 public : constbool _have_port_context_id ;42 public : constbool _have_port_front_end_id ;43 public : constbool _have_port_ooo_engine_id ;44 public : constbool _have_port_packet_id ;41 //public : bool _have_port_context_id ; 42 //public : bool _have_port_front_end_id ; 43 //public : bool _have_port_ooo_engine_id ; 44 //public : bool _have_port_packet_id ; 45 45 46 46 //-----[ methods ]----------------------------------------------------------- … … 51 51 uint32_t nb_packet , 52 52 uint32_t size_general_data , 53 uint32_t size_special_data ); 54 public : Parameters (Parameters & param) ; 53 uint32_t size_special_data , 54 bool is_toplevel=true); 55 //public : Parameters (Parameters & param) ; 55 56 public : ~Parameters () ; 57 58 public : void copy (void); 56 59 57 60 public : Parameters_test msg_error (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h
r82 r88 32 32 public : Tcontrol_t _no_sequence ; 33 33 public : Tgeneral_data_t _address ; 34 public : Tgeneral_data_t _data ; 34 35 35 36 public : execute_queue_entry_t (Tcontext_t context_id , … … 42 43 Texception_t exception , 43 44 Tcontrol_t no_sequence , 44 Tgeneral_data_t address ) 45 Tgeneral_data_t address , 46 Tgeneral_data_t data ) 45 47 { 46 48 _context_id = context_id ; … … 54 56 _no_sequence = no_sequence ; 55 57 _address = address ; 58 _data = data ; 56 59 }; 57 60 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp
r81 r88 39 39 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 40 40 41 #if DEBUG_Execute_queue == true 42 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Parameters"),_name.c_str()); 43 44 std::cout << *param << std::endl; 45 #endif 46 41 47 log_printf(INFO,Execute_queue,FUNCTION,"Allocation"); 42 48 allocation (); 43 49 44 50 #ifdef STATISTICS 45 if ( _usage & USE_STATISTICS)51 if (usage_is_set(_usage,USE_STATISTICS)) 46 52 { 47 53 log_printf(INFO,Execute_queue,FUNCTION,"Allocation of statistics"); … … 52 58 53 59 #ifdef VHDL 54 if ( _usage & USE_VHDL)60 if (usage_is_set(_usage,USE_VHDL)) 55 61 { 56 62 // generate the vhdl … … 62 68 63 69 #ifdef SYSTEMC 64 if ( _usage & USE_SYSTEMC)70 if (usage_is_set(_usage,USE_SYSTEMC)) 65 71 { 66 72 log_printf(INFO,Execute_queue,FUNCTION,"Method - transition"); … … 96 102 97 103 #ifdef STATISTICS 98 if ( _usage & USE_STATISTICS)104 if (usage_is_set(_usage,USE_STATISTICS)) 99 105 { 100 106 log_printf(INFO,Execute_queue,FUNCTION,"Generate Statistics file"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp
r81 r88 17 17 namespace write_unit { 18 18 namespace execute_queue { 19 20 21 19 22 20 #undef FUNCTION … … 62 60 if(_param->_have_port_ooo_engine_id) 63 61 ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id ); 64 if(_param->_have_port_ packet_id)65 ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);62 if(_param->_have_port_rob_ptr) 63 ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 66 64 // ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 67 65 // ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 70 68 ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 ); 71 69 ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_ADDRESS ,"address" ,Tgeneral_data_t ,_param->_size_general_data ); 70 ALLOC_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA ,"data" ,Tgeneral_data_t ,_param->_size_general_data ); 72 71 } 73 72 … … 84 83 if(_param->_have_port_ooo_engine_id) 85 84 ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id); 86 if(_param->_have_port_ packet_id)87 ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);85 if(_param->_have_port_rob_ptr) 86 ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 88 87 // ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 89 88 // ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 92 91 ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 ); 93 92 ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_general_data ); 93 ALLOC_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_DATA ,"data" ,Tgeneral_data_t,_param->_size_general_data ); 94 94 } 95 95 … … 99 99 100 100 #ifdef POSITION 101 _component->generate_file(); 101 if (usage_is_set(_usage,USE_POSITION)) 102 _component->generate_file(); 102 103 #endif 103 104 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp
r81 r88 24 24 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 25 25 26 if ( _usage & USE_SYSTEMC)26 if (usage_is_set(_usage,USE_SYSTEMC)) 27 27 { 28 28 delete in_CLOCK ; … … 38 38 if (_param->_have_port_ooo_engine_id) 39 39 delete in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID; 40 if (_param->_have_port_ packet_id)40 if (_param->_have_port_rob_ptr) 41 41 delete in_EXECUTE_QUEUE_IN_PACKET_ID ; 42 42 // delete in_EXECUTE_QUEUE_IN_OPERATION ; … … 46 46 delete in_EXECUTE_QUEUE_IN_NO_SEQUENCE ; 47 47 delete in_EXECUTE_QUEUE_IN_ADDRESS ; 48 delete in_EXECUTE_QUEUE_IN_DATA ; 48 49 49 50 // -----[ Interface "execute_queue_out" ]------------------------------- … … 56 57 if (_param->_have_port_ooo_engine_id) 57 58 delete out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID; 58 if (_param->_have_port_ packet_id)59 if (_param->_have_port_rob_ptr) 59 60 delete out_EXECUTE_QUEUE_OUT_PACKET_ID ; 60 61 // delete out_EXECUTE_QUEUE_OUT_OPERATION ; … … 64 65 delete out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ; 65 66 delete out_EXECUTE_QUEUE_OUT_ADDRESS ; 67 delete out_EXECUTE_QUEUE_OUT_DATA ; 66 68 } 67 69 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_end_cycle.cpp
r81 r88 26 26 27 27 #ifdef STATISTICS 28 _stat->end_cycle(); 28 if (usage_is_set(_usage,USE_STATISTICS)) 29 _stat->end_cycle(); 29 30 #endif 30 31 … … 32 33 // Evaluation before read the ouput signal 33 34 // sc_start(0); 34 _interfaces->testbench(); 35 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 36 _interfaces->testbench(); 35 37 #endif 36 38 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_genMoore.cpp
r81 r88 47 47 if (_param->_have_port_ooo_engine_id) 48 48 PORT_WRITE(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID, _queue->front()->_ooo_engine_id); 49 if (_param->_have_port_ packet_id)49 if (_param->_have_port_rob_ptr) 50 50 PORT_WRITE(out_EXECUTE_QUEUE_OUT_PACKET_ID , _queue->front()->_packet_id ); 51 51 // PORT_WRITE(out_EXECUTE_QUEUE_OUT_OPERATION , _queue->front()->_operation ); … … 55 55 PORT_WRITE(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE , _queue->front()->_no_sequence ); 56 56 PORT_WRITE(out_EXECUTE_QUEUE_OUT_ADDRESS , _queue->front()->_address ); 57 PORT_WRITE(out_EXECUTE_QUEUE_OUT_DATA , _queue->front()->_data ); 57 58 } 58 59 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_transition.cpp
r81 r88 44 44 (_param->_have_port_front_end_id )?PORT_READ(in_EXECUTE_QUEUE_IN_FRONT_END_ID ):0, 45 45 (_param->_have_port_ooo_engine_id)?PORT_READ(in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID):0, 46 (_param->_have_port_ packet_id)?PORT_READ(in_EXECUTE_QUEUE_IN_PACKET_ID ):0,46 (_param->_have_port_rob_ptr )?PORT_READ(in_EXECUTE_QUEUE_IN_PACKET_ID ):0, 47 47 //PORT_READ(in_EXECUTE_QUEUE_IN_OPERATION ), 48 48 //PORT_READ(in_EXECUTE_QUEUE_IN_TYPE ), … … 50 50 PORT_READ(in_EXECUTE_QUEUE_IN_EXCEPTION ), 51 51 PORT_READ(in_EXECUTE_QUEUE_IN_NO_SEQUENCE ), 52 PORT_READ(in_EXECUTE_QUEUE_IN_ADDRESS )); 52 PORT_READ(in_EXECUTE_QUEUE_IN_ADDRESS ), 53 PORT_READ(in_EXECUTE_QUEUE_IN_DATA )); 53 54 54 55 _queue->push(entry); … … 64 65 65 66 #ifdef STATISTICS 66 *(_stat_use_queue) += _queue->size(); 67 if (usage_is_set(_usage,USE_STATISTICS)) 68 *(_stat_use_queue) += _queue->size(); 67 69 #endif 68 70 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp
r81 r88 26 26 uint32_t nb_packet , 27 27 uint32_t size_general_data , 28 uint32_t size_special_data ): 29 _size_queue (size_queue ), 30 _nb_context (nb_context ), 31 _nb_front_end (nb_front_end ), 32 _nb_ooo_engine (nb_ooo_engine ), 33 _nb_packet (nb_packet ), 34 _size_general_data (size_general_data ), 35 _size_special_data (size_special_data ), 36 37 _size_context_id (log2(_nb_context )), 38 _size_front_end_id (log2(_nb_front_end )), 39 _size_ooo_engine_id (log2(_nb_ooo_engine )), 40 _size_packet_id (log2(_nb_packet )), 41 42 _have_port_context_id (_size_context_id > 0), 43 _have_port_front_end_id (_size_front_end_id > 0), 44 _have_port_ooo_engine_id (_size_ooo_engine_id > 0), 45 _have_port_packet_id (_size_packet_id > 0) 28 uint32_t size_special_data , 29 bool is_toplevel ) 46 30 { 47 31 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 32 33 _size_queue = size_queue ; 34 _nb_context = nb_context ; 35 _nb_front_end = nb_front_end ; 36 _nb_ooo_engine = nb_ooo_engine ; 37 _nb_packet = nb_packet ; 38 48 39 test(); 40 41 if (is_toplevel) 42 { 43 _size_context_id = log2(_nb_context ); 44 _size_front_end_id = log2(_nb_front_end ); 45 _size_ooo_engine_id = log2(_nb_ooo_engine); 46 _size_rob_ptr = log2(_nb_packet ); 47 _size_general_data = size_general_data; 48 _size_special_data = size_special_data; 49 50 _have_port_context_id = _size_context_id > 0; 51 _have_port_front_end_id = _size_front_end_id > 0; 52 _have_port_ooo_engine_id = _size_ooo_engine_id > 0; 53 _have_port_rob_ptr = _size_rob_ptr > 0; 54 55 copy(); 56 } 57 49 58 log_printf(FUNC,Execute_queue,FUNCTION,"End"); 50 59 }; 51 60 61 // #undef FUNCTION 62 // #define FUNCTION "Execute_queue::Parameters (copy)" 63 // Parameters::Parameters (Parameters & param): 64 // _size_queue (param._size_queue ), 65 // _nb_context (param._nb_context ), 66 // _nb_front_end (param._nb_front_end ), 67 // _nb_ooo_engine (param._nb_ooo_engine ), 68 // _nb_packet (param._nb_packet ), 69 // _size_general_data (param._size_general_data ), 70 // _size_special_data (param._size_special_data ), 71 72 // _size_context_id (param._size_context_id ), 73 // _size_front_end_id (param._size_front_end_id ), 74 // _size_ooo_engine_id (param._size_ooo_engine_id ), 75 // _size_packet_id (param._size_packet_id ), 76 77 // _have_port_context_id (param._have_port_context_id ), 78 // _have_port_front_end_id (param._have_port_front_end_id ), 79 // _have_port_ooo_engine_id (param._have_port_ooo_engine_id), 80 // _have_port_packet_id (param._have_port_packet_id ) 81 // { 82 // log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 83 // test(); 84 // log_printf(FUNC,Execute_queue,FUNCTION,"End"); 85 // }; 86 52 87 #undef FUNCTION 53 #define FUNCTION "Execute_queue::Parameters (copy)" 54 Parameters::Parameters (Parameters & param): 55 _size_queue (param._size_queue ), 56 _nb_context (param._nb_context ), 57 _nb_front_end (param._nb_front_end ), 58 _nb_ooo_engine (param._nb_ooo_engine ), 59 _nb_packet (param._nb_packet ), 60 _size_general_data (param._size_general_data ), 61 _size_special_data (param._size_special_data ), 62 63 _size_context_id (param._size_context_id ), 64 _size_front_end_id (param._size_front_end_id ), 65 _size_ooo_engine_id (param._size_ooo_engine_id ), 66 _size_packet_id (param._size_packet_id ), 67 68 _have_port_context_id (param._have_port_context_id ), 69 _have_port_front_end_id (param._have_port_front_end_id ), 70 _have_port_ooo_engine_id (param._have_port_ooo_engine_id), 71 _have_port_packet_id (param._have_port_packet_id ) 88 #define FUNCTION "Execute_queue::~Parameters" 89 Parameters::~Parameters (void) 72 90 { 73 91 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 74 test();75 92 log_printf(FUNC,Execute_queue,FUNCTION,"End"); 76 93 }; 77 94 78 95 #undef FUNCTION 79 #define FUNCTION "Execute_queue:: ~Parameters"80 Parameters::~Parameters ()96 #define FUNCTION "Execute_queue::copy" 97 void Parameters::copy (void) 81 98 { 82 99 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/Makefile
r81 r88 24 24 library_clean : Write_unit_library_clean 25 25 26 local_clean : 27 26 28 include $(DIR_COMPONENT)/Makefile.deps 27 29 include $(DIR_MORPHEO)/Behavioural/Makefile.flags -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/main.cpp
r81 r88 66 66 size_special_data , 67 67 nb_special_register, 68 nb_bypass_write ); 68 nb_bypass_write , 69 true // is_toplevel 70 ); 69 71 70 72 msg(_("%s"),param->print(1).c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/test.cpp
r82 r88 99 99 #endif 100 100 101 Tusage_t _usage = USE_ALL; 102 103 // _usage = usage_unset(_usage,USE_SYSTEMC ); 104 // _usage = usage_unset(_usage,USE_VHDL ); 105 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); 106 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT); 107 // _usage = usage_unset(_usage,USE_POSITION ); 108 _usage = usage_unset(_usage,USE_STATISTICS ); 109 // _usage = usage_unset(_usage,USE_INFORMATION ); 110 101 111 Write_unit * _Write_unit = new Write_unit 102 112 (name.c_str(), … … 105 115 #endif 106 116 _param, 107 USE_ALL);117 _usage); 108 118 109 119 #ifdef SYSTEMC … … 145 155 ALLOC_SC_SIGNAL (out_WRITE_UNIT_OUT_NO_SEQUENCE ,"out_WRITE_UNIT_OUT_NO_SEQUENCE" , Tcontrol_t ); 146 156 ALLOC_SC_SIGNAL (out_WRITE_UNIT_OUT_ADDRESS ,"out_WRITE_UNIT_OUT_ADDRESS" , Tgeneral_data_t ); 157 ALLOC_SC_SIGNAL (out_WRITE_UNIT_OUT_DATA ,"out_WRITE_UNIT_OUT_DATA" , Tgeneral_data_t ); 147 158 ALLOC1_SC_SIGNAL(out_GPR_WRITE_VAL ,"out_GPR_WRITE_VAL" , Tcontrol_t , _param->_nb_gpr_write); 148 159 ALLOC1_SC_SIGNAL( in_GPR_WRITE_ACK ," in_GPR_WRITE_ACK" , Tcontrol_t , _param->_nb_gpr_write); … … 181 192 if (_param->_have_port_ooo_engine_id) 182 193 INSTANCE_SC_SIGNAL (_Write_unit, in_WRITE_UNIT_IN_OOO_ENGINE_ID ); 183 if (_param->_have_port_ packet_id)194 if (_param->_have_port_rob_ptr) 184 195 INSTANCE_SC_SIGNAL (_Write_unit, in_WRITE_UNIT_IN_PACKET_ID ); 185 196 //INSTANCE_SC_SIGNAL (_Write_unit, in_WRITE_UNIT_IN_OPERATION ); … … 202 213 if (_param->_have_port_ooo_engine_id) 203 214 INSTANCE_SC_SIGNAL (_Write_unit, out_WRITE_UNIT_OUT_OOO_ENGINE_ID); 204 if (_param->_have_port_ packet_id)215 if (_param->_have_port_rob_ptr) 205 216 INSTANCE_SC_SIGNAL (_Write_unit, out_WRITE_UNIT_OUT_PACKET_ID ); 206 217 //INSTANCE_SC_SIGNAL (_Write_unit, out_WRITE_UNIT_OUT_OPERATION ); … … 210 221 INSTANCE_SC_SIGNAL (_Write_unit, out_WRITE_UNIT_OUT_NO_SEQUENCE ); 211 222 INSTANCE_SC_SIGNAL (_Write_unit, out_WRITE_UNIT_OUT_ADDRESS ); 223 INSTANCE_SC_SIGNAL (_Write_unit, out_WRITE_UNIT_OUT_DATA ); 212 224 INSTANCE1_SC_SIGNAL(_Write_unit, out_GPR_WRITE_VAL , _param->_nb_gpr_write); 213 225 INSTANCE1_SC_SIGNAL(_Write_unit, in_GPR_WRITE_ACK , _param->_nb_gpr_write); … … 445 457 { 446 458 Tcontext_t packet; 447 if (_param->_have_port_ packet_id)459 if (_param->_have_port_rob_ptr) 448 460 packet = out_WRITE_UNIT_OUT_PACKET_ID->read(); 449 461 else … … 479 491 TEST(Tcontrol_t , out_WRITE_UNIT_OUT_NO_SEQUENCE ->read(), request [packet]->_no_sequence ); 480 492 TEST(Tgeneral_data_t, out_WRITE_UNIT_OUT_ADDRESS ->read(), request [packet]->_address ); 493 TEST(Tgeneral_data_t, out_WRITE_UNIT_OUT_DATA ->read(), request [packet]->_data_rd ); 481 494 482 495 nb_request_out ++; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/Makefile
r81 r88 24 24 library_clean : Write_queue_library_clean 25 25 26 local_clean : 27 26 28 include $(DIR_COMPONENT)/Makefile.deps 27 29 include $(DIR_MORPHEO)/Behavioural/Makefile.flags -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/configuration.cfg
r81 r88 9 9 2 2 *2 # uint32_t size_special_data 10 10 16 16 *2 # uint32_t nb_special_register 11 1 8 * 2# uint32_t nb_bypass_write11 1 8 *4 # uint32_t nb_bypass_write -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/main.cpp
r81 r88 63 63 size_special_data , 64 64 nb_special_register, 65 nb_bypass_write ); 65 nb_bypass_write , 66 true // is_toplevel 67 ); 66 68 67 69 msg(_("%s"),param->print(1).c_str()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/test.cpp
r82 r88 8 8 9 9 #define NB_ITERATION 1 10 #define CYCLE_MAX (1 28*NB_ITERATION)10 #define CYCLE_MAX (1024*NB_ITERATION) 11 11 12 12 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/test.h" … … 98 98 #endif 99 99 100 Tusage_t _usage = USE_ALL; 101 102 // _usage = usage_unset(_usage,USE_SYSTEMC ); 103 // _usage = usage_unset(_usage,USE_VHDL ); 104 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); 105 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT); 106 // _usage = usage_unset(_usage,USE_POSITION ); 107 _usage = usage_unset(_usage,USE_STATISTICS ); 108 // _usage = usage_unset(_usage,USE_INFORMATION ); 100 109 101 110 Write_queue * _Write_queue = new Write_queue … … 105 114 #endif 106 115 _param, 107 USE_ALL);116 _usage); 108 117 109 118 #ifdef SYSTEMC … … 145 154 ALLOC_SC_SIGNAL (out_WRITE_QUEUE_OUT_NO_SEQUENCE ,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , Tcontrol_t ); 146 155 ALLOC_SC_SIGNAL (out_WRITE_QUEUE_OUT_ADDRESS ,"out_WRITE_QUEUE_OUT_ADDRESS" , Tgeneral_data_t ); 156 ALLOC_SC_SIGNAL (out_WRITE_QUEUE_OUT_DATA ,"out_WRITE_QUEUE_OUT_DATA" , Tgeneral_data_t ); 147 157 ALLOC1_SC_SIGNAL(out_GPR_WRITE_VAL ,"out_GPR_WRITE_VAL" , Tcontrol_t , _param->_nb_gpr_write); 148 158 ALLOC1_SC_SIGNAL( in_GPR_WRITE_ACK ," in_GPR_WRITE_ACK" , Tcontrol_t , _param->_nb_gpr_write); … … 180 190 if (_param->_have_port_ooo_engine_id) 181 191 INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_OOO_ENGINE_ID ); 182 if (_param->_have_port_ packet_id)192 if (_param->_have_port_rob_ptr ) 183 193 INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_PACKET_ID ); 184 194 //INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_OPERATION ); … … 201 211 if (_param->_have_port_ooo_engine_id) 202 212 INSTANCE_SC_SIGNAL (_Write_queue, out_WRITE_QUEUE_OUT_OOO_ENGINE_ID); 203 if (_param->_have_port_ packet_id)213 if (_param->_have_port_rob_ptr ) 204 214 INSTANCE_SC_SIGNAL (_Write_queue, out_WRITE_QUEUE_OUT_PACKET_ID ); 205 215 //INSTANCE_SC_SIGNAL (_Write_queue, out_WRITE_QUEUE_OUT_OPERATION ); … … 209 219 INSTANCE_SC_SIGNAL (_Write_queue, out_WRITE_QUEUE_OUT_NO_SEQUENCE ); 210 220 INSTANCE_SC_SIGNAL (_Write_queue, out_WRITE_QUEUE_OUT_ADDRESS ); 221 INSTANCE_SC_SIGNAL (_Write_queue, out_WRITE_QUEUE_OUT_DATA ); 211 222 INSTANCE1_SC_SIGNAL(_Write_queue, out_GPR_WRITE_VAL , _param->_nb_gpr_write); 212 223 INSTANCE1_SC_SIGNAL(_Write_queue, in_GPR_WRITE_ACK , _param->_nb_gpr_write); … … 444 455 { 445 456 Tcontext_t packet; 446 if (_param->_have_port_ packet_id)457 if (_param->_have_port_rob_ptr) 447 458 packet = out_WRITE_QUEUE_OUT_PACKET_ID->read(); 448 459 else … … 478 489 TEST(Tcontrol_t , out_WRITE_QUEUE_OUT_NO_SEQUENCE ->read(), request [packet]->_no_sequence ); 479 490 TEST(Tgeneral_data_t, out_WRITE_QUEUE_OUT_ADDRESS ->read(), request [packet]->_address ); 491 TEST(Tgeneral_data_t, out_WRITE_QUEUE_OUT_DATA ->read(), request [packet]->_data_rd ); 480 492 481 493 nb_request_out ++; … … 531 543 delete out_WRITE_QUEUE_OUT_NO_SEQUENCE ; 532 544 delete out_WRITE_QUEUE_OUT_ADDRESS ; 545 delete out_WRITE_QUEUE_OUT_DATA ; 533 546 delete [] out_GPR_WRITE_VAL ; 534 547 delete [] in_GPR_WRITE_ACK ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h
r81 r88 26 26 { 27 27 //-----[ fields ]------------------------------------------------------------ 28 public : constuint32_t _size_queue ;29 public : constuint32_t _nb_context ;30 public : constuint32_t _nb_front_end ;31 public : constuint32_t _nb_ooo_engine ;32 public : constuint32_t _nb_packet ;33 public : constuint32_t _size_general_data ;34 public : constuint32_t _nb_general_register ;35 public : constuint32_t _size_special_data ;36 public : constuint32_t _nb_special_register ;37 public : constuint32_t _nb_bypass_write ;28 public : uint32_t _size_queue ; 29 public : uint32_t _nb_context ; 30 public : uint32_t _nb_front_end ; 31 public : uint32_t _nb_ooo_engine ; 32 public : uint32_t _nb_packet ; 33 //public : uint32_t _size_general_data ; 34 public : uint32_t _nb_general_register ; 35 //public : uint32_t _size_special_data ; 36 public : uint32_t _nb_special_register ; 37 public : uint32_t _nb_bypass_write ; 38 38 39 public : constuint32_t _nb_gpr_write ;40 public : constuint32_t _nb_spr_write ;39 public : uint32_t _nb_gpr_write ; 40 public : uint32_t _nb_spr_write ; 41 41 42 public : constuint32_t _size_context_id ;43 public : constuint32_t _size_front_end_id ;44 public : constuint32_t _size_ooo_engine_id ;45 public : constuint32_t _size_packet_id ;46 public : constuint32_t _size_general_register ;47 public : constuint32_t _size_special_register ;42 //public : uint32_t _size_context_id ; 43 //public : uint32_t _size_front_end_id ; 44 //public : uint32_t _size_ooo_engine_id ; 45 //public : uint32_t _size_packet_id ; 46 //public : uint32_t _size_general_register ; 47 //public : uint32_t _size_special_register ; 48 48 49 public : constbool _have_port_context_id ;50 public : constbool _have_port_front_end_id ;51 public : constbool _have_port_ooo_engine_id ;52 public : constbool _have_port_packet_id ;49 //public : bool _have_port_context_id ; 50 //public : bool _have_port_front_end_id ; 51 //public : bool _have_port_ooo_engine_id ; 52 //public : bool _have_port_packet_id ; 53 53 54 54 //-----[ methods ]----------------------------------------------------------- … … 62 62 uint32_t size_special_data , 63 63 uint32_t nb_special_register, 64 uint32_t nb_bypass_write ); 65 public : Parameters (Parameters & param) ; 64 uint32_t nb_bypass_write , 65 bool is_toplevel=false ); 66 //public : Parameters (Parameters & param) ; 66 67 public : ~Parameters () ; 68 69 public : void copy (void); 67 70 68 71 public : Parameters_test msg_error (void); 69 72 70 public : std::string print (uint32_t depth);71 public : friend std::ostream& operator<< (std::ostream& output_stream,72 73 public : std::string print (uint32_t depth); 74 public : friend std::ostream& operator<< (std::ostream& output_stream, 75 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters & x); 73 76 }; 74 77 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h
r82 r88 100 100 public : SC_OUT(Tcontrol_t ) * out_WRITE_QUEUE_OUT_NO_SEQUENCE ; 101 101 public : SC_OUT(Tgeneral_data_t ) * out_WRITE_QUEUE_OUT_ADDRESS ; 102 public : SC_OUT(Tgeneral_data_t ) * out_WRITE_QUEUE_OUT_DATA ; 102 103 103 104 // -----[ Interface "gpr_write" ]------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp
r81 r88 29 29 uint32_t size_special_data , 30 30 uint32_t nb_special_register, 31 uint32_t nb_bypass_write ): 32 _size_queue (size_queue ), 33 _nb_context (nb_context ), 34 _nb_front_end (nb_front_end ), 35 _nb_ooo_engine (nb_ooo_engine ), 36 _nb_packet (nb_packet ), 37 _size_general_data (size_general_data ), 38 _nb_general_register (nb_general_register), 39 _size_special_data (size_special_data ), 40 _nb_special_register (nb_special_register), 41 _nb_bypass_write (nb_bypass_write ), 42 43 _nb_gpr_write (1), 44 _nb_spr_write (1), 45 46 _size_context_id (log2(_nb_context )), 47 _size_front_end_id (log2(_nb_front_end )), 48 _size_ooo_engine_id (log2(_nb_ooo_engine )), 49 _size_packet_id (log2(_nb_packet )), 50 _size_general_register (log2(_nb_general_register)), 51 _size_special_register (log2(_nb_special_register)), 52 53 _have_port_context_id (_size_context_id > 0), 54 _have_port_front_end_id (_size_front_end_id > 0), 55 _have_port_ooo_engine_id (_size_ooo_engine_id > 0), 56 _have_port_packet_id (_size_packet_id > 0) 31 uint32_t nb_bypass_write , 32 bool is_toplevel) 57 33 { 58 34 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 35 36 _size_queue = size_queue ; 37 _nb_context = nb_context ; 38 _nb_front_end = nb_front_end ; 39 _nb_ooo_engine = nb_ooo_engine ; 40 _nb_packet = nb_packet ; 41 _nb_general_register = nb_general_register; 42 _nb_special_register = nb_special_register; 43 _nb_bypass_write = nb_bypass_write ; 44 45 _nb_gpr_write = 1; 46 _nb_spr_write = 1; 47 59 48 test(); 49 50 if (is_toplevel) 51 { 52 _size_context_id = log2(_nb_context ); 53 _size_front_end_id = log2(_nb_front_end ); 54 _size_ooo_engine_id = log2(_nb_ooo_engine ); 55 _size_rob_ptr = log2(_nb_packet ); 56 _size_general_register = log2(_nb_general_register); 57 _size_special_register = log2(_nb_special_register); 58 _size_general_data = size_general_data ; 59 _size_special_data = size_special_data ; 60 61 _have_port_context_id = _size_context_id > 0; 62 _have_port_front_end_id = _size_front_end_id > 0; 63 _have_port_ooo_engine_id = _size_ooo_engine_id > 0; 64 _have_port_rob_ptr = _size_rob_ptr > 0; 65 66 copy(); 67 } 68 60 69 log_printf(FUNC,Write_queue,FUNCTION,"End"); 61 70 }; 62 71 72 // #undef FUNCTION 73 // #define FUNCTION "Write_queue::Parameters (copy)" 74 // Parameters::Parameters (Parameters & param): 75 // _size_queue (param._size_queue ), 76 // _nb_context (param._nb_context ), 77 // _nb_front_end (param._nb_front_end ), 78 // _nb_ooo_engine (param._nb_ooo_engine ), 79 // _nb_packet (param._nb_packet ), 80 // _size_general_data (param._size_general_data ), 81 // _nb_general_register (param._nb_general_register ), 82 // _size_special_data (param._size_special_data ), 83 // _nb_special_register (param._nb_special_register ), 84 // _nb_bypass_write (param._nb_bypass_write ), 85 86 // _nb_gpr_write (param._nb_gpr_write ), 87 // _nb_spr_write (param._nb_spr_write ), 88 89 // _size_context_id (param._size_context_id ), 90 // _size_front_end_id (param._size_front_end_id ), 91 // _size_ooo_engine_id (param._size_ooo_engine_id ), 92 // _size_packet_id (param._size_packet_id ), 93 // _size_general_register (param._size_general_register ), 94 // _size_special_register (param._size_special_register ), 95 96 // _have_port_context_id (param._have_port_context_id ), 97 // _have_port_front_end_id (param._have_port_front_end_id ), 98 // _have_port_ooo_engine_id (param._have_port_ooo_engine_id), 99 // _have_port_packet_id (param._have_port_packet_id ) 100 // { 101 // log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 102 // test(); 103 // log_printf(FUNC,Write_queue,FUNCTION,"End"); 104 // }; 105 63 106 #undef FUNCTION 64 #define FUNCTION "Write_queue::Parameters (copy)" 65 Parameters::Parameters (Parameters & param): 66 _size_queue (param._size_queue ), 67 _nb_context (param._nb_context ), 68 _nb_front_end (param._nb_front_end ), 69 _nb_ooo_engine (param._nb_ooo_engine ), 70 _nb_packet (param._nb_packet ), 71 _size_general_data (param._size_general_data ), 72 _nb_general_register (param._nb_general_register ), 73 _size_special_data (param._size_special_data ), 74 _nb_special_register (param._nb_special_register ), 75 _nb_bypass_write (param._nb_bypass_write ), 76 77 _nb_gpr_write (param._nb_gpr_write ), 78 _nb_spr_write (param._nb_spr_write ), 79 80 _size_context_id (param._size_context_id ), 81 _size_front_end_id (param._size_front_end_id ), 82 _size_ooo_engine_id (param._size_ooo_engine_id ), 83 _size_packet_id (param._size_packet_id ), 84 _size_general_register (param._size_general_register ), 85 _size_special_register (param._size_special_register ), 86 87 _have_port_context_id (param._have_port_context_id ), 88 _have_port_front_end_id (param._have_port_front_end_id ), 89 _have_port_ooo_engine_id (param._have_port_ooo_engine_id), 90 _have_port_packet_id (param._have_port_packet_id ) 107 #define FUNCTION "Write_queue::~Parameters" 108 Parameters::~Parameters (void) 91 109 { 92 110 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 93 test();94 111 log_printf(FUNC,Write_queue,FUNCTION,"End"); 95 112 }; 96 113 97 114 #undef FUNCTION 98 #define FUNCTION "Write_queue:: ~Parameters"99 Parameters::~Parameters ()115 #define FUNCTION "Write_queue::copy" 116 void Parameters::copy (void) 100 117 { 101 118 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue.cpp
r81 r88 39 39 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 40 40 41 #if DEBUG_Write_queue == true 42 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Parameters"),_name.c_str()); 43 44 std::cout << *param << std::endl; 45 #endif 46 41 47 log_printf(INFO,Write_queue,FUNCTION,"Allocation"); 42 48 allocation (); 43 49 44 50 #ifdef STATISTICS 45 if ( _usage & USE_STATISTICS)51 if (usage_is_set(_usage,USE_STATISTICS)) 46 52 { 47 53 log_printf(INFO,Write_queue,FUNCTION,"Allocation of statistics"); … … 52 58 53 59 #ifdef VHDL 54 if ( _usage & USE_VHDL)60 if (usage_is_set(_usage,USE_VHDL)) 55 61 { 56 62 // generate the vhdl … … 62 68 63 69 #ifdef SYSTEMC 64 if ( _usage & USE_SYSTEMC)70 if (usage_is_set(_usage,USE_SYSTEMC)) 65 71 { 66 72 log_printf(INFO,Write_queue,FUNCTION,"Method - transition"); … … 96 102 97 103 #ifdef STATISTICS 98 if ( _usage & USE_STATISTICS)104 if (usage_is_set(_usage,USE_STATISTICS)) 99 105 { 100 106 log_printf(INFO,Write_queue,FUNCTION,"Generate Statistics file"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp
r81 r88 58 58 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 59 59 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id ); 60 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);60 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 61 61 // ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 62 62 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 81 81 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 82 82 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id); 83 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);83 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 84 84 // ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 85 85 // ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 88 88 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 ); 89 89 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_general_data ); 90 ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_DATA ,"data" ,Tgeneral_data_t,_param->_size_general_data ); 90 91 } 91 92 … … 129 130 130 131 #ifdef POSITION 131 _component->generate_file(); 132 if (usage_is_set(_usage,USE_POSITION)) 133 _component->generate_file(); 132 134 #endif 133 135 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp
r81 r88 24 24 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 25 25 26 if ( _usage & USE_SYSTEMC)26 if (usage_is_set(_usage,USE_SYSTEMC)) 27 27 { 28 28 delete in_CLOCK ; … … 38 38 if (_param->_have_port_ooo_engine_id) 39 39 delete in_WRITE_QUEUE_IN_OOO_ENGINE_ID; 40 if (_param->_have_port_ packet_id)40 if (_param->_have_port_rob_ptr ) 41 41 delete in_WRITE_QUEUE_IN_PACKET_ID ; 42 42 // delete in_WRITE_QUEUE_IN_OPERATION ; … … 61 61 if (_param->_have_port_ooo_engine_id) 62 62 delete out_WRITE_QUEUE_OUT_OOO_ENGINE_ID; 63 if (_param->_have_port_ packet_id)63 if (_param->_have_port_rob_ptr ) 64 64 delete out_WRITE_QUEUE_OUT_PACKET_ID ; 65 65 // delete out_WRITE_QUEUE_OUT_OPERATION ; … … 69 69 delete out_WRITE_QUEUE_OUT_NO_SEQUENCE ; 70 70 delete out_WRITE_QUEUE_OUT_ADDRESS ; 71 delete out_WRITE_QUEUE_OUT_DATA ; 71 72 72 73 // -----[ Interface "gpr_write" ]------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_end_cycle.cpp
r81 r88 26 26 27 27 #ifdef STATISTICS 28 _stat->end_cycle(); 28 if (usage_is_set(_usage,USE_STATISTICS)) 29 _stat->end_cycle(); 29 30 #endif 30 31 … … 32 33 // Evaluation before read the ouput signal 33 34 // sc_start(0); 34 _interfaces->testbench(); 35 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 36 _interfaces->testbench(); 35 37 #endif 36 38 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp
r81 r88 49 49 if (_param->_have_port_ooo_engine_id) 50 50 PORT_WRITE(out_WRITE_QUEUE_OUT_OOO_ENGINE_ID, _queue->front()->_ooo_engine_id); 51 if (_param->_have_port_ packet_id)51 if (_param->_have_port_rob_ptr ) 52 52 PORT_WRITE(out_WRITE_QUEUE_OUT_PACKET_ID , _queue->front()->_packet_id ); 53 53 // PORT_WRITE(out_WRITE_QUEUE_OUT_OPERATION , _queue->front()->_operation ); … … 57 57 PORT_WRITE(out_WRITE_QUEUE_OUT_NO_SEQUENCE , _queue->front()->_no_sequence ); 58 58 PORT_WRITE(out_WRITE_QUEUE_OUT_ADDRESS , _queue->front()->_address ); 59 PORT_WRITE(out_WRITE_QUEUE_OUT_DATA , _queue->front()->_data_rd ); 59 60 } 60 61 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp
r81 r88 51 51 (_param->_have_port_front_end_id )?PORT_READ(in_WRITE_QUEUE_IN_FRONT_END_ID ):0, 52 52 (_param->_have_port_ooo_engine_id)?PORT_READ(in_WRITE_QUEUE_IN_OOO_ENGINE_ID):0, 53 (_param->_have_port_ packet_id)?PORT_READ(in_WRITE_QUEUE_IN_PACKET_ID ):0,53 (_param->_have_port_rob_ptr )?PORT_READ(in_WRITE_QUEUE_IN_PACKET_ID ):0, 54 54 //PORT_READ(in_WRITE_QUEUE_IN_OPERATION ), 55 55 PORT_READ(in_WRITE_QUEUE_IN_TYPE ), … … 83 83 84 84 #ifdef STATISTICS 85 *(_stat_use_queue) += _queue->size(); 85 if (usage_is_set(_usage,USE_STATISTICS)) 86 *(_stat_use_queue) += _queue->size(); 86 87 #endif 87 88 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Parameters.h
r81 r88 28 28 { 29 29 //-----[ fields ]------------------------------------------------------------ 30 public : constuint32_t _size_write_queue ;31 public : constuint32_t _size_execute_queue ;32 public : constuint32_t _nb_context ;33 public : constuint32_t _nb_front_end ;34 public : constuint32_t _nb_ooo_engine ;35 public : constuint32_t _nb_packet ;36 public : constuint32_t _size_general_data ;37 public : constuint32_t _nb_general_register ;38 public : constuint32_t _size_special_data ;39 public : constuint32_t _nb_special_register ;40 public : constuint32_t _nb_bypass_write ;30 public : uint32_t _size_write_queue ; 31 public : uint32_t _size_execute_queue ; 32 public : uint32_t _nb_context ; 33 public : uint32_t _nb_front_end ; 34 public : uint32_t _nb_ooo_engine ; 35 public : uint32_t _nb_packet ; 36 //public : uint32_t _size_general_data ; 37 public : uint32_t _nb_general_register ; 38 //public : uint32_t _size_special_data ; 39 public : uint32_t _nb_special_register ; 40 public : uint32_t _nb_bypass_write ; 41 41 42 public : constuint32_t _nb_gpr_write ;43 public : constuint32_t _nb_spr_write ;42 public : uint32_t _nb_gpr_write ; 43 public : uint32_t _nb_spr_write ; 44 44 45 public : constuint32_t _size_context_id ;46 public : constuint32_t _size_front_end_id ;47 public : constuint32_t _size_ooo_engine_id ;48 public : constuint32_t _size_packet_id ;49 public : constuint32_t _size_general_register ;50 public : constuint32_t _size_special_register ;45 //public : uint32_t _size_context_id ; 46 //public : uint32_t _size_front_end_id ; 47 //public : uint32_t _size_ooo_engine_id ; 48 //public : uint32_t _size_packet_id ; 49 //public : uint32_t _size_general_register ; 50 //public : uint32_t _size_special_register ; 51 51 52 public : constbool _have_component_execute_queue ;53 public : constbool _have_port_context_id ;54 public : constbool _have_port_front_end_id ;55 public : constbool _have_port_ooo_engine_id ;56 public : constbool _have_port_packet_id ;52 public : bool _have_component_execute_queue ; 53 //public : bool _have_port_context_id ; 54 //public : bool _have_port_front_end_id ; 55 //public : bool _have_port_ooo_engine_id ; 56 //public : bool _have_port_packet_id ; 57 57 58 58 public : morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue ::Parameters * _param_write_queue; … … 70 70 uint32_t size_special_data , 71 71 uint32_t nb_special_register, 72 uint32_t nb_bypass_write ); 73 public : Parameters (Parameters & param) ; 72 uint32_t nb_bypass_write , 73 bool is_toplevel=false); 74 //public : Parameters (Parameters & param) ; 74 75 public : ~Parameters () ; 76 77 public : void copy (void); 75 78 76 79 public : Parameters_test msg_error (void); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h
r82 r88 95 95 public : SC_OUT(Tcontrol_t ) * out_WRITE_UNIT_OUT_NO_SEQUENCE ; 96 96 public : SC_OUT(Tgeneral_data_t ) * out_WRITE_UNIT_OUT_ADDRESS ; 97 public : SC_OUT(Tgeneral_data_t ) * out_WRITE_UNIT_OUT_DATA ; 97 98 98 99 // -----[ Interface "gpr_write" ]------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters.cpp
r81 r88 29 29 uint32_t size_special_data , 30 30 uint32_t nb_special_register, 31 uint32_t nb_bypass_write ): 32 _size_write_queue (size_write_queue ), 33 _size_execute_queue (size_execute_queue ), 34 _nb_context (nb_context ), 35 _nb_front_end (nb_front_end ), 36 _nb_ooo_engine (nb_ooo_engine ), 37 _nb_packet (nb_packet ), 38 _size_general_data (size_general_data ), 39 _nb_general_register (nb_general_register), 40 _size_special_data (size_special_data ), 41 _nb_special_register (nb_special_register), 42 _nb_bypass_write (nb_bypass_write ), 43 44 _nb_gpr_write (1), 45 _nb_spr_write (1), 46 47 _size_context_id (log2(_nb_context )), 48 _size_front_end_id (log2(_nb_front_end )), 49 _size_ooo_engine_id (log2(_nb_ooo_engine )), 50 _size_packet_id (log2(_nb_packet )), 51 _size_general_register (log2(_nb_general_register)), 52 _size_special_register (log2(_nb_special_register)), 53 54 _have_component_execute_queue (_size_execute_queue > 0), 55 _have_port_context_id (_size_context_id > 0), 56 _have_port_front_end_id (_size_front_end_id > 0), 57 _have_port_ooo_engine_id (_size_ooo_engine_id > 0), 58 _have_port_packet_id (_size_packet_id > 0) 31 uint32_t nb_bypass_write , 32 bool is_toplevel ) 59 33 { 60 34 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 61 35 62 _param_write_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue ::Parameters(size_write_queue , 63 nb_context , 64 nb_front_end , 65 nb_ooo_engine , 66 nb_packet , 67 size_general_data , 68 nb_general_register, 69 size_special_data , 70 nb_special_register, 71 nb_bypass_write ); 36 _size_write_queue = size_write_queue ; 37 _size_execute_queue = size_execute_queue ; 38 _nb_context = nb_context ; 39 _nb_front_end = nb_front_end ; 40 _nb_ooo_engine = nb_ooo_engine ; 41 _nb_packet = nb_packet ; 42 _nb_general_register = nb_general_register; 43 _nb_special_register = nb_special_register; 44 _nb_bypass_write = nb_bypass_write ; 45 46 _nb_gpr_write = 1; 47 _nb_spr_write = 1; 48 49 _have_component_execute_queue = _size_execute_queue > 0; 50 51 _param_write_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue ::Parameters(_size_write_queue , 52 _nb_context , 53 _nb_front_end , 54 _nb_ooo_engine , 55 _nb_packet , 56 size_general_data , 57 _nb_general_register, 58 size_special_data , 59 _nb_special_register, 60 _nb_bypass_write ); 72 61 73 62 if (_have_component_execute_queue) 74 _param_execute_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters( size_execute_queue ,75 nb_context ,76 nb_front_end ,77 nb_ooo_engine ,78 nb_packet ,79 size_general_data ,80 size_special_data );63 _param_execute_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters(_size_execute_queue , 64 _nb_context , 65 _nb_front_end , 66 _nb_ooo_engine , 67 _nb_packet , 68 size_general_data , 69 size_special_data ); 81 70 82 71 test(); 72 73 if (is_toplevel) 74 { 75 _size_context_id = log2(_nb_context ); 76 _size_front_end_id = log2(_nb_front_end ); 77 _size_ooo_engine_id = log2(_nb_ooo_engine ); 78 _size_rob_ptr = log2(_nb_packet ); 79 _size_general_register = log2(_nb_general_register); 80 _size_special_register = log2(_nb_special_register); 81 _size_general_data = size_general_data ; 82 _size_special_data = size_special_data ; 83 84 _have_port_context_id = _size_context_id > 0; 85 _have_port_front_end_id = _size_front_end_id > 0; 86 _have_port_ooo_engine_id = _size_ooo_engine_id > 0; 87 _have_port_rob_ptr = _size_rob_ptr > 0; 88 89 copy(); 90 } 83 91 84 92 log_printf(FUNC,Write_unit,FUNCTION,"End"); 85 93 }; 86 94 87 #undef FUNCTION88 #define FUNCTION "Write_unit::Parameters (copy)"89 Parameters::Parameters (Parameters & param):90 _size_write_queue (param._size_write_queue ),91 _size_execute_queue (param._size_execute_queue ),92 _nb_context (param._nb_context ),93 _nb_front_end (param._nb_front_end ),94 _nb_ooo_engine (param._nb_ooo_engine ),95 _nb_packet (param._nb_packet ),96 _size_general_data (param._size_general_data ),97 _nb_general_register (param._nb_general_register ),98 _size_special_data (param._size_special_data ),99 _nb_special_register (param._nb_special_register ),100 _nb_bypass_write (param._nb_bypass_write ),95 // #undef FUNCTION 96 // #define FUNCTION "Write_unit::Parameters (copy)" 97 // Parameters::Parameters (Parameters & param): 98 // _size_write_queue (param._size_write_queue ), 99 // _size_execute_queue (param._size_execute_queue ), 100 // _nb_context (param._nb_context ), 101 // _nb_front_end (param._nb_front_end ), 102 // _nb_ooo_engine (param._nb_ooo_engine ), 103 // _nb_packet (param._nb_packet ), 104 // _size_general_data (param._size_general_data ), 105 // _nb_general_register (param._nb_general_register ), 106 // _size_special_data (param._size_special_data ), 107 // _nb_special_register (param._nb_special_register ), 108 // _nb_bypass_write (param._nb_bypass_write ), 101 109 102 _nb_gpr_write (param._nb_gpr_write ),103 _nb_spr_write (param._nb_spr_write ),110 // _nb_gpr_write (param._nb_gpr_write ), 111 // _nb_spr_write (param._nb_spr_write ), 104 112 105 _size_context_id (param._size_context_id ),106 _size_front_end_id (param._size_front_end_id ),107 _size_ooo_engine_id (param._size_ooo_engine_id ),108 _size_packet_id (param._size_packet_id ),109 _size_general_register (param._size_general_register ),110 _size_special_register (param._size_special_register ),113 // _size_context_id (param._size_context_id ), 114 // _size_front_end_id (param._size_front_end_id ), 115 // _size_ooo_engine_id (param._size_ooo_engine_id ), 116 // _size_packet_id (param._size_packet_id ), 117 // _size_general_register (param._size_general_register ), 118 // _size_special_register (param._size_special_register ), 111 119 112 _have_component_execute_queue (param._have_component_execute_queue),113 _have_port_context_id (param._have_port_context_id ),114 _have_port_front_end_id (param._have_port_front_end_id ),115 _have_port_ooo_engine_id (param._have_port_ooo_engine_id ),116 _have_port_packet_id (param._have_port_packet_id )117 {118 log_printf(FUNC,Write_unit,FUNCTION,"Begin");120 // _have_component_execute_queue (param._have_component_execute_queue), 121 // _have_port_context_id (param._have_port_context_id ), 122 // _have_port_front_end_id (param._have_port_front_end_id ), 123 // _have_port_ooo_engine_id (param._have_port_ooo_engine_id ), 124 // _have_port_packet_id (param._have_port_packet_id ) 125 // { 126 // log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 119 127 120 _param_write_queue = param._param_write_queue ;121 _param_execute_queue = param._param_execute_queue;128 // _param_write_queue = param._param_write_queue ; 129 // _param_execute_queue = param._param_execute_queue; 122 130 123 test();124 log_printf(FUNC,Write_unit,FUNCTION,"End");125 };131 // test(); 132 // log_printf(FUNC,Write_unit,FUNCTION,"End"); 133 // }; 126 134 127 135 #undef FUNCTION 128 136 #define FUNCTION "Write_unit::~Parameters" 129 Parameters::~Parameters ( )137 Parameters::~Parameters (void) 130 138 { 131 139 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); … … 139 147 }; 140 148 149 #undef FUNCTION 150 #define FUNCTION "Write_unit::copy" 151 void Parameters::copy (void) 152 { 153 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 154 155 COPY(_param_write_queue); 156 if (_have_component_execute_queue) 157 COPY(_param_execute_queue); 158 159 log_printf(FUNC,Write_unit,FUNCTION,"End"); 160 }; 161 141 162 }; // end namespace write_unit 142 163 }; // end namespace multi_write_unit … … 144 165 }; // end namespace multi_execute_loop 145 166 }; // end namespace core 146 147 167 }; // end namespace behavioural 148 168 }; // end namespace morpheo -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit.cpp
r81 r88 38 38 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Write_unit == true 41 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 43 std::cout << *param << std::endl; 44 #endif 45 40 46 log_printf(INFO,Write_unit,FUNCTION,"Allocation"); 41 47 … … 47 53 48 54 #ifdef STATISTICS 49 if ( _usage & USE_STATISTICS)55 if (usage_is_set(_usage,USE_STATISTICS)) 50 56 { 51 57 log_printf(INFO,Write_unit,FUNCTION,"Allocation of statistics"); … … 56 62 57 63 #ifdef VHDL 58 if ( _usage & USE_VHDL)64 if (usage_is_set(_usage,USE_VHDL)) 59 65 { 60 66 // generate the vhdl … … 66 72 67 73 #ifdef SYSTEMC 68 if ( _usage & USE_SYSTEMC)74 if (usage_is_set(_usage,USE_SYSTEMC)) 69 75 { 70 76 log_printf(INFO,Write_unit,FUNCTION,"Method - transition"); … … 90 96 91 97 #ifdef STATISTICS 92 if ( _usage & USE_STATISTICS)98 if (usage_is_set(_usage,USE_STATISTICS)) 93 99 { 94 100 log_printf(INFO,Write_unit,FUNCTION,"Generate Statistics file"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp
r82 r88 23 23 void Write_unit::allocation ( 24 24 #ifdef STATISTICS 25 25 morpheo::behavioural::Parameters_Statistics * param_statistics 26 26 #else 27 28 #endif 29 27 void 28 #endif 29 ) 30 30 { 31 31 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); … … 34 34 35 35 Entity * entity = _component->set_entity (_name 36 37 #ifdef POSITION 38 39 #endif 40 36 ,"Write_unit" 37 #ifdef POSITION 38 ,COMBINATORY 39 #endif 40 ); 41 41 42 42 _interfaces = entity->set_interfaces(); … … 46 46 Interface * interface = _interfaces->set_interface("" 47 47 #ifdef POSITION 48 49 50 51 #endif 52 48 ,IN 49 ,SOUTH, 50 "Generalist interface" 51 #endif 52 ); 53 53 54 54 in_CLOCK = interface->set_signal_clk ("clock" ,1, CLOCK_VHDL_YES); … … 64 64 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 65 65 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id ); 66 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);66 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 67 67 // ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 68 68 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 87 87 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 88 88 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id); 89 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);89 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 90 90 // ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 91 91 // ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 94 94 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 ); 95 95 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_general_data ); 96 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_DATA ,"data" ,Tgeneral_data_t,_param->_size_general_data ); 96 97 } 97 98 … … 138 139 { 139 140 name = _name+"_write_queue"; 140 141 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 142 141 143 component_write_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Write_queue 142 144 (name.c_str() 143 145 #ifdef STATISTICS 144 145 #endif 146 147 146 ,param_statistics 147 #endif 148 ,_param->_param_write_queue 149 ,_usage); 148 150 149 151 _component->set_component (component_write_queue->_component 150 152 #ifdef POSITION 151 152 #endif 153 153 , 50, 50, 10, 10 154 #endif 155 ); 154 156 } 155 157 … … 157 159 { 158 160 name = _name+"_execute_queue"; 161 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 159 162 160 163 component_execute_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Execute_queue 161 164 (name.c_str() 162 165 #ifdef STATISTICS 163 164 #endif 165 166 166 ,param_statistics 167 #endif 168 ,_param->_param_execute_queue 169 ,_usage); 167 170 168 171 _component->set_component (component_execute_queue->_component 169 172 #ifdef POSITION 170 171 #endif 172 173 , 50, 50, 10, 10 174 #endif 175 ); 173 176 } 174 177 … … 176 179 { 177 180 name = _name+"_write_queue"; 178 std::cout << "Instance : " << name << std::endl;179 181 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),name.c_str()); 182 180 183 #ifdef POSITION 181 184 _component->interface_map (name ,"", 182 185 _name,""); 183 186 #endif 184 187 … … 189 192 #ifdef POSITION 190 193 _component->interface_map (name ,"write_queue_in", 191 194 _name,"write_unit_in"); 192 195 #endif 193 196 … … 200 203 if (_param->_have_port_ooo_engine_id) 201 204 _component->port_map(name, "in_WRITE_QUEUE_IN_OOO_ENGINE_ID", _name, "in_WRITE_UNIT_IN_OOO_ENGINE_ID"); 202 if (_param->_have_port_ packet_id)205 if (_param->_have_port_rob_ptr) 203 206 _component->port_map(name, "in_WRITE_QUEUE_IN_PACKET_ID" , _name, "in_WRITE_UNIT_IN_PACKET_ID" ); 204 207 //_component->port_map(name, "in_WRITE_QUEUE_IN_OPERATION" , _name, "in_WRITE_UNIT_IN_OPERATION" ); … … 216 219 217 220 if (_param->_have_component_execute_queue) 218 { 219 #ifdef POSITION 220 _component->interface_map (name ,"write_queue_out", 221 _name+"_execute_queue", "execute_queue_in"); 222 #endif 223 224 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_VAL" ); 225 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name+"_execute_queue","out_EXECUTE_QUEUE_IN_ACK" ); 226 if (_param->_have_port_context_id) 227 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_CONTEXT_ID" ); 228 if (_param->_have_port_front_end_id) 229 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FRONT_END_ID" ); 230 if (_param->_have_port_ooo_engine_id) 231 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"); 232 if (_param->_have_port_packet_id) 233 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_PACKET_ID" ); 234 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OPERATION" ); 235 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_TYPE" ); 236 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FLAGS" ); 237 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_EXCEPTION" ); 238 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" ); 239 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_ADDRESS" ); 240 } 221 { 222 #ifdef POSITION 223 _component->interface_map (name ,"write_queue_out", 224 _name+"_execute_queue", "execute_queue_in"); 225 #endif 226 227 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_VAL" ); 228 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name+"_execute_queue","out_EXECUTE_QUEUE_IN_ACK" ); 229 if (_param->_have_port_context_id) 230 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_CONTEXT_ID" ); 231 if (_param->_have_port_front_end_id) 232 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FRONT_END_ID" ); 233 if (_param->_have_port_ooo_engine_id) 234 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"); 235 if (_param->_have_port_rob_ptr) 236 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_PACKET_ID" ); 237 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OPERATION" ); 238 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_TYPE" ); 239 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FLAGS" ); 240 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_EXCEPTION" ); 241 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" ); 242 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_ADDRESS" ); 243 _component->port_map(name,"out_WRITE_QUEUE_OUT_DATA" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_DATA" ); 244 } 241 245 else 242 { 243 #ifdef POSITION 244 _component->interface_map (name ,"write_queue_out", 245 _name,"write_unit_out"); 246 #endif 247 248 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 249 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 250 if (_param->_have_port_context_id) 251 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 252 if (_param->_have_port_front_end_id) 253 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 254 if (_param->_have_port_ooo_engine_id) 255 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 256 if (_param->_have_port_packet_id) 257 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 258 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 259 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 260 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 261 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 262 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 263 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 264 } 246 { 247 #ifdef POSITION 248 _component->interface_map (name ,"write_queue_out", 249 _name,"write_unit_out"); 250 #endif 251 252 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 253 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 254 if (_param->_have_port_context_id) 255 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 256 if (_param->_have_port_front_end_id) 257 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 258 if (_param->_have_port_ooo_engine_id) 259 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 260 if (_param->_have_port_rob_ptr) 261 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 262 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 263 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 264 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 265 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 266 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 267 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 268 _component->port_map(name,"out_WRITE_QUEUE_OUT_DATA" , _name,"out_WRITE_UNIT_OUT_DATA" ); 269 } 265 270 266 271 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 267 268 #ifdef POSITION 269 270 271 #endif 272 273 274 275 276 277 278 279 272 { 273 #ifdef POSITION 274 _component->interface_map (name ,"gpr_write_"+toString(i), 275 _name,"gpr_write_"+toString(i)); 276 #endif 277 278 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_VAL" ,_name,"out_GPR_WRITE_"+toString(i)+"_VAL" ); 279 _component->port_map(name, "in_GPR_WRITE_"+toString(i)+"_ACK" ,_name, "in_GPR_WRITE_"+toString(i)+"_ACK" ); 280 if (_param->_have_port_ooo_engine_id) 281 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",_name,"out_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID"); 282 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_NUM_REG" ,_name,"out_GPR_WRITE_"+toString(i)+"_NUM_REG" ); 283 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_DATA" ,_name,"out_GPR_WRITE_"+toString(i)+"_DATA" ); 284 } 280 285 281 286 for (uint32_t i=0; i<_param->_nb_spr_write; i++) 282 283 #ifdef POSITION 284 285 286 #endif 287 288 289 290 291 292 293 294 287 { 288 #ifdef POSITION 289 _component->interface_map (name ,"spr_write_"+toString(i), 290 _name,"spr_write_"+toString(i)); 291 #endif 292 293 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_VAL" ,_name,"out_SPR_WRITE_"+toString(i)+"_VAL" ); 294 _component->port_map(name, "in_SPR_WRITE_"+toString(i)+"_ACK" ,_name, "in_SPR_WRITE_"+toString(i)+"_ACK" ); 295 if (_param->_have_port_ooo_engine_id) 296 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",_name,"out_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID"); 297 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_NUM_REG" ,_name,"out_SPR_WRITE_"+toString(i)+"_NUM_REG" ); 298 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_DATA" ,_name,"out_SPR_WRITE_"+toString(i)+"_DATA" ); 299 } 295 300 296 301 297 302 for (uint32_t i=0; i<_param->_nb_bypass_write; i++) 298 299 #ifdef POSITION 300 301 302 #endif 303 304 305 306 307 308 309 310 311 312 303 { 304 #ifdef POSITION 305 _component->interface_map (name ,"bypass_write_"+toString(i), 306 _name,"bypass_write_"+toString(i)); 307 #endif 308 309 if (_param->_have_port_ooo_engine_id) 310 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_OOO_ENGINE_ID",_name,"out_BYPASS_WRITE_"+toString(i)+"_OOO_ENGINE_ID"); 311 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_VAL" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_VAL" ); 312 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_NUM_REG" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_NUM_REG" ); 313 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_DATA" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_DATA" ); 314 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_VAL" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_VAL" ); 315 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_NUM_REG" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_NUM_REG" ); 316 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_DATA" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_DATA" ); 317 } 313 318 } 314 319 315 320 if (_param->_have_component_execute_queue) 316 321 { 317 318 std::cout << "Instance : " << name << std::endl;319 320 #ifdef POSITION 321 322 323 #endif 324 325 326 327 328 329 #ifdef POSITION 330 331 322 name = _name+"_execute_queue"; 323 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),name.c_str()); 324 325 #ifdef POSITION 326 _component->interface_map (name ,"", 327 _name,""); 328 #endif 329 330 _component->port_map(name,"in_CLOCK" , _name, "in_CLOCK"); 331 _component->port_map(name,"in_NRESET", _name, "in_NRESET"); 332 333 334 #ifdef POSITION 335 _component->interface_map (name ,"execute_queue_in", 336 _name+"_write_queue","write_queue_in"); 332 337 #endif 333 338 … … 340 345 if (_param->_have_port_ooo_engine_id) 341 346 _component->port_map(name, "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID", _name+"_write_queue","out_WRITE_QUEUE_OUT_OOO_ENGINE_ID"); 342 if (_param->_have_port_ packet_id)347 if (_param->_have_port_rob_ptr) 343 348 _component->port_map(name, "in_EXECUTE_QUEUE_IN_PACKET_ID" , _name+"_write_queue","out_WRITE_QUEUE_OUT_PACKET_ID" ); 344 349 //_component->port_map(name, "in_EXECUTE_QUEUE_IN_OPERATION" , _name+"_write_queue","out_WRITE_QUEUE_OUT_OPERATION" ); … … 348 353 _component->port_map(name, "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" , _name+"_write_queue","out_WRITE_QUEUE_OUT_NO_SEQUENCE" ); 349 354 _component->port_map(name, "in_EXECUTE_QUEUE_IN_ADDRESS" , _name+"_write_queue","out_WRITE_QUEUE_OUT_ADDRESS" ); 350 351 #ifdef POSITION 352 _component->interface_map (name ,"execute_queue_out", 353 _name,"write_unit_out"); 354 #endif 355 356 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 357 _component->port_map(name, "in_EXECUTE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 358 if (_param->_have_port_context_id) 359 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 360 if (_param->_have_port_front_end_id) 361 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 362 if (_param->_have_port_ooo_engine_id) 363 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 364 if (_param->_have_port_packet_id) 365 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 366 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 367 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 368 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 369 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 370 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 371 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 355 _component->port_map(name, "in_EXECUTE_QUEUE_IN_DATA" , _name+"_write_queue","out_WRITE_QUEUE_OUT_DATA" ); 356 357 #ifdef POSITION 358 _component->interface_map (name ,"execute_queue_out", 359 _name,"write_unit_out"); 360 #endif 361 362 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 363 _component->port_map(name, "in_EXECUTE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 364 if (_param->_have_port_context_id) 365 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 366 if (_param->_have_port_front_end_id) 367 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 368 if (_param->_have_port_ooo_engine_id) 369 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 370 if (_param->_have_port_rob_ptr) 371 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 372 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 373 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 374 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 375 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 376 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 377 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 378 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_DATA" , _name,"out_WRITE_UNIT_OUT_DATA" ); 372 379 } 373 380 374 381 #ifdef POSITION 375 _component->generate_file(); 382 if (usage_is_set(_usage,USE_POSITION)) 383 _component->generate_file(); 376 384 #endif 377 385 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_deallocation.cpp
r81 r88 23 23 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 24 24 25 if ( _usage & USE_SYSTEMC)25 if (usage_is_set(_usage,USE_SYSTEMC)) 26 26 { 27 27 delete in_CLOCK ; … … 37 37 if (_param->_have_port_ooo_engine_id) 38 38 delete in_WRITE_UNIT_IN_OOO_ENGINE_ID; 39 if (_param->_have_port_ packet_id)39 if (_param->_have_port_rob_ptr) 40 40 delete in_WRITE_UNIT_IN_PACKET_ID ; 41 41 // delete in_WRITE_UNIT_IN_OPERATION ; … … 60 60 if (_param->_have_port_ooo_engine_id) 61 61 delete out_WRITE_UNIT_OUT_OOO_ENGINE_ID; 62 if (_param->_have_port_ packet_id)62 if (_param->_have_port_rob_ptr) 63 63 delete out_WRITE_UNIT_OUT_PACKET_ID ; 64 64 // delete out_WRITE_UNIT_OUT_OPERATION ; … … 68 68 delete out_WRITE_UNIT_OUT_NO_SEQUENCE ; 69 69 delete out_WRITE_UNIT_OUT_ADDRESS ; 70 delete out_WRITE_UNIT_OUT_DATA ; 70 71 71 72 // -----[ Interface "gpr_write" ]------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_end_cycle.cpp
r81 r88 25 25 26 26 #ifdef STATISTICS 27 _stat->end_cycle(); 27 if (usage_is_set(_usage,USE_STATISTICS)) 28 _stat->end_cycle(); 28 29 #endif 29 30 … … 31 32 // Evaluation before read the ouput signal 32 33 // sc_start(0); 33 _interfaces->testbench(); 34 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 35 _interfaces->testbench(); 34 36 #endif 35 37
Note: See TracChangeset
for help on using the changeset viewer.