Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.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/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.cpp
r81 r88 38 38 log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Execution_unit_to_Write_unit == true 41 log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 43 std::cout << *param << std::endl; 44 #endif 45 40 46 log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation"); 41 47 … … 47 53 48 54 #ifdef STATISTICS 49 if ( _usage & USE_STATISTICS)55 if (usage_is_set(_usage,USE_STATISTICS)) 50 56 { 51 57 log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation of statistics"); … … 56 62 57 63 #ifdef VHDL 58 if ( _usage & USE_VHDL)64 if (usage_is_set(_usage,USE_VHDL)) 59 65 { 60 66 // generate the vhdl … … 66 72 67 73 #ifdef SYSTEMC 68 if ( _usage & USE_SYSTEMC)74 if (usage_is_set(_usage,USE_SYSTEMC)) 69 75 { 70 76 log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Method - transition"); … … 84 90 sensitive << (*(in_CLOCK)).pos(); 85 91 for (uint32_t i=0; i<_param->_nb_execute_unit; i++) 86 { 87 if (_param->_have_port_context_id) 88 sensitive << (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [i])); 89 if (_param->_have_port_front_end_id) 90 sensitive << (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [i])); 91 if (_param->_have_port_ooo_engine_id) 92 sensitive << (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [i])); 93 if (_param->_have_port_packet_id) 94 sensitive << (*(in_EXECUTE_UNIT_OUT_PACKET_ID [i])); 95 96 sensitive << (*(in_EXECUTE_UNIT_OUT_VAL [i])) 97 //<< (*(in_EXECUTE_UNIT_OUT_OPERATION [i])) 98 //<< (*(in_EXECUTE_UNIT_OUT_TYPE [i])) 99 << (*(in_EXECUTE_UNIT_OUT_WRITE_RD [i])) 100 << (*(in_EXECUTE_UNIT_OUT_NUM_REG_RD [i])) 101 << (*(in_EXECUTE_UNIT_OUT_DATA_RD [i])) 102 << (*(in_EXECUTE_UNIT_OUT_WRITE_RE [i])) 103 << (*(in_EXECUTE_UNIT_OUT_NUM_REG_RE [i])) 104 << (*(in_EXECUTE_UNIT_OUT_DATA_RE [i])) 105 << (*(in_EXECUTE_UNIT_OUT_EXCEPTION [i])) 106 << (*(in_EXECUTE_UNIT_OUT_NO_SEQUENCE [i])) 107 << (*(in_EXECUTE_UNIT_OUT_ADDRESS [i])); 108 } 92 for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++) 93 { 94 if (_param->_have_port_context_id) 95 sensitive << (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [i][j])); 96 if (_param->_have_port_front_end_id) 97 sensitive << (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [i][j])); 98 if (_param->_have_port_ooo_engine_id) 99 sensitive << (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [i][j])); 100 if (_param->_have_port_rob_ptr ) 101 sensitive << (*(in_EXECUTE_UNIT_OUT_PACKET_ID [i][j])); 102 103 sensitive << (*(in_EXECUTE_UNIT_OUT_VAL [i][j])) 104 //<< (*(in_EXECUTE_UNIT_OUT_OPERATION [i][j])) 105 //<< (*(in_EXECUTE_UNIT_OUT_TYPE [i][j])) 106 << (*(in_EXECUTE_UNIT_OUT_WRITE_RD [i][j])) 107 << (*(in_EXECUTE_UNIT_OUT_NUM_REG_RD [i][j])) 108 << (*(in_EXECUTE_UNIT_OUT_DATA_RD [i][j])) 109 << (*(in_EXECUTE_UNIT_OUT_WRITE_RE [i][j])) 110 << (*(in_EXECUTE_UNIT_OUT_NUM_REG_RE [i][j])) 111 << (*(in_EXECUTE_UNIT_OUT_DATA_RE [i][j])) 112 << (*(in_EXECUTE_UNIT_OUT_EXCEPTION [i][j])) 113 << (*(in_EXECUTE_UNIT_OUT_NO_SEQUENCE [i][j])) 114 << (*(in_EXECUTE_UNIT_OUT_ADDRESS [i][j])); 115 } 109 116 for (uint32_t i=0; i<_param->_nb_write_unit; i++) 110 117 sensitive << (*(in_WRITE_UNIT_IN_ACK [i])); … … 113 120 // List dependency information 114 121 for (uint32_t i=0; i<_param->_nb_execute_unit; i++) 115 { 116 (*(out_EXECUTE_UNIT_OUT_ACK [i])) (*(in_EXECUTE_UNIT_OUT_VAL [i])); 117 if (_param->_have_port_context_id) 118 (*(out_EXECUTE_UNIT_OUT_ACK [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [i])); 119 if (_param->_have_port_front_end_id) 120 (*(out_EXECUTE_UNIT_OUT_ACK [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [i])); 121 if (_param->_have_port_ooo_engine_id) 122 (*(out_EXECUTE_UNIT_OUT_ACK [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [i])); 123 124 for (uint32_t j=0; j<_param->_nb_write_unit; j++) 125 (*(out_EXECUTE_UNIT_OUT_ACK [i])) (*(in_WRITE_UNIT_IN_ACK [j])); 126 } 122 for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++) 123 { 124 (*(out_EXECUTE_UNIT_OUT_ACK [i][j])) (*(in_EXECUTE_UNIT_OUT_VAL [i][j])); 125 if (_param->_have_port_context_id) 126 (*(out_EXECUTE_UNIT_OUT_ACK [i][j])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [i][j])); 127 if (_param->_have_port_front_end_id) 128 (*(out_EXECUTE_UNIT_OUT_ACK [i][j])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [i][j])); 129 if (_param->_have_port_ooo_engine_id) 130 (*(out_EXECUTE_UNIT_OUT_ACK [i][j])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [i][j])); 131 132 for (uint32_t x=0; x<_param->_nb_write_unit; x++) 133 (*(out_EXECUTE_UNIT_OUT_ACK [i][j])) (*(in_WRITE_UNIT_IN_ACK [x])); 134 } 127 135 128 136 for (uint32_t i=0; i<_param->_nb_write_unit; i++) 129 137 { 130 138 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 131 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 132 { 133 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 134 if (_param->_have_port_context_id) 135 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 136 if (_param->_have_port_front_end_id) 137 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 138 if (_param->_have_port_ooo_engine_id) 139 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 139 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 140 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 141 { 142 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 143 if (_param->_have_port_context_id) 144 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 145 if (_param->_have_port_front_end_id) 146 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 147 if (_param->_have_port_ooo_engine_id) 148 (*(out_WRITE_UNIT_IN_VAL [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 140 149 } 141 150 … … 143 152 { 144 153 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 145 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 146 { 147 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 148 if (_param->_have_port_context_id) 149 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 150 if (_param->_have_port_front_end_id) 151 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 152 if (_param->_have_port_ooo_engine_id) 153 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 154 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 155 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 156 { 157 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 158 if (_param->_have_port_context_id) 159 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 160 if (_param->_have_port_front_end_id) 161 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 162 if (_param->_have_port_ooo_engine_id) 163 (*(out_WRITE_UNIT_IN_CONTEXT_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 154 164 } 155 165 } … … 157 167 { 158 168 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 159 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 160 { 161 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 162 if (_param->_have_port_context_id) 163 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 164 if (_param->_have_port_front_end_id) 165 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 166 if (_param->_have_port_ooo_engine_id) 167 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 169 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 170 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 171 { 172 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 173 if (_param->_have_port_context_id) 174 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 175 if (_param->_have_port_front_end_id) 176 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 177 if (_param->_have_port_ooo_engine_id) 178 (*(out_WRITE_UNIT_IN_FRONT_END_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 168 179 } 169 180 } … … 171 182 { 172 183 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 173 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 174 { 175 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 176 if (_param->_have_port_context_id) 177 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 178 if (_param->_have_port_front_end_id) 179 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 180 if (_param->_have_port_ooo_engine_id) 181 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 182 } 183 } 184 185 if (_param->_have_port_packet_id) 184 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 185 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 186 { 187 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 188 if (_param->_have_port_context_id) 189 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 190 if (_param->_have_port_front_end_id) 191 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 192 if (_param->_have_port_ooo_engine_id) 193 (*(out_WRITE_UNIT_IN_OOO_ENGINE_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 194 } 195 } 196 197 if (_param->_have_port_rob_ptr ) 186 198 { 187 199 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 188 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 189 { 190 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_PACKET_ID [j])); 191 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 192 if (_param->_have_port_context_id) 193 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 194 if (_param->_have_port_front_end_id) 195 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 196 if (_param->_have_port_ooo_engine_id) 197 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 200 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 201 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 202 { 203 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_PACKET_ID [x][y])); 204 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 205 if (_param->_have_port_context_id) 206 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 207 if (_param->_have_port_front_end_id) 208 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 209 if (_param->_have_port_ooo_engine_id) 210 (*(out_WRITE_UNIT_IN_PACKET_ID [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 198 211 } 199 212 } 200 213 201 214 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 202 // for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 215 // for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 216 // for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 203 217 // { 204 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_OPERATION [ j]));205 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_VAL [ j]));218 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_OPERATION [x][y])); 219 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 206 220 // if (_param->_have_port_context_id) 207 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [ j]));221 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 208 222 // if (_param->_have_port_front_end_id) 209 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [ j]));223 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 210 224 // if (_param->_have_port_ooo_engine_id) 211 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [ j]));225 // (*(out_WRITE_UNIT_IN_OPERATION [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 212 226 // } 213 227 214 228 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 215 // for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 229 // for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 230 // for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 216 231 // { 217 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_TYPE [ j]));218 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [ j]));232 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_TYPE [x][y])); 233 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 219 234 // if (_param->_have_port_context_id) 220 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [ j]));235 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 221 236 // if (_param->_have_port_front_end_id) 222 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [ j]));237 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 223 238 // if (_param->_have_port_ooo_engine_id) 224 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [ j]));239 // (*(out_WRITE_UNIT_IN_TYPE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 225 240 // } 226 241 227 242 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 228 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 229 { 230 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_WRITE_RD [j])); 231 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 232 if (_param->_have_port_context_id) 233 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 234 if (_param->_have_port_front_end_id) 235 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 236 if (_param->_have_port_ooo_engine_id) 237 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 243 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 244 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 245 { 246 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_WRITE_RD [x][y])); 247 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 248 if (_param->_have_port_context_id) 249 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 250 if (_param->_have_port_front_end_id) 251 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 252 if (_param->_have_port_ooo_engine_id) 253 (*(out_WRITE_UNIT_IN_WRITE_RD [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 238 254 } 239 255 240 256 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 241 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 242 { 243 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_NUM_REG_RD [j])); 244 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 245 if (_param->_have_port_context_id) 246 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 247 if (_param->_have_port_front_end_id) 248 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 249 if (_param->_have_port_ooo_engine_id) 250 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 257 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 258 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 259 { 260 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_NUM_REG_RD [x][y])); 261 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 262 if (_param->_have_port_context_id) 263 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 264 if (_param->_have_port_front_end_id) 265 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 266 if (_param->_have_port_ooo_engine_id) 267 (*(out_WRITE_UNIT_IN_NUM_REG_RD [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 251 268 } 252 269 253 270 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 254 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 255 { 256 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_DATA_RD [j])); 257 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 258 if (_param->_have_port_context_id) 259 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 260 if (_param->_have_port_front_end_id) 261 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 262 if (_param->_have_port_ooo_engine_id) 263 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 271 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 272 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 273 { 274 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_DATA_RD [x][y])); 275 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 276 if (_param->_have_port_context_id) 277 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 278 if (_param->_have_port_front_end_id) 279 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 280 if (_param->_have_port_ooo_engine_id) 281 (*(out_WRITE_UNIT_IN_DATA_RD [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 264 282 } 265 283 266 284 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 267 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 268 { 269 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_WRITE_RE [j])); 270 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 271 if (_param->_have_port_context_id) 272 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 273 if (_param->_have_port_front_end_id) 274 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 275 if (_param->_have_port_ooo_engine_id) 276 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 285 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 286 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 287 { 288 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_WRITE_RE [x][y])); 289 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 290 if (_param->_have_port_context_id) 291 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 292 if (_param->_have_port_front_end_id) 293 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 294 if (_param->_have_port_ooo_engine_id) 295 (*(out_WRITE_UNIT_IN_WRITE_RE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 277 296 } 278 297 279 298 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 280 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 281 { 282 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_NUM_REG_RE [j])); 283 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 284 if (_param->_have_port_context_id) 285 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 286 if (_param->_have_port_front_end_id) 287 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 288 if (_param->_have_port_ooo_engine_id) 289 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 299 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 300 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 301 { 302 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_NUM_REG_RE [x][y])); 303 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 304 if (_param->_have_port_context_id) 305 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 306 if (_param->_have_port_front_end_id) 307 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 308 if (_param->_have_port_ooo_engine_id) 309 (*(out_WRITE_UNIT_IN_NUM_REG_RE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 290 310 } 291 311 292 312 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 293 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 294 { 295 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_DATA_RE [j])); 296 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 297 if (_param->_have_port_context_id) 298 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 299 if (_param->_have_port_front_end_id) 300 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 301 if (_param->_have_port_ooo_engine_id) 302 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 313 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 314 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 315 { 316 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_DATA_RE [x][y])); 317 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 318 if (_param->_have_port_context_id) 319 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 320 if (_param->_have_port_front_end_id) 321 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 322 if (_param->_have_port_ooo_engine_id) 323 (*(out_WRITE_UNIT_IN_DATA_RE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 303 324 } 304 325 305 326 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 306 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 307 { 308 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_EXCEPTION [j])); 309 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 310 if (_param->_have_port_context_id) 311 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 312 if (_param->_have_port_front_end_id) 313 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 314 if (_param->_have_port_ooo_engine_id) 315 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 327 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 328 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 329 { 330 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_EXCEPTION [x][y])); 331 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 332 if (_param->_have_port_context_id) 333 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 334 if (_param->_have_port_front_end_id) 335 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 336 if (_param->_have_port_ooo_engine_id) 337 (*(out_WRITE_UNIT_IN_EXCEPTION [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 316 338 } 317 339 318 340 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 319 for (uint32_t j=0; j<_param->_nb_execute_unit; j++) 320 { 321 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_NO_SEQUENCE [j])); 322 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [j])); 323 if (_param->_have_port_context_id) 324 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j])); 325 if (_param->_have_port_front_end_id) 326 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j])); 327 if (_param->_have_port_ooo_engine_id) 328 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j])); 341 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 342 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 343 { 344 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_NO_SEQUENCE [x][y])); 345 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 346 if (_param->_have_port_context_id) 347 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 348 if (_param->_have_port_front_end_id) 349 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 350 if (_param->_have_port_ooo_engine_id) 351 (*(out_WRITE_UNIT_IN_NO_SEQUENCE [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 329 352 } 330 353 331 354 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_WRITE_UNIT_IN_ACK [i])); 332 for (uint32_t j=0; j<_param->_nb_execute_unit; j++)333 {334 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_ADDRESS [j]));335 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_ VAL [j]));336 if (_param->_have_port_context_id)337 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [j]));338 if (_param->_have_port_front_end_id)339 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [j]));340 if (_param->_have_port_ooo_engine_id)341 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [j]));342 }343 355 for (uint32_t x=0; x<_param->_nb_execute_unit; x++) 356 for (uint32_t y=0; y<_param->_nb_execute_unit_port[x]; y++) 357 { 358 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_ADDRESS [x][y])); 359 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_VAL [x][y])); 360 if (_param->_have_port_context_id) 361 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_CONTEXT_ID [x][y])); 362 if (_param->_have_port_front_end_id) 363 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_FRONT_END_ID [x][y])); 364 if (_param->_have_port_ooo_engine_id) 365 (*(out_WRITE_UNIT_IN_ADDRESS [i])) (*(in_EXECUTE_UNIT_OUT_OOO_ENGINE_ID [x][y])); 366 } 344 367 } 345 368 # endif … … 357 380 358 381 #ifdef STATISTICS 359 if ( _usage & USE_STATISTICS)382 if (usage_is_set(_usage,USE_STATISTICS)) 360 383 { 361 384 log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Generate Statistics file");
Note: See TracChangeset
for help on using the changeset viewer.