Changeset 468 for trunk/platforms/tsar_generic_iob
- Timestamp:
- Jul 24, 2013, 8:47:40 AM (11 years ago)
- Location:
- trunk/platforms/tsar_generic_iob
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/top.cpp
r450 r468 802 802 // Horizontal inter-clusters INT network DSPIN 803 803 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_h_inc = 804 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_inc", XMAX-1, YMAX, 2);804 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_inc", XMAX-1, YMAX, 3); 805 805 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_h_dec = 806 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_dec", XMAX-1, YMAX, 2);806 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_dec", XMAX-1, YMAX, 3); 807 807 DspinSignals<dspin_int_rsp_width>*** signal_dspin_int_rsp_h_inc = 808 808 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_inc", XMAX-1, YMAX, 2); … … 812 812 // Vertical inter-clusters INT network DSPIN 813 813 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_v_inc = 814 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_inc", XMAX, YMAX-1, 2);814 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_inc", XMAX, YMAX-1, 3); 815 815 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_v_dec = 816 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_dec", XMAX, YMAX-1, 2);816 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_dec", XMAX, YMAX-1, 3); 817 817 DspinSignals<dspin_int_rsp_width>*** signal_dspin_int_rsp_v_inc = 818 818 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_inc", XMAX, YMAX-1, 2); … … 822 822 // Mesh boundaries INT network DSPIN 823 823 DspinSignals<dspin_int_cmd_width>**** signal_dspin_false_int_cmd_in = 824 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_in", XMAX, YMAX, 2, 4);824 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_in", XMAX, YMAX, 4, 3); 825 825 DspinSignals<dspin_int_cmd_width>**** signal_dspin_false_int_cmd_out = 826 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_out", XMAX, YMAX, 2, 4);826 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_out", XMAX, YMAX, 4, 3); 827 827 DspinSignals<dspin_int_rsp_width>**** signal_dspin_false_int_rsp_in = 828 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_in", XMAX, YMAX, 2, 4);828 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_in", XMAX, YMAX, 4, 2); 829 829 DspinSignals<dspin_int_rsp_width>**** signal_dspin_false_int_rsp_out = 830 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_out", XMAX, YMAX, 2, 4);830 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_out", XMAX, YMAX, 4, 2); 831 831 832 832 … … 1152 1152 for (size_t y = 0; y < YMAX; y++) 1153 1153 { 1154 for (size_t k = 0; k < 3; k++) 1155 { 1156 clusters[x][y]->p_dspin_int_cmd_out[EAST][k] (signal_dspin_int_cmd_h_inc[x][y][k]); 1157 clusters[x+1][y]->p_dspin_int_cmd_in[WEST][k] (signal_dspin_int_cmd_h_inc[x][y][k]); 1158 clusters[x][y]->p_dspin_int_cmd_in[EAST][k] (signal_dspin_int_cmd_h_dec[x][y][k]); 1159 clusters[x+1][y]->p_dspin_int_cmd_out[WEST][k] (signal_dspin_int_cmd_h_dec[x][y][k]); 1160 } 1161 1154 1162 for (size_t k = 0; k < 2; k++) 1155 1163 { 1156 clusters[x][y]->p_dspin_int_cmd_out[k][EAST] (signal_dspin_int_cmd_h_inc[x][y][k]); 1157 clusters[x+1][y]->p_dspin_int_cmd_in[k][WEST] (signal_dspin_int_cmd_h_inc[x][y][k]); 1158 clusters[x][y]->p_dspin_int_cmd_in[k][EAST] (signal_dspin_int_cmd_h_dec[x][y][k]); 1159 clusters[x+1][y]->p_dspin_int_cmd_out[k][WEST] (signal_dspin_int_cmd_h_dec[x][y][k]); 1160 clusters[x][y]->p_dspin_int_rsp_out[k][EAST] (signal_dspin_int_rsp_h_inc[x][y][k]); 1161 clusters[x+1][y]->p_dspin_int_rsp_in[k][WEST] (signal_dspin_int_rsp_h_inc[x][y][k]); 1162 clusters[x][y]->p_dspin_int_rsp_in[k][EAST] (signal_dspin_int_rsp_h_dec[x][y][k]); 1163 clusters[x+1][y]->p_dspin_int_rsp_out[k][WEST] (signal_dspin_int_rsp_h_dec[x][y][k]); 1164 clusters[x][y]->p_dspin_int_rsp_out[EAST][k] (signal_dspin_int_rsp_h_inc[x][y][k]); 1165 clusters[x+1][y]->p_dspin_int_rsp_in[WEST][k] (signal_dspin_int_rsp_h_inc[x][y][k]); 1166 clusters[x][y]->p_dspin_int_rsp_in[EAST][k] (signal_dspin_int_rsp_h_dec[x][y][k]); 1167 clusters[x+1][y]->p_dspin_int_rsp_out[WEST][k] (signal_dspin_int_rsp_h_dec[x][y][k]); 1164 1168 } 1165 1169 … … 1185 1189 for (size_t x = 0; x < XMAX; x++) 1186 1190 { 1191 for (size_t k = 0; k < 3; k++) 1192 { 1193 clusters[x][y]->p_dspin_int_cmd_out[NORTH][k] (signal_dspin_int_cmd_v_inc[x][y][k]); 1194 clusters[x][y+1]->p_dspin_int_cmd_in[SOUTH][k] (signal_dspin_int_cmd_v_inc[x][y][k]); 1195 clusters[x][y]->p_dspin_int_cmd_in[NORTH][k] (signal_dspin_int_cmd_v_dec[x][y][k]); 1196 clusters[x][y+1]->p_dspin_int_cmd_out[SOUTH][k] (signal_dspin_int_cmd_v_dec[x][y][k]); 1197 } 1198 1187 1199 for (size_t k = 0; k < 2; k++) 1188 1200 { 1189 clusters[x][y]->p_dspin_int_cmd_out[k][NORTH] (signal_dspin_int_cmd_v_inc[x][y][k]); 1190 clusters[x][y+1]->p_dspin_int_cmd_in[k][SOUTH] (signal_dspin_int_cmd_v_inc[x][y][k]); 1191 clusters[x][y]->p_dspin_int_cmd_in[k][NORTH] (signal_dspin_int_cmd_v_dec[x][y][k]); 1192 clusters[x][y+1]->p_dspin_int_cmd_out[k][SOUTH] (signal_dspin_int_cmd_v_dec[x][y][k]); 1193 clusters[x][y]->p_dspin_int_rsp_out[k][NORTH] (signal_dspin_int_rsp_v_inc[x][y][k]); 1194 clusters[x][y+1]->p_dspin_int_rsp_in[k][SOUTH] (signal_dspin_int_rsp_v_inc[x][y][k]); 1195 clusters[x][y]->p_dspin_int_rsp_in[k][NORTH] (signal_dspin_int_rsp_v_dec[x][y][k]); 1196 clusters[x][y+1]->p_dspin_int_rsp_out[k][SOUTH] (signal_dspin_int_rsp_v_dec[x][y][k]); 1201 clusters[x][y]->p_dspin_int_rsp_out[NORTH][k] (signal_dspin_int_rsp_v_inc[x][y][k]); 1202 clusters[x][y+1]->p_dspin_int_rsp_in[SOUTH][k] (signal_dspin_int_rsp_v_inc[x][y][k]); 1203 clusters[x][y]->p_dspin_int_rsp_in[NORTH][k] (signal_dspin_int_rsp_v_dec[x][y][k]); 1204 clusters[x][y+1]->p_dspin_int_rsp_out[SOUTH][k] (signal_dspin_int_rsp_v_dec[x][y][k]); 1197 1205 } 1198 1206 … … 1214 1222 for (size_t y = 0; y < YMAX; y++) 1215 1223 { 1224 for (size_t k = 0; k < 3; k++) 1225 { 1226 clusters[0][y]->p_dspin_int_cmd_in[WEST][k] (signal_dspin_false_int_cmd_in[0][y][WEST][k]); 1227 clusters[0][y]->p_dspin_int_cmd_out[WEST][k] (signal_dspin_false_int_cmd_out[0][y][WEST][k]); 1228 clusters[XMAX-1][y]->p_dspin_int_cmd_in[EAST][k] (signal_dspin_false_int_cmd_in[XMAX-1][y][EAST][k]); 1229 clusters[XMAX-1][y]->p_dspin_int_cmd_out[EAST][k] (signal_dspin_false_int_cmd_out[XMAX-1][y][EAST][k]); 1230 } 1231 1216 1232 for (size_t k = 0; k < 2; k++) 1217 1233 { 1218 clusters[0][y]->p_dspin_int_cmd_in[k][WEST] (signal_dspin_false_int_cmd_in[0][y][k][WEST]); 1219 clusters[0][y]->p_dspin_int_cmd_out[k][WEST] (signal_dspin_false_int_cmd_out[0][y][k][WEST]); 1220 clusters[0][y]->p_dspin_int_rsp_in[k][WEST] (signal_dspin_false_int_rsp_in[0][y][k][WEST]); 1221 clusters[0][y]->p_dspin_int_rsp_out[k][WEST] (signal_dspin_false_int_rsp_out[0][y][k][WEST]); 1222 1223 clusters[XMAX-1][y]->p_dspin_int_cmd_in[k][EAST] (signal_dspin_false_int_cmd_in[XMAX-1][y][k][EAST]); 1224 clusters[XMAX-1][y]->p_dspin_int_cmd_out[k][EAST] (signal_dspin_false_int_cmd_out[XMAX-1][y][k][EAST]); 1225 clusters[XMAX-1][y]->p_dspin_int_rsp_in[k][EAST] (signal_dspin_false_int_rsp_in[XMAX-1][y][k][EAST]); 1226 clusters[XMAX-1][y]->p_dspin_int_rsp_out[k][EAST] (signal_dspin_false_int_rsp_out[XMAX-1][y][k][EAST]); 1234 clusters[0][y]->p_dspin_int_rsp_in[WEST][k] (signal_dspin_false_int_rsp_in[0][y][WEST][k]); 1235 clusters[0][y]->p_dspin_int_rsp_out[WEST][k] (signal_dspin_false_int_rsp_out[0][y][WEST][k]); 1236 clusters[XMAX-1][y]->p_dspin_int_rsp_in[EAST][k] (signal_dspin_false_int_rsp_in[XMAX-1][y][EAST][k]); 1237 clusters[XMAX-1][y]->p_dspin_int_rsp_out[EAST][k] (signal_dspin_false_int_rsp_out[XMAX-1][y][EAST][k]); 1227 1238 } 1228 1239 … … 1243 1254 for (size_t x = 0; x < XMAX; x++) 1244 1255 { 1256 for (size_t k = 0; k < 3; k++) 1257 { 1258 clusters[x][0]->p_dspin_int_cmd_in[SOUTH][k] (signal_dspin_false_int_cmd_in[x][0][SOUTH][k]); 1259 clusters[x][0]->p_dspin_int_cmd_out[SOUTH][k] (signal_dspin_false_int_cmd_out[x][0][SOUTH][k]); 1260 clusters[x][YMAX-1]->p_dspin_int_cmd_in[NORTH][k] (signal_dspin_false_int_cmd_in[x][YMAX-1][NORTH][k]); 1261 clusters[x][YMAX-1]->p_dspin_int_cmd_out[NORTH][k] (signal_dspin_false_int_cmd_out[x][YMAX-1][NORTH][k]); 1262 } 1263 1245 1264 for (size_t k = 0; k < 2; k++) 1246 1265 { 1247 clusters[x][0]->p_dspin_int_cmd_in[k][SOUTH] (signal_dspin_false_int_cmd_in[x][0][k][SOUTH]); 1248 clusters[x][0]->p_dspin_int_cmd_out[k][SOUTH] (signal_dspin_false_int_cmd_out[x][0][k][SOUTH]); 1249 clusters[x][0]->p_dspin_int_rsp_in[k][SOUTH] (signal_dspin_false_int_rsp_in[x][0][k][SOUTH]); 1250 clusters[x][0]->p_dspin_int_rsp_out[k][SOUTH] (signal_dspin_false_int_rsp_out[x][0][k][SOUTH]); 1251 1252 clusters[x][YMAX-1]->p_dspin_int_cmd_in[k][NORTH] (signal_dspin_false_int_cmd_in[x][YMAX-1][k][NORTH]); 1253 clusters[x][YMAX-1]->p_dspin_int_cmd_out[k][NORTH] (signal_dspin_false_int_cmd_out[x][YMAX-1][k][NORTH]); 1254 clusters[x][YMAX-1]->p_dspin_int_rsp_in[k][NORTH] (signal_dspin_false_int_rsp_in[x][YMAX-1][k][NORTH]); 1255 clusters[x][YMAX-1]->p_dspin_int_rsp_out[k][NORTH] (signal_dspin_false_int_rsp_out[x][YMAX-1][k][NORTH]); 1266 clusters[x][0]->p_dspin_int_rsp_in[SOUTH][k] (signal_dspin_false_int_rsp_in[x][0][SOUTH][k]); 1267 clusters[x][0]->p_dspin_int_rsp_out[SOUTH][k] (signal_dspin_false_int_rsp_out[x][0][SOUTH][k]); 1268 clusters[x][YMAX-1]->p_dspin_int_rsp_in[NORTH][k] (signal_dspin_false_int_rsp_in[x][YMAX-1][NORTH][k]); 1269 clusters[x][YMAX-1]->p_dspin_int_rsp_out[NORTH][k] (signal_dspin_false_int_rsp_out[x][YMAX-1][NORTH][k]); 1256 1270 } 1257 1271 … … 1283 1297 for (size_t a = 0; a < 4; a++) 1284 1298 { 1299 for (size_t k = 0; k < 3; k++) 1300 { 1301 signal_dspin_false_int_cmd_in[x][y][a][k].write = false; 1302 signal_dspin_false_int_cmd_in[x][y][a][k].read = true; 1303 signal_dspin_false_int_cmd_out[x][y][a][k].write = false; 1304 signal_dspin_false_int_cmd_out[x][y][a][k].read = true; 1305 } 1306 1285 1307 for (size_t k = 0; k < 2; k++) 1286 1308 { 1287 signal_dspin_false_int_cmd_in[x][y][k][a].write = false; 1288 signal_dspin_false_int_cmd_in[x][y][k][a].read = true; 1289 signal_dspin_false_int_cmd_out[x][y][k][a].write = false; 1290 signal_dspin_false_int_cmd_out[x][y][k][a].read = true; 1291 1292 signal_dspin_false_int_rsp_in[x][y][k][a].write = false; 1293 signal_dspin_false_int_rsp_in[x][y][k][a].read = true; 1294 signal_dspin_false_int_rsp_out[x][y][k][a].write = false; 1295 signal_dspin_false_int_rsp_out[x][y][k][a].read = true; 1309 signal_dspin_false_int_rsp_in[x][y][a][k].write = false; 1310 signal_dspin_false_int_rsp_in[x][y][a][k].read = true; 1311 signal_dspin_false_int_rsp_out[x][y][a][k].write = false; 1312 signal_dspin_false_int_rsp_out[x][y][a][k].read = true; 1296 1313 } 1297 1314 -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd
r450 r468 108 108 Port('caba:clock_in', 'p_clk', auto = 'clock'), 109 109 110 Port('caba:dspin_output', 'p_int_cmd_out', [ 2, 4],110 Port('caba:dspin_output', 'p_int_cmd_out', [4, 3], 111 111 dspin_data_size = parameter.Reference('dspin_int_cmd_width')), 112 Port('caba:dspin_input', 'p_int_cmd_in', [ 2, 4],112 Port('caba:dspin_input', 'p_int_cmd_in', [4, 3], 113 113 dspin_data_size = parameter.Reference('dspin_int_cmd_width')), 114 Port('caba:dspin_output', 'p_int_rsp_out', [ 2, 4],114 Port('caba:dspin_output', 'p_int_rsp_out', [4, 2], 115 115 dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 116 Port('caba:dspin_input', 'p_int_rsp_in', [ 2, 4],116 Port('caba:dspin_input', 'p_int_rsp_in', [4, 2], 117 117 dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 118 118 119 Port('caba:dspin_output', 'p_ ext_cmd_out', [2,4],119 Port('caba:dspin_output', 'p_ram_cmd_out', [4], 120 120 dspin_data_size = parameter.Reference('dspin_ram_cmd_width')), 121 Port('caba:dspin_input', 'p_ ext_cmd_in', [2,4],121 Port('caba:dspin_input', 'p_ram_cmd_in', [4], 122 122 dspin_data_size = parameter.Reference('dspin_ram_cmd_width')), 123 Port('caba:dspin_output', 'p_ ext_rsp_out', [2,4],123 Port('caba:dspin_output', 'p_ram_rsp_out', [4], 124 124 dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 125 Port('caba:dspin_input', 'p_ ext_rsp_in', [2,4],125 Port('caba:dspin_input', 'p_ram_rsp_in', [4], 126 126 dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 127 127 ], -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h
r450 r468 77 77 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_l2g_c; 78 78 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_g2l_c; 79 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_l2g_c; 80 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_g2l_c; 79 81 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_l2g_d; 80 82 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_g2l_d; … … 111 113 // Coherence DSPIN signals between DSPIN local crossbars and CC components 112 114 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_memc; 115 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_memc; 113 116 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_memc; 114 117 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_proc[8]; 118 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_proc[8]; 115 119 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_proc[8]; 116 120 … … 179 183 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_m2p_c; 180 184 DspinLocalCrossbar<dspin_int_rsp_width>* int_xbar_p2m_c; 185 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_clack_c; 181 186 182 187 VirtualDspinRouter<dspin_int_cmd_width>* int_router_cmd; -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
r450 r468 89 89 90 90 // Vectors of DSPIN ports for inter-cluster communications 91 p_dspin_int_cmd_in = alloc_elems<DspinInput<dspin_int_cmd_width> >("p_int_cmd_in", 2, 4);92 p_dspin_int_cmd_out = alloc_elems<DspinOutput<dspin_int_cmd_width> >("p_int_cmd_out", 2, 4);93 p_dspin_int_rsp_in = alloc_elems<DspinInput<dspin_int_rsp_width> >("p_int_rsp_in", 2, 4);94 p_dspin_int_rsp_out = alloc_elems<DspinOutput<dspin_int_rsp_width> >("p_int_rsp_out", 2, 4);91 p_dspin_int_cmd_in = alloc_elems<DspinInput<dspin_int_cmd_width> >("p_int_cmd_in", 4, 3); 92 p_dspin_int_cmd_out = alloc_elems<DspinOutput<dspin_int_cmd_width> >("p_int_cmd_out", 4, 3); 93 p_dspin_int_rsp_in = alloc_elems<DspinInput<dspin_int_rsp_width> >("p_int_rsp_in", 4, 2); 94 p_dspin_int_rsp_out = alloc_elems<DspinOutput<dspin_int_rsp_width> >("p_int_rsp_out", 4, 2); 95 95 96 96 p_dspin_ram_cmd_in = alloc_elems<DspinInput<dspin_ram_cmd_width> >("p_ext_cmd_in", 4); … … 171 171 8, // TRANSACTION TABLE DEPTH 172 172 8, // UPDATE TABLE DEPTH 173 8, // INVALIDATE TABLE DEPTH 173 174 debug_start_cycle, 174 175 memc_debug_ok ); … … 303 304 false ); // no broacast 304 305 306 std::ostringstream s_int_xbar_clack_c; 307 s_int_xbar_clack_c << "int_xbar_clack_c_" << x_id << "_" << y_id; 308 int_xbar_clack_c = new DspinLocalCrossbar<dspin_int_cmd_width>( 309 s_int_xbar_clack_c.str().c_str(), 310 mt_int, // mapping table 311 x_id, y_id, // cluster coordinates 312 x_width, y_width, l_width, 313 1, // number of local sources 314 nb_procs, // number of local targets 315 1, 1, // fifo depths 316 true, // CMD 317 false, // don't use local routing table 318 false); // broadcast 319 305 320 ////////////// INT ROUTER(S) 306 321 std::ostringstream s_int_router_cmd; … … 310 325 x_id,y_id, // coordinate in the mesh 311 326 x_width, y_width, // x & y fields width 327 3, // nb virtual channels 312 328 4,4); // input & output fifo depths 313 329 … … 318 334 x_id,y_id, // coordinates in mesh 319 335 x_width, y_width, // x & y fields width 336 2, // nb virtual channels 320 337 4,4); // input & output fifo depths 321 338 … … 459 476 int_router_rsp->p_clk (this->p_clk); 460 477 int_router_rsp->p_resetn (this->p_resetn); 461 for (int x = 0; x < 2; x++) 462 { 463 for(int y = 0; y < 4; y++) 478 479 for (int i = 0; i < 4; i++) 480 { 481 for(int k = 0; k < 3; k++) 464 482 { 465 int_router_cmd->p_out[x][y] (this->p_dspin_int_cmd_out[x][y]); 466 int_router_cmd->p_in[x][y] (this->p_dspin_int_cmd_in[x][y]); 467 int_router_rsp->p_out[x][y] (this->p_dspin_int_rsp_out[x][y]); 468 int_router_rsp->p_in[x][y] (this->p_dspin_int_rsp_in[x][y]); 483 int_router_cmd->p_out[i][k] (this->p_dspin_int_cmd_out[i][k]); 484 int_router_cmd->p_in[i][k] (this->p_dspin_int_cmd_in[i][k]); 469 485 } 486 487 for(int k = 0; k < 2; k++) 488 { 489 int_router_rsp->p_out[i][k] (this->p_dspin_int_rsp_out[i][k]); 490 int_router_rsp->p_in[i][k] (this->p_dspin_int_rsp_in[i][k]); 491 } 470 492 } 471 493 472 494 // local ports 473 int_router_cmd->p_out[0][4] (signal_int_dspin_cmd_g2l_d); 474 int_router_cmd->p_out[1][4] (signal_int_dspin_m2p_g2l_c); 475 int_router_cmd->p_in[0][4] (signal_int_dspin_cmd_l2g_d); 476 int_router_cmd->p_in[1][4] (signal_int_dspin_m2p_l2g_c); 495 int_router_cmd->p_out[4][0] (signal_int_dspin_cmd_g2l_d); 496 int_router_cmd->p_out[4][1] (signal_int_dspin_m2p_g2l_c); 497 int_router_cmd->p_out[4][2] (signal_int_dspin_clack_g2l_c); 498 int_router_cmd->p_in[4][0] (signal_int_dspin_cmd_l2g_d); 499 int_router_cmd->p_in[4][1] (signal_int_dspin_m2p_l2g_c); 500 int_router_cmd->p_in[4][2] (signal_int_dspin_clack_l2g_c); 477 501 478 int_router_rsp->p_out[ 0][4] (signal_int_dspin_rsp_g2l_d);479 int_router_rsp->p_out[ 1][4] (signal_int_dspin_p2m_g2l_c);480 int_router_rsp->p_in[ 0][4] (signal_int_dspin_rsp_l2g_d);481 int_router_rsp->p_in[ 1][4] (signal_int_dspin_p2m_l2g_c);502 int_router_rsp->p_out[4][0] (signal_int_dspin_rsp_g2l_d); 503 int_router_rsp->p_out[4][1] (signal_int_dspin_p2m_g2l_c); 504 int_router_rsp->p_in[4][0] (signal_int_dspin_rsp_l2g_d); 505 int_router_rsp->p_in[4][1] (signal_int_dspin_p2m_l2g_c); 482 506 483 507 ///////////////////// CMD DSPIN local crossbar direct … … 541 565 int_xbar_p2m_c->p_local_in[p] (signal_int_dspin_p2m_proc[p]); 542 566 567 ////////////////////// CLACK DSPIN local crossbar coherence 568 int_xbar_clack_c->p_clk (this->p_clk); 569 int_xbar_clack_c->p_resetn (this->p_resetn); 570 int_xbar_clack_c->p_global_out (signal_int_dspin_clack_l2g_c); 571 int_xbar_clack_c->p_global_in (signal_int_dspin_clack_g2l_c); 572 int_xbar_clack_c->p_local_in[0] (signal_int_dspin_clack_memc); 573 for (size_t p = 0; p < nb_procs; p++) 574 int_xbar_clack_c->p_local_out[p] (signal_int_dspin_clack_proc[p]); 575 543 576 //////////////////////////////////// Processors 544 577 for (size_t p = 0; p < nb_procs; p++) … … 547 580 proc[p]->p_resetn (this->p_resetn); 548 581 proc[p]->p_vci (signal_int_vci_ini_proc[p]); 549 proc[p]->p_dspin_in (signal_int_dspin_m2p_proc[p]); 550 proc[p]->p_dspin_out (signal_int_dspin_p2m_proc[p]); 582 proc[p]->p_dspin_m2p (signal_int_dspin_m2p_proc[p]); 583 proc[p]->p_dspin_p2m (signal_int_dspin_p2m_proc[p]); 584 proc[p]->p_dspin_clack (signal_int_dspin_clack_proc[p]); 551 585 proc[p]->p_irq[0] (signal_proc_it[p]); 552 586 for ( size_t j = 1 ; j < 6 ; j++) … … 563 597 564 598 ///////////////////////////////////// XICU 565 xicu->p_clk 566 xicu->p_resetn 567 xicu->p_vci 599 xicu->p_clk (this->p_clk); 600 xicu->p_resetn (this->p_resetn); 601 xicu->p_vci (signal_int_vci_tgt_xicu); 568 602 for ( size_t p=0 ; p<nb_procs ; p++) 569 603 { 570 xicu->p_irq[p] 604 xicu->p_irq[p] (signal_proc_it[p]); 571 605 } 572 606 for ( size_t i=0 ; i<4 ; i++) … … 590 624 591 625 ///////////////////////////////////// MEMC 592 memc->p_clk (this->p_clk); 593 memc->p_resetn (this->p_resetn); 594 memc->p_vci_ixr (signal_ram_vci_ini_memc); 595 memc->p_vci_tgt (signal_int_vci_tgt_memc); 596 memc->p_dspin_in (signal_int_dspin_p2m_memc); 597 memc->p_dspin_out (signal_int_dspin_m2p_memc); 626 memc->p_clk (this->p_clk); 627 memc->p_resetn (this->p_resetn); 628 memc->p_vci_ixr (signal_ram_vci_ini_memc); 629 memc->p_vci_tgt (signal_int_vci_tgt_memc); 630 memc->p_dspin_p2m (signal_int_dspin_p2m_memc); 631 memc->p_dspin_m2p (signal_int_dspin_m2p_memc); 632 memc->p_dspin_clack (signal_int_dspin_clack_memc); 598 633 599 634 // wrapper to INT network … … 612 647 613 648 //////////////////////////////////// XRAM 614 xram->p_clk 615 xram->p_resetn 616 xram->p_vci 649 xram->p_clk (this->p_clk); 650 xram->p_resetn (this->p_resetn); 651 xram->p_vci (signal_ram_vci_tgt_xram); 617 652 618 653 // wrapper to RAM network … … 624 659 625 660 /////////////////////////////////// MDMA 626 mdma->p_clk 661 mdma->p_clk (this->p_clk); 627 662 mdma->p_resetn (this->p_resetn); 628 mdma->p_vci_target 629 mdma->p_vci_initiator 663 mdma->p_vci_target (signal_int_vci_tgt_mdma); 664 mdma->p_vci_initiator (signal_int_vci_ini_mdma); 630 665 for (size_t i=0 ; i<nb_dmas ; i++) 631 666 mdma->p_irq[i] (signal_irq_mdma[i]);
Note: See TracChangeset
for help on using the changeset viewer.