- Timestamp:
- Sep 17, 2014, 1:17:56 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
r778 r806 55 55 // - IRQ_IN[4] : DMA channel 3 56 56 // 57 // All clusters are identical, but cluster(0,0) and cluster(X MAX-1,YMAX-1)57 // All clusters are identical, but cluster(0,0) and cluster(X_SIZE-1,Y_SIZE-1) 58 58 // contain an extra IO bridge component. These IOB0 & IOB1 components are 59 59 // connected to the three networks (INT, RAM, IOX). … … 101 101 // All physical segments base addresses are multiple of 1 Mbytes 102 102 // (=> the 24 LSB bits = 0, and the 16 MSB bits define the target) 103 // The ( x_width + y_width) MSB bits (left aligned) define103 // The (X_WIDTH + Y_WIDTH) MSB bits (left aligned) define 104 104 // the cluster index, and the LADR bits define the local index: 105 105 // |X_ID|Y_ID| LADR | OFFSET | … … 191 191 //////////////////////i///////////////////////////////////// 192 192 193 #define XMAX X_SIZE194 #define YMAX Y_SIZE195 196 193 #define XRAM_LATENCY 0 197 194 … … 237 234 // in the hard_config.h file. For replicated segments, the 238 235 // base address is incremented by a cluster offset: 239 // offset = cluster(x,y) << (address_width- x_width-y_width);236 // offset = cluster(x,y) << (address_width-X_WIDTH-Y_WIDTH); 240 237 241 238 //////////////////////////////////////////////////////////////////////// … … 336 333 uint32_t frozen_cycles = MAX_FROZEN_CYCLES; // monitoring frozen processor 337 334 size_t cluster_iob0 = cluster(0,0); // cluster containing IOB0 338 size_t cluster_iob1 = cluster(XMAX-1,YMAX-1); // cluster containing IOB1 339 size_t x_width = 4; // at most 256 clusters 340 size_t y_width = 4; // at most 256 clusters 335 size_t cluster_iob1 = cluster(X_SIZE-1,Y_SIZE-1); // cluster containing IOB1 341 336 342 337 assert( (X_WIDTH == 4) and (Y_WIDTH == 4) and … … 370 365 size_t x = debug_memc_id >> 4; 371 366 size_t y = debug_memc_id & 0xF; 372 if( (x>=X MAX) || (y>=YMAX) )367 if( (x>=X_SIZE) || (y>=Y_SIZE) ) 373 368 { 374 std::cout << "MEMCID parameter does'nt fit X MAX/YMAX" << std::endl;369 std::cout << "MEMCID parameter does'nt fit X_SIZE/Y_SIZE" << std::endl; 375 370 exit(0); 376 371 } … … 381 376 size_t x = debug_xram_id >> 4; 382 377 size_t y = debug_xram_id & 0xF; 383 if( (x>=X MAX) || (y>=YMAX) )378 if( (x>=X_SIZE) || (y>=Y_SIZE) ) 384 379 { 385 std::cout << "XRAMID parameter does'nt fit X MAX/YMAX" << std::endl;380 std::cout << "XRAMID parameter does'nt fit X_SIZE/Y_SIZE" << std::endl; 386 381 exit(0); 387 382 } … … 397 392 size_t x = cluster_xy >> 4; 398 393 size_t y = cluster_xy & 0xF; 399 if( (x>=X MAX) || (y>=YMAX) )394 if( (x>=X_SIZE) || (y>=Y_SIZE) ) 400 395 { 401 std::cout << "PROCID parameter does'nt fit X MAX/YMAX" << std::endl;396 std::cout << "PROCID parameter does'nt fit X_SIZE/Y_SIZE" << std::endl; 402 397 exit(0); 403 398 } … … 446 441 447 442 // checking hardware parameters 448 assert( (X MAX <= 16) and449 "The X MAXparameter cannot be larger than 16" );450 451 assert( (Y MAX <= 16) and452 "The Y MAXparameter cannot be larger than 16" );443 assert( (X_SIZE <= (1 << X_WIDTH)) and 444 "The X_SIZE parameter cannot be larger than 16" ); 445 446 assert( (Y_SIZE <= (1 << Y_WIDTH)) and 447 "The Y_SIZE parameter cannot be larger than 16" ); 453 448 454 449 assert( (NB_PROCS_MAX <= 8) and … … 465 460 466 461 std::cout << std::endl << std::dec 467 << " - X MAX = " << XMAX<< std::endl468 << " - Y MAX = " << YMAX<< std::endl462 << " - X_SIZE = " << X_SIZE << std::endl 463 << " - Y_SIZE = " << Y_SIZE << std::endl 469 464 << " - NB_PROCS_MAX = " << NB_PROCS_MAX << std::endl 470 465 << " - NB_TTY_CHANNELS = " << NB_TTY_CHANNELS << std::endl … … 519 514 ///////////////////////////////////////////////////////////////////// 520 515 MappingTable maptab_int( vci_address_width, 521 IntTab( x_width + y_width, 16 - x_width - y_width),522 IntTab( x_width + y_width, vci_srcid_width - x_width - y_width),516 IntTab(X_WIDTH + Y_WIDTH, 16 - X_WIDTH - Y_WIDTH), 517 IntTab(X_WIDTH + Y_WIDTH, vci_srcid_width - X_WIDTH - Y_WIDTH), 523 518 0x00FF000000); 524 519 525 for (size_t x = 0; x < X MAX; x++)520 for (size_t x = 0; x < X_SIZE; x++) 526 521 { 527 for (size_t y = 0; y < Y MAX; y++)522 for (size_t y = 0; y < Y_SIZE; y++) 528 523 { 529 524 uint64_t offset = ((uint64_t)cluster(x,y)) 530 << (vci_address_width- x_width-y_width);525 << (vci_address_width-X_WIDTH-Y_WIDTH); 531 526 bool config = true; 532 527 bool cacheable = true; … … 632 627 //////////////////////////////////////////////////////////////////////// 633 628 MappingTable maptab_ram( vci_address_width, 634 IntTab( x_width+y_width, 0),635 IntTab( x_width+y_width, vci_srcid_width - x_width - y_width),629 IntTab(X_WIDTH+Y_WIDTH, 0), 630 IntTab(X_WIDTH+Y_WIDTH, vci_srcid_width - X_WIDTH - Y_WIDTH), 636 631 0x00FF000000); 637 632 638 for (size_t x = 0; x < X MAX; x++)633 for (size_t x = 0; x < X_SIZE; x++) 639 634 { 640 for (size_t y = 0; y < Y MAX; y++)635 for (size_t y = 0; y < Y_SIZE ; y++) 641 636 { 642 637 uint64_t offset = ((uint64_t)cluster(x,y)) 643 << (vci_address_width- x_width-y_width);638 << (vci_address_width-X_WIDTH-Y_WIDTH); 644 639 645 640 std::ostringstream sxram; … … 692 687 MappingTable maptab_iox( 693 688 vci_address_width, 694 IntTab( x_width + y_width - 1, 16 - x_width - y_width+ 1),695 IntTab( x_width + y_width , vci_param_ext::S - x_width - y_width),689 IntTab(X_WIDTH + Y_WIDTH - 1, 16 - X_WIDTH - Y_WIDTH + 1), 690 IntTab(X_WIDTH + Y_WIDTH , vci_param_ext::S - X_WIDTH - Y_WIDTH), 696 691 0x00FF000000); 697 692 … … 701 696 702 697 const uint64_t iob0_base = ((uint64_t)cluster_iob0) 703 << (vci_address_width - x_width - y_width);698 << (vci_address_width - X_WIDTH - Y_WIDTH); 704 699 705 700 maptab_iox.add(Segment("iox_seg_mtty_0", SEG_TTY_BASE + iob0_base, SEG_TTY_SIZE, … … 721 716 { 722 717 const uint64_t iob1_base = ((uint64_t)cluster_iob1) 723 << (vci_address_width - x_width - y_width);718 << (vci_address_width - X_WIDTH - Y_WIDTH); 724 719 725 720 maptab_iox.add(Segment("iox_seg_mtty_1", SEG_TTY_BASE + iob1_base, SEG_TTY_SIZE, … … 743 738 // As IOMMU is not activated, addresses are 40 bits (physical addresses), 744 739 // and the choice depends on address bit A[32]. 745 for (size_t x = 0; x < X MAX; x++)740 for (size_t x = 0; x < X_SIZE; x++) 746 741 { 747 for (size_t y = 0; y < Y MAX; y++)742 for (size_t y = 0; y < Y_SIZE ; y++) 748 743 { 749 744 const bool wti = true; … … 751 746 752 747 const uint64_t offset = ((uint64_t)cluster(x,y)) 753 << (vci_address_width- x_width-y_width);748 << (vci_address_width-X_WIDTH-Y_WIDTH); 754 749 755 750 const uint64_t xicu_base = SEG_XCU_BASE + offset; … … 835 830 // Horizontal inter-clusters INT network DSPIN 836 831 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_h_inc = 837 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_inc", X MAX-1, YMAX, 3);832 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_inc", X_SIZE-1, Y_SIZE, 3); 838 833 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_h_dec = 839 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_dec", X MAX-1, YMAX, 3);834 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_dec", X_SIZE-1, Y_SIZE, 3); 840 835 DspinSignals<dspin_int_rsp_width>*** signal_dspin_int_rsp_h_inc = 841 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_inc", X MAX-1, YMAX, 2);836 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_inc", X_SIZE-1, Y_SIZE, 2); 842 837 DspinSignals<dspin_int_rsp_width>*** signal_dspin_int_rsp_h_dec = 843 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_dec", X MAX-1, YMAX, 2);838 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_dec", X_SIZE-1, Y_SIZE, 2); 844 839 845 840 // Vertical inter-clusters INT network DSPIN 846 841 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_v_inc = 847 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_inc", X MAX, YMAX-1, 3);842 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_inc", X_SIZE, Y_SIZE-1, 3); 848 843 DspinSignals<dspin_int_cmd_width>*** signal_dspin_int_cmd_v_dec = 849 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_dec", X MAX, YMAX-1, 3);844 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_dec", X_SIZE, Y_SIZE-1, 3); 850 845 DspinSignals<dspin_int_rsp_width>*** signal_dspin_int_rsp_v_inc = 851 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_inc", X MAX, YMAX-1, 2);846 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_inc", X_SIZE, Y_SIZE-1, 2); 852 847 DspinSignals<dspin_int_rsp_width>*** signal_dspin_int_rsp_v_dec = 853 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_dec", X MAX, YMAX-1, 2);848 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_dec", X_SIZE, Y_SIZE-1, 2); 854 849 855 850 // Mesh boundaries INT network DSPIN 856 851 DspinSignals<dspin_int_cmd_width>**** signal_dspin_false_int_cmd_in = 857 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_in", X MAX, YMAX, 4, 3);852 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_in", X_SIZE, Y_SIZE, 4, 3); 858 853 DspinSignals<dspin_int_cmd_width>**** signal_dspin_false_int_cmd_out = 859 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_out", X MAX, YMAX, 4, 3);854 alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_out", X_SIZE, Y_SIZE, 4, 3); 860 855 DspinSignals<dspin_int_rsp_width>**** signal_dspin_false_int_rsp_in = 861 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_in", X MAX, YMAX, 4, 2);856 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_in", X_SIZE, Y_SIZE, 4, 2); 862 857 DspinSignals<dspin_int_rsp_width>**** signal_dspin_false_int_rsp_out = 863 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_out", X MAX, YMAX, 4, 2);858 alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_out", X_SIZE, Y_SIZE, 4, 2); 864 859 865 860 866 861 // Horizontal inter-clusters RAM network DSPIN 867 862 DspinSignals<dspin_ram_cmd_width>** signal_dspin_ram_cmd_h_inc = 868 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_h_inc", X MAX-1, YMAX);863 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_h_inc", X_SIZE-1, Y_SIZE); 869 864 DspinSignals<dspin_ram_cmd_width>** signal_dspin_ram_cmd_h_dec = 870 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_h_dec", X MAX-1, YMAX);865 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_h_dec", X_SIZE-1, Y_SIZE); 871 866 DspinSignals<dspin_ram_rsp_width>** signal_dspin_ram_rsp_h_inc = 872 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_h_inc", X MAX-1, YMAX);867 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_h_inc", X_SIZE-1, Y_SIZE); 873 868 DspinSignals<dspin_ram_rsp_width>** signal_dspin_ram_rsp_h_dec = 874 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_h_dec", X MAX-1, YMAX);869 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_h_dec", X_SIZE-1, Y_SIZE); 875 870 876 871 // Vertical inter-clusters RAM network DSPIN 877 872 DspinSignals<dspin_ram_cmd_width>** signal_dspin_ram_cmd_v_inc = 878 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_v_inc", X MAX, YMAX-1);873 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_v_inc", X_SIZE, Y_SIZE-1); 879 874 DspinSignals<dspin_ram_cmd_width>** signal_dspin_ram_cmd_v_dec = 880 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_v_dec", X MAX, YMAX-1);875 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_v_dec", X_SIZE, Y_SIZE-1); 881 876 DspinSignals<dspin_ram_rsp_width>** signal_dspin_ram_rsp_v_inc = 882 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_v_inc", X MAX, YMAX-1);877 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_v_inc", X_SIZE, Y_SIZE-1); 883 878 DspinSignals<dspin_ram_rsp_width>** signal_dspin_ram_rsp_v_dec = 884 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_v_dec", X MAX, YMAX-1);879 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_v_dec", X_SIZE, Y_SIZE-1); 885 880 886 881 // Mesh boundaries RAM network DSPIN 887 882 DspinSignals<dspin_ram_cmd_width>*** signal_dspin_false_ram_cmd_in = 888 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_false_ram_cmd_in", X MAX, YMAX, 4);883 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_false_ram_cmd_in", X_SIZE, Y_SIZE, 4); 889 884 DspinSignals<dspin_ram_cmd_width>*** signal_dspin_false_ram_cmd_out = 890 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_false_ram_cmd_out", X MAX, YMAX, 4);885 alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_false_ram_cmd_out", X_SIZE, Y_SIZE, 4); 891 886 DspinSignals<dspin_ram_rsp_width>*** signal_dspin_false_ram_rsp_in = 892 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_in", X MAX, YMAX, 4);887 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_in", X_SIZE, Y_SIZE, 4); 893 888 DspinSignals<dspin_ram_rsp_width>*** signal_dspin_false_ram_rsp_out = 894 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_out", X MAX, YMAX, 4);889 alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_out", X_SIZE, Y_SIZE, 4); 895 890 896 891 //////////////////////////// … … 1003 998 dspin_int_rsp_width, 1004 999 dspin_ram_cmd_width, 1005 dspin_ram_rsp_width>* clusters[X MAX][YMAX];1000 dspin_ram_rsp_width>* clusters[X_SIZE][Y_SIZE]; 1006 1001 1007 1002 #if USE_OPENMP … … 1010 1005 #pragma omp for 1011 1006 #endif 1012 for(size_t i = 0; i < (X MAX * YMAX); i++)1007 for(size_t i = 0; i < (X_SIZE * Y_SIZE); i++) 1013 1008 { 1014 size_t x = i / Y MAX;1015 size_t y = i % Y MAX;1009 size_t x = i / Y_SIZE; 1010 size_t y = i % Y_SIZE; 1016 1011 1017 1012 #if USE_OPENMP … … 1048 1043 x, 1049 1044 y, 1050 XMAX, 1051 YMAX, 1045 X_SIZE, 1046 Y_SIZE, 1047 1048 P_WIDTH, 1052 1049 1053 1050 maptab_int, … … 1055 1052 maptab_iox, 1056 1053 1057 x_width,1058 y_width,1059 vci_srcid_width - x_width - y_width, // l_id width,1054 X_WIDTH, 1055 Y_WIDTH, 1056 vci_srcid_width - X_WIDTH - Y_WIDTH, // l_id width, 1060 1057 1061 1058 INT_MEMC_TGT_ID, … … 1216 1213 if ( cluster_iob0 != cluster_iob1 ) 1217 1214 { 1218 (*clusters[X MAX-1][YMAX-1]->p_vci_iob_iox_ini) (signal_vci_ini_iob1);1219 (*clusters[X MAX-1][YMAX-1]->p_vci_iob_iox_tgt) (signal_vci_tgt_iob1);1215 (*clusters[X_SIZE-1][Y_SIZE-1]->p_vci_iob_iox_ini) (signal_vci_ini_iob1); 1216 (*clusters[X_SIZE-1][Y_SIZE-1]->p_vci_iob_iox_tgt) (signal_vci_tgt_iob1); 1220 1217 } 1221 1218 1222 1219 // All clusters Clock & RESET connexions 1223 for ( size_t x = 0; x < (X MAX); x++ )1220 for ( size_t x = 0; x < (X_SIZE); x++ ) 1224 1221 { 1225 for (size_t y = 0; y < Y MAX; y++)1222 for (size_t y = 0; y < Y_SIZE; y++) 1226 1223 { 1227 1224 clusters[x][y]->p_clk (signal_clk); … … 1231 1228 1232 1229 // Inter Clusters horizontal connections 1233 if (X MAX> 1)1230 if (X_SIZE > 1) 1234 1231 { 1235 for (size_t x = 0; x < (X MAX-1); x++)1232 for (size_t x = 0; x < (X_SIZE-1); x++) 1236 1233 { 1237 for (size_t y = 0; y < Y MAX; y++)1234 for (size_t y = 0; y < Y_SIZE; y++) 1238 1235 { 1239 1236 for (size_t k = 0; k < 3; k++) … … 1268 1265 1269 1266 // Inter Clusters vertical connections 1270 if (Y MAX> 1)1267 if (Y_SIZE > 1) 1271 1268 { 1272 for (size_t y = 0; y < (Y MAX-1); y++)1269 for (size_t y = 0; y < (Y_SIZE-1); y++) 1273 1270 { 1274 for (size_t x = 0; x < X MAX; x++)1271 for (size_t x = 0; x < X_SIZE; x++) 1275 1272 { 1276 1273 for (size_t k = 0; k < 3; k++) … … 1305 1302 1306 1303 // East & West boundary cluster connections 1307 for (size_t y = 0; y < Y MAX; y++)1304 for (size_t y = 0; y < Y_SIZE; y++) 1308 1305 { 1309 1306 for (size_t k = 0; k < 3; k++) … … 1311 1308 clusters[0][y]->p_dspin_int_cmd_in[WEST][k] (signal_dspin_false_int_cmd_in[0][y][WEST][k]); 1312 1309 clusters[0][y]->p_dspin_int_cmd_out[WEST][k] (signal_dspin_false_int_cmd_out[0][y][WEST][k]); 1313 clusters[X MAX-1][y]->p_dspin_int_cmd_in[EAST][k] (signal_dspin_false_int_cmd_in[XMAX-1][y][EAST][k]);1314 clusters[X MAX-1][y]->p_dspin_int_cmd_out[EAST][k] (signal_dspin_false_int_cmd_out[XMAX-1][y][EAST][k]);1310 clusters[X_SIZE-1][y]->p_dspin_int_cmd_in[EAST][k] (signal_dspin_false_int_cmd_in[X_SIZE-1][y][EAST][k]); 1311 clusters[X_SIZE-1][y]->p_dspin_int_cmd_out[EAST][k] (signal_dspin_false_int_cmd_out[X_SIZE-1][y][EAST][k]); 1315 1312 } 1316 1313 … … 1319 1316 clusters[0][y]->p_dspin_int_rsp_in[WEST][k] (signal_dspin_false_int_rsp_in[0][y][WEST][k]); 1320 1317 clusters[0][y]->p_dspin_int_rsp_out[WEST][k] (signal_dspin_false_int_rsp_out[0][y][WEST][k]); 1321 clusters[X MAX-1][y]->p_dspin_int_rsp_in[EAST][k] (signal_dspin_false_int_rsp_in[XMAX-1][y][EAST][k]);1322 clusters[X MAX-1][y]->p_dspin_int_rsp_out[EAST][k] (signal_dspin_false_int_rsp_out[XMAX-1][y][EAST][k]);1318 clusters[X_SIZE-1][y]->p_dspin_int_rsp_in[EAST][k] (signal_dspin_false_int_rsp_in[X_SIZE-1][y][EAST][k]); 1319 clusters[X_SIZE-1][y]->p_dspin_int_rsp_out[EAST][k] (signal_dspin_false_int_rsp_out[X_SIZE-1][y][EAST][k]); 1323 1320 } 1324 1321 … … 1328 1325 clusters[0][y]->p_dspin_ram_rsp_out[WEST] (signal_dspin_false_ram_rsp_out[0][y][WEST]); 1329 1326 1330 clusters[X MAX-1][y]->p_dspin_ram_cmd_in[EAST] (signal_dspin_false_ram_cmd_in[XMAX-1][y][EAST]);1331 clusters[X MAX-1][y]->p_dspin_ram_cmd_out[EAST] (signal_dspin_false_ram_cmd_out[XMAX-1][y][EAST]);1332 clusters[X MAX-1][y]->p_dspin_ram_rsp_in[EAST] (signal_dspin_false_ram_rsp_in[XMAX-1][y][EAST]);1333 clusters[X MAX-1][y]->p_dspin_ram_rsp_out[EAST] (signal_dspin_false_ram_rsp_out[XMAX-1][y][EAST]);1327 clusters[X_SIZE-1][y]->p_dspin_ram_cmd_in[EAST] (signal_dspin_false_ram_cmd_in[X_SIZE-1][y][EAST]); 1328 clusters[X_SIZE-1][y]->p_dspin_ram_cmd_out[EAST] (signal_dspin_false_ram_cmd_out[X_SIZE-1][y][EAST]); 1329 clusters[X_SIZE-1][y]->p_dspin_ram_rsp_in[EAST] (signal_dspin_false_ram_rsp_in[X_SIZE-1][y][EAST]); 1330 clusters[X_SIZE-1][y]->p_dspin_ram_rsp_out[EAST] (signal_dspin_false_ram_rsp_out[X_SIZE-1][y][EAST]); 1334 1331 } 1335 1332 … … 1337 1334 1338 1335 // North & South boundary clusters connections 1339 for (size_t x = 0; x < X MAX; x++)1336 for (size_t x = 0; x < X_SIZE; x++) 1340 1337 { 1341 1338 for (size_t k = 0; k < 3; k++) … … 1343 1340 clusters[x][0]->p_dspin_int_cmd_in[SOUTH][k] (signal_dspin_false_int_cmd_in[x][0][SOUTH][k]); 1344 1341 clusters[x][0]->p_dspin_int_cmd_out[SOUTH][k] (signal_dspin_false_int_cmd_out[x][0][SOUTH][k]); 1345 clusters[x][Y MAX-1]->p_dspin_int_cmd_in[NORTH][k] (signal_dspin_false_int_cmd_in[x][YMAX-1][NORTH][k]);1346 clusters[x][Y MAX-1]->p_dspin_int_cmd_out[NORTH][k] (signal_dspin_false_int_cmd_out[x][YMAX-1][NORTH][k]);1342 clusters[x][Y_SIZE-1]->p_dspin_int_cmd_in[NORTH][k] (signal_dspin_false_int_cmd_in[x][Y_SIZE-1][NORTH][k]); 1343 clusters[x][Y_SIZE-1]->p_dspin_int_cmd_out[NORTH][k] (signal_dspin_false_int_cmd_out[x][Y_SIZE-1][NORTH][k]); 1347 1344 } 1348 1345 … … 1351 1348 clusters[x][0]->p_dspin_int_rsp_in[SOUTH][k] (signal_dspin_false_int_rsp_in[x][0][SOUTH][k]); 1352 1349 clusters[x][0]->p_dspin_int_rsp_out[SOUTH][k] (signal_dspin_false_int_rsp_out[x][0][SOUTH][k]); 1353 clusters[x][Y MAX-1]->p_dspin_int_rsp_in[NORTH][k] (signal_dspin_false_int_rsp_in[x][YMAX-1][NORTH][k]);1354 clusters[x][Y MAX-1]->p_dspin_int_rsp_out[NORTH][k] (signal_dspin_false_int_rsp_out[x][YMAX-1][NORTH][k]);1350 clusters[x][Y_SIZE-1]->p_dspin_int_rsp_in[NORTH][k] (signal_dspin_false_int_rsp_in[x][Y_SIZE-1][NORTH][k]); 1351 clusters[x][Y_SIZE-1]->p_dspin_int_rsp_out[NORTH][k] (signal_dspin_false_int_rsp_out[x][Y_SIZE-1][NORTH][k]); 1355 1352 } 1356 1353 … … 1360 1357 clusters[x][0]->p_dspin_ram_rsp_out[SOUTH] (signal_dspin_false_ram_rsp_out[x][0][SOUTH]); 1361 1358 1362 clusters[x][Y MAX-1]->p_dspin_ram_cmd_in[NORTH] (signal_dspin_false_ram_cmd_in[x][YMAX-1][NORTH]);1363 clusters[x][Y MAX-1]->p_dspin_ram_cmd_out[NORTH] (signal_dspin_false_ram_cmd_out[x][YMAX-1][NORTH]);1364 clusters[x][Y MAX-1]->p_dspin_ram_rsp_in[NORTH] (signal_dspin_false_ram_rsp_in[x][YMAX-1][NORTH]);1365 clusters[x][Y MAX-1]->p_dspin_ram_rsp_out[NORTH] (signal_dspin_false_ram_rsp_out[x][YMAX-1][NORTH]);1359 clusters[x][Y_SIZE-1]->p_dspin_ram_cmd_in[NORTH] (signal_dspin_false_ram_cmd_in[x][Y_SIZE-1][NORTH]); 1360 clusters[x][Y_SIZE-1]->p_dspin_ram_cmd_out[NORTH] (signal_dspin_false_ram_cmd_out[x][Y_SIZE-1][NORTH]); 1361 clusters[x][Y_SIZE-1]->p_dspin_ram_rsp_in[NORTH] (signal_dspin_false_ram_rsp_in[x][Y_SIZE-1][NORTH]); 1362 clusters[x][Y_SIZE-1]->p_dspin_ram_rsp_out[NORTH] (signal_dspin_false_ram_rsp_out[x][Y_SIZE-1][NORTH]); 1366 1363 } 1367 1364 … … 1378 1375 1379 1376 // network boundaries signals 1380 for (size_t x = 0; x < X MAX; x++)1377 for (size_t x = 0; x < X_SIZE ; x++) 1381 1378 { 1382 for (size_t y = 0; y < Y MAX; y++)1379 for (size_t y = 0; y < Y_SIZE ; y++) 1383 1380 { 1384 1381 for (size_t a = 0; a < 4; a++) … … 1525 1522 { 1526 1523 clusters[0][0]->iob->print_trace(); 1527 clusters[X MAX-1][YMAX-1]->iob->print_trace();1524 clusters[X_SIZE-1][Y_SIZE-1]->iob->print_trace(); 1528 1525 // clusters[0][0]->signal_int_vci_tgt_iobx.print_trace( "[SIG]IOB0_INT_TGT"); 1529 1526 // clusters[0][0]->signal_int_vci_ini_iobx.print_trace( "[SIG]IOB0_INT_INI");
Note: See TracChangeset
for help on using the changeset viewer.