Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_allocation.cpp
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_allocation.cpp
r81 r88 57 57 // ~~~~~[ Interface "read_unit_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58 58 { 59 ALLOC 1_INTERFACE("read_unit_out", IN, EAST, "Output of read_unit", _param->_nb_read_unit);59 ALLOC2_INTERFACE("read_unit_out", IN, EAST, "Output of read_unit",_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 60 60 61 ALLOC1_VALACK_IN ( in_READ_UNIT_OUT_VAL,VAL); 62 ALLOC1_VALACK_OUT(out_READ_UNIT_OUT_ACK,ACK); 63 64 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id); 65 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_FRONT_END_ID ,"FRONT_END_ID" ,Tcontext_t ,_param->_size_front_end_id); 66 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_OOO_ENGINE_ID ,"OOO_ENGINE_ID" ,Tcontext_t ,_param->_size_ooo_engine_id); 67 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_PACKET_ID ,"PACKET_ID" ,Tpacket_t ,_param->_size_packet_id); 68 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation); 69 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type); 70 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t ,log2(_param->_size_store_queue)); 71 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_LOAD_QUEUE_PTR_WRITE ,"LOAD_QUEUE_PTR_WRITE" ,Tlsq_ptr_t ,log2(_param->_size_load_queue)); 72 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_HAS_IMMEDIAT ,"HAS_IMMEDIAT" ,Tcontrol_t ,1); 73 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_IMMEDIAT ,"IMMEDIAT" ,Tgeneral_data_t ,_param->_size_general_data); 74 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_DATA_RA ,"DATA_RA" ,Tgeneral_data_t ,_param->_size_general_data); 75 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_DATA_RB ,"DATA_RB" ,Tgeneral_data_t ,_param->_size_general_data); 76 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_DATA_RC ,"DATA_RC" ,Tspecial_data_t ,_param->_size_special_data); 77 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_WRITE_RD ,"WRITE_RD" ,Tcontrol_t ,1); 78 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_NUM_REG_RD ,"NUM_REG_RD" ,Tgeneral_address_t,_param->_size_general_register); 79 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_WRITE_RE ,"WRITE_RE" ,Tcontrol_t ,1); 80 ALLOC1_SIGNAL_IN ( in_READ_UNIT_OUT_NUM_REG_RE ,"NUM_REG_RE" ,Tspecial_address_t,_param->_size_special_register); 61 _ALLOC2_VALACK_IN ( in_READ_UNIT_OUT_VAL,VAL,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 62 _ALLOC2_VALACK_OUT(out_READ_UNIT_OUT_ACK,ACK,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 63 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 64 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_FRONT_END_ID ,"FRONT_END_ID" ,Tcontext_t ,_param->_size_front_end_id ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 65 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_OOO_ENGINE_ID ,"OOO_ENGINE_ID" ,Tcontext_t ,_param->_size_ooo_engine_id ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 66 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_PACKET_ID ,"PACKET_ID" ,Tpacket_t ,_param->_size_rob_ptr ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 67 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 68 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 69 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_STORE_QUEUE_PTR_WRITE,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t ,_param->_size_store_queue_ptr ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 70 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_LOAD_QUEUE_PTR_WRITE ,"LOAD_QUEUE_PTR_WRITE" ,Tlsq_ptr_t ,_param->_size_load_queue_ptr ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 71 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_HAS_IMMEDIAT ,"HAS_IMMEDIAT" ,Tcontrol_t ,1 ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 72 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_IMMEDIAT ,"IMMEDIAT" ,Tgeneral_data_t ,_param->_size_general_data ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 73 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_DATA_RA ,"DATA_RA" ,Tgeneral_data_t ,_param->_size_general_data ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 74 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_DATA_RB ,"DATA_RB" ,Tgeneral_data_t ,_param->_size_general_data ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 75 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_DATA_RC ,"DATA_RC" ,Tspecial_data_t ,_param->_size_special_data ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 76 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_WRITE_RD ,"WRITE_RD" ,Tcontrol_t ,1 ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 77 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_NUM_REG_RD ,"NUM_REG_RD" ,Tgeneral_address_t,_param->_size_general_register ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 78 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_WRITE_RE ,"WRITE_RE" ,Tcontrol_t ,1 ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 79 _ALLOC2_SIGNAL_IN ( in_READ_UNIT_OUT_NUM_REG_RE ,"NUM_REG_RE" ,Tspecial_address_t,_param->_size_special_register ,_param->_nb_read_unit,_param->_nb_read_unit_port[it1]); 81 80 } 82 81 // ~~~~~[ Interface "execute_unit_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 82 { 84 ALLOC 1_INTERFACE("execute_unit_in", OUT, WEST, "Input of execute_unit", _param->_nb_execute_unit);83 ALLOC2_INTERFACE("execute_unit_in", OUT, WEST, "Input of execute_unit", _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 85 84 86 ALLOC1_VALACK_OUT(out_EXECUTE_UNIT_IN_VAL,VAL); 87 ALLOC1_VALACK_IN ( in_EXECUTE_UNIT_IN_ACK,ACK); 85 _ALLOC2_VALACK_OUT(out_EXECUTE_UNIT_IN_VAL,VAL, _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 86 _ALLOC2_VALACK_IN ( in_EXECUTE_UNIT_IN_ACK,ACK, _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 87 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 88 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_FRONT_END_ID ,"FRONT_END_ID" ,Tcontext_t ,_param->_size_front_end_id , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 89 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_OOO_ENGINE_ID ,"OOO_ENGINE_ID" ,Tcontext_t ,_param->_size_ooo_engine_id , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 90 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_PACKET_ID ,"PACKET_ID" ,Tpacket_t ,_param->_size_rob_ptr , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 91 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 92 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 93 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT ,"HAS_IMMEDIAT" ,Tcontrol_t ,1 , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 94 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RC ,"DATA_RC" ,Tspecial_data_t ,_param->_size_special_data , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 95 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_WRITE_RD ,"WRITE_RD" ,Tcontrol_t ,1 , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 96 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_WRITE_RE ,"WRITE_RE" ,Tcontrol_t ,1 , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 97 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_NUM_REG_RE ,"NUM_REG_RE" ,Tspecial_address_t,_param->_size_special_register , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 98 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_WRITE,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t ,_param->_size_store_queue_ptr , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 99 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_LOAD_QUEUE_PTR_WRITE ,"LOAD_QUEUE_PTR_WRITE" ,Tlsq_ptr_t ,_param->_size_load_queue_ptr , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 100 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_IMMEDIAT ,"IMMEDIAT" ,Tgeneral_data_t ,_param->_size_general_data , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 101 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RA ,"DATA_RA" ,Tgeneral_data_t ,_param->_size_general_data , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 102 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RB ,"DATA_RB" ,Tgeneral_data_t ,_param->_size_general_data , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 103 _ALLOC2_SIGNAL_OUT(out_EXECUTE_UNIT_IN_NUM_REG_RD ,"NUM_REG_RD" ,Tgeneral_address_t,_param->_size_general_register , _param->_nb_execute_unit, _param->_nb_execute_unit_port [it1]); 104 } 88 105 89 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id);90 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_FRONT_END_ID ,"FRONT_END_ID" ,Tcontext_t ,_param->_size_front_end_id);91 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_OOO_ENGINE_ID ,"OOO_ENGINE_ID" ,Tcontext_t ,_param->_size_ooo_engine_id);92 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_PACKET_ID ,"PACKET_ID" ,Tpacket_t ,_param->_size_packet_id);93 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation);94 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type);95 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_HAS_IMMEDIAT ,"HAS_IMMEDIAT" ,Tcontrol_t ,1);96 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RC ,"DATA_RC" ,Tspecial_data_t ,_param->_size_special_data);97 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_WRITE_RD ,"WRITE_RD" ,Tcontrol_t ,1);98 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_WRITE_RE ,"WRITE_RE" ,Tcontrol_t ,1);99 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_NUM_REG_RE ,"NUM_REG_RE" ,Tspecial_address_t,_param->_size_special_register);100 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_STORE_QUEUE_PTR_WRITE,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t ,log2(_param->_size_store_queue));101 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_LOAD_QUEUE_PTR_WRITE ,"LOAD_QUEUE_PTR_WRITE" ,Tlsq_ptr_t ,log2(_param->_size_load_queue));102 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_IMMEDIAT ,"IMMEDIAT" ,Tgeneral_data_t ,_param->_size_general_data);103 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RA ,"DATA_RA" ,Tgeneral_data_t ,_param->_size_general_data);104 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_DATA_RB ,"DATA_RB" ,Tgeneral_data_t ,_param->_size_general_data);105 ALLOC1_SIGNAL_OUT(out_EXECUTE_UNIT_IN_NUM_REG_RD ,"NUM_REG_RD" ,Tgeneral_address_t,_param->_size_general_register);106 }107 106 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 108 _destination = new std::list<uint32_t> ** [_param->_nb_read_unit]; 107 if (usage_is_set(_usage,USE_SYSTEMC)) 108 { 109 _destination = new std::list<destination_t> ** [_param->_nb_read_unit]; 109 110 for (uint32_t i=0; i<_param->_nb_read_unit; i++) 110 111 { 111 _destination [i] = new std::list< uint32_t> * [_param->_nb_thread];112 _destination [i] = new std::list<destination_t> * [_param->_nb_thread]; 112 113 for (uint32_t j=0; j<_param->_nb_thread; j++) 113 114 { 114 _destination [i][j] = new std::list< uint32_t> [_param->_nb_type];115 _destination [i][j] = new std::list<destination_t> [_param->_nb_type]; 115 116 } 117 } 116 118 } 117 119 118 120 #ifdef POSITION 119 _component->generate_file(); 121 if (usage_is_set(_usage,USE_POSITION)) 122 _component->generate_file(); 120 123 #endif 121 124
Note: See TracChangeset
for help on using the changeset viewer.