Ignore:
Timestamp:
Sep 17, 2014, 1:17:56 PM (10 years ago)
Author:
cfuguet
Message:

reconf/tsar_generic_iob: Using the new P_WIDTH constant

  • This constant is used in the clusters to compute the procesor id which now is: (((x << Y_WIDTH) + y) << P_WIDTH) + lpid
  • Introducing the p_width constant in the arch.py files
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/top.cpp

    r778 r806  
    5555// - IRQ_IN[4] : DMA channel 3
    5656//
    57 // All clusters are identical, but cluster(0,0) and cluster(XMAX-1,YMAX-1)
     57// All clusters are identical, but cluster(0,0) and cluster(X_SIZE-1,Y_SIZE-1)
    5858// contain an extra IO bridge component. These IOB0 & IOB1 components are
    5959// connected to the three networks (INT, RAM, IOX).
     
    101101// All physical segments base addresses are multiple of 1 Mbytes
    102102// (=> the 24 LSB bits = 0, and the 16 MSB bits define the target)
    103 // The (x_width + y_width) MSB bits (left aligned) define
     103// The (X_WIDTH + Y_WIDTH) MSB bits (left aligned) define
    104104// the cluster index, and the LADR bits define the local index:
    105105//      |X_ID|Y_ID|  LADR  |     OFFSET          |
     
    191191//////////////////////i/////////////////////////////////////
    192192
    193 #define XMAX                  X_SIZE
    194 #define YMAX                  Y_SIZE
    195 
    196193#define XRAM_LATENCY          0
    197194
     
    237234// in the hard_config.h file. For replicated segments, the
    238235// 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);
    240237
    241238////////////////////////////////////////////////////////////////////////
     
    336333   uint32_t frozen_cycles    = MAX_FROZEN_CYCLES;          // monitoring frozen processor
    337334   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
    341336
    342337   assert( (X_WIDTH == 4) and (Y_WIDTH == 4) and
     
    370365            size_t x = debug_memc_id >> 4;
    371366            size_t y = debug_memc_id & 0xF;
    372             if( (x>=XMAX) || (y>=YMAX) )
     367            if( (x>=X_SIZE) || (y>=Y_SIZE) )
    373368            {
    374                 std::cout << "MEMCID parameter does'nt fit XMAX/YMAX" << std::endl;
     369                std::cout << "MEMCID parameter does'nt fit X_SIZE/Y_SIZE" << std::endl;
    375370                exit(0);
    376371            }
     
    381376            size_t x = debug_xram_id >> 4;
    382377            size_t y = debug_xram_id & 0xF;
    383             if( (x>=XMAX) || (y>=YMAX) )
     378            if( (x>=X_SIZE) || (y>=Y_SIZE) )
    384379            {
    385                 std::cout << "XRAMID parameter does'nt fit XMAX/YMAX" << std::endl;
     380                std::cout << "XRAMID parameter does'nt fit X_SIZE/Y_SIZE" << std::endl;
    386381                exit(0);
    387382            }
     
    397392            size_t x          = cluster_xy >> 4;
    398393            size_t y          = cluster_xy & 0xF;
    399             if( (x>=XMAX) || (y>=YMAX) )
     394            if( (x>=X_SIZE) || (y>=Y_SIZE) )
    400395            {
    401                 std::cout << "PROCID parameter does'nt fit XMAX/YMAX" << std::endl;
     396                std::cout << "PROCID parameter does'nt fit X_SIZE/Y_SIZE" << std::endl;
    402397                exit(0);
    403398            }
     
    446441
    447442   // checking hardware parameters
    448    assert( (XMAX <= 16) and
    449            "The XMAX parameter cannot be larger than 16" );
    450 
    451    assert( (YMAX <= 16) and
    452            "The YMAX parameter 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" );
    453448
    454449   assert( (NB_PROCS_MAX <= 8) and
     
    465460
    466461   std::cout << std::endl << std::dec
    467              << " - XMAX            = " << XMAX << std::endl
    468              << " - YMAX            = " << YMAX << std::endl
     462             << " - X_SIZE          = " << X_SIZE << std::endl
     463             << " - Y_SIZE          = " << Y_SIZE << std::endl
    469464             << " - NB_PROCS_MAX    = " << NB_PROCS_MAX <<  std::endl
    470465             << " - NB_TTY_CHANNELS = " << NB_TTY_CHANNELS <<  std::endl
     
    519514   /////////////////////////////////////////////////////////////////////
    520515   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),
    523518                            0x00FF000000);
    524519
    525    for (size_t x = 0; x < XMAX; x++)
     520   for (size_t x = 0; x < X_SIZE; x++)
    526521   {
    527       for (size_t y = 0; y < YMAX; y++)
     522      for (size_t y = 0; y < Y_SIZE; y++)
    528523      {
    529524         uint64_t offset = ((uint64_t)cluster(x,y))
    530                               << (vci_address_width-x_width-y_width);
     525                              << (vci_address_width-X_WIDTH-Y_WIDTH);
    531526         bool config    = true;
    532527         bool cacheable = true;
     
    632627    ////////////////////////////////////////////////////////////////////////
    633628    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),
    636631                             0x00FF000000);
    637632
    638     for (size_t x = 0; x < XMAX; x++)
     633    for (size_t x = 0; x < X_SIZE; x++)
    639634    {
    640         for (size_t y = 0; y < YMAX ; y++)
     635        for (size_t y = 0; y < Y_SIZE ; y++)
    641636        {
    642637            uint64_t offset = ((uint64_t)cluster(x,y))
    643                                 << (vci_address_width-x_width-y_width);
     638                                << (vci_address_width-X_WIDTH-Y_WIDTH);
    644639
    645640            std::ostringstream sxram;
     
    692687    MappingTable maptab_iox(
    693688          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),
    696691          0x00FF000000);
    697692
     
    701696
    702697    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);
    704699
    705700    maptab_iox.add(Segment("iox_seg_mtty_0", SEG_TTY_BASE + iob0_base, SEG_TTY_SIZE,
     
    721716    {
    722717       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);
    724719
    725720        maptab_iox.add(Segment("iox_seg_mtty_1", SEG_TTY_BASE + iob1_base, SEG_TTY_SIZE,
     
    743738    // As IOMMU is not activated, addresses are 40 bits (physical addresses),
    744739    // and the choice depends on address bit A[32].
    745     for (size_t x = 0; x < XMAX; x++)
     740    for (size_t x = 0; x < X_SIZE; x++)
    746741    {
    747         for (size_t y = 0; y < YMAX ; y++)
     742        for (size_t y = 0; y < Y_SIZE ; y++)
    748743        {
    749744            const bool wti       = true;
     
    751746
    752747            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);
    754749
    755750            const uint64_t xicu_base = SEG_XCU_BASE + offset;
     
    835830   // Horizontal inter-clusters INT network DSPIN
    836831   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", XMAX-1, YMAX, 3);
     832      alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_inc", X_SIZE-1, Y_SIZE, 3);
    838833   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", XMAX-1, YMAX, 3);
     834      alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_h_dec", X_SIZE-1, Y_SIZE, 3);
    840835   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", XMAX-1, YMAX, 2);
     836      alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_inc", X_SIZE-1, Y_SIZE, 2);
    842837   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", XMAX-1, YMAX, 2);
     838      alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_h_dec", X_SIZE-1, Y_SIZE, 2);
    844839
    845840   // Vertical inter-clusters INT network DSPIN
    846841   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", XMAX, YMAX-1, 3);
     842      alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_inc", X_SIZE, Y_SIZE-1, 3);
    848843   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", XMAX, YMAX-1, 3);
     844      alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_int_cmd_v_dec", X_SIZE, Y_SIZE-1, 3);
    850845   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", XMAX, YMAX-1, 2);
     846      alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_inc", X_SIZE, Y_SIZE-1, 2);
    852847   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", XMAX, YMAX-1, 2);
     848      alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_int_rsp_v_dec", X_SIZE, Y_SIZE-1, 2);
    854849
    855850   // Mesh boundaries INT network DSPIN
    856851   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", XMAX, YMAX, 4, 3);
     852      alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_in", X_SIZE, Y_SIZE, 4, 3);
    858853   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", XMAX, YMAX, 4, 3);
     854      alloc_elems<DspinSignals<dspin_int_cmd_width> >("signal_dspin_false_int_cmd_out", X_SIZE, Y_SIZE, 4, 3);
    860855   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", XMAX, YMAX, 4, 2);
     856      alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_in", X_SIZE, Y_SIZE, 4, 2);
    862857   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", XMAX, YMAX, 4, 2);
     858      alloc_elems<DspinSignals<dspin_int_rsp_width> >("signal_dspin_false_int_rsp_out", X_SIZE, Y_SIZE, 4, 2);
    864859
    865860
    866861   // Horizontal inter-clusters RAM network DSPIN
    867862   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", XMAX-1, YMAX);
     863      alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_h_inc", X_SIZE-1, Y_SIZE);
    869864   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", XMAX-1, YMAX);
     865      alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_h_dec", X_SIZE-1, Y_SIZE);
    871866   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", XMAX-1, YMAX);
     867      alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_h_inc", X_SIZE-1, Y_SIZE);
    873868   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", XMAX-1, YMAX);
     869      alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_h_dec", X_SIZE-1, Y_SIZE);
    875870
    876871   // Vertical inter-clusters RAM network DSPIN
    877872   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", XMAX, YMAX-1);
     873      alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_v_inc", X_SIZE, Y_SIZE-1);
    879874   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", XMAX, YMAX-1);
     875      alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_ram_cmd_v_dec", X_SIZE, Y_SIZE-1);
    881876   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", XMAX, YMAX-1);
     877      alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_v_inc", X_SIZE, Y_SIZE-1);
    883878   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", XMAX, YMAX-1);
     879      alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_ram_rsp_v_dec", X_SIZE, Y_SIZE-1);
    885880
    886881   // Mesh boundaries RAM network DSPIN
    887882   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", XMAX, YMAX, 4);
     883      alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_false_ram_cmd_in", X_SIZE, Y_SIZE, 4);
    889884   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", XMAX, YMAX, 4);
     885      alloc_elems<DspinSignals<dspin_ram_cmd_width> >("signal_dspin_false_ram_cmd_out", X_SIZE, Y_SIZE, 4);
    891886   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", XMAX, YMAX, 4);
     887      alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_in", X_SIZE, Y_SIZE, 4);
    893888   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", XMAX, YMAX, 4);
     889      alloc_elems<DspinSignals<dspin_ram_rsp_width> >("signal_dspin_false_ram_rsp_out", X_SIZE, Y_SIZE, 4);
    895890
    896891   ////////////////////////////
     
    1003998                  dspin_int_rsp_width,
    1004999                  dspin_ram_cmd_width,
    1005                   dspin_ram_rsp_width>* clusters[XMAX][YMAX];
     1000                  dspin_ram_rsp_width>* clusters[X_SIZE][Y_SIZE];
    10061001
    10071002#if USE_OPENMP
     
    10101005#pragma omp for
    10111006#endif
    1012         for(size_t i = 0; i  < (XMAX * YMAX); i++)
     1007        for(size_t i = 0; i  < (X_SIZE * Y_SIZE); i++)
    10131008        {
    1014             size_t x = i / YMAX;
    1015             size_t y = i % YMAX;
     1009            size_t x = i / Y_SIZE;
     1010            size_t y = i % Y_SIZE;
    10161011
    10171012#if USE_OPENMP
     
    10481043                x,
    10491044                y,
    1050                 XMAX,
    1051                 YMAX,
     1045                X_SIZE,
     1046                Y_SIZE,
     1047
     1048                P_WIDTH,
    10521049
    10531050                maptab_int,
     
    10551052                maptab_iox,
    10561053
    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,
    10601057
    10611058                INT_MEMC_TGT_ID,
     
    12161213    if ( cluster_iob0 != cluster_iob1 )
    12171214    {
    1218         (*clusters[XMAX-1][YMAX-1]->p_vci_iob_iox_ini) (signal_vci_ini_iob1);
    1219         (*clusters[XMAX-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);
    12201217    }
    12211218
    12221219    // All clusters Clock & RESET connexions
    1223     for ( size_t x = 0; x < (XMAX); x++ )
     1220    for ( size_t x = 0; x < (X_SIZE); x++ )
    12241221    {
    1225         for (size_t y = 0; y < YMAX; y++)
     1222        for (size_t y = 0; y < Y_SIZE; y++)
    12261223        {
    12271224            clusters[x][y]->p_clk     (signal_clk);
     
    12311228
    12321229   // Inter Clusters horizontal connections
    1233    if (XMAX > 1)
     1230   if (X_SIZE > 1)
    12341231   {
    1235       for (size_t x = 0; x < (XMAX-1); x++)
     1232      for (size_t x = 0; x < (X_SIZE-1); x++)
    12361233      {
    1237          for (size_t y = 0; y < YMAX; y++)
     1234         for (size_t y = 0; y < Y_SIZE; y++)
    12381235         {
    12391236            for (size_t k = 0; k < 3; k++)
     
    12681265
    12691266   // Inter Clusters vertical connections
    1270    if (YMAX > 1)
     1267   if (Y_SIZE > 1)
    12711268   {
    1272       for (size_t y = 0; y < (YMAX-1); y++)
     1269      for (size_t y = 0; y < (Y_SIZE-1); y++)
    12731270      {
    1274          for (size_t x = 0; x < XMAX; x++)
     1271         for (size_t x = 0; x < X_SIZE; x++)
    12751272         {
    12761273            for (size_t k = 0; k < 3; k++)
     
    13051302
    13061303   // East & West boundary cluster connections
    1307    for (size_t y = 0; y < YMAX; y++)
     1304   for (size_t y = 0; y < Y_SIZE; y++)
    13081305   {
    13091306      for (size_t k = 0; k < 3; k++)
     
    13111308         clusters[0][y]->p_dspin_int_cmd_in[WEST][k]          (signal_dspin_false_int_cmd_in[0][y][WEST][k]);
    13121309         clusters[0][y]->p_dspin_int_cmd_out[WEST][k]         (signal_dspin_false_int_cmd_out[0][y][WEST][k]);
    1313          clusters[XMAX-1][y]->p_dspin_int_cmd_in[EAST][k]     (signal_dspin_false_int_cmd_in[XMAX-1][y][EAST][k]);
    1314          clusters[XMAX-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]);
    13151312      }
    13161313
     
    13191316         clusters[0][y]->p_dspin_int_rsp_in[WEST][k]          (signal_dspin_false_int_rsp_in[0][y][WEST][k]);
    13201317         clusters[0][y]->p_dspin_int_rsp_out[WEST][k]         (signal_dspin_false_int_rsp_out[0][y][WEST][k]);
    1321          clusters[XMAX-1][y]->p_dspin_int_rsp_in[EAST][k]     (signal_dspin_false_int_rsp_in[XMAX-1][y][EAST][k]);
    1322          clusters[XMAX-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]);
    13231320      }
    13241321
     
    13281325     clusters[0][y]->p_dspin_ram_rsp_out[WEST]      (signal_dspin_false_ram_rsp_out[0][y][WEST]);
    13291326
    1330      clusters[XMAX-1][y]->p_dspin_ram_cmd_in[EAST]  (signal_dspin_false_ram_cmd_in[XMAX-1][y][EAST]);
    1331      clusters[XMAX-1][y]->p_dspin_ram_cmd_out[EAST] (signal_dspin_false_ram_cmd_out[XMAX-1][y][EAST]);
    1332      clusters[XMAX-1][y]->p_dspin_ram_rsp_in[EAST]  (signal_dspin_false_ram_rsp_in[XMAX-1][y][EAST]);
    1333      clusters[XMAX-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]);
    13341331   }
    13351332
     
    13371334
    13381335   // North & South boundary clusters connections
    1339    for (size_t x = 0; x < XMAX; x++)
     1336   for (size_t x = 0; x < X_SIZE; x++)
    13401337   {
    13411338      for (size_t k = 0; k < 3; k++)
     
    13431340         clusters[x][0]->p_dspin_int_cmd_in[SOUTH][k]         (signal_dspin_false_int_cmd_in[x][0][SOUTH][k]);
    13441341         clusters[x][0]->p_dspin_int_cmd_out[SOUTH][k]        (signal_dspin_false_int_cmd_out[x][0][SOUTH][k]);
    1345          clusters[x][YMAX-1]->p_dspin_int_cmd_in[NORTH][k]    (signal_dspin_false_int_cmd_in[x][YMAX-1][NORTH][k]);
    1346          clusters[x][YMAX-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]);
    13471344      }
    13481345
     
    13511348         clusters[x][0]->p_dspin_int_rsp_in[SOUTH][k]         (signal_dspin_false_int_rsp_in[x][0][SOUTH][k]);
    13521349         clusters[x][0]->p_dspin_int_rsp_out[SOUTH][k]        (signal_dspin_false_int_rsp_out[x][0][SOUTH][k]);
    1353          clusters[x][YMAX-1]->p_dspin_int_rsp_in[NORTH][k]    (signal_dspin_false_int_rsp_in[x][YMAX-1][NORTH][k]);
    1354          clusters[x][YMAX-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]);
    13551352      }
    13561353
     
    13601357      clusters[x][0]->p_dspin_ram_rsp_out[SOUTH]      (signal_dspin_false_ram_rsp_out[x][0][SOUTH]);
    13611358
    1362       clusters[x][YMAX-1]->p_dspin_ram_cmd_in[NORTH]  (signal_dspin_false_ram_cmd_in[x][YMAX-1][NORTH]);
    1363       clusters[x][YMAX-1]->p_dspin_ram_cmd_out[NORTH] (signal_dspin_false_ram_cmd_out[x][YMAX-1][NORTH]);
    1364       clusters[x][YMAX-1]->p_dspin_ram_rsp_in[NORTH]  (signal_dspin_false_ram_rsp_in[x][YMAX-1][NORTH]);
    1365       clusters[x][YMAX-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]);
    13661363   }
    13671364
     
    13781375
    13791376   // network boundaries signals
    1380    for (size_t x = 0; x < XMAX ; x++)
     1377   for (size_t x = 0; x < X_SIZE ; x++)
    13811378   {
    1382       for (size_t y = 0; y < YMAX ; y++)
     1379      for (size_t y = 0; y < Y_SIZE ; y++)
    13831380      {
    13841381         for (size_t a = 0; a < 4; a++)
     
    15251522         {
    15261523            clusters[0][0]->iob->print_trace();
    1527             clusters[XMAX-1][YMAX-1]->iob->print_trace();
     1524            clusters[X_SIZE-1][Y_SIZE-1]->iob->print_trace();
    15281525            //              clusters[0][0]->signal_int_vci_tgt_iobx.print_trace( "[SIG]IOB0_INT_TGT");
    15291526            //              clusters[0][0]->signal_int_vci_ini_iobx.print_trace( "[SIG]IOB0_INT_INI");
Note: See TracChangeset for help on using the changeset viewer.