Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp
r81 r88 36 36 log_printf(FUNC,Execute_loop,FUNCTION,"Begin"); 37 37 38 #if DEBUG_Execute_loop == true 39 log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Parameters"),_name.c_str()); 40 41 std::cout << *param << std::endl; 42 #endif 43 38 44 log_printf(INFO,Execute_loop,FUNCTION,"Allocation"); 39 45 … … 45 51 46 52 #ifdef STATISTICS 47 if ( _usage & USE_STATISTICS)53 if (usage_is_set(_usage,USE_STATISTICS)) 48 54 { 49 55 log_printf(INFO,Execute_loop,FUNCTION,"Allocation of statistics"); … … 54 60 55 61 #ifdef VHDL 56 if ( _usage & USE_VHDL)62 if (usage_is_set(_usage,USE_VHDL)) 57 63 { 58 64 // generate the vhdl … … 64 70 65 71 #ifdef SYSTEMC 66 if ( _usage & USE_SYSTEMC)72 if (usage_is_set(_usage,USE_SYSTEMC)) 67 73 { 68 74 log_printf(INFO,Execute_loop,FUNCTION,"Method - transition"); … … 88 94 89 95 #ifdef STATISTICS 90 if ( _usage & USE_STATISTICS)96 if (usage_is_set(_usage,USE_STATISTICS)) 91 97 { 92 98 log_printf(INFO,Execute_loop,FUNCTION,"Generate Statistics file"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_allocation.cpp
r82 r88 62 62 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id); 63 63 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_OOO_ENGINE_ID ,"ooo_engine_id" ,Tcontext_t ,_param->_size_ooo_engine_id); 64 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);64 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 65 65 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation); 66 66 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type); 67 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t ,_param->_ max_size_store_queue);67 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t ,_param->_size_store_queue_ptr); 68 68 if (_param->_have_port_load_queue_ptr) 69 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t ,_param->_ max_size_load_queue);69 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t ,_param->_size_load_queue_ptr); 70 70 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ,"has_immediat" ,Tcontrol_t ,1); 71 71 ALLOC1_SIGNAL_IN ( in_EXECUTE_LOOP_IN_IMMEDIAT ,"immediat" ,Tgeneral_data_t ,_param->_size_general_data); … … 90 90 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id); 91 91 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id); 92 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);92 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 93 93 // ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation); 94 94 // ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type); … … 97 97 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1); 98 98 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_general_data); 99 ALLOC1_SIGNAL_OUT(out_EXECUTE_LOOP_OUT_DATA ,"data" ,Tgeneral_data_t,_param->_size_general_data); 99 100 } 100 101 // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101 102 { 102 ALLOC 1_INTERFACE("dcache_req",OUT, NORTH, "Data cache port : request", _param->_nb_load_store_unit);103 104 ALLOC1_VALACK_OUT(out_DCACHE_REQ_VAL,VAL);105 ALLOC1_VALACK_IN ( in_DCACHE_REQ_ACK,ACK);106 ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_CONTEXT_ID,"context_id",Tcontext_t ,_param->_max_size_dcache_context_id);107 ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_max_size_dcache_packet_id);108 ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_ADDRESS ,"address" ,Tdcache_address_t,_param->_size_general_data);109 ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_TYPE ,"type" ,Tdcache_type_t ,_param->_size_dcache_type);110 ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_WDATA ,"wdata" ,Tdcache_data_t ,_param->_size_general_data);103 ALLOC2_INTERFACE("dcache_req",OUT, NORTH, "Data cache port : request", _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 104 105 _ALLOC2_VALACK_OUT(out_DCACHE_REQ_VAL,VAL, _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 106 _ALLOC2_VALACK_IN ( in_DCACHE_REQ_ACK,ACK, _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 107 _ALLOC2_SIGNAL_OUT(out_DCACHE_REQ_CONTEXT_ID,"context_id",Tcontext_t ,_param->_max_size_dcache_context_id, _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 108 _ALLOC2_SIGNAL_OUT(out_DCACHE_REQ_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_max_size_dcache_packet_id , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 109 _ALLOC2_SIGNAL_OUT(out_DCACHE_REQ_ADDRESS ,"address" ,Tdcache_address_t,_param->_size_general_data , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 110 _ALLOC2_SIGNAL_OUT(out_DCACHE_REQ_TYPE ,"type" ,Tdcache_type_t ,_param->_size_dcache_type , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 111 _ALLOC2_SIGNAL_OUT(out_DCACHE_REQ_WDATA ,"wdata" ,Tdcache_data_t ,_param->_size_general_data , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 111 112 } 112 113 // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 114 { 114 ALLOC 1_INTERFACE("dcache_rsp",IN, NORTH, "Data cache port : respons", _param->_nb_load_store_unit);115 116 ALLOC1_VALACK_IN ( in_DCACHE_RSP_VAL,VAL);117 ALLOC1_VALACK_OUT(out_DCACHE_RSP_ACK,ACK);118 ALLOC1_SIGNAL_IN ( in_DCACHE_RSP_CONTEXT_ID,"context_id",Tcontext_t ,_param->_max_size_dcache_context_id);119 ALLOC1_SIGNAL_IN ( in_DCACHE_RSP_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_max_size_dcache_packet_id);120 ALLOC1_SIGNAL_IN ( in_DCACHE_RSP_RDATA ,"rdata" ,Tdcache_data_t ,_param->_size_general_data);121 ALLOC1_SIGNAL_IN ( in_DCACHE_RSP_ERROR ,"error" ,Tdcache_error_t,_param->_size_dcache_error);115 ALLOC2_INTERFACE("dcache_rsp",IN, NORTH, "Data cache port : respons", _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 116 117 _ALLOC2_VALACK_IN ( in_DCACHE_RSP_VAL,VAL, _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 118 _ALLOC2_VALACK_OUT(out_DCACHE_RSP_ACK,ACK, _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 119 _ALLOC2_SIGNAL_IN ( in_DCACHE_RSP_CONTEXT_ID,"context_id",Tcontext_t ,_param->_max_size_dcache_context_id, _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 120 _ALLOC2_SIGNAL_IN ( in_DCACHE_RSP_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_max_size_dcache_packet_id , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 121 _ALLOC2_SIGNAL_IN ( in_DCACHE_RSP_RDATA ,"rdata" ,Tdcache_data_t ,_param->_size_general_data , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 122 _ALLOC2_SIGNAL_IN ( in_DCACHE_RSP_ERROR ,"error" ,Tdcache_error_t,_param->_size_dcache_error , _param->_nb_load_store_unit, _param->_nb_cache_port[it1]); 122 123 } 123 124 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 125 { 125 ALLOC2_INTERFACE("insert_rob",IN, EAST, "Rename's stage : insert a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_interface_it1]);126 127 _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_signal_it1]);128 _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_signal_it1]);129 130 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE ,"rd_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_signal_it1]);131 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_signal_it1]);132 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE ,"re_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_signal_it1]);133 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[ alloc_signal_it1]);126 ALLOC2_INTERFACE("insert_rob",IN, EAST, "Rename's stage : insert a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 127 128 _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 129 _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 130 131 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE ,"rd_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 132 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 133 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE ,"re_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 134 _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1]); 134 135 } 135 // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~136 {137 ALLOC2_INTERFACE("retire_rob",IN, EAST, "Rename's stage : retire a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_interface_it1]);138 139 _ALLOC2_VALACK_IN ( in_RETIRE_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);140 _ALLOC2_VALACK_OUT(out_RETIRE_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);141 142 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_OLD_USE ,"rd_old_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);143 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_OLD_NUM_REG,"rd_old_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);144 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_NEW_USE ,"rd_new_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);145 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_NEW_NUM_REG,"rd_new_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);146 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_OLD_USE ,"re_old_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);147 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_OLD_NUM_REG,"re_old_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);148 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_NEW_USE ,"re_new_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);149 _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_NEW_NUM_REG,"re_new_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[alloc_signal_it1]);150 }136 // // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 // { 138 // ALLOC2_INTERFACE("retire_rob",IN, EAST, "Rename's stage : retire a new instruction in the Re Order Buffer",_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 139 140 // _ALLOC2_VALACK_IN ( in_RETIRE_ROB_VAL,VAL,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 141 // _ALLOC2_VALACK_OUT(out_RETIRE_ROB_ACK,ACK,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 142 143 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_OLD_USE ,"rd_old_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 144 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_OLD_NUM_REG,"rd_old_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 145 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_NEW_USE ,"rd_new_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 146 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RD_NEW_NUM_REG,"rd_new_num_reg",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 147 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_OLD_USE ,"re_old_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 148 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_OLD_NUM_REG,"re_old_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 149 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_NEW_USE ,"re_new_use" ,Tcontrol_t ,1 ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 150 // _ALLOC2_SIGNAL_IN ( in_RETIRE_ROB_RE_NEW_NUM_REG,"re_new_num_reg",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1]); 151 // } 151 152 152 153 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 154 std::string name; 155 156 { 157 name = _name+"_glue"; 158 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 159 160 _component_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::execute_loop_glue::Execute_loop_Glue 161 (name.c_str() 162 #ifdef STATISTICS 163 ,param_statistics 164 #endif 165 ,_param->_param_glue 166 ,_usage); 167 168 _component->set_component (_component_glue->_component 169 #ifdef POSITION 170 , 50, 50, 10, 10 171 #endif 172 ); 173 } 154 174 155 175 _component_read_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::Read_unit * [_param->_nb_read_unit]; … … 157 177 { 158 178 name = _name+"_read_unit_"+toString(i); 159 std::cout << "Create : " << name << std::endl;179 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 160 180 161 181 _component_read_unit [i] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::Read_unit … … 178 198 { 179 199 name = _name+"_functionnal_unit_"+toString(i); 180 std::cout << "Create : " << name << std::endl;200 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 181 201 182 202 _component_functionnal_unit [i] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::Functionnal_unit … … 199 219 { 200 220 name = _name+"_load_store_unit_"+toString(i); 201 std::cout << "Create : " << name << std::endl;221 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 202 222 203 223 _component_load_store_unit [i] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Load_store_unit … … 220 240 { 221 241 name = _name+"_write_unit_"+toString(i); 222 std::cout << "Create : " << name << std::endl;242 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 223 243 224 244 _component_write_unit [i] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Write_unit … … 239 259 { 240 260 name = _name+"_read_unit_to_execution_unit"; 241 std::cout << "Create : " << name << std::endl;261 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 242 262 243 263 _component_read_unit_to_execution_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::network::read_unit_to_execution_unit::Read_unit_to_Execution_unit … … 258 278 { 259 279 name = _name+"_execution_unit_to_write_unit"; 260 std::cout << "Create : " << name << std::endl;280 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 261 281 262 282 _component_execution_unit_to_write_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::network::execution_unit_to_write_unit::Execution_unit_to_Write_unit … … 277 297 { 278 298 name = _name+"_register_unit"; 279 std::cout << "Create : " << name << std::endl;299 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 280 300 281 301 _component_register_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Register_unit … … 296 316 // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 297 317 std::string src,dest; 318 319 // =================================================================== 320 // =====[ GLUE ]====================================================== 321 // =================================================================== 322 { 323 src = _name+"_glue"; 324 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 325 326 { 327 dest = _name; 328 #ifdef POSITION 329 _component->interface_map (src ,"", 330 dest,""); 331 #endif 332 PORT_MAP(_component ,src , "in_CLOCK" ,dest, "in_CLOCK"); 333 PORT_MAP(_component ,src , "in_NRESET",dest, "in_NRESET"); 334 } 335 336 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 337 { 338 { 339 dest = _name+"_write_unit_"+toString(i); 340 341 #ifdef POSITION 342 _component->interface_map (src ,"gpr_write_write_unit_"+toString(i), 343 dest,"gpr_write"); 344 #endif 345 346 // in_GPR_WRITE_WRITE_UNIT_VAL 347 // out_GPR_WRITE_WRITE_UNIT_ACK 348 // in_GPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID 349 // in_GPR_WRITE_WRITE_UNIT_NUM_REG 350 // in_GPR_WRITE_WRITE_UNIT_DATA 351 } 352 353 { 354 dest = _name+"_register_unit"; 355 356 #ifdef POSITION 357 _component->interface_map (src ,"gpr_write_register_file_"+toString(i), 358 dest,"gpr_write_"+toString(i)); 359 #endif 360 // out_GPR_WRITE_REGISTER_FILE_VAL 361 // in_GPR_WRITE_REGISTER_FILE_ACK 362 // out_GPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID 363 // out_GPR_WRITE_REGISTER_FILE_NUM_REG 364 // out_GPR_WRITE_REGISTER_FILE_DATA 365 } 366 367 { 368 dest = _name+"_read_unit_0"; 369 370 #ifdef POSITION 371 _component->interface_map (src ,"gpr_write_read_unit_"+toString(i), 372 dest,"gpr_write"); 373 #endif 374 375 // out_GPR_WRITE_READ_UNIT_VAL 376 // out_GPR_WRITE_READ_UNIT_OOO_ENGINE_ID 377 // out_GPR_WRITE_READ_UNIT_NUM_REG 378 // out_GPR_WRITE_READ_UNIT_DATA 379 } 380 } 381 382 for (uint32_t i=0; i<_param->_nb_spr_write; i++) 383 { 384 { 385 dest = _name+"_write_unit_"+toString(i); 386 387 #ifdef POSITION 388 _component->interface_map (src ,"spr_write_write_unit_"+toString(i), 389 dest,"spr_write"); 390 #endif 391 392 // in_SPR_WRITE_WRITE_UNIT_VAL 393 // out_SPR_WRITE_WRITE_UNIT_ACK 394 // in_SPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID 395 // in_SPR_WRITE_WRITE_UNIT_NUM_REG 396 // in_SPR_WRITE_WRITE_UNIT_DATA 397 } 398 399 { 400 dest = _name+"_register_unit"; 401 402 #ifdef POSITION 403 _component->interface_map (src ,"spr_write_register_file_"+toString(i), 404 dest,"spr_write_"+toString(i)); 405 #endif 406 // out_SPR_WRITE_REGISTER_FILE_VAL 407 // in_SPR_WRITE_REGISTER_FILE_ACK 408 // out_SPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID 409 // out_SPR_WRITE_REGISTER_FILE_NUM_REG 410 // out_SPR_WRITE_REGISTER_FILE_DATA 411 } 412 413 { 414 dest = _name+"_read_unit_0"; 415 416 #ifdef POSITION 417 _component->interface_map (src ,"spr_write_read_unit_"+toString(i), 418 dest,"spr_write"); 419 #endif 420 421 // out_SPR_WRITE_READ_UNIT_VAL 422 // out_SPR_WRITE_READ_UNIT_OOO_ENGINE_ID 423 // out_SPR_WRITE_READ_UNIT_NUM_REG 424 // out_SPR_WRITE_READ_UNIT_DATA 425 } 426 } 427 428 429 } 298 430 299 431 // =================================================================== … … 306 438 { 307 439 src = _name+"_read_unit_"+toString(i); 308 std::cout << "Instance : " << src << std::endl;440 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 309 441 310 442 { … … 334 466 if (_param->_have_port_ooo_engine_id) 335 467 PORT_MAP(_component ,src , "in_READ_UNIT_IN_OOO_ENGINE_ID" ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_OOO_ENGINE_ID" ); 336 if (_param->_have_port_ packet_id)468 if (_param->_have_port_rob_ptr ) 337 469 PORT_MAP(_component ,src , "in_READ_UNIT_IN_PACKET_ID" ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_PACKET_ID" ); 338 470 PORT_MAP(_component ,src , "in_READ_UNIT_IN_OPERATION" ,dest , "in_EXECUTE_LOOP_IN_"+toString(i)+"_OPERATION" ); … … 361 493 362 494 #ifdef POSITION 363 _component->interface_map (src ,"read_unit_"+toString( i),495 _component->interface_map (src ,"read_unit_"+toString(j), 364 496 dest,"read_unit_"+toString(it_read_unit_out)); 365 497 #endif 366 498 367 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_VAL" ,368 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_VAL" );369 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(i)+"_ACK" ,370 dest,"out_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_ACK" );499 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_VAL" , 500 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_VAL" ); 501 COMPONENT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(j )+"_ACK" , 502 dest,"out_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_ACK" ); 371 503 if (_param->_have_port_context_id) 372 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" ,373 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_CONTEXT_ID" );504 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_CONTEXT_ID" , 505 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_CONTEXT_ID" ); 374 506 if (_param->_have_port_front_end_id) 375 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" ,376 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_FRONT_END_ID" );507 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_FRONT_END_ID" , 508 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_FRONT_END_ID" ); 377 509 if (_param->_have_port_ooo_engine_id) 378 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID" ,379 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_OOO_ENGINE_ID" );380 if (_param->_have_port_ packet_id)381 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_PACKET_ID" ,382 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_PACKET_ID" );383 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_OPERATION" ,384 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_OPERATION" );385 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_TYPE" ,386 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_TYPE" );387 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_STORE_QUEUE_PTR_WRITE",388 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_STORE_QUEUE_PTR_WRITE");510 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_OOO_ENGINE_ID" , 511 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_OOO_ENGINE_ID" ); 512 if (_param->_have_port_rob_ptr ) 513 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_PACKET_ID" , 514 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_PACKET_ID" ); 515 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_OPERATION" , 516 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_OPERATION" ); 517 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_TYPE" , 518 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_TYPE" ); 519 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_STORE_QUEUE_PTR_WRITE", 520 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE"); 389 521 if (_param->_have_port_load_queue_ptr) 390 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" ,391 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_LOAD_QUEUE_PTR_WRITE" );392 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_HAS_IMMEDIAT" ,393 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_HAS_IMMEDIAT" );394 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_IMMEDIAT" ,395 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_IMMEDIAT" );396 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_DATA_RA" ,397 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RA" );398 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_DATA_RB" ,399 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RB" );400 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_DATA_RC" ,401 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RC" );402 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_WRITE_RD" ,403 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_WRITE_RD" );404 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" ,405 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_NUM_REG_RD" );406 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_WRITE_RE" ,407 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_WRITE_RE" );408 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" ,409 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_NUM_REG_RE" );522 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_LOAD_QUEUE_PTR_WRITE" , 523 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_LOAD_QUEUE_PTR_WRITE" ); 524 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_HAS_IMMEDIAT" , 525 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_HAS_IMMEDIAT" ); 526 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_IMMEDIAT" , 527 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_IMMEDIAT" ); 528 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RA" , 529 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_DATA_RA" ); 530 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RB" , 531 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_DATA_RB" ); 532 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RC" , 533 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_DATA_RC" ); 534 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_WRITE_RD" , 535 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_WRITE_RD" ); 536 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_NUM_REG_RD" , 537 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_NUM_REG_RD" ); 538 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_WRITE_RE" , 539 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_WRITE_RE" ); 540 COMPONENT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(j )+"_NUM_REG_RE" , 541 dest, "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_"+toString(j)+"_NUM_REG_RE" ); 410 542 411 it_read_unit_out ++;412 543 } 544 it_read_unit_out ++; 413 545 414 546 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 421 553 dest,"gpr_read_"+toString(2*i+1)); 422 554 #endif 423 PORT_MAP(_component ,src ,"out_GPR_READ_0_VAL" , dest, "in_GPR_READ_"+toString(2*i )+"_VAL" );424 PORT_MAP(_component ,src , "in_GPR_READ_0_ACK" , dest,"out_GPR_READ_"+toString(2*i )+"_ACK" );555 COMPONENT_MAP(_component ,src ,"out_GPR_READ_0_VAL" , dest, "in_GPR_READ_"+toString(2*i )+"_VAL" ); 556 COMPONENT_MAP(_component ,src , "in_GPR_READ_0_ACK" , dest,"out_GPR_READ_"+toString(2*i )+"_ACK" ); 425 557 if (_param->_have_port_ooo_engine_id) 426 PORT_MAP(_component ,src ,"out_GPR_READ_0_OOO_ENGINE_ID", dest, "in_GPR_READ_"+toString(2*i )+"_OOO_ENGINE_ID");427 PORT_MAP(_component ,src ,"out_GPR_READ_0_NUM_REG" , dest, "in_GPR_READ_"+toString(2*i )+"_NUM_REG" );428 PORT_MAP(_component ,src , "in_GPR_READ_0_DATA" , dest,"out_GPR_READ_"+toString(2*i )+"_DATA" );429 PORT_MAP(_component ,src , "in_GPR_READ_0_DATA_VAL" , dest,"out_GPR_READ_"+toString(2*i )+"_DATA_VAL" );430 PORT_MAP(_component ,src ,"out_GPR_READ_1_VAL" , dest, "in_GPR_READ_"+toString(2*i+1)+"_VAL" );431 PORT_MAP(_component ,src , "in_GPR_READ_1_ACK" , dest,"out_GPR_READ_"+toString(2*i+1)+"_ACK" );558 COMPONENT_MAP(_component ,src ,"out_GPR_READ_0_OOO_ENGINE_ID", dest, "in_GPR_READ_"+toString(2*i )+"_OOO_ENGINE_ID"); 559 COMPONENT_MAP(_component ,src ,"out_GPR_READ_0_NUM_REG" , dest, "in_GPR_READ_"+toString(2*i )+"_NUM_REG" ); 560 COMPONENT_MAP(_component ,src , "in_GPR_READ_0_DATA" , dest,"out_GPR_READ_"+toString(2*i )+"_DATA" ); 561 COMPONENT_MAP(_component ,src , "in_GPR_READ_0_DATA_VAL" , dest,"out_GPR_READ_"+toString(2*i )+"_DATA_VAL" ); 562 COMPONENT_MAP(_component ,src ,"out_GPR_READ_1_VAL" , dest, "in_GPR_READ_"+toString(2*i+1)+"_VAL" ); 563 COMPONENT_MAP(_component ,src , "in_GPR_READ_1_ACK" , dest,"out_GPR_READ_"+toString(2*i+1)+"_ACK" ); 432 564 if (_param->_have_port_ooo_engine_id) 433 PORT_MAP(_component ,src ,"out_GPR_READ_1_OOO_ENGINE_ID", dest, "in_GPR_READ_"+toString(2*i+1)+"_OOO_ENGINE_ID");434 PORT_MAP(_component ,src ,"out_GPR_READ_1_NUM_REG" , dest, "in_GPR_READ_"+toString(2*i+1)+"_NUM_REG" );435 PORT_MAP(_component ,src , "in_GPR_READ_1_DATA" , dest,"out_GPR_READ_"+toString(2*i+1)+"_DATA" );436 PORT_MAP(_component ,src , "in_GPR_READ_1_DATA_VAL" , dest,"out_GPR_READ_"+toString(2*i+1)+"_DATA_VAL" );565 COMPONENT_MAP(_component ,src ,"out_GPR_READ_1_OOO_ENGINE_ID", dest, "in_GPR_READ_"+toString(2*i+1)+"_OOO_ENGINE_ID"); 566 COMPONENT_MAP(_component ,src ,"out_GPR_READ_1_NUM_REG" , dest, "in_GPR_READ_"+toString(2*i+1)+"_NUM_REG" ); 567 COMPONENT_MAP(_component ,src , "in_GPR_READ_1_DATA" , dest,"out_GPR_READ_"+toString(2*i+1)+"_DATA" ); 568 COMPONENT_MAP(_component ,src , "in_GPR_READ_1_DATA_VAL" , dest,"out_GPR_READ_"+toString(2*i+1)+"_DATA_VAL" ); 437 569 } 438 570 … … 442 574 #ifdef POSITION 443 575 _component->interface_map (src ,"spr_read_0", 444 dest,"spr_read_"+toString( 2*i));445 #endif 446 PORT_MAP(_component ,src ,"out_SPR_READ_0_VAL" , dest, "in_SPR_READ_"+toString(2*i)+"_VAL" );447 PORT_MAP(_component ,src , "in_SPR_READ_0_ACK" , dest,"out_SPR_READ_"+toString(2*i)+"_ACK" );576 dest,"spr_read_"+toString(i)); 577 #endif 578 COMPONENT_MAP(_component ,src ,"out_SPR_READ_0_VAL" , dest, "in_SPR_READ_"+toString(i)+"_VAL" ); 579 COMPONENT_MAP(_component ,src , "in_SPR_READ_0_ACK" , dest,"out_SPR_READ_"+toString(i)+"_ACK" ); 448 580 if (_param->_have_port_ooo_engine_id) 449 PORT_MAP(_component ,src ,"out_SPR_READ_0_OOO_ENGINE_ID", dest, "in_SPR_READ_"+toString(2*i)+"_OOO_ENGINE_ID");450 PORT_MAP(_component ,src ,"out_SPR_READ_0_NUM_REG" , dest, "in_SPR_READ_"+toString(2*i)+"_NUM_REG" );451 PORT_MAP(_component ,src , "in_SPR_READ_0_DATA" , dest,"out_SPR_READ_"+toString(2*i)+"_DATA" );452 PORT_MAP(_component ,src , "in_SPR_READ_0_DATA_VAL" , dest,"out_SPR_READ_"+toString(2*i)+"_DATA_VAL" );581 COMPONENT_MAP(_component ,src ,"out_SPR_READ_0_OOO_ENGINE_ID", dest, "in_SPR_READ_"+toString(i)+"_OOO_ENGINE_ID"); 582 COMPONENT_MAP(_component ,src ,"out_SPR_READ_0_NUM_REG" , dest, "in_SPR_READ_"+toString(i)+"_NUM_REG" ); 583 COMPONENT_MAP(_component ,src , "in_SPR_READ_0_DATA" , dest,"out_SPR_READ_"+toString(i)+"_DATA" ); 584 COMPONENT_MAP(_component ,src , "in_SPR_READ_0_DATA_VAL" , dest,"out_SPR_READ_"+toString(i)+"_DATA_VAL" ); 453 585 } 454 586 … … 459 591 it++) 460 592 { 461 dest = _name+"_write_unit_"+toString(*it); 593 uint32_t num_port = (*it); 594 595 dest = _name+"_glue"; 462 596 #ifdef POSITION 463 597 _component->interface_map (src ,"gpr_write_"+toString(it_gpr_write), 464 dest,"gpr_write ");598 dest,"gpr_write_read_unit_"+toString(num_port)); 465 599 #endif 466 600 467 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_VAL" ,468 dest,"out_GPR_WRITE_0_VAL" );601 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_VAL" , 602 dest,"out_GPR_WRITE_READ_UNIT_"+toString(num_port)+"_VAL" ); 469 603 if (_param->_have_port_ooo_engine_id) 470 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_OOO_ENGINE_ID", 471 dest,"out_GPR_WRITE_0_OOO_ENGINE_ID"); 472 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_NUM_REG" , 473 dest,"out_GPR_WRITE_0_NUM_REG" ); 474 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_DATA" , 475 dest,"out_GPR_WRITE_0_DATA" ); 476 477 // PORT MAP to the "write_unit" component 478 #ifdef POSITION 479 _component->interface_map (dest,"gpr_write", 480 src ,"gpr_write_"+toString(it_gpr_write)); 481 #endif 482 483 PORT_MAP(_component ,dest,"out_GPR_WRITE_0_VAL" , 484 src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_VAL" ); 485 if (_param->_have_port_ooo_engine_id) 486 PORT_MAP(_component ,dest,"out_GPR_WRITE_0_OOO_ENGINE_ID", 487 src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_OOO_ENGINE_ID"); 488 PORT_MAP(_component ,dest,"out_GPR_WRITE_0_NUM_REG" , 489 src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_NUM_REG" ); 490 PORT_MAP(_component ,dest,"out_GPR_WRITE_0_DATA" , 491 src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_DATA" ); 604 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_OOO_ENGINE_ID", 605 dest,"out_GPR_WRITE_READ_UNIT_"+toString(num_port)+"_OOO_ENGINE_ID"); 606 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_NUM_REG" , 607 dest,"out_GPR_WRITE_READ_UNIT_"+toString(num_port)+"_NUM_REG" ); 608 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(it_gpr_write)+"_DATA" , 609 dest,"out_GPR_WRITE_READ_UNIT_"+toString(num_port)+"_DATA" ); 492 610 493 611 it_gpr_write ++; … … 500 618 it++) 501 619 { 502 dest = _name+"_write_unit_"+toString(*it); 620 uint32_t num_port = (*it); 621 622 dest = _name+"_glue"; 503 623 #ifdef POSITION 504 624 _component->interface_map (src ,"spr_write_"+toString(it_spr_write), 505 dest,"spr_write ");625 dest,"spr_write_read_unit_"+toString(num_port)); 506 626 #endif 507 627 508 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_VAL" , 509 dest,"out_SPR_WRITE_0_VAL" ); 628 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_VAL" , 629 dest,"out_SPR_WRITE_READ_UNIT_"+toString(num_port)+"_VAL" ); 630 510 631 if (_param->_have_port_ooo_engine_id) 511 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_OOO_ENGINE_ID", 512 dest,"out_SPR_WRITE_0_OOO_ENGINE_ID"); 513 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_NUM_REG" , 514 dest,"out_SPR_WRITE_0_NUM_REG" ); 515 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_DATA" , 516 dest,"out_SPR_WRITE_0_DATA" ); 517 518 // PORT MAP to the "write_unit" component 519 #ifdef POSITION 520 _component->interface_map (dest,"spr_write", 521 src ,"spr_write_"+toString(it_spr_write)); 522 #endif 523 PORT_MAP(_component ,dest,"out_SPR_WRITE_0_VAL" , 524 src , "in_SPR_WRITE_"+toString(it_spr_write)+"_VAL" ); 525 if (_param->_have_port_ooo_engine_id) 526 PORT_MAP(_component ,dest,"out_SPR_WRITE_0_OOO_ENGINE_ID", 527 src , "in_SPR_WRITE_"+toString(it_spr_write)+"_OOO_ENGINE_ID"); 528 PORT_MAP(_component ,dest,"out_SPR_WRITE_0_NUM_REG" , 529 src , "in_SPR_WRITE_"+toString(it_spr_write)+"_NUM_REG" ); 530 PORT_MAP(_component ,dest,"out_SPR_WRITE_0_DATA" , 531 src , "in_SPR_WRITE_"+toString(it_spr_write)+"_DATA" ); 532 632 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_OOO_ENGINE_ID", 633 dest,"out_SPR_WRITE_READ_UNIT_"+toString(num_port)+"_OOO_ENGINE_ID"); 634 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_NUM_REG" , 635 dest,"out_SPR_WRITE_READ_UNIT_"+toString(num_port)+"_NUM_REG" ); 636 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(it_spr_write)+"_DATA" , 637 dest,"out_SPR_WRITE_READ_UNIT_"+toString(num_port)+"_DATA" ); 638 533 639 it_spr_write ++; 534 640 } … … 550 656 551 657 if (_param->_have_port_ooo_engine_id) 552 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_OOO_ENGINE_ID",553 dest,"out_BYPASS_WRITE_"+toString(j )+"_OOO_ENGINE_ID");554 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_VAL" ,555 dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_VAL" );556 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_NUM_REG" ,557 dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_NUM_REG" );558 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_DATA" ,559 dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_DATA" );560 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_VAL" ,561 dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_VAL" );562 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_NUM_REG" ,563 dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_NUM_REG" );564 PORT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_DATA" ,565 dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_DATA" );658 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_OOO_ENGINE_ID", 659 dest,"out_BYPASS_WRITE_"+toString(j )+"_OOO_ENGINE_ID"); 660 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_VAL" , 661 dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_VAL" ); 662 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_NUM_REG" , 663 dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_NUM_REG" ); 664 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_DATA" , 665 dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_DATA" ); 666 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_VAL" , 667 dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_VAL" ); 668 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_NUM_REG" , 669 dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_NUM_REG" ); 670 COMPONENT_MAP(_component ,src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_DATA" , 671 dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_DATA" ); 566 672 567 673 #ifdef POSITION … … 570 676 #endif 571 677 572 if (_param->_have_port_ooo_engine_id)573 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_OOO_ENGINE_ID",574 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_OOO_ENGINE_ID");575 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_VAL" ,576 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_VAL" );577 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_NUM_REG" ,578 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_NUM_REG" );579 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_DATA" ,580 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_DATA" );581 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_VAL" ,582 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_VAL" );583 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_NUM_REG" ,584 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_NUM_REG" );585 PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_DATA" ,586 src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_DATA" );678 // if (_param->_have_port_ooo_engine_id) 679 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_OOO_ENGINE_ID", 680 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_OOO_ENGINE_ID"); 681 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_VAL" , 682 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_VAL" ); 683 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_NUM_REG" , 684 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_NUM_REG" ); 685 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_GPR_DATA" , 686 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_GPR_DATA" ); 687 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_VAL" , 688 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_VAL" ); 689 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_NUM_REG" , 690 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_NUM_REG" ); 691 // PORT_MAP(_component ,dest,"out_BYPASS_WRITE_"+toString(j )+"_SPR_DATA" , 692 // src , "in_BYPASS_WRITE_"+toString(it_bypass_write)+"_SPR_DATA" ); 587 693 588 694 it_bypass_write ++; … … 606 712 607 713 if (_param->_have_port_ooo_engine_id) 608 PORT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_OOO_ENGINE_ID",609 dest,"out_BYPASS_MEMORY_"+toString(j )+"_OOO_ENGINE_ID");610 PORT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_VAL" ,611 dest,"out_BYPASS_MEMORY_"+toString(j )+"_VAL" );612 PORT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_NUM_REG" ,613 dest,"out_BYPASS_MEMORY_"+toString(j )+"_NUM_REG" );614 PORT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_DATA" ,615 714 COMPONENT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_OOO_ENGINE_ID", 715 dest,"out_BYPASS_MEMORY_"+toString(j )+"_OOO_ENGINE_ID"); 716 COMPONENT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_VAL" , 717 dest,"out_BYPASS_MEMORY_"+toString(j )+"_VAL" ); 718 COMPONENT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_NUM_REG" , 719 dest,"out_BYPASS_MEMORY_"+toString(j )+"_NUM_REG" ); 720 COMPONENT_MAP(_component ,src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_DATA" , 721 dest,"out_BYPASS_MEMORY_"+toString(j )+"_DATA" ); 616 722 617 723 // port map to the "load_store_unit" component … … 621 727 #endif 622 728 623 if (_param->_have_port_ooo_engine_id)624 PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_OOO_ENGINE_ID",625 src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_OOO_ENGINE_ID");626 PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_VAL" ,627 src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_VAL" );628 PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_NUM_REG" ,629 src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_NUM_REG" );630 PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_DATA" ,631 src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_DATA" );729 // if (_param->_have_port_ooo_engine_id) 730 // PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_OOO_ENGINE_ID", 731 // src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_OOO_ENGINE_ID"); 732 // PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_VAL" , 733 // src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_VAL" ); 734 // PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_NUM_REG" , 735 // src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_NUM_REG" ); 736 // PORT_MAP(_component ,dest,"out_BYPASS_MEMORY_"+toString(j )+"_DATA" , 737 // src , "in_BYPASS_MEMORY_"+toString(it_bypass_memory)+"_DATA" ); 632 738 633 739 it_bypass_memory ++; … … 651 757 652 758 src = _name+"_functionnal_unit_"+toString(x); 653 std::cout << "Instance : " << src << std::endl;759 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 654 760 655 761 { … … 669 775 #ifdef POSITION 670 776 _component->interface_map (src ,"execute_in", 671 dest,"execute_unit_in_"+toString(i) );672 #endif 673 674 PORT_MAP(_component ,src , "in_EXECUTE_IN_VAL" ,675 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_VAL" );676 PORT_MAP(_component ,src ,"out_EXECUTE_IN_ACK" ,677 dest, "in_EXECUTE_UNIT_IN_"+toString(i)+"_ACK" );777 dest,"execute_unit_in_"+toString(i)+"_0"); 778 #endif 779 780 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_VAL" , 781 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_VAL" ); 782 COMPONENT_MAP(_component ,src ,"out_EXECUTE_IN_ACK" , 783 dest, "in_EXECUTE_UNIT_IN_"+toString(i)+"_0_ACK" ); 678 784 if (_param->_have_port_context_id) 679 PORT_MAP(_component ,src , "in_EXECUTE_IN_CONTEXT_ID" ,680 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" );785 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_CONTEXT_ID" , 786 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_CONTEXT_ID" ); 681 787 if (_param->_have_port_front_end_id) 682 PORT_MAP(_component ,src , "in_EXECUTE_IN_FRONT_END_ID" ,683 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" );788 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_FRONT_END_ID" , 789 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_FRONT_END_ID" ); 684 790 if (_param->_have_port_ooo_engine_id) 685 PORT_MAP(_component ,src , "in_EXECUTE_IN_OOO_ENGINE_ID" ,686 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID" );687 if (_param->_have_port_ packet_id)688 PORT_MAP(_component ,src , "in_EXECUTE_IN_PACKET_ID" ,689 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_PACKET_ID" );690 PORT_MAP(_component ,src , "in_EXECUTE_IN_OPERATION" ,691 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OPERATION" );692 PORT_MAP(_component ,src , "in_EXECUTE_IN_TYPE" ,693 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_TYPE" );694 PORT_MAP(_component ,src , "in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE",695 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE");791 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_OOO_ENGINE_ID" , 792 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_OOO_ENGINE_ID" ); 793 if (_param->_have_port_rob_ptr ) 794 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_PACKET_ID" , 795 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_PACKET_ID" ); 796 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_OPERATION" , 797 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_OPERATION" ); 798 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_TYPE" , 799 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_TYPE" ); 800 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE", 801 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_STORE_QUEUE_PTR_WRITE"); 696 802 if (_param->_have_port_load_queue_ptr) 697 PORT_MAP(_component ,src , "in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE" ,698 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" );699 PORT_MAP(_component ,src , "in_EXECUTE_IN_HAS_IMMEDIAT" ,700 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_HAS_IMMEDIAT" );701 PORT_MAP(_component ,src , "in_EXECUTE_IN_IMMEDIAT" ,702 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_IMMEDIAT" );703 PORT_MAP(_component ,src , "in_EXECUTE_IN_DATA_RA" ,704 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RA" );705 PORT_MAP(_component ,src , "in_EXECUTE_IN_DATA_RB" ,706 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RB" );707 PORT_MAP(_component ,src , "in_EXECUTE_IN_DATA_RC" ,708 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RC" );709 PORT_MAP(_component ,src , "in_EXECUTE_IN_WRITE_RD" ,710 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RD" );711 PORT_MAP(_component ,src , "in_EXECUTE_IN_NUM_REG_RD" ,712 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" );713 PORT_MAP(_component ,src , "in_EXECUTE_IN_WRITE_RE" ,714 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RE" );715 PORT_MAP(_component ,src , "in_EXECUTE_IN_NUM_REG_RE" ,716 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" );803 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE" , 804 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_LOAD_QUEUE_PTR_WRITE" ); 805 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_HAS_IMMEDIAT" , 806 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_HAS_IMMEDIAT" ); 807 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_IMMEDIAT" , 808 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_IMMEDIAT" ); 809 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_DATA_RA" , 810 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_DATA_RA" ); 811 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_DATA_RB" , 812 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_DATA_RB" ); 813 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_DATA_RC" , 814 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_DATA_RC" ); 815 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_WRITE_RD" , 816 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_WRITE_RD" ); 817 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_NUM_REG_RD" , 818 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_NUM_REG_RD" ); 819 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_WRITE_RE" , 820 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_WRITE_RE" ); 821 COMPONENT_MAP(_component ,src , "in_EXECUTE_IN_NUM_REG_RE" , 822 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_0_NUM_REG_RE" ); 717 823 } 718 824 … … 723 829 #ifdef POSITION 724 830 _component->interface_map (src ,"execute_out", 725 dest,"execute_unit_out_"+toString(i) );726 #endif 727 728 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_VAL" ,729 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_VAL" );730 PORT_MAP(_component ,src , "in_EXECUTE_OUT_ACK" ,731 dest,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_ACK" );831 dest,"execute_unit_out_"+toString(i)+"_0"); 832 #endif 833 834 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_VAL" , 835 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_VAL" ); 836 COMPONENT_MAP(_component ,src , "in_EXECUTE_OUT_ACK" , 837 dest,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_0_ACK" ); 732 838 if (_param->_have_port_context_id) 733 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_CONTEXT_ID" ,734 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" );839 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_CONTEXT_ID" , 840 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_CONTEXT_ID" ); 735 841 if (_param->_have_port_front_end_id) 736 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_FRONT_END_ID" ,737 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" );842 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_FRONT_END_ID" , 843 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_FRONT_END_ID" ); 738 844 if (_param->_have_port_ooo_engine_id) 739 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_OOO_ENGINE_ID",740 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID");741 if (_param->_have_port_ packet_id)742 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_PACKET_ID" ,743 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_PACKET_ID" );744 // PORT_MAP(_component ,src ,"out_EXECUTE_OUT_OPERATION" ,745 // dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OPERATION" );746 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_TYPE" ,747 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_TYPE" );748 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_WRITE_RD" ,749 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RD" );750 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_NUM_REG_RD" ,751 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" );752 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_DATA_RD" ,753 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RD" );754 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_WRITE_RE" ,755 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RE" );756 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_NUM_REG_RE" ,757 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" );758 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_DATA_RE" ,759 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RE" );760 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_EXCEPTION" ,761 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_EXCEPTION" );762 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_NO_SEQUENCE" ,763 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NO_SEQUENCE" );764 PORT_MAP(_component ,src ,"out_EXECUTE_OUT_ADDRESS" ,765 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_ADDRESS" );845 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_OOO_ENGINE_ID", 846 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_OOO_ENGINE_ID"); 847 if (_param->_have_port_rob_ptr ) 848 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_PACKET_ID" , 849 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_PACKET_ID" ); 850 // COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_OPERATION" , 851 // dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_OPERATION" ); 852 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_TYPE" , 853 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_TYPE" ); 854 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_WRITE_RD" , 855 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_WRITE_RD" ); 856 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_NUM_REG_RD" , 857 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_NUM_REG_RD" ); 858 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_DATA_RD" , 859 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_DATA_RD" ); 860 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_WRITE_RE" , 861 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_WRITE_RE" ); 862 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_NUM_REG_RE" , 863 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_NUM_REG_RE" ); 864 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_DATA_RE" , 865 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_DATA_RE" ); 866 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_EXCEPTION" , 867 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_EXCEPTION" ); 868 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_NO_SEQUENCE" , 869 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_NO_SEQUENCE" ); 870 COMPONENT_MAP(_component ,src ,"out_EXECUTE_OUT_ADDRESS" , 871 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_0_ADDRESS" ); 766 872 } 767 873 } … … 773 879 774 880 src = _name+"_load_store_unit_"+toString(x); 775 std::cout << "Instance : " << src << std::endl;881 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 776 882 777 883 // ~~~~~[ Interface "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 787 893 788 894 // ~~~~~[ Interface "memory_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 789 { 790 dest = _name+"_read_unit_to_execution_unit"; 791 792 #ifdef POSITION 793 _component->interface_map (src ,"memory_in", 794 dest,"execute_unit_in_"+toString(i)); 795 #endif 796 797 PORT_MAP(_component ,src , "in_MEMORY_IN_VAL" , 798 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_VAL" ); 799 PORT_MAP(_component ,src ,"out_MEMORY_IN_ACK" , 800 dest, "in_EXECUTE_UNIT_IN_"+toString(i)+"_ACK" ); 801 if (_param->_have_port_context_id) 802 PORT_MAP(_component ,src , "in_MEMORY_IN_CONTEXT_ID" , 803 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" ); 804 if (_param->_have_port_front_end_id) 805 PORT_MAP(_component ,src , "in_MEMORY_IN_FRONT_END_ID" , 806 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" ); 807 if (_param->_have_port_ooo_engine_id) 808 PORT_MAP(_component ,src , "in_MEMORY_IN_OOO_ENGINE_ID" , 809 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID" ); 810 if (_param->_have_port_packet_id) 811 PORT_MAP(_component ,src , "in_MEMORY_IN_PACKET_ID" , 812 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_PACKET_ID" ); 813 PORT_MAP(_component ,src , "in_MEMORY_IN_OPERATION" , 814 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OPERATION" ); 815 PORT_MAP(_component ,src , "in_MEMORY_IN_TYPE" , 816 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_TYPE" ); 817 PORT_MAP(_component ,src , "in_MEMORY_IN_STORE_QUEUE_PTR_WRITE", 818 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE"); 819 if (_param->_have_port_load_queue_ptr) 820 PORT_MAP(_component ,src , "in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE" , 821 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" ); 822 PORT_MAP(_component ,src , "in_MEMORY_IN_HAS_IMMEDIAT" , 823 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_HAS_IMMEDIAT" ); 824 PORT_MAP(_component ,src , "in_MEMORY_IN_IMMEDIAT" , 825 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_IMMEDIAT" ); 826 PORT_MAP(_component ,src , "in_MEMORY_IN_DATA_RA" , 827 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RA" ); 828 PORT_MAP(_component ,src , "in_MEMORY_IN_DATA_RB" , 829 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RB" ); 830 PORT_MAP(_component ,src , "in_MEMORY_IN_DATA_RC" , 831 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RC" ); 832 PORT_MAP(_component ,src , "in_MEMORY_IN_WRITE_RD" , 833 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RD" ); 834 PORT_MAP(_component ,src , "in_MEMORY_IN_NUM_REG_RD" , 835 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" ); 836 PORT_MAP(_component ,src , "in_MEMORY_IN_WRITE_RE" , 837 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RE" ); 838 PORT_MAP(_component ,src , "in_MEMORY_IN_NUM_REG_RE" , 839 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" ); 840 } 895 for (uint32_t j=0; j<_param->_nb_inst_memory [x]; j++) 896 { 897 dest = _name+"_read_unit_to_execution_unit"; 898 899 #ifdef POSITION 900 _component->interface_map (src ,"memory_in_"+toString(j), 901 dest,"execute_unit_in_"+toString(i)+"_"+toString(j)); 902 #endif 903 904 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_VAL" , 905 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_VAL" ); 906 COMPONENT_MAP(_component ,src ,"out_MEMORY_IN_"+toString(j)+"_ACK" , 907 dest, "in_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_ACK" ); 908 if (_param->_have_port_context_id) 909 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_CONTEXT_ID" , 910 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_CONTEXT_ID" ); 911 if (_param->_have_port_front_end_id) 912 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_FRONT_END_ID" , 913 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_FRONT_END_ID" ); 914 if (_param->_have_port_ooo_engine_id) 915 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_OOO_ENGINE_ID" , 916 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_OOO_ENGINE_ID" ); 917 if (_param->_have_port_rob_ptr ) 918 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_PACKET_ID" , 919 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_PACKET_ID" ); 920 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_OPERATION" , 921 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_OPERATION" ); 922 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_TYPE" , 923 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_TYPE" ); 924 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_STORE_QUEUE_PTR_WRITE", 925 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_STORE_QUEUE_PTR_WRITE"); 926 if (_param->_have_port_load_queue_ptr) 927 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_LOAD_QUEUE_PTR_WRITE" , 928 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_LOAD_QUEUE_PTR_WRITE" ); 929 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_HAS_IMMEDIAT" , 930 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_HAS_IMMEDIAT" ); 931 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_IMMEDIAT" , 932 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_IMMEDIAT" ); 933 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_DATA_RA" , 934 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_DATA_RA" ); 935 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_DATA_RB" , 936 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_DATA_RB" ); 937 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_DATA_RC" , 938 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_DATA_RC" ); 939 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_WRITE_RD" , 940 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_WRITE_RD" ); 941 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_NUM_REG_RD" , 942 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_NUM_REG_RD" ); 943 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_WRITE_RE" , 944 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_WRITE_RE" ); 945 COMPONENT_MAP(_component ,src , "in_MEMORY_IN_"+toString(j)+"_NUM_REG_RE" , 946 dest,"out_EXECUTE_UNIT_IN_"+toString(i)+"_"+toString(j)+"_NUM_REG_RE" ); 947 } 841 948 842 949 // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 843 { 950 for (uint32_t j=0; j<_param->_nb_inst_memory [x]; j++) 951 { 844 952 dest = _name+"_execution_unit_to_write_unit"; 845 953 846 954 #ifdef POSITION 847 _component->interface_map (src ,"memory_out ",848 dest,"execute_unit_out_"+toString(i) );849 #endif 850 851 PORT_MAP(_component ,src ,"out_MEMORY_OUT_VAL" ,852 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_VAL" );853 PORT_MAP(_component ,src , "in_MEMORY_OUT_ACK" ,854 dest,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_ACK" );955 _component->interface_map (src ,"memory_out_"+toString(j) 956 dest,"execute_unit_out_"+toString(i)+"_"+toString(j)); 957 #endif 958 959 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_VAL" , 960 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_VAL" ); 961 COMPONENT_MAP(_component ,src , "in_MEMORY_OUT_"+toString(j)+"_ACK" , 962 dest,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_ACK" ); 855 963 if (_param->_have_port_context_id) 856 PORT_MAP(_component ,src ,"out_MEMORY_OUT_CONTEXT_ID" ,857 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" );964 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_CONTEXT_ID" , 965 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_CONTEXT_ID" ); 858 966 if (_param->_have_port_front_end_id) 859 PORT_MAP(_component ,src ,"out_MEMORY_OUT_FRONT_END_ID" ,860 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" );967 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_FRONT_END_ID" , 968 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_FRONT_END_ID" ); 861 969 if (_param->_have_port_ooo_engine_id) 862 PORT_MAP(_component ,src ,"out_MEMORY_OUT_OOO_ENGINE_ID",863 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID");864 if (_param->_have_port_ packet_id)865 PORT_MAP(_component ,src ,"out_MEMORY_OUT_PACKET_ID" ,866 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_PACKET_ID" );867 // PORT_MAP(_component ,src ,"out_MEMORY_OUT_OPERATION" ,868 // dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OPERATION" );869 PORT_MAP(_component ,src ,"out_MEMORY_OUT_TYPE" ,870 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_TYPE" );871 PORT_MAP(_component ,src ,"out_MEMORY_OUT_WRITE_RD" ,872 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RD" );873 PORT_MAP(_component ,src ,"out_MEMORY_OUT_NUM_REG_RD" ,874 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" );875 PORT_MAP(_component ,src ,"out_MEMORY_OUT_DATA_RD" ,876 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RD" );877 PORT_MAP(_component ,src ,"out_MEMORY_OUT_WRITE_RE" ,878 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RE" );879 PORT_MAP(_component ,src ,"out_MEMORY_OUT_NUM_REG_RE" ,880 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" );881 PORT_MAP(_component ,src ,"out_MEMORY_OUT_DATA_RE" ,882 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RE" );883 PORT_MAP(_component ,src ,"out_MEMORY_OUT_EXCEPTION" ,884 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_EXCEPTION" );885 PORT_MAP(_component ,src ,"out_MEMORY_OUT_NO_SEQUENCE" ,886 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NO_SEQUENCE" );887 PORT_MAP(_component ,src ,"out_MEMORY_OUT_ADDRESS" ,888 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_ADDRESS" );970 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_OOO_ENGINE_ID", 971 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_OOO_ENGINE_ID"); 972 if (_param->_have_port_rob_ptr ) 973 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_PACKET_ID" , 974 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_PACKET_ID" ); 975 // COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_OPERATION" , 976 // dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_OPERATION" ); 977 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_TYPE" , 978 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_TYPE" ); 979 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_WRITE_RD" , 980 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_WRITE_RD" ); 981 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_NUM_REG_RD" , 982 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_NUM_REG_RD" ); 983 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_DATA_RD" , 984 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_DATA_RD" ); 985 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_WRITE_RE" , 986 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_WRITE_RE" ); 987 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_NUM_REG_RE" , 988 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_NUM_REG_RE" ); 989 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_DATA_RE" , 990 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_DATA_RE" ); 991 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_EXCEPTION" , 992 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_EXCEPTION" ); 993 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_NO_SEQUENCE" , 994 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_NO_SEQUENCE" ); 995 COMPONENT_MAP(_component ,src ,"out_MEMORY_OUT_"+toString(j)+"_ADDRESS" , 996 dest, "in_EXECUTE_UNIT_OUT_"+toString(i)+"_"+toString(j)+"_ADDRESS" ); 889 997 } 890 998 891 999 // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1000 for (uint32_t j=0; j<_param->_nb_cache_port [x]; j++) 892 1001 { 893 1002 dest = _name; 894 1003 895 1004 #ifdef POSITION 896 _component->interface_map (src ,"dcache_req ",897 dest,"dcache_req_"+toString( i));898 #endif 899 PORT_MAP(_component ,src ,"out_DCACHE_REQ_ VAL" ,dest,"out_DCACHE_REQ_"+toString(i)+"_VAL" );900 PORT_MAP(_component ,src , "in_DCACHE_REQ_ ACK" ,dest, "in_DCACHE_REQ_"+toString(i)+"_ACK" );1005 _component->interface_map (src ,"dcache_req_"+toString(j), 1006 dest,"dcache_req_"+toString(x)+"_"+toString(j)); 1007 #endif 1008 PORT_MAP(_component ,src ,"out_DCACHE_REQ_"+toString(j)+"_VAL" ,dest,"out_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_VAL" ); 1009 PORT_MAP(_component ,src , "in_DCACHE_REQ_"+toString(j)+"_ACK" ,dest, "in_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_ACK" ); 901 1010 if (_param->_have_port_dcache_context_id) 902 PORT_MAP(_component ,src ,"out_DCACHE_REQ_ CONTEXT_ID",dest,"out_DCACHE_REQ_"+toString(i)+"_CONTEXT_ID");903 PORT_MAP(_component ,src ,"out_DCACHE_REQ_ PACKET_ID" ,dest,"out_DCACHE_REQ_"+toString(i)+"_PACKET_ID" );904 PORT_MAP(_component ,src ,"out_DCACHE_REQ_ ADDRESS" ,dest,"out_DCACHE_REQ_"+toString(i)+"_ADDRESS" );905 PORT_MAP(_component ,src ,"out_DCACHE_REQ_ TYPE" ,dest,"out_DCACHE_REQ_"+toString(i)+"_TYPE" );906 PORT_MAP(_component ,src ,"out_DCACHE_REQ_ WDATA" ,dest,"out_DCACHE_REQ_"+toString(i)+"_WDATA" );1011 PORT_MAP(_component ,src ,"out_DCACHE_REQ_"+toString(j)+"_CONTEXT_ID",dest,"out_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_CONTEXT_ID"); 1012 PORT_MAP(_component ,src ,"out_DCACHE_REQ_"+toString(j)+"_PACKET_ID" ,dest,"out_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_PACKET_ID" ); 1013 PORT_MAP(_component ,src ,"out_DCACHE_REQ_"+toString(j)+"_ADDRESS" ,dest,"out_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_ADDRESS" ); 1014 PORT_MAP(_component ,src ,"out_DCACHE_REQ_"+toString(j)+"_TYPE" ,dest,"out_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_TYPE" ); 1015 PORT_MAP(_component ,src ,"out_DCACHE_REQ_"+toString(j)+"_WDATA" ,dest,"out_DCACHE_REQ_"+toString(x)+"_"+toString(j)+"_WDATA" ); 907 1016 } 908 1017 909 1018 // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1019 for (uint32_t j=0; j<_param->_nb_cache_port [x]; j++) 910 1020 { 911 1021 dest = _name; 912 1022 913 1023 #ifdef POSITION 914 _component->interface_map (src ,"dcache_rsp ",915 dest,"dcache_rsp_"+toString( i));916 #endif 917 PORT_MAP(_component ,src , "in_DCACHE_RSP_ VAL" ,dest, "in_DCACHE_RSP_"+toString(i)+"_VAL" );918 PORT_MAP(_component ,src ,"out_DCACHE_RSP_ ACK" ,dest,"out_DCACHE_RSP_"+toString(i)+"_ACK" );1024 _component->interface_map (src ,"dcache_rsp_"+toString(j), 1025 dest,"dcache_rsp_"+toString(x)+"_"+toString(j)); 1026 #endif 1027 PORT_MAP(_component ,src , "in_DCACHE_RSP_"+toString(j)+"_VAL" ,dest, "in_DCACHE_RSP_"+toString(x)+"_"+toString(j)+"_VAL" ); 1028 PORT_MAP(_component ,src ,"out_DCACHE_RSP_"+toString(j)+"_ACK" ,dest,"out_DCACHE_RSP_"+toString(x)+"_"+toString(j)+"_ACK" ); 919 1029 if (_param->_have_port_dcache_context_id) 920 PORT_MAP(_component ,src , "in_DCACHE_RSP_ CONTEXT_ID",dest, "in_DCACHE_RSP_"+toString(i)+"_CONTEXT_ID");921 PORT_MAP(_component ,src , "in_DCACHE_RSP_ PACKET_ID" ,dest, "in_DCACHE_RSP_"+toString(i)+"_PACKET_ID" );922 PORT_MAP(_component ,src , "in_DCACHE_RSP_ RDATA" ,dest, "in_DCACHE_RSP_"+toString(i)+"_RDATA" );923 PORT_MAP(_component ,src , "in_DCACHE_RSP_ ERROR" ,dest, "in_DCACHE_RSP_"+toString(i)+"_ERROR" );1030 PORT_MAP(_component ,src , "in_DCACHE_RSP_"+toString(j)+"_CONTEXT_ID",dest, "in_DCACHE_RSP_"+toString(x)+"_"+toString(j)+"_CONTEXT_ID"); 1031 PORT_MAP(_component ,src , "in_DCACHE_RSP_"+toString(j)+"_PACKET_ID" ,dest, "in_DCACHE_RSP_"+toString(x)+"_"+toString(j)+"_PACKET_ID" ); 1032 PORT_MAP(_component ,src , "in_DCACHE_RSP_"+toString(j)+"_RDATA" ,dest, "in_DCACHE_RSP_"+toString(x)+"_"+toString(j)+"_RDATA" ); 1033 PORT_MAP(_component ,src , "in_DCACHE_RSP_"+toString(j)+"_ERROR" ,dest, "in_DCACHE_RSP_"+toString(x)+"_"+toString(j)+"_ERROR" ); 924 1034 } 925 1035 … … 937 1047 { 938 1048 src = _name+"_write_unit_"+toString(i); 939 std::cout << "Instance : " << src << std::endl;1049 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 940 1050 941 1051 { … … 957 1067 #endif 958 1068 959 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_VAL" ,960 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_VAL" );961 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_ACK" ,962 dest, "in_WRITE_UNIT_IN_"+toString(i)+"_ACK" );1069 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_VAL" , 1070 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_VAL" ); 1071 COMPONENT_MAP(_component ,src ,"out_WRITE_UNIT_IN_ACK" , 1072 dest, "in_WRITE_UNIT_IN_"+toString(i)+"_ACK" ); 963 1073 if (_param->_have_port_context_id) 964 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_CONTEXT_ID" ,965 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" );1074 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_CONTEXT_ID" , 1075 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" ); 966 1076 if (_param->_have_port_front_end_id) 967 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_FRONT_END_ID" ,968 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" );1077 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_FRONT_END_ID" , 1078 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" ); 969 1079 if (_param->_have_port_ooo_engine_id) 970 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_OOO_ENGINE_ID",971 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID");972 if (_param->_have_port_ packet_id)973 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_PACKET_ID" ,974 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_PACKET_ID" );975 // PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_OPERATION" ,976 // dest,"out_WRITE_UNIT_IN_"+toString(i)+"_OPERATION" );977 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_TYPE" ,978 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_TYPE" );979 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_WRITE_RD" ,980 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RD" );981 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_NUM_REG_RD" ,982 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" );983 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_DATA_RD" ,984 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RD" );985 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_WRITE_RE" ,986 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RE" );987 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_NUM_REG_RE" ,988 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" );989 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_DATA_RE" ,990 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RE" );991 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_EXCEPTION" ,992 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_EXCEPTION" );993 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_NO_SEQUENCE" ,994 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_NO_SEQUENCE" );995 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_ADDRESS" ,996 1080 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_OOO_ENGINE_ID", 1081 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID"); 1082 if (_param->_have_port_rob_ptr ) 1083 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_PACKET_ID" , 1084 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_PACKET_ID" ); 1085 // COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_OPERATION" , 1086 // dest,"out_WRITE_UNIT_IN_"+toString(i)+"_OPERATION" ); 1087 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_TYPE" , 1088 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_TYPE" ); 1089 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_WRITE_RD" , 1090 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RD" ); 1091 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_NUM_REG_RD" , 1092 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" ); 1093 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_DATA_RD" , 1094 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RD" ); 1095 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_WRITE_RE" , 1096 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RE" ); 1097 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_NUM_REG_RE" , 1098 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" ); 1099 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_DATA_RE" , 1100 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RE" ); 1101 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_EXCEPTION" , 1102 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_EXCEPTION" ); 1103 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_NO_SEQUENCE" , 1104 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_NO_SEQUENCE" ); 1105 COMPONENT_MAP(_component ,src , "in_WRITE_UNIT_IN_ADDRESS" , 1106 dest,"out_WRITE_UNIT_IN_"+toString(i)+"_ADDRESS" ); 997 1107 } 998 1108 … … 1018 1128 PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID", 1019 1129 dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_OOO_ENGINE_ID"); 1020 if (_param->_have_port_ packet_id)1130 if (_param->_have_port_rob_ptr ) 1021 1131 PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_PACKET_ID" , 1022 1132 dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_PACKET_ID" ); … … 1033 1143 PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_ADDRESS" , 1034 1144 dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_ADDRESS" ); 1145 PORT_MAP(_component ,src ,"out_WRITE_UNIT_OUT_DATA" , 1146 dest,"out_EXECUTE_LOOP_OUT_"+toString(i)+"_DATA" ); 1035 1147 } 1148 1036 1149 // -----[ Interface "gpr_write" ]------------------------------------- 1037 1150 { 1038 // Port map with "read_unit" is ok! 1039 1040 dest = _name+"_register_unit"; 1151 dest = _name+"_glue"; 1041 1152 #ifdef POSITION 1042 1153 _component->interface_map (src ,"gpr_write", 1043 dest,"gpr_write_ "+toString(i));1044 #endif 1045 1046 PORT_MAP(_component ,src ,"out_GPR_WRITE_0_VAL" ,1047 dest, "in_GPR_WRITE_"+toString(i)+"_VAL" );1048 PORT_MAP(_component ,src , "in_GPR_WRITE_0_ACK" ,1049 dest,"out_GPR_WRITE_"+toString(i)+"_ACK" );1050 if (_param->_have_port_ context_id)1051 PORT_MAP(_component ,src ,"out_GPR_WRITE_0_OOO_ENGINE_ID",1052 dest, "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID");1053 PORT_MAP(_component ,src ,"out_GPR_WRITE_0_NUM_REG" ,1054 dest, "in_GPR_WRITE_"+toString(i)+"_NUM_REG" );1055 PORT_MAP(_component ,src ,"out_GPR_WRITE_0_DATA" ,1056 dest, "in_GPR_WRITE_"+toString(i)+"_DATA" );1154 dest,"gpr_write_write_unit_"+toString(i)); 1155 #endif 1156 1157 COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_0_VAL" , 1158 dest, "in_GPR_WRITE_WRITE_UNIT_"+toString(i)+"_VAL" ); 1159 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_0_ACK" , 1160 dest,"out_GPR_WRITE_WRITE_UNIT_"+toString(i)+"_ACK" ); 1161 if (_param->_have_port_ooo_engine_id) 1162 COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_0_OOO_ENGINE_ID", 1163 dest, "in_GPR_WRITE_WRITE_UNIT_"+toString(i)+"_OOO_ENGINE_ID"); 1164 COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_0_NUM_REG" , 1165 dest, "in_GPR_WRITE_WRITE_UNIT_"+toString(i)+"_NUM_REG" ); 1166 COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_0_DATA" , 1167 dest, "in_GPR_WRITE_WRITE_UNIT_"+toString(i)+"_DATA" ); 1057 1168 } 1058 1169 … … 1061 1172 // Port map with "read_unit" is ok! 1062 1173 1063 dest = _name+"_ register_unit";1174 dest = _name+"_glue"; 1064 1175 #ifdef POSITION 1065 1176 _component->interface_map (src ,"spr_write", 1066 dest,"spr_write_ "+toString(i));1067 #endif 1068 1069 PORT_MAP(_component ,src ,"out_SPR_WRITE_0_VAL" ,1070 dest, "in_SPR_WRITE_"+toString(i)+"_VAL" );1071 PORT_MAP(_component ,src , "in_SPR_WRITE_0_ACK" ,1072 dest,"out_SPR_WRITE_"+toString(i)+"_ACK" );1073 if (_param->_have_port_ context_id)1074 PORT_MAP(_component ,src ,"out_SPR_WRITE_0_OOO_ENGINE_ID",1075 dest, "in_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID");1076 PORT_MAP(_component ,src ,"out_SPR_WRITE_0_NUM_REG" ,1077 dest, "in_SPR_WRITE_"+toString(i)+"_NUM_REG" );1078 PORT_MAP(_component ,src ,"out_SPR_WRITE_0_DATA" ,1079 dest, "in_SPR_WRITE_"+toString(i)+"_DATA" );1177 dest,"spr_write_write_unit_"+toString(i)); 1178 #endif 1179 1180 COMPONENT_MAP(_component ,src ,"out_SPR_WRITE_0_VAL" , 1181 dest, "in_SPR_WRITE_WRITE_UNIT_"+toString(i)+"_VAL" ); 1182 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_0_ACK" , 1183 dest,"out_SPR_WRITE_WRITE_UNIT_"+toString(i)+"_ACK" ); 1184 if (_param->_have_port_ooo_engine_id) 1185 COMPONENT_MAP(_component ,src ,"out_SPR_WRITE_0_OOO_ENGINE_ID", 1186 dest, "in_SPR_WRITE_WRITE_UNIT_"+toString(i)+"_OOO_ENGINE_ID"); 1187 COMPONENT_MAP(_component ,src ,"out_SPR_WRITE_0_NUM_REG" , 1188 dest, "in_SPR_WRITE_WRITE_UNIT_"+toString(i)+"_NUM_REG" ); 1189 COMPONENT_MAP(_component ,src ,"out_SPR_WRITE_0_DATA" , 1190 dest, "in_SPR_WRITE_WRITE_UNIT_"+toString(i)+"_DATA" ); 1080 1191 } 1081 1192 … … 1091 1202 { 1092 1203 src = _name+"_register_unit"; 1093 std::cout << "Instance : " << src << std::endl;1204 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 1094 1205 1095 1206 { … … 1114 1225 #endif 1115 1226 1116 PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i )+"_VAL" ,dest,"out_GPR_READ_0_VAL" );1117 PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i )+"_ACK" ,dest, "in_GPR_READ_0_ACK" );1118 if (_param->_have_port_context_id)1119 PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i )+"_OOO_ENGINE_ID",dest,"out_GPR_READ_0_OOO_ENGINE_ID");1120 PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i )+"_NUM_REG" ,dest,"out_GPR_READ_0_NUM_REG" );1121 PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i )+"_DATA" ,dest, "in_GPR_READ_0_DATA" );1122 PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i )+"_DATA_VAL" ,dest, "in_GPR_READ_0_DATA_VAL" );1123 1124 PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i+1)+"_VAL" ,dest,"out_GPR_READ_1_VAL" );1125 PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i+1)+"_ACK" ,dest, "in_GPR_READ_1_ACK" );1126 if (_param->_have_port_context_id)1127 PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i+1)+"_OOO_ENGINE_ID",dest,"out_GPR_READ_1_OOO_ENGINE_ID");1128 PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i+1)+"_NUM_REG" ,dest,"out_GPR_READ_1_NUM_REG" );1129 PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i+1)+"_DATA" ,dest, "in_GPR_READ_1_DATA" );1130 PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i+1)+"_DATA_VAL" ,dest, "in_GPR_READ_1_DATA_VAL" );1227 // PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i )+"_VAL" ,dest,"out_GPR_READ_0_VAL" ); 1228 // PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i )+"_ACK" ,dest, "in_GPR_READ_0_ACK" ); 1229 // if (_param->_have_port_context_id) 1230 // PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i )+"_OOO_ENGINE_ID",dest,"out_GPR_READ_0_OOO_ENGINE_ID"); 1231 // PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i )+"_NUM_REG" ,dest,"out_GPR_READ_0_NUM_REG" ); 1232 // PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i )+"_DATA" ,dest, "in_GPR_READ_0_DATA" ); 1233 // PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i )+"_DATA_VAL" ,dest, "in_GPR_READ_0_DATA_VAL" ); 1234 1235 // PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i+1)+"_VAL" ,dest,"out_GPR_READ_1_VAL" ); 1236 // PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i+1)+"_ACK" ,dest, "in_GPR_READ_1_ACK" ); 1237 // if (_param->_have_port_context_id) 1238 // PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i+1)+"_OOO_ENGINE_ID",dest,"out_GPR_READ_1_OOO_ENGINE_ID"); 1239 // PORT_MAP(_component ,src , "in_GPR_READ_"+toString(2*i+1)+"_NUM_REG" ,dest,"out_GPR_READ_1_NUM_REG" ); 1240 // PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i+1)+"_DATA" ,dest, "in_GPR_READ_1_DATA" ); 1241 // PORT_MAP(_component ,src ,"out_GPR_READ_"+toString(2*i+1)+"_DATA_VAL" ,dest, "in_GPR_READ_1_DATA_VAL" ); 1131 1242 } 1132 1243 … … 1134 1245 for (uint32_t i=0; i<_param->_nb_write_unit; i++) 1135 1246 { 1136 dest = _name+"_ write_unit_"+toString(i);1137 #ifdef POSITION 1138 _component->interface_map (src ,"gpr_write_"+toString(i) 1139 dest,"gpr_write_ 0");1140 #endif 1141 1142 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_VAL" ,dest,"out_GPR_WRITE_0_VAL" );1143 PORT_MAP(_component ,src ,"out_GPR_WRITE_"+toString(i)+"_ACK" ,dest, "in_GPR_WRITE_0_ACK" );1144 if (_param->_have_port_ context_id)1145 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_GPR_WRITE_0_OOO_ENGINE_ID");1146 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_NUM_REG" ,dest,"out_GPR_WRITE_0_NUM_REG" );1147 PORT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_DATA" ,dest,"out_GPR_WRITE_0_DATA" );1247 dest = _name+"_glue"; 1248 #ifdef POSITION 1249 _component->interface_map (src ,"gpr_write_"+toString(i), 1250 dest,"gpr_write_register_file_"+toString(i)); 1251 #endif 1252 1253 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_VAL" ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_VAL" ); 1254 COMPONENT_MAP(_component ,src ,"out_GPR_WRITE_"+toString(i)+"_ACK" ,dest, "in_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_ACK" ); 1255 if (_param->_have_port_ooo_engine_id) 1256 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_OOO_ENGINE_ID"); 1257 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_NUM_REG" ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_NUM_REG" ); 1258 COMPONENT_MAP(_component ,src , "in_GPR_WRITE_"+toString(i)+"_DATA" ,dest,"out_GPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA" ); 1148 1259 } 1149 1260 … … 1157 1268 #endif 1158 1269 1159 PORT_MAP(_component ,src , "in_SPR_READ_"+toString(i)+"_VAL" ,dest,"out_SPR_READ_0_VAL" );1160 PORT_MAP(_component ,src ,"out_SPR_READ_"+toString(i)+"_ACK" ,dest, "in_SPR_READ_0_ACK" );1161 if (_param->_have_port_context_id)1162 PORT_MAP(_component ,src , "in_SPR_READ_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_SPR_READ_0_OOO_ENGINE_ID");1163 PORT_MAP(_component ,src , "in_SPR_READ_"+toString(i)+"_NUM_REG" ,dest,"out_SPR_READ_0_NUM_REG" );1164 PORT_MAP(_component ,src ,"out_SPR_READ_"+toString(i)+"_DATA" ,dest, "in_SPR_READ_0_DATA" );1165 PORT_MAP(_component ,src ,"out_SPR_READ_"+toString(i)+"_DATA_VAL" ,dest, "in_SPR_READ_0_DATA_VAL" );1270 // PORT_MAP(_component ,src , "in_SPR_READ_"+toString(i)+"_VAL" ,dest,"out_SPR_READ_0_VAL" ); 1271 // PORT_MAP(_component ,src ,"out_SPR_READ_"+toString(i)+"_ACK" ,dest, "in_SPR_READ_0_ACK" ); 1272 // if (_param->_have_port_context_id) 1273 // PORT_MAP(_component ,src , "in_SPR_READ_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_SPR_READ_0_OOO_ENGINE_ID"); 1274 // PORT_MAP(_component ,src , "in_SPR_READ_"+toString(i)+"_NUM_REG" ,dest,"out_SPR_READ_0_NUM_REG" ); 1275 // PORT_MAP(_component ,src ,"out_SPR_READ_"+toString(i)+"_DATA" ,dest, "in_SPR_READ_0_DATA" ); 1276 // PORT_MAP(_component ,src ,"out_SPR_READ_"+toString(i)+"_DATA_VAL" ,dest, "in_SPR_READ_0_DATA_VAL" ); 1166 1277 } 1167 1278 … … 1169 1280 for (uint32_t i=0; i<_param->_nb_write_unit; i++) 1170 1281 { 1171 dest = _name+"_ write_unit_"+toString(i);1172 #ifdef POSITION 1173 _component->interface_map (src ,"spr_write_"+toString(i) 1174 dest,"spr_write_ 0");1175 #endif 1176 1177 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_VAL" ,dest,"out_SPR_WRITE_0_VAL" );1178 PORT_MAP(_component ,src ,"out_SPR_WRITE_"+toString(i)+"_ACK" ,dest, "in_SPR_WRITE_0_ACK" );1179 if (_param->_have_port_ context_id)1180 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_SPR_WRITE_0_OOO_ENGINE_ID");1181 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_NUM_REG" ,dest,"out_SPR_WRITE_0_NUM_REG" );1182 PORT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_DATA" ,dest,"out_SPR_WRITE_0_DATA" );1282 dest = _name+"_glue"; 1283 #ifdef POSITION 1284 _component->interface_map (src ,"spr_write_"+toString(i), 1285 dest,"spr_write_register_file_"+toString(i)); 1286 #endif 1287 1288 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_VAL" ,dest,"out_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_VAL" ); 1289 COMPONENT_MAP(_component ,src ,"out_SPR_WRITE_"+toString(i)+"_ACK" ,dest, "in_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_ACK" ); 1290 if (_param->_have_port_ooo_engine_id) 1291 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",dest,"out_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_OOO_ENGINE_ID"); 1292 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_NUM_REG" ,dest,"out_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_NUM_REG" ); 1293 COMPONENT_MAP(_component ,src , "in_SPR_WRITE_"+toString(i)+"_DATA" ,dest,"out_SPR_WRITE_REGISTER_FILE_"+toString(i)+"_DATA" ); 1183 1294 } 1184 1295 … … 1211 1322 } 1212 1323 1213 // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1214 for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)1215 {1216 uint32_t x=_param->_nb_inst_retire_rob [i];1324 // // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1325 // for (uint32_t i=0; i<_param->_nb_ooo_engine; i++) 1326 // { 1327 // uint32_t x=_param->_nb_inst_retire_rob [i]; 1217 1328 1218 for (uint32_t j=0; j<x; j++)1219 {1220 dest = _name;1221 #ifdef POSITION1222 _component->interface_map (src ,"retire_rob_"+toString(i)+"_"+toString(j),1223 dest,"retire_rob_"+toString(i)+"_"+toString(j));1224 #endif1225 1226 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL" ,1227 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL" );1228 PORT_MAP(_component ,src ,"out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK" ,1229 dest,"out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK" );1230 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE" ,1231 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE" );1232 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG",1233 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG");1234 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE" ,1235 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE" );1236 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG",1237 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG");1238 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE" ,1239 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE" );1240 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG",1241 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG");1242 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE" ,1243 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE" );1244 PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG",1245 dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG");1246 }1247 }1329 // for (uint32_t j=0; j<x; j++) 1330 // { 1331 // dest = _name; 1332 // #ifdef POSITION 1333 // _component->interface_map (src ,"retire_rob_"+toString(i)+"_"+toString(j), 1334 // dest,"retire_rob_"+toString(i)+"_"+toString(j)); 1335 // #endif 1336 1337 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL" , 1338 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL" ); 1339 // PORT_MAP(_component ,src ,"out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK" , 1340 // dest,"out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK" ); 1341 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE" , 1342 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE" ); 1343 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG", 1344 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG"); 1345 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE" , 1346 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE" ); 1347 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG", 1348 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG"); 1349 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE" , 1350 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE" ); 1351 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG", 1352 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG"); 1353 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE" , 1354 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE" ); 1355 // PORT_MAP(_component ,src , "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG", 1356 // dest, "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG"); 1357 // } 1358 // } 1248 1359 } 1249 1360 … … 1253 1364 { 1254 1365 src = _name+"_read_unit_to_execution_unit"; 1255 std::cout << "Instance : " << src << std::endl;1366 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 1256 1367 1257 1368 { … … 1277 1388 #endif 1278 1389 1279 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_VAL" ,1280 dest,"out_READ_UNIT_OUT_"+toString(j )+"_VAL" );1281 PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_ACK" ,1282 dest, "in_READ_UNIT_OUT_"+toString(j )+"_ACK" );1283 if (_param->_have_port_context_id)1284 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_CONTEXT_ID" ,1285 dest,"out_READ_UNIT_OUT_"+toString(j )+"_CONTEXT_ID" );1286 if (_param->_have_port_front_end_id)1287 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_FRONT_END_ID" ,1288 dest,"out_READ_UNIT_OUT_"+toString(j )+"_FRONT_END_ID" );1289 if (_param->_have_port_ooo_engine_id)1290 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_OOO_ENGINE_ID" ,1291 dest,"out_READ_UNIT_OUT_"+toString(j )+"_OOO_ENGINE_ID" );1292 if (_param->_have_port_packet_id)1293 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_PACKET_ID" ,1294 dest,"out_READ_UNIT_OUT_"+toString(j )+"_PACKET_ID" );1295 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_OPERATION" ,1296 dest,"out_READ_UNIT_OUT_"+toString(j )+"_OPERATION" );1297 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_TYPE" ,1298 dest,"out_READ_UNIT_OUT_"+toString(j )+"_TYPE" );1299 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_STORE_QUEUE_PTR_WRITE",1300 dest,"out_READ_UNIT_OUT_"+toString(j )+"_STORE_QUEUE_PTR_WRITE");1301 if (_param->_have_port_load_queue_ptr)1302 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_LOAD_QUEUE_PTR_WRITE" ,1303 dest,"out_READ_UNIT_OUT_"+toString(j )+"_LOAD_QUEUE_PTR_WRITE" );1304 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_HAS_IMMEDIAT" ,1305 dest,"out_READ_UNIT_OUT_"+toString(j )+"_HAS_IMMEDIAT" );1306 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_IMMEDIAT" ,1307 dest,"out_READ_UNIT_OUT_"+toString(j )+"_IMMEDIAT" );1308 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RA" ,1309 dest,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RA" );1310 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RB" ,1311 dest,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RB" );1312 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RC" ,1313 dest,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RC" );1314 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_WRITE_RD" ,1315 dest,"out_READ_UNIT_OUT_"+toString(j )+"_WRITE_RD" );1316 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_NUM_REG_RD" ,1317 dest,"out_READ_UNIT_OUT_"+toString(j )+"_NUM_REG_RD" );1318 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_WRITE_RE" ,1319 dest,"out_READ_UNIT_OUT_"+toString(j )+"_WRITE_RE" );1320 PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_NUM_REG_RE" ,1321 dest,"out_READ_UNIT_OUT_"+toString(j )+"_NUM_REG_RE" );1390 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_VAL" , 1391 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_VAL" ); 1392 // PORT_MAP(_component ,src ,"out_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_ACK" , 1393 // dest, "in_READ_UNIT_OUT_"+toString(j )+"_ACK" ); 1394 // if (_param->_have_port_context_id) 1395 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_CONTEXT_ID" , 1396 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_CONTEXT_ID" ); 1397 // if (_param->_have_port_front_end_id) 1398 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_FRONT_END_ID" , 1399 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_FRONT_END_ID" ); 1400 // if (_param->_have_port_ooo_engine_id) 1401 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_OOO_ENGINE_ID" , 1402 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_OOO_ENGINE_ID" ); 1403 // if (_param->_have_port_rob_ptr ) 1404 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_PACKET_ID" , 1405 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_PACKET_ID" ); 1406 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_OPERATION" , 1407 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_OPERATION" ); 1408 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_TYPE" , 1409 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_TYPE" ); 1410 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_STORE_QUEUE_PTR_WRITE", 1411 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_STORE_QUEUE_PTR_WRITE"); 1412 // if (_param->_have_port_load_queue_ptr) 1413 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_LOAD_QUEUE_PTR_WRITE" , 1414 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_LOAD_QUEUE_PTR_WRITE" ); 1415 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_HAS_IMMEDIAT" , 1416 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_HAS_IMMEDIAT" ); 1417 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_IMMEDIAT" , 1418 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_IMMEDIAT" ); 1419 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RA" , 1420 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RA" ); 1421 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RB" , 1422 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RB" ); 1423 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_DATA_RC" , 1424 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_DATA_RC" ); 1425 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_WRITE_RD" , 1426 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_WRITE_RD" ); 1427 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_NUM_REG_RD" , 1428 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_NUM_REG_RD" ); 1429 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_WRITE_RE" , 1430 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_WRITE_RE" ); 1431 // PORT_MAP(_component ,src , "in_READ_UNIT_OUT_"+toString(it_read_unit_out)+"_NUM_REG_RE" , 1432 // dest,"out_READ_UNIT_OUT_"+toString(j )+"_NUM_REG_RE" ); 1322 1433 1323 1434 it_read_unit_out ++; … … 1338 1449 #endif 1339 1450 1340 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_VAL" ,1341 dest, "in_EXECUTE_IN_VAL" );1342 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_IN_"+toString(i)+"_ACK" ,1343 dest,"out_EXECUTE_IN_ACK" );1344 if (_param->_have_port_context_id)1345 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" ,1346 dest, "in_EXECUTE_IN_CONTEXT_ID" );1347 if (_param->_have_port_front_end_id)1348 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" ,1349 dest, "in_EXECUTE_IN_FRONT_END_ID" );1350 if (_param->_have_port_ooo_engine_id)1351 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID" ,1352 dest, "in_EXECUTE_IN_OOO_ENGINE_ID" );1353 if (_param->_have_port_packet_id)1354 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_PACKET_ID" ,1355 dest, "in_EXECUTE_IN_PACKET_ID" );1356 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OPERATION" ,1357 dest, "in_EXECUTE_IN_OPERATION" );1358 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_TYPE" ,1359 dest, "in_EXECUTE_IN_TYPE" );1360 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE",1361 dest, "in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE");1362 if (_param->_have_port_load_queue_ptr)1363 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" ,1364 dest, "in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE" );1365 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_HAS_IMMEDIAT" ,1366 dest, "in_EXECUTE_IN_HAS_IMMEDIAT" );1367 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_IMMEDIAT" ,1368 dest, "in_EXECUTE_IN_IMMEDIAT" );1369 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RA" ,1370 dest, "in_EXECUTE_IN_DATA_RA" );1371 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RB" ,1372 dest, "in_EXECUTE_IN_DATA_RB" );1373 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RC" ,1374 dest, "in_EXECUTE_IN_DATA_RC" );1375 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RD" ,1376 dest, "in_EXECUTE_IN_WRITE_RD" );1377 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" ,1378 dest, "in_EXECUTE_IN_NUM_REG_RD" );1379 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RE" ,1380 dest, "in_EXECUTE_IN_WRITE_RE" );1381 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" ,1382 dest, "in_EXECUTE_IN_NUM_REG_RE" );1451 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_VAL" , 1452 // dest, "in_EXECUTE_IN_VAL" ); 1453 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_IN_"+toString(i)+"_ACK" , 1454 // dest,"out_EXECUTE_IN_ACK" ); 1455 // if (_param->_have_port_context_id) 1456 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" , 1457 // dest, "in_EXECUTE_IN_CONTEXT_ID" ); 1458 // if (_param->_have_port_front_end_id) 1459 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" , 1460 // dest, "in_EXECUTE_IN_FRONT_END_ID" ); 1461 // if (_param->_have_port_ooo_engine_id) 1462 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID" , 1463 // dest, "in_EXECUTE_IN_OOO_ENGINE_ID" ); 1464 // if (_param->_have_port_rob_ptr ) 1465 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_PACKET_ID" , 1466 // dest, "in_EXECUTE_IN_PACKET_ID" ); 1467 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OPERATION" , 1468 // dest, "in_EXECUTE_IN_OPERATION" ); 1469 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_TYPE" , 1470 // dest, "in_EXECUTE_IN_TYPE" ); 1471 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE", 1472 // dest, "in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE"); 1473 // if (_param->_have_port_load_queue_ptr) 1474 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" , 1475 // dest, "in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE" ); 1476 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_HAS_IMMEDIAT" , 1477 // dest, "in_EXECUTE_IN_HAS_IMMEDIAT" ); 1478 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_IMMEDIAT" , 1479 // dest, "in_EXECUTE_IN_IMMEDIAT" ); 1480 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RA" , 1481 // dest, "in_EXECUTE_IN_DATA_RA" ); 1482 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RB" , 1483 // dest, "in_EXECUTE_IN_DATA_RB" ); 1484 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RC" , 1485 // dest, "in_EXECUTE_IN_DATA_RC" ); 1486 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RD" , 1487 // dest, "in_EXECUTE_IN_WRITE_RD" ); 1488 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" , 1489 // dest, "in_EXECUTE_IN_NUM_REG_RD" ); 1490 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RE" , 1491 // dest, "in_EXECUTE_IN_WRITE_RE" ); 1492 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" , 1493 // dest, "in_EXECUTE_IN_NUM_REG_RE" ); 1383 1494 } 1384 1495 else … … 1391 1502 #endif 1392 1503 1393 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_VAL" ,1394 dest, "in_MEMORY_IN_VAL" );1395 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_IN_"+toString(i)+"_ACK" ,1396 dest,"out_MEMORY_IN_ACK" );1397 if (_param->_have_port_context_id)1398 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" ,1399 dest, "in_MEMORY_IN_CONTEXT_ID" );1400 if (_param->_have_port_front_end_id)1401 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" ,1402 dest, "in_MEMORY_IN_FRONT_END_ID" );1403 if (_param->_have_port_ooo_engine_id)1404 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID" ,1405 dest, "in_MEMORY_IN_OOO_ENGINE_ID" );1406 if (_param->_have_port_packet_id)1407 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_PACKET_ID" ,1408 dest, "in_MEMORY_IN_PACKET_ID" );1409 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OPERATION" ,1410 dest, "in_MEMORY_IN_OPERATION" );1411 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_TYPE" ,1412 dest, "in_MEMORY_IN_TYPE" );1413 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE",1414 dest, "in_MEMORY_IN_STORE_QUEUE_PTR_WRITE");1415 if (_param->_have_port_load_queue_ptr)1416 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" ,1417 dest, "in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE" );1418 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_HAS_IMMEDIAT" ,1419 dest, "in_MEMORY_IN_HAS_IMMEDIAT" );1420 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_IMMEDIAT" ,1421 dest, "in_MEMORY_IN_IMMEDIAT" );1422 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RA" ,1423 dest, "in_MEMORY_IN_DATA_RA" );1424 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RB" ,1425 dest, "in_MEMORY_IN_DATA_RB" );1426 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RC" ,1427 dest, "in_MEMORY_IN_DATA_RC" );1428 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RD" ,1429 dest, "in_MEMORY_IN_WRITE_RD" );1430 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" ,1431 dest, "in_MEMORY_IN_NUM_REG_RD" );1432 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RE" ,1433 dest, "in_MEMORY_IN_WRITE_RE" );1434 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" ,1435 dest, "in_MEMORY_IN_NUM_REG_RE" );1504 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_VAL" , 1505 // dest, "in_MEMORY_IN_VAL" ); 1506 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_IN_"+toString(i)+"_ACK" , 1507 // dest,"out_MEMORY_IN_ACK" ); 1508 // if (_param->_have_port_context_id) 1509 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" , 1510 // dest, "in_MEMORY_IN_CONTEXT_ID" ); 1511 // if (_param->_have_port_front_end_id) 1512 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" , 1513 // dest, "in_MEMORY_IN_FRONT_END_ID" ); 1514 // if (_param->_have_port_ooo_engine_id) 1515 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID" , 1516 // dest, "in_MEMORY_IN_OOO_ENGINE_ID" ); 1517 // if (_param->_have_port_rob_ptr ) 1518 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_PACKET_ID" , 1519 // dest, "in_MEMORY_IN_PACKET_ID" ); 1520 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_OPERATION" , 1521 // dest, "in_MEMORY_IN_OPERATION" ); 1522 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_TYPE" , 1523 // dest, "in_MEMORY_IN_TYPE" ); 1524 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_STORE_QUEUE_PTR_WRITE", 1525 // dest, "in_MEMORY_IN_STORE_QUEUE_PTR_WRITE"); 1526 // if (_param->_have_port_load_queue_ptr) 1527 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_LOAD_QUEUE_PTR_WRITE" , 1528 // dest, "in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE" ); 1529 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_HAS_IMMEDIAT" , 1530 // dest, "in_MEMORY_IN_HAS_IMMEDIAT" ); 1531 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_IMMEDIAT" , 1532 // dest, "in_MEMORY_IN_IMMEDIAT" ); 1533 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RA" , 1534 // dest, "in_MEMORY_IN_DATA_RA" ); 1535 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RB" , 1536 // dest, "in_MEMORY_IN_DATA_RB" ); 1537 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_DATA_RC" , 1538 // dest, "in_MEMORY_IN_DATA_RC" ); 1539 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RD" , 1540 // dest, "in_MEMORY_IN_WRITE_RD" ); 1541 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" , 1542 // dest, "in_MEMORY_IN_NUM_REG_RD" ); 1543 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_WRITE_RE" , 1544 // dest, "in_MEMORY_IN_WRITE_RE" ); 1545 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" , 1546 // dest, "in_MEMORY_IN_NUM_REG_RE" ); 1436 1547 } 1437 1548 } … … 1443 1554 { 1444 1555 src = _name+"_execution_unit_to_write_unit"; 1445 std::cout << "Instance : " << src << std::endl;1556 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str()); 1446 1557 1447 1558 { … … 1468 1579 dest,"execute_out"); 1469 1580 #endif 1470 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_VAL" ,1471 dest,"out_EXECUTE_OUT_VAL" );1472 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_ACK" ,1473 dest, "in_EXECUTE_OUT_ACK" );1474 if (_param->_have_port_context_id)1475 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" ,1476 dest,"out_EXECUTE_OUT_CONTEXT_ID" );1477 if (_param->_have_port_front_end_id)1478 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" ,1479 dest,"out_EXECUTE_OUT_FRONT_END_ID" );1480 if (_param->_have_port_ooo_engine_id)1481 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID",1482 dest,"out_EXECUTE_OUT_OOO_ENGINE_ID");1483 if (_param->_have_port_packet_id)1484 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_PACKET_ID" ,1485 dest,"out_EXECUTE_OUT_PACKET_ID" );1486 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OPERATION" ,1487 // dest,"out_EXECUTE_OUT_OPERATION" );1488 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_TYPE" ,1489 dest,"out_EXECUTE_OUT_TYPE" );1490 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RD" ,1491 dest,"out_EXECUTE_OUT_WRITE_RD" );1492 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" ,1493 dest,"out_EXECUTE_OUT_NUM_REG_RD" );1494 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RD" ,1495 dest,"out_EXECUTE_OUT_DATA_RD" );1496 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RE" ,1497 dest,"out_EXECUTE_OUT_WRITE_RE" );1498 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" ,1499 dest,"out_EXECUTE_OUT_NUM_REG_RE" );1500 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RE" ,1501 dest,"out_EXECUTE_OUT_DATA_RE" );1502 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_EXCEPTION" ,1503 dest,"out_EXECUTE_OUT_EXCEPTION" );1504 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NO_SEQUENCE" ,1505 dest,"out_EXECUTE_OUT_NO_SEQUENCE" );1506 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_ADDRESS" ,1507 dest,"out_EXECUTE_OUT_ADDRESS" );1581 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_VAL" , 1582 // dest,"out_EXECUTE_OUT_VAL" ); 1583 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_ACK" , 1584 // dest, "in_EXECUTE_OUT_ACK" ); 1585 // if (_param->_have_port_context_id) 1586 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" , 1587 // dest,"out_EXECUTE_OUT_CONTEXT_ID" ); 1588 // if (_param->_have_port_front_end_id) 1589 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" , 1590 // dest,"out_EXECUTE_OUT_FRONT_END_ID" ); 1591 // if (_param->_have_port_ooo_engine_id) 1592 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID", 1593 // dest,"out_EXECUTE_OUT_OOO_ENGINE_ID"); 1594 // if (_param->_have_port_rob_ptr ) 1595 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_PACKET_ID" , 1596 // dest,"out_EXECUTE_OUT_PACKET_ID" ); 1597 // // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OPERATION" , 1598 // // dest,"out_EXECUTE_OUT_OPERATION" ); 1599 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_TYPE" , 1600 // dest,"out_EXECUTE_OUT_TYPE" ); 1601 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RD" , 1602 // dest,"out_EXECUTE_OUT_WRITE_RD" ); 1603 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" , 1604 // dest,"out_EXECUTE_OUT_NUM_REG_RD" ); 1605 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RD" , 1606 // dest,"out_EXECUTE_OUT_DATA_RD" ); 1607 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RE" , 1608 // dest,"out_EXECUTE_OUT_WRITE_RE" ); 1609 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" , 1610 // dest,"out_EXECUTE_OUT_NUM_REG_RE" ); 1611 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RE" , 1612 // dest,"out_EXECUTE_OUT_DATA_RE" ); 1613 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_EXCEPTION" , 1614 // dest,"out_EXECUTE_OUT_EXCEPTION" ); 1615 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NO_SEQUENCE" , 1616 // dest,"out_EXECUTE_OUT_NO_SEQUENCE" ); 1617 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_ADDRESS" , 1618 // dest,"out_EXECUTE_OUT_ADDRESS" ); 1508 1619 } 1509 1620 else … … 1515 1626 dest,"memory_out"); 1516 1627 #endif 1517 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_VAL" ,1518 dest,"out_MEMORY_OUT_VAL" );1519 PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_ACK" ,1520 dest, "in_MEMORY_OUT_ACK" );1521 if (_param->_have_port_context_id)1522 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" ,1523 dest,"out_MEMORY_OUT_CONTEXT_ID" );1524 if (_param->_have_port_front_end_id)1525 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" ,1526 dest,"out_MEMORY_OUT_FRONT_END_ID" );1527 if (_param->_have_port_ooo_engine_id)1528 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID",1529 dest,"out_MEMORY_OUT_OOO_ENGINE_ID");1530 if (_param->_have_port_packet_id)1531 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_PACKET_ID" ,1532 dest,"out_MEMORY_OUT_PACKET_ID" );1533 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OPERATION" ,1534 // dest,"out_MEMORY_OUT_OPERATION" );1535 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_TYPE" ,1536 dest,"out_MEMORY_OUT_TYPE" );1537 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RD" ,1538 dest,"out_MEMORY_OUT_WRITE_RD" );1539 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" ,1540 dest,"out_MEMORY_OUT_NUM_REG_RD" );1541 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RD" ,1542 dest,"out_MEMORY_OUT_DATA_RD" );1543 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RE" ,1544 dest,"out_MEMORY_OUT_WRITE_RE" );1545 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" ,1546 dest,"out_MEMORY_OUT_NUM_REG_RE" );1547 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RE" ,1548 dest,"out_MEMORY_OUT_DATA_RE" );1549 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_EXCEPTION" ,1550 dest,"out_MEMORY_OUT_EXCEPTION" );1551 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NO_SEQUENCE" ,1552 dest,"out_MEMORY_OUT_NO_SEQUENCE" );1553 PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_ADDRESS" ,1554 dest,"out_MEMORY_OUT_ADDRESS" );1628 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_VAL" , 1629 // dest,"out_MEMORY_OUT_VAL" ); 1630 // PORT_MAP(_component ,src ,"out_EXECUTE_UNIT_OUT_"+toString(i)+"_ACK" , 1631 // dest, "in_MEMORY_OUT_ACK" ); 1632 // if (_param->_have_port_context_id) 1633 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_CONTEXT_ID" , 1634 // dest,"out_MEMORY_OUT_CONTEXT_ID" ); 1635 // if (_param->_have_port_front_end_id) 1636 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_FRONT_END_ID" , 1637 // dest,"out_MEMORY_OUT_FRONT_END_ID" ); 1638 // if (_param->_have_port_ooo_engine_id) 1639 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OOO_ENGINE_ID", 1640 // dest,"out_MEMORY_OUT_OOO_ENGINE_ID"); 1641 // if (_param->_have_port_rob_ptr ) 1642 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_PACKET_ID" , 1643 // dest,"out_MEMORY_OUT_PACKET_ID" ); 1644 // // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_OPERATION" , 1645 // // dest,"out_MEMORY_OUT_OPERATION" ); 1646 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_TYPE" , 1647 // dest,"out_MEMORY_OUT_TYPE" ); 1648 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RD" , 1649 // dest,"out_MEMORY_OUT_WRITE_RD" ); 1650 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RD" , 1651 // dest,"out_MEMORY_OUT_NUM_REG_RD" ); 1652 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RD" , 1653 // dest,"out_MEMORY_OUT_DATA_RD" ); 1654 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_WRITE_RE" , 1655 // dest,"out_MEMORY_OUT_WRITE_RE" ); 1656 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NUM_REG_RE" , 1657 // dest,"out_MEMORY_OUT_NUM_REG_RE" ); 1658 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_DATA_RE" , 1659 // dest,"out_MEMORY_OUT_DATA_RE" ); 1660 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_EXCEPTION" , 1661 // dest,"out_MEMORY_OUT_EXCEPTION" ); 1662 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_NO_SEQUENCE" , 1663 // dest,"out_MEMORY_OUT_NO_SEQUENCE" ); 1664 // PORT_MAP(_component ,src , "in_EXECUTE_UNIT_OUT_"+toString(i)+"_ADDRESS" , 1665 // dest,"out_MEMORY_OUT_ADDRESS" ); 1555 1666 } 1556 1667 } … … 1566 1677 #endif 1567 1678 1568 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_VAL" ,1569 dest, "in_WRITE_UNIT_IN_VAL" );1570 PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_"+toString(i)+"_ACK" ,1571 dest,"out_WRITE_UNIT_IN_ACK" );1572 if (_param->_have_port_context_id)1573 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" ,1574 dest, "in_WRITE_UNIT_IN_CONTEXT_ID" );1575 if (_param->_have_port_front_end_id)1576 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" ,1577 dest, "in_WRITE_UNIT_IN_FRONT_END_ID" );1578 if (_param->_have_port_ooo_engine_id)1579 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID",1580 dest, "in_WRITE_UNIT_IN_OOO_ENGINE_ID");1581 if (_param->_have_port_packet_id)1582 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_PACKET_ID" ,1583 dest, "in_WRITE_UNIT_IN_PACKET_ID" );1584 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_OPERATION" ,1585 // dest, "in_WRITE_UNIT_IN_OPERATION" );1586 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_TYPE" ,1587 dest, "in_WRITE_UNIT_IN_TYPE" );1588 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RD" ,1589 dest, "in_WRITE_UNIT_IN_WRITE_RD" );1590 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" ,1591 dest, "in_WRITE_UNIT_IN_NUM_REG_RD" );1592 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RD" ,1593 dest, "in_WRITE_UNIT_IN_DATA_RD" );1594 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RE" ,1595 dest, "in_WRITE_UNIT_IN_WRITE_RE" );1596 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" ,1597 dest, "in_WRITE_UNIT_IN_NUM_REG_RE" );1598 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RE" ,1599 dest, "in_WRITE_UNIT_IN_DATA_RE" );1600 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_EXCEPTION" ,1601 dest, "in_WRITE_UNIT_IN_EXCEPTION" );1602 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_NO_SEQUENCE" ,1603 dest, "in_WRITE_UNIT_IN_NO_SEQUENCE" );1604 PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_ADDRESS" ,1605 dest, "in_WRITE_UNIT_IN_ADDRESS" );1679 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_VAL" , 1680 // dest, "in_WRITE_UNIT_IN_VAL" ); 1681 // PORT_MAP(_component ,src , "in_WRITE_UNIT_IN_"+toString(i)+"_ACK" , 1682 // dest,"out_WRITE_UNIT_IN_ACK" ); 1683 // if (_param->_have_port_context_id) 1684 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_CONTEXT_ID" , 1685 // dest, "in_WRITE_UNIT_IN_CONTEXT_ID" ); 1686 // if (_param->_have_port_front_end_id) 1687 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_FRONT_END_ID" , 1688 // dest, "in_WRITE_UNIT_IN_FRONT_END_ID" ); 1689 // if (_param->_have_port_ooo_engine_id) 1690 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_OOO_ENGINE_ID", 1691 // dest, "in_WRITE_UNIT_IN_OOO_ENGINE_ID"); 1692 // if (_param->_have_port_rob_ptr ) 1693 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_PACKET_ID" , 1694 // dest, "in_WRITE_UNIT_IN_PACKET_ID" ); 1695 // // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_OPERATION" , 1696 // // dest, "in_WRITE_UNIT_IN_OPERATION" ); 1697 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_TYPE" , 1698 // dest, "in_WRITE_UNIT_IN_TYPE" ); 1699 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RD" , 1700 // dest, "in_WRITE_UNIT_IN_WRITE_RD" ); 1701 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RD" , 1702 // dest, "in_WRITE_UNIT_IN_NUM_REG_RD" ); 1703 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RD" , 1704 // dest, "in_WRITE_UNIT_IN_DATA_RD" ); 1705 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_WRITE_RE" , 1706 // dest, "in_WRITE_UNIT_IN_WRITE_RE" ); 1707 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_NUM_REG_RE" , 1708 // dest, "in_WRITE_UNIT_IN_NUM_REG_RE" ); 1709 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_DATA_RE" , 1710 // dest, "in_WRITE_UNIT_IN_DATA_RE" ); 1711 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_EXCEPTION" , 1712 // dest, "in_WRITE_UNIT_IN_EXCEPTION" ); 1713 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_NO_SEQUENCE" , 1714 // dest, "in_WRITE_UNIT_IN_NO_SEQUENCE" ); 1715 // PORT_MAP(_component ,src ,"out_WRITE_UNIT_IN_"+toString(i)+"_ADDRESS" , 1716 // dest, "in_WRITE_UNIT_IN_ADDRESS" ); 1606 1717 } 1607 1718 } 1608 1719 1720 #if DEBUG_Execute_loop == true 1609 1721 _component->test_map(); 1610 for (uint32_t i=0; i<_param->_nb_read_unit; i++) 1611 _component_read_unit [i]->_component->test_map(); 1612 for (uint32_t i=0; i<_param->_nb_functionnal_unit; i++) 1613 _component_functionnal_unit [i]->_component->test_map(); 1614 for (uint32_t i=0; i<_param->_nb_load_store_unit; i++) 1615 _component_load_store_unit [i]->_component->test_map(); 1616 for (uint32_t i=0; i<_param->_nb_write_unit; i++) 1617 _component_write_unit [i]->_component->test_map(); 1618 _component_read_unit_to_execution_unit->_component->test_map(); 1619 _component_execution_unit_to_write_unit->_component->test_map(); 1620 _component_register_unit->_component->test_map(); 1621 1622 #ifdef POSITION 1623 _component->generate_file(); 1722 #endif 1723 1724 #ifdef POSITION 1725 if (usage_is_set(_usage,USE_POSITION)) 1726 _component->generate_file(); 1624 1727 #endif 1625 1728 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp
r81 r88 1 1 2 /* 2 3 * $Id$ … … 7 8 8 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h" 9 10 #include "Behavioural/include/Allocation.h" 10 11 namespace morpheo { 11 12 namespace behavioural { … … 21 22 log_printf(FUNC,Execute_loop,FUNCTION,"Begin"); 22 23 23 if ( _usage & USE_SYSTEMC)24 if (usage_is_set(_usage,USE_SYSTEMC)) 24 25 { 25 26 delete in_CLOCK ; 26 27 delete in_NRESET; 27 28 28 // ~~~~~[ Interface "execute_loop_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 delete [] in_EXECUTE_LOOP_IN_VAL ; 30 delete [] out_EXECUTE_LOOP_IN_ACK ; 31 if (_param->_have_port_context_id) 32 delete [] in_EXECUTE_LOOP_IN_CONTEXT_ID ; 33 if (_param->_have_port_front_end_id) 34 delete [] in_EXECUTE_LOOP_IN_FRONT_END_ID ; 35 if (_param->_have_port_ooo_engine_id) 36 delete [] in_EXECUTE_LOOP_IN_OOO_ENGINE_ID ; 37 if (_param->_have_port_packet_id) 38 delete [] in_EXECUTE_LOOP_IN_PACKET_ID ; 39 delete [] in_EXECUTE_LOOP_IN_OPERATION ; 40 delete [] in_EXECUTE_LOOP_IN_TYPE ; 41 delete [] in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE; 42 if (_param->_have_port_load_queue_ptr) 43 delete [] in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ; 44 delete [] in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ; 45 delete [] in_EXECUTE_LOOP_IN_IMMEDIAT ; 46 delete [] in_EXECUTE_LOOP_IN_READ_RA ; 47 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RA ; 48 delete [] in_EXECUTE_LOOP_IN_READ_RB ; 49 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RB ; 50 delete [] in_EXECUTE_LOOP_IN_READ_RC ; 51 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RC ; 52 delete [] in_EXECUTE_LOOP_IN_WRITE_RD ; 53 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RD ; 54 delete [] in_EXECUTE_LOOP_IN_WRITE_RE ; 55 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RE ; 29 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_VAL ,_param->_nb_read_unit,1); 30 DELETE1_SIGNAL(out_EXECUTE_LOOP_IN_ACK ,_param->_nb_read_unit,1); 31 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_CONTEXT_ID ,_param->_nb_read_unit,_param->_size_context_id); 32 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_FRONT_END_ID ,_param->_nb_read_unit,_param->_size_front_end_id); 33 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_OOO_ENGINE_ID ,_param->_nb_read_unit,_param->_size_ooo_engine_id); 34 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_PACKET_ID ,_param->_nb_read_unit,_param->_size_rob_ptr ); 35 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_OPERATION ,_param->_nb_read_unit,_param->_size_operation); 36 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_TYPE ,_param->_nb_read_unit,_param->_size_type); 37 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit,_param->_size_store_queue_ptr); 38 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit,_param->_size_load_queue_ptr); 39 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ,_param->_nb_read_unit,1); 40 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_IMMEDIAT ,_param->_nb_read_unit,_param->_size_general_data); 41 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_READ_RA ,_param->_nb_read_unit,1); 42 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RA ,_param->_nb_read_unit,_param->_size_general_register); 43 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_READ_RB ,_param->_nb_read_unit,1); 44 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RB ,_param->_nb_read_unit,_param->_size_general_register); 45 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_READ_RC ,_param->_nb_read_unit,1); 46 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RC ,_param->_nb_read_unit,_param->_size_special_register); 47 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_WRITE_RD ,_param->_nb_read_unit,1); 48 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RD ,_param->_nb_read_unit,_param->_size_general_register); 49 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_WRITE_RE ,_param->_nb_read_unit,1); 50 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RE ,_param->_nb_read_unit,_param->_size_special_register); 51 52 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_VAL ,_param->_nb_write_unit,1); 53 DELETE1_SIGNAL( in_EXECUTE_LOOP_OUT_ACK ,_param->_nb_write_unit,1); 54 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_CONTEXT_ID ,_param->_nb_write_unit,_param->_size_context_id); 55 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_FRONT_END_ID ,_param->_nb_write_unit,_param->_size_front_end_id); 56 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_OOO_ENGINE_ID,_param->_nb_write_unit,_param->_size_ooo_engine_id); 57 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_PACKET_ID ,_param->_nb_write_unit,_param->_size_rob_ptr ); 58 // DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_OPERATION ,_param->_nb_write_unit,_param->_size_operation); 59 // DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_TYPE ,_param->_nb_write_unit,_param->_size_type); 60 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_FLAGS ,_param->_nb_write_unit,_param->_size_special_data); 61 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_EXCEPTION ,_param->_nb_write_unit,_param->_size_exception); 62 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_NO_SEQUENCE ,_param->_nb_write_unit,1); 63 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_ADDRESS ,_param->_nb_write_unit,_param->_size_general_data); 64 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_DATA ,_param->_nb_write_unit,_param->_size_general_data); 65 66 DELETE2_SIGNAL(out_DCACHE_REQ_VAL , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 67 DELETE2_SIGNAL( in_DCACHE_REQ_ACK , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 68 DELETE2_SIGNAL(out_DCACHE_REQ_CONTEXT_ID, _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_context_id); 69 DELETE2_SIGNAL(out_DCACHE_REQ_PACKET_ID , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_packet_id ); 70 DELETE2_SIGNAL(out_DCACHE_REQ_ADDRESS , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_general_data ); 71 DELETE2_SIGNAL(out_DCACHE_REQ_TYPE , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_dcache_type ); 72 DELETE2_SIGNAL(out_DCACHE_REQ_WDATA , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_general_data ); 73 74 DELETE2_SIGNAL( in_DCACHE_RSP_VAL , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 75 DELETE2_SIGNAL(out_DCACHE_RSP_ACK , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 76 DELETE2_SIGNAL( in_DCACHE_RSP_CONTEXT_ID, _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_context_id); 77 DELETE2_SIGNAL( in_DCACHE_RSP_PACKET_ID , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_packet_id ); 78 DELETE2_SIGNAL( in_DCACHE_RSP_RDATA , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_general_data ); 79 DELETE2_SIGNAL( in_DCACHE_RSP_ERROR , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_dcache_error ); 80 81 DELETE2_SIGNAL( in_INSERT_ROB_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 82 DELETE2_SIGNAL(out_INSERT_ROB_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 83 DELETE2_SIGNAL( in_INSERT_ROB_RD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 84 DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_general_register); 85 DELETE2_SIGNAL( in_INSERT_ROB_RE_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 86 DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_special_register); 87 88 // DELETE2_SIGNAL( in_RETIRE_ROB_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 89 // DELETE2_SIGNAL(out_RETIRE_ROB_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 90 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_OLD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 91 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_OLD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_general_register); 92 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_NEW_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 93 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_NEW_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_general_register); 94 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_OLD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 95 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_OLD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_special_register); 96 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_NEW_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 97 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_NEW_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_special_register); 98 } 56 99 57 // ~~~~~[ Interface "execute_loop_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~58 delete [] out_EXECUTE_LOOP_OUT_VAL ;59 delete [] in_EXECUTE_LOOP_OUT_ACK ;60 if (_param->_have_port_context_id)61 delete [] out_EXECUTE_LOOP_OUT_CONTEXT_ID ;62 if (_param->_have_port_front_end_id)63 delete [] out_EXECUTE_LOOP_OUT_FRONT_END_ID ;64 if (_param->_have_port_ooo_engine_id)65 delete [] out_EXECUTE_LOOP_OUT_OOO_ENGINE_ID ;66 if (_param->_have_port_packet_id)67 delete [] out_EXECUTE_LOOP_OUT_PACKET_ID ;68 //delete [] out_EXECUTE_LOOP_OUT_OPERATION ;69 //delete [] out_EXECUTE_LOOP_OUT_TYPE ;70 delete [] out_EXECUTE_LOOP_OUT_FLAGS ;71 delete [] out_EXECUTE_LOOP_OUT_EXCEPTION ;72 delete [] out_EXECUTE_LOOP_OUT_NO_SEQUENCE ;73 delete [] out_EXECUTE_LOOP_OUT_ADDRESS ;74 75 // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~76 delete [] out_DCACHE_REQ_VAL ;77 delete [] in_DCACHE_REQ_ACK ;78 if (_param->_have_port_dcache_context_id)79 delete [] out_DCACHE_REQ_CONTEXT_ID ;80 delete [] out_DCACHE_REQ_PACKET_ID ;81 delete [] out_DCACHE_REQ_ADDRESS ;82 delete [] out_DCACHE_REQ_TYPE ;83 delete [] out_DCACHE_REQ_WDATA ;84 85 // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~86 delete [] in_DCACHE_RSP_VAL ;87 delete [] out_DCACHE_RSP_ACK ;88 if (_param->_have_port_dcache_context_id)89 delete [] in_DCACHE_RSP_CONTEXT_ID ;90 delete [] in_DCACHE_RSP_PACKET_ID ;91 delete [] in_DCACHE_RSP_RDATA ;92 delete [] in_DCACHE_RSP_ERROR ;93 94 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~95 delete [] in_INSERT_ROB_VAL ;96 delete [] out_INSERT_ROB_ACK ;97 delete [] in_INSERT_ROB_RD_USE ;98 delete [] in_INSERT_ROB_RD_NUM_REG ;99 delete [] in_INSERT_ROB_RE_USE ;100 delete [] in_INSERT_ROB_RE_NUM_REG ;101 102 // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~103 delete [] in_RETIRE_ROB_VAL ;104 delete [] out_RETIRE_ROB_ACK ;105 delete [] in_RETIRE_ROB_RD_OLD_USE ;106 delete [] in_RETIRE_ROB_RD_OLD_NUM_REG ;107 delete [] in_RETIRE_ROB_RD_NEW_USE ;108 delete [] in_RETIRE_ROB_RD_NEW_NUM_REG ;109 delete [] in_RETIRE_ROB_RE_OLD_USE ;110 delete [] in_RETIRE_ROB_RE_OLD_NUM_REG ;111 delete [] in_RETIRE_ROB_RE_NEW_USE ;112 delete [] in_RETIRE_ROB_RE_NEW_NUM_REG ;113 }114 115 100 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 101 delete _component; 102 delete _component_glue ; 117 103 delete [] _component_read_unit ; 118 104 delete [] _component_functionnal_unit ; 119 105 delete [] _component_load_store_unit ; 120 106 delete [] _component_write_unit ; 121 delete []_component_read_unit_to_execution_unit ;122 delete []_component_execution_unit_to_write_unit;123 delete []_component_register_unit ;107 delete _component_read_unit_to_execution_unit ; 108 delete _component_execution_unit_to_write_unit; 109 delete _component_register_unit ; 124 110 125 111 log_printf(FUNC,Execute_loop,FUNCTION,"End"); … … 129 115 }; // end namespace multi_execute_loop 130 116 }; // end namespace core 131 132 117 }; // end namespace behavioural 133 118 }; // end namespace morpheo -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_end_cycle.cpp
r81 r88 23 23 24 24 #ifdef STATISTICS 25 _stat->end_cycle(); 25 if (usage_is_set(_usage,USE_STATISTICS)) 26 _stat->end_cycle(); 26 27 #endif 27 28 … … 29 30 // Evaluation before read the ouput signal 30 31 // sc_start(0); 31 _interfaces->testbench(); 32 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 33 _interfaces->testbench(); 32 34 #endif 33 35 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_statistics_declaration.cpp
r81 r88 37 37 _stat->add_stat(_component_execution_unit_to_write_unit->_stat); 38 38 _stat->add_stat(_component_register_unit ->_stat); 39 _stat->add_stat(_component_glue ->_stat); 39 40 40 41 log_printf(FUNC,Execute_loop,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters.cpp
r81 r88 7 7 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h" 9 #include "Common/include/Max.h" 9 10 10 11 namespace morpheo { … … 29 30 uint32_t size_special_data , 30 31 31 uint32_t * size_read_queue , 32 uint32_t * size_reservation_station , 33 uint32_t * nb_inst_retire , 32 uint32_t * size_read_queue ,//[nb_read_unit] 33 uint32_t * size_reservation_station ,//[nb_read_unit] 34 uint32_t * nb_inst_retire ,//[nb_read_unit] 35 36 uint32_t * nb_inst_functionnal_unit ,//[nb_functionnal_unit] 37 execute_timing_t *** timing ,//[nb_functionnal_unit][nb_type][nb_operation] 38 morpheo::behavioural::custom::custom_information_t (*get_custom_information) (void), 34 39 35 execute_timing_t *** timing , 36 morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t), 37 38 uint32_t * size_store_queue , 39 uint32_t * size_load_queue , 40 uint32_t * size_speculative_access_queue , 41 uint32_t * nb_port_check , 42 Tspeculative_load_t * speculative_load , 43 uint32_t * nb_bypass_memory , 44 45 uint32_t * size_write_queue , 46 uint32_t * size_execute_queue , 47 uint32_t * nb_bypass_write , 40 uint32_t * size_store_queue ,//[nb_load_store_unit] 41 uint32_t * size_load_queue ,//[nb_load_store_unit] 42 uint32_t * size_speculative_access_queue ,//[nb_load_store_unit] 43 uint32_t * nb_port_check ,//[nb_load_store_unit] 44 Tspeculative_load_t * speculative_load ,//[nb_load_store_unit] 45 uint32_t * nb_bypass_memory ,//[nb_load_store_unit] 46 uint32_t * nb_cache_port ,//[nb_load_store_unit] 47 uint32_t * nb_inst_memory ,//[nb_load_store_unit] 48 49 uint32_t * size_write_queue ,//[nb_write_unit] 50 uint32_t * size_execute_queue ,//[nb_write_unit] 51 uint32_t * nb_bypass_write ,//[nb_write_unit] 48 52 49 53 uint32_t nb_gpr_bank , … … 53 57 uint32_t nb_spr_port_read_by_bank , 54 58 uint32_t nb_spr_port_write_by_bank , 55 uint32_t * nb_general_register , 56 uint32_t * nb_special_register , 57 uint32_t * nb_inst_insert_rob , 58 uint32_t * nb_inst_retire_rob , 59 uint32_t * nb_general_register ,//[nb_ooo_engine] 60 uint32_t * nb_special_register ,//[nb_ooo_engine] 61 uint32_t * nb_inst_insert_rob ,//[nb_ooo_engine] 62 uint32_t * nb_inst_retire_rob ,//[nb_ooo_engine] 59 63 60 64 Tpriority_t execution_unit_to_write_unit_priority , 61 bool ** execution_unit_to_write_unit_table_routing, 62 bool ** execution_unit_to_write_unit_table_thread , 63 64 Tpriority_t read_unit_to_execution_unit_priority , 65 bool ** read_unit_to_execution_unit_table_routing , 66 bool ** read_unit_to_execution_unit_table_thread 67 ) 65 bool *** execution_unit_to_write_unit_table_routing,//[nb_execute_unit][nb_execute_unit_port][nb_write_unit] 66 bool ** execution_unit_to_write_unit_table_thread ,//[nb_write_unit][nb_thread] 67 68 Tpriority_t read_unit_to_execution_unit_priority , 69 bool *** read_unit_to_execution_unit_table_routing ,//[nb_read_unit][nb_execute_unit][nb_execute_unit_port] 70 bool ** read_unit_to_execution_unit_table_thread ,//[nb_execute_unit][nb_thread] 71 72 bool * is_load_store_unit ,//[nb_execute_unit] 73 uint32_t * translate_num_execute_unit ,//[nb_execute_unit] 74 75 bool is_toplevel 76 ) 68 77 { 69 78 log_printf(FUNC,Execute_loop,FUNCTION,"Begin"); 70 79 71 _nb_read_unit = nb_read_unit ; 72 _nb_functionnal_unit = nb_functionnal_unit ; 73 _nb_load_store_unit = nb_load_store_unit ; 74 _nb_write_unit = nb_write_unit ; 75 76 _nb_context = nb_context ; 77 _nb_front_end = nb_front_end ; 78 _nb_ooo_engine = nb_ooo_engine ; 79 _nb_packet = nb_packet ; 80 _size_general_data = size_general_data ; 81 _size_special_data = size_special_data ; 82 83 _size_read_queue = size_read_queue ; 84 _size_reservation_station = size_reservation_station ; 85 _nb_inst_retire = nb_inst_retire ; 86 87 _timing = timing ; 88 _get_custom_information = get_custom_information ; 89 90 _size_store_queue = size_store_queue ; 91 _size_load_queue = size_load_queue ; 92 _size_speculative_access_queue = size_speculative_access_queue ; 93 _nb_port_check = nb_port_check ; 94 _speculative_load = speculative_load ; 95 _nb_bypass_memory = nb_bypass_memory ; 96 97 _size_write_queue = size_write_queue ; 98 _size_execute_queue = size_execute_queue ; 99 _nb_bypass_write = nb_bypass_write ; 100 101 _nb_gpr_bank = nb_gpr_bank ; 102 _nb_gpr_port_read_by_bank = nb_gpr_port_read_by_bank ; 103 _nb_gpr_port_write_by_bank = nb_gpr_port_write_by_bank ; 104 _nb_spr_bank = nb_spr_bank ; 105 _nb_spr_port_read_by_bank = nb_spr_port_read_by_bank ; 106 _nb_spr_port_write_by_bank = nb_spr_port_write_by_bank ; 107 _nb_general_register = nb_general_register ; 108 _nb_special_register = nb_special_register ; 109 _nb_inst_insert_rob = nb_inst_insert_rob ; 110 _nb_inst_retire_rob = nb_inst_retire_rob ; 80 _nb_read_unit = nb_read_unit ; 81 _nb_functionnal_unit = nb_functionnal_unit ; 82 _nb_load_store_unit = nb_load_store_unit ; 83 _nb_write_unit = nb_write_unit ; 84 85 _nb_context = nb_context ; 86 _nb_front_end = nb_front_end ; 87 _nb_ooo_engine = nb_ooo_engine ; 88 _nb_packet = nb_packet ; 89 90 _size_read_queue = size_read_queue ; 91 _size_reservation_station = size_reservation_station ; 92 _nb_inst_retire = nb_inst_retire ; 93 94 _nb_inst_functionnal_unit = nb_inst_functionnal_unit ; 95 _timing = timing ; 96 _get_custom_information = get_custom_information ; 97 98 _size_store_queue = size_store_queue ; 99 _size_load_queue = size_load_queue ; 100 _size_speculative_access_queue = size_speculative_access_queue ; 101 _nb_port_check = nb_port_check ; 102 _speculative_load = speculative_load ; 103 _nb_bypass_memory = nb_bypass_memory ; 104 _nb_cache_port = nb_cache_port ; 105 _nb_inst_memory = nb_inst_memory ; 106 107 _size_write_queue = size_write_queue ; 108 _size_execute_queue = size_execute_queue ; 109 _nb_bypass_write = nb_bypass_write ; 110 111 _nb_gpr_bank = nb_gpr_bank ; 112 _nb_gpr_port_read_by_bank = nb_gpr_port_read_by_bank ; 113 _nb_gpr_port_write_by_bank = nb_gpr_port_write_by_bank ; 114 _nb_spr_bank = nb_spr_bank ; 115 _nb_spr_port_read_by_bank = nb_spr_port_read_by_bank ; 116 _nb_spr_port_write_by_bank = nb_spr_port_write_by_bank ; 117 _nb_general_register = nb_general_register ; 118 _nb_special_register = nb_special_register ; 119 _nb_inst_insert_rob = nb_inst_insert_rob ; 120 _nb_inst_retire_rob = nb_inst_retire_rob ; 111 121 112 122 _execution_unit_to_write_unit_priority = execution_unit_to_write_unit_priority; … … 114 124 _execution_unit_to_write_unit_table_thread = execution_unit_to_write_unit_table_thread ; 115 125 116 _read_unit_to_execution_unit_priority = read_unit_to_execution_unit_priority ;126 _read_unit_to_execution_unit_priority = read_unit_to_execution_unit_priority ; 117 127 _read_unit_to_execution_unit_table_routing = read_unit_to_execution_unit_table_routing ; 118 128 _read_unit_to_execution_unit_table_thread = read_unit_to_execution_unit_table_thread ; 119 129 120 _nb_execute_unit = _nb_functionnal_unit + _nb_load_store_unit; 121 122 _size_context_id = log2(nb_context ); 123 _size_front_end_id = log2(nb_front_end ); 124 _size_ooo_engine_id = log2(nb_ooo_engine ); 125 _size_packet_id = log2(nb_packet ); 126 127 _have_port_context_id = _size_context_id >= 1; 128 _have_port_front_end_id = _size_front_end_id >= 1; 129 _have_port_ooo_engine_id = _size_ooo_engine_id >= 1; 130 _have_port_packet_id = _size_packet_id >= 1; 131 132 _is_load_store_unit = new bool [_nb_execute_unit]; 133 _translate_num_execute_unit = new uint32_t [_nb_execute_unit]; 134 130 _is_load_store_unit = is_load_store_unit ; 131 _translate_num_execute_unit = translate_num_execute_unit; 132 133 _nb_execute_unit = _nb_functionnal_unit + _nb_load_store_unit; 134 135 _nb_execute_unit_port = new uint32_t [_nb_execute_unit]; 136 135 137 _read_unit_to_execution_unit_table_execute_type = new bool * [_nb_execute_unit]; 136 138 for (uint32_t i=0; i<_nb_execute_unit; i++) 137 139 { 138 _is_load_store_unit [i] = false;139 140 _read_unit_to_execution_unit_table_execute_type [i] = new bool [_nb_type]; 140 141 for (uint32_t j=0; j<_nb_type; j++) … … 144 145 // Fill execute_type 145 146 for (uint32_t i=0; i<_nb_execute_unit; i++) 146 for (uint32_t j=0; j<_nb_type; j++) 147 for (uint32_t k=0; k<_nb_operation; k++) 148 // Test if operation is implemnted 149 if (timing[i][j][k]._latence > 0) 150 { 151 _read_unit_to_execution_unit_table_execute_type [i][j] = true; 152 _is_load_store_unit [i] = (j == TYPE_MEMORY); 153 break; 154 } 147 // is load store 148 if (is_load_store_unit [i]) 149 _read_unit_to_execution_unit_table_execute_type [i][TYPE_MEMORY] = true; 150 else 151 for (uint32_t j=0; j<_nb_type; j++) 152 if (is_type_valid (j)) 153 for (uint32_t k=0; k<_nb_operation; k++) 154 { 155 uint32_t x = translate_num_execute_unit [i]; 156 if (timing[x][j][k]._latence > 0) 157 { 158 log_printf(TRACE,Execute_loop,FUNCTION,"Execute unit '%d' (functional unit '%d') can execute type '%s'.",i,x,toString_type(j).c_str()); 159 _read_unit_to_execution_unit_table_execute_type [i][j] = true; 160 break; // find an operation 161 } 162 } 155 163 156 164 for (uint32_t i=0; i<_nb_execute_unit; i++) 157 if (_is_load_store_unit [i]) 158 log_printf(TRACE,Execute_loop,FUNCTION,"Execute unit '%d' is a Load Store unit",i); 159 else 160 log_printf(TRACE,Execute_loop,FUNCTION,"Execute unit '%d' is a Functionnal unit",i); 165 { 166 uint32_t x = translate_num_execute_unit [i]; 167 168 if (_is_load_store_unit [i]) 169 _nb_execute_unit_port [i] = _nb_inst_memory [x]; 170 else 171 _nb_execute_unit_port [i] = _nb_inst_functionnal_unit [x]; 172 } 161 173 162 174 _nb_gpr_read = 2*_nb_read_unit; … … 165 177 _nb_spr_write = 1*_nb_write_unit; 166 178 167 _max_nb_general_register = 0; 168 _max_nb_special_register = 0; 169 for (uint32_t i=0; i<nb_ooo_engine; i++) 170 { 171 if (_nb_general_register[i] > _max_nb_general_register) _max_nb_general_register = _nb_general_register[i]; 172 if (_nb_special_register[i] > _max_nb_special_register) _max_nb_special_register = _nb_special_register[i]; 173 } 174 175 _max_size_store_queue = 0; 176 _max_size_load_queue = 0; 177 for (uint32_t i=0; i<nb_load_store_unit; i++) 178 { 179 if (_size_store_queue[i] > _max_size_store_queue) _max_size_store_queue = _size_store_queue[i]; 180 if (_size_load_queue [i] > _max_size_load_queue ) _max_size_load_queue = _size_load_queue [i]; 181 } 182 183 _have_port_load_queue_ptr= _max_size_load_queue >= 2; 184 185 _size_general_register = log2(_max_nb_general_register); 186 _size_special_register = log2(_max_nb_special_register); 179 _max_nb_general_register = max<uint32_t>(nb_general_register,nb_ooo_engine); 180 _max_nb_special_register = max<uint32_t>(nb_special_register,nb_ooo_engine); 181 182 _max_size_store_queue = max<uint32_t>(size_store_queue,nb_load_store_unit); 183 _max_size_load_queue = max<uint32_t>(size_load_queue ,nb_load_store_unit); 187 184 188 185 uint32_t _nb_thread = get_nb_thread(_nb_context, … … 190 187 _nb_ooo_engine); 191 188 189 uint32_t _max_nb_inst_memory = max<uint32_t>(_nb_inst_memory,_nb_load_store_unit); 190 192 191 _set_read_unit_source_register_write = new std::set<uint32_t> [_nb_read_unit]; 193 192 _set_read_unit_source_bypass_write = new std::set<uint32_t> [_nb_read_unit]; … … 198 197 _read_unit_nb_bypass_memory = new uint32_t [_nb_read_unit]; 199 198 200 _link_read_unit_with_load_store_unit = new bool * [nb_read_unit];201 _link_read_unit_with_write_unit = new bool * [nb_read_unit];202 _link_read_unit_with_thread = new bool * [nb_read_unit];199 _link_read_unit_with_load_store_unit = new bool ** [nb_read_unit]; 200 _link_read_unit_with_write_unit = new bool * [nb_read_unit]; 201 _link_read_unit_with_thread = new bool * [nb_read_unit]; 203 202 204 203 for (uint32_t i=0; i<_nb_read_unit; i++) … … 208 207 _read_unit_nb_bypass_memory [i] = 0; 209 208 210 _link_read_unit_with_load_store_unit [i] = new bool [_nb_execute_unit];211 _link_read_unit_with_write_unit [i] = new bool [_nb_write_unit];212 _link_read_unit_with_thread [i] = new bool [_nb_thread];209 _link_read_unit_with_load_store_unit [i] = new bool * [_nb_execute_unit]; 210 _link_read_unit_with_write_unit [i] = new bool [_nb_write_unit]; 211 _link_read_unit_with_thread [i] = new bool [_nb_thread]; 213 212 214 213 for (uint32_t j=0; j<_nb_execute_unit; j++) 215 _link_read_unit_with_load_store_unit [i][j] = false; 214 { 215 _link_read_unit_with_load_store_unit [i][j] = new bool [_max_nb_inst_memory]; 216 217 for (uint32_t k=0; k<_max_nb_inst_memory; k++) 218 _link_read_unit_with_load_store_unit [i][j][k] = false; 219 } 216 220 for (uint32_t j=0; j<_nb_write_unit; j++) 217 221 _link_read_unit_with_write_unit [i][j] = false; … … 220 224 221 225 // fill link array 222 for (uint32_t j=0; j<_nb_execute_unit; j++) 223 { 224 // Test if this read unit can send operation at this execute_unit 225 if (_read_unit_to_execution_unit_table_routing [i][j]) 226 { 227 if (_is_load_store_unit [j]) 228 { 229 _link_read_unit_with_load_store_unit [i][j] = true; 230 } 231 232 for (uint32_t k=0; k<_nb_thread; k++) 233 { 234 if (_read_unit_to_execution_unit_table_thread [j][k]) 235 { 236 _link_read_unit_with_thread [i][k] = true; 237 } 238 } 239 // Scearch associed write_unit 240 for (uint32_t k=0; k<_nb_write_unit; k++) 241 { 242 // Test if this execute_unit can send operation at this write_unit 243 // Test if have not a previous link ! (a same read_unit can send operation à two execute_unit and each execute_unit send at the same write_unit) 244 if (_execution_unit_to_write_unit_table_routing [j][k] and 245 not _link_read_unit_with_write_unit [i][k]) 246 // if yes : this write_unit can have operation sended by this read_unit 247 { 248 _link_read_unit_with_write_unit [i][k] = true; 249 } 250 } 251 } 252 } 226 for (uint32_t x=0; x<_nb_execute_unit; x++) 227 for (uint32_t y=0; y<_nb_execute_unit_port[x]; y++) 228 { 229 // Test if this read unit can send operation at this execute_unit 230 if (_read_unit_to_execution_unit_table_routing [i][x][y]) 231 { 232 if (_is_load_store_unit [x]) 233 { 234 _link_read_unit_with_load_store_unit [i][x][y] = true; 235 } 236 237 for (uint32_t k=0; k<_nb_thread; k++) 238 { 239 if (_read_unit_to_execution_unit_table_thread [x][k]) 240 { 241 _link_read_unit_with_thread [i][k] = true; 242 } 243 } 244 // Scearch associed write_unit 245 for (uint32_t k=0; k<_nb_write_unit; k++) 246 { 247 // Test if this execute_unit can send operation at this write_unit 248 // Test if have not a previous link ! (a same read_unit can send operation à two execute_unit and each execute_unit send at the same write_unit) 249 if (_execution_unit_to_write_unit_table_routing [x][y][k] and 250 not _link_read_unit_with_write_unit [i][k]) 251 // if yes : this write_unit can have operation sended by this read_unit 252 { 253 _link_read_unit_with_write_unit [i][k] = true; 254 } 255 } 256 } 257 } 253 258 } 254 259 … … 258 263 259 264 260 std::cout << "_link_......." << std::endl; 261 std::cout << "_link_read_unit_with_load_store_unit" << std::endl; 265 // std::cout << "_link_......." << std::endl; 266 // std::cout << "_link_read_unit_with_load_store_unit" << std::endl; 267 // for (uint32_t i=0; i<_nb_read_unit; i++) 268 // { 269 // std::cout << "\t" << std::endl; 270 // for (uint32_t j=0; j<_nb_execute_unit; j++) 271 // for (uint32_t k=0; k<_nb_execute_unit_port[j]; k++) 272 // std::cout << _link_read_unit_with_load_store_unit [i][j][k] << " "; 273 // std::cout << std::endl; 274 // } 275 // std::cout << "_link_read_unit_with_write_unit" << std::endl; 276 // for (uint32_t i=0; i<_nb_read_unit; i++) 277 // { 278 // std::cout << "\t" << std::endl; 279 // for (uint32_t j=0; j<_nb_write_unit; j++) 280 // std::cout << _link_read_unit_with_write_unit [i][j] << " "; 281 // std::cout << std::endl; 282 // } 283 // std::cout << "_link_read_unit_with_thread" << std::endl; 284 // for (uint32_t i=0; i<_nb_read_unit; i++) 285 // { 286 // std::cout << "\t" << std::endl; 287 // for (uint32_t j=0; j<_nb_thread; j++) 288 // std::cout << _link_read_unit_with_thread [i][j] << " "; 289 // std::cout << std::endl; 290 // } 291 292 // std::cout << "_set_......." << std::endl; 293 262 294 for (uint32_t i=0; i<_nb_read_unit; i++) 263 295 { 264 std::cout << "\t" << std::endl; 265 for (uint32_t j=0; j<_nb_execute_unit; j++) 266 std::cout << _link_read_unit_with_load_store_unit [i][j] << " "; 267 std::cout << std::endl; 268 } 269 std::cout << "_link_read_unit_with_write_unit" << std::endl; 270 for (uint32_t i=0; i<_nb_read_unit; i++) 271 { 272 std::cout << "\t" << std::endl; 273 for (uint32_t j=0; j<_nb_write_unit; j++) 274 std::cout << _link_read_unit_with_write_unit [i][j] << " "; 275 std::cout << std::endl; 276 } 277 std::cout << "_link_read_unit_with_thread" << std::endl; 278 for (uint32_t i=0; i<_nb_read_unit; i++) 279 { 280 std::cout << "\t" << std::endl; 281 for (uint32_t j=0; j<_nb_thread; j++) 282 std::cout << _link_read_unit_with_thread [i][j] << " "; 283 std::cout << std::endl; 284 } 285 286 std::cout << "_set_......." << std::endl; 287 288 for (uint32_t i=0; i<_nb_read_unit; i++) 289 { 290 std::cout << " * Read_unit[" << i << "]" << std::endl; 296 // std::cout << " * Read_unit[" << i << "]" << std::endl; 291 297 for (uint32_t j=0; j<_nb_write_unit; j++) 292 298 { 293 std::cout << " * Write_unit[" << j << "]" << std::endl;299 // std::cout << " * Write_unit[" << j << "]" << std::endl; 294 300 // Test the thread executed on this write_unit 295 301 for (uint32_t k=0; k<_nb_thread; k++) 296 302 { 297 std::cout << " * Thread[" << k << "]" << std::endl;303 // std::cout << " * Thread[" << k << "]" << std::endl; 298 304 if ( (_execution_unit_to_write_unit_table_thread [j][k]) and 299 305 (_link_read_unit_with_thread [i][k])) 300 306 { 301 std::cout << " * Find !!!!" << std::endl;302 std::cout << " * Read_unit "+toString(i)+" must take the gpr_write with write_unit "+toString(j)+"." << std::endl;307 // std::cout << " * Find !!!!" << std::endl; 308 // std::cout << " * Read_unit "+toString(i)+" must take the gpr_write with write_unit "+toString(j)+"." << std::endl; 303 309 _set_read_unit_source_register_write[i].insert(j); 304 310 _read_unit_nb_register_write [i] ++; 305 311 306 std::cout << " * bypass_write : " << _nb_bypass_write [j] << std::endl;307 std::cout << " * Read_unit "+toString(i)+" must take the bypass_write with write_unit "+toString(j)+"." << std::endl;312 // std::cout << " * bypass_write : " << _nb_bypass_write [j] << std::endl; 313 // std::cout << " * Read_unit "+toString(i)+" must take the bypass_write with write_unit "+toString(j)+"." << std::endl; 308 314 _set_read_unit_source_bypass_write [i].insert(j); 309 315 _read_unit_nb_bypass_write [i] += _nb_bypass_write [j]; … … 316 322 for (uint32_t i=0; i<_nb_read_unit; i++) 317 323 { 318 std::cout << " * Read_unit[" << i << "]" << std::endl;324 // std::cout << " * Read_unit[" << i << "]" << std::endl; 319 325 for (uint32_t j=0; j<_nb_execute_unit; j++) 320 326 { 321 std::cout << " * Execute_unit[" << j << "]" << std::endl; 327 uint32_t x = translate_num_execute_unit [j]; 328 329 // std::cout << " * Execute_unit[" << j << "]" << std::endl; 322 330 // Test the thread executed on this execute_unit 323 331 for (uint32_t k=0; k<_nb_thread; k++) 324 332 { 325 std::cout << " * Thread[" << k << "]" << std::endl;333 // std::cout << " * Thread[" << k << "]" << std::endl; 326 334 if ((_read_unit_to_execution_unit_table_thread [j][k]) and 327 335 (_link_read_unit_with_thread [i][k]) and 328 336 (_is_load_store_unit [j])) 329 337 { 330 std::cout << " * Find !!!!" << std::endl;331 std::cout << " * Bypass_memory !!!!" << std::endl;332 std::cout << " * Read_unit "+toString(i)+" must take the bypass_memory with load_store_unit "+toString(j)+"." << std::endl;338 // std::cout << " * Find !!!!" << std::endl; 339 // std::cout << " * Bypass_memory !!!!" << std::endl; 340 // std::cout << " * Read_unit "+toString(i)+" must take the bypass_memory with load_store_unit "+toString(j)+"." << std::endl; 333 341 334 342 _set_read_unit_source_bypass_memory [i].insert(j); 335 _read_unit_nb_bypass_memory [i] += _nb_bypass_memory [j]; 336 break; 343 _read_unit_nb_bypass_memory [i] += _nb_bypass_memory [x]; 344 345 break; // loop on thread 337 346 } 338 347 } … … 340 349 } 341 350 351 uint32_t size_ooo_engine_id = log2(nb_ooo_engine ); 352 uint32_t size_general_register = log2(_max_nb_general_register); 353 uint32_t size_special_register = log2(_max_nb_special_register); 354 342 355 test(); 356 357 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : glue"); 358 359 _param_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::execute_loop_glue::Parameters 360 (_nb_gpr_write , 361 _nb_spr_write , 362 size_ooo_engine_id , 363 size_general_register , 364 size_special_register , 365 size_general_data , 366 size_special_data ); 367 368 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : read_unit"); 343 369 344 370 _param_read_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::Parameters * [_nb_read_unit]; … … 351 377 _nb_ooo_engine , 352 378 _nb_packet , 353 _size_general_data ,354 _size_special_data ,379 size_general_data , 380 size_special_data , 355 381 _max_nb_general_register , 356 382 _max_nb_special_register , … … 363 389 _read_unit_nb_bypass_memory [i]); 364 390 391 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : execute_unit"); 392 365 393 _param_functionnal_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::Parameters * [_nb_functionnal_unit]; 366 394 _param_load_store_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Parameters * [_nb_load_store_unit]; 367 395 368 uint32_t x=0;369 uint32_t y=0;370 371 396 for (uint32_t i=0; i<_nb_execute_unit; i++) 372 if (_is_load_store_unit [i] == false) 373 { 374 _translate_num_execute_unit [i] = x; 375 397 { 398 uint32_t x = _translate_num_execute_unit [i]; 399 if (_is_load_store_unit [i] == false) 376 400 _param_functionnal_unit [x] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::Parameters 377 401 (_nb_context , … … 379 403 _nb_ooo_engine , 380 404 _nb_packet , 381 _size_general_data ,405 size_general_data , 382 406 _max_nb_general_register , 383 _size_special_data ,407 size_special_data , 384 408 _max_nb_special_register , 385 409 _max_size_store_queue , 386 410 _max_size_load_queue , 387 _timing [ i],411 _timing [x], 388 412 _get_custom_information ); 389 390 x++; 391 } 392 else 393 { 394 _translate_num_execute_unit [i] = y; 395 396 _param_load_store_unit [y] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Parameters 397 (_size_store_queue [y], 398 _size_load_queue [y], 399 _size_speculative_access_queue [y], 400 _nb_port_check [y], 401 _speculative_load [y], 402 _nb_bypass_memory [y], 413 else 414 _param_load_store_unit [x] = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Parameters 415 (_size_store_queue [x], 416 _size_load_queue [x], 417 _size_speculative_access_queue [x], 418 _nb_port_check [x], 419 _speculative_load [x], 420 _nb_bypass_memory [x], 421 _nb_cache_port [x], 422 _nb_inst_memory [x], 403 423 _nb_context , 404 424 _nb_front_end , 405 425 _nb_ooo_engine , 406 426 _nb_packet , 407 _size_general_data ,408 _size_special_data ,427 size_general_data , 428 size_special_data , 409 429 _max_nb_special_register , 410 430 _max_nb_general_register ); 411 412 y ++; 413 } 414 415 for (uint32_t i=0; i<_nb_load_store_unit; i++) 416 431 } 432 433 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : write_unit"); 434 417 435 _param_write_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * [_nb_write_unit]; 418 436 for (uint32_t i=0; i<_nb_write_unit; i++) … … 424 442 _nb_ooo_engine , 425 443 _nb_packet , 426 _size_general_data ,444 size_general_data , 427 445 _max_nb_general_register , 428 _size_special_data ,446 size_special_data , 429 447 _max_nb_special_register , 430 448 _nb_bypass_write [i]); 431 449 432 450 451 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : read_unit_to_execution_unit"); 452 433 453 _param_read_unit_to_execution_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::network::read_unit_to_execution_unit::Parameters 434 454 (_nb_read_unit , 455 _nb_inst_retire , 435 456 _nb_execute_unit , 457 _nb_execute_unit_port , 436 458 _nb_context , 437 459 _nb_front_end , 438 460 _nb_ooo_engine , 439 461 _nb_packet , 440 _size_general_data ,441 _size_special_data ,462 size_general_data , 463 size_special_data , 442 464 _max_nb_general_register , 443 465 _max_nb_special_register , … … 449 471 _read_unit_to_execution_unit_table_thread ); 450 472 473 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : execution_unit_to_write_unit"); 474 451 475 _param_execution_unit_to_write_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::network::execution_unit_to_write_unit::Parameters 452 476 (_nb_execute_unit , 477 _nb_execute_unit_port , 453 478 _nb_write_unit , 454 479 _nb_context , … … 456 481 _nb_ooo_engine , 457 482 _nb_packet , 458 _size_general_data ,459 _size_special_data ,483 size_general_data , 484 size_special_data , 460 485 _max_nb_general_register , 461 486 _max_nb_special_register , … … 464 489 _execution_unit_to_write_unit_table_thread ); 465 490 491 log_printf(TRACE,Execute_loop,FUNCTION,"Parameters : register_unit"); 492 466 493 _param_register_unit = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::Parameters 467 494 (_nb_ooo_engine , 468 _size_general_data ,469 _size_special_data ,495 size_general_data , 496 size_special_data , 470 497 _nb_gpr_read , 471 498 _nb_gpr_write , … … 483 510 _nb_inst_retire_rob ); 484 511 485 486 512 _max_size_dcache_context_id = 0; 487 513 _max_size_dcache_packet_id = 0; … … 494 520 495 521 _have_port_dcache_context_id = (_max_size_dcache_context_id>1); 522 523 524 if (is_toplevel) 525 { 526 _size_context_id = log2(nb_context); 527 _size_front_end_id = log2(nb_front_end); 528 _size_ooo_engine_id = size_ooo_engine_id; 529 _size_rob_ptr = log2(nb_packet); 530 _size_general_data = size_general_data; 531 _size_special_data = size_special_data; 532 _size_general_register = size_general_register; 533 _size_special_register = size_special_register; 534 535 _size_store_queue_ptr = log2(_max_size_store_queue); 536 _size_load_queue_ptr = log2(_max_size_load_queue ); 537 538 _have_port_context_id = _size_context_id > 0; 539 _have_port_front_end_id = _size_front_end_id > 0; 540 _have_port_ooo_engine_id = _size_ooo_engine_id > 0; 541 _have_port_rob_ptr = _size_rob_ptr > 0; 542 _have_port_load_queue_ptr= _size_load_queue_ptr > 0; 543 544 copy(); 545 } 496 546 497 547 log_printf(FUNC,Execute_loop,FUNCTION,"End"); … … 511 561 #undef FUNCTION 512 562 #define FUNCTION "Execute_loop::~Parameters" 513 Parameters::~Parameters ( )563 Parameters::~Parameters (void) 514 564 { 515 565 log_printf(FUNC,Execute_loop,FUNCTION,"Begin"); 516 566 567 delete _param_glue; 568 for (uint32_t i=0; i<_nb_read_unit; i++) 569 delete _param_read_unit [i]; 517 570 delete [] _param_read_unit; 571 572 for (uint32_t i=0; i<_nb_execute_unit; i++) 573 { 574 uint32_t x = _translate_num_execute_unit [i]; 575 576 if (_is_load_store_unit [i] == false) 577 delete _param_functionnal_unit [x]; 578 else 579 delete _param_load_store_unit [x]; 580 } 518 581 delete [] _param_functionnal_unit; 519 582 delete [] _param_load_store_unit; 583 for (uint32_t i=0; i<_nb_write_unit; i++) 584 delete _param_write_unit [i]; 520 585 delete [] _param_write_unit; 521 586 delete _param_read_unit_to_execution_unit; … … 535 600 delete [] _is_load_store_unit; 536 601 delete [] _translate_num_execute_unit; 602 delete [] _nb_execute_unit_port; 603 log_printf(FUNC,Execute_loop,FUNCTION,"End"); 604 }; 605 606 607 #undef FUNCTION 608 #define FUNCTION "Execute_loop::copy" 609 void Parameters::copy (void) 610 { 611 log_printf(FUNC,Execute_loop,FUNCTION,"Begin"); 612 613 COPY(_param_glue); 614 for (uint32_t i=0; i<_nb_read_unit; i++) 615 COPY(_param_read_unit [i]); 616 617 for (uint32_t i=0; i<_nb_execute_unit; i++) 618 { 619 uint32_t x = _translate_num_execute_unit [i]; 620 621 if (_is_load_store_unit [i] == false) 622 COPY(_param_functionnal_unit [x]); 623 else 624 COPY(_param_load_store_unit [x]); 625 } 626 for (uint32_t i=0; i<_nb_write_unit; i++) 627 COPY(_param_write_unit [i]); 628 COPY(_param_read_unit_to_execution_unit); 629 COPY(_param_execution_unit_to_write_unit); 630 COPY(_param_register_unit); 537 631 538 632 log_printf(FUNC,Execute_loop,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_msg_error.cpp
r81 r88 25 25 Parameters_test test ("Execute_loop"); 26 26 27 for (uint32_t i=0; i<_nb_functionnal_unit; i++) 28 if (_nb_inst_functionnal_unit [i] != 1) 29 test.error(toString(_("Functionnal_unit [%d] must treat once instruction.\n"),i)); 30 27 31 log_printf(FUNC,Execute_loop,FUNCTION,"End"); 28 32 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_print.cpp
r81 r88 68 68 xml. singleton_begin("speculative_load "); xml.attribut("value",toString(_speculative_load [i])); xml.singleton_end(); 69 69 xml. singleton_begin("nb_bypass_memory "); xml.attribut("value",toString(_nb_bypass_memory [i])); xml.singleton_end(); 70 xml. singleton_begin("nb_cache_port "); xml.attribut("value",toString(_nb_cache_port [i])); xml.singleton_end(); 71 xml. singleton_begin("nb_inst_memory "); xml.attribut("value",toString(_nb_inst_memory [i])); xml.singleton_end(); 70 72 xml.balise_close(); 71 73 } … … 109 111 str += _param_execution_unit_to_write_unit->print(depth+1); 110 112 str += _param_register_unit->print(depth+1); 113 str += _param_glue->print(depth+1); 111 114 112 115 xml.comment("\n"+str);
Note: See TracChangeset
for help on using the changeset viewer.