Ignore:
Timestamp:
Jul 18, 2013, 5:51:18 PM (11 years ago)
Author:
cfuguet
Message:

Modification in branches/v5/platforms/tsar_generic_xbar:

  • Adding a DSPIN router to the platform to allow the inter-cluster communication for the CLACK commands.

With this modification, the tsar_generic_xbar platform can be used
for multi-cluster simulations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/v5/platforms/tsar_generic_xbar/top.cpp

    r447 r448  
    505505   DspinSignals<dspin_rsp_width>*** signal_dspin_h_rsp_dec =
    506506      alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_dec", XMAX-1, YMAX, 2);
     507   DspinSignals<dspin_cmd_width>**  signal_dspin_h_clack_inc =
     508      alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_clack_inc", XMAX-1, YMAX);
     509   DspinSignals<dspin_cmd_width>**  signal_dspin_h_clack_dec =
     510      alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_clack_dec", XMAX-1, YMAX);
    507511
    508512   // Vertical inter-clusters DSPIN signals
     
    515519   DspinSignals<dspin_rsp_width>*** signal_dspin_v_rsp_dec =
    516520      alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_dec", XMAX, YMAX-1, 2);
     521   DspinSignals<dspin_cmd_width>**  signal_dspin_v_clack_inc =
     522      alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_clack_inc", XMAX, YMAX-1);
     523   DspinSignals<dspin_cmd_width>**  signal_dspin_v_clack_dec =
     524      alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_clack_dec", XMAX, YMAX-1);
    517525
    518526   // Mesh boundaries DSPIN signals
     
    525533   DspinSignals<dspin_rsp_width>**** signal_dspin_false_rsp_out =
    526534      alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_out", XMAX, YMAX, 2, 4);
     535   DspinSignals<dspin_cmd_width>***  signal_dspin_false_clack_in =
     536      alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_clack_in", XMAX, YMAX, 4);
     537   DspinSignals<dspin_cmd_width>***  signal_dspin_false_clack_out =
     538      alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_clack_out", XMAX, YMAX, 4);
    527539
    528540
     
    653665               clusters[x+1][y]->p_rsp_out[k][WEST]    (signal_dspin_h_rsp_dec[x][y][k]);
    654666            }
     667            clusters[x][y]->p_clack_out[EAST]      (signal_dspin_h_clack_inc[x][y]);
     668            clusters[x+1][y]->p_clack_in[WEST]     (signal_dspin_h_clack_inc[x][y]);
     669            clusters[x][y]->p_clack_in[EAST]       (signal_dspin_h_clack_dec[x][y]);
     670            clusters[x+1][y]->p_clack_out[WEST]    (signal_dspin_h_clack_dec[x][y]);
    655671         }
    656672      }
     
    672688               clusters[x][y+1]->p_rsp_out[k][SOUTH]   (signal_dspin_v_rsp_dec[x][y][k]);
    673689            }
     690            clusters[x][y]->p_clack_out[NORTH]     (signal_dspin_v_clack_inc[x][y]);
     691            clusters[x][y+1]->p_clack_in[SOUTH]    (signal_dspin_v_clack_inc[x][y]);
     692            clusters[x][y]->p_clack_in[NORTH]      (signal_dspin_v_clack_dec[x][y]);
     693            clusters[x][y+1]->p_clack_out[SOUTH]   (signal_dspin_v_clack_dec[x][y]);
    674694         }
    675695      }
     
    682702      for (size_t k = 0; k < 2; k++)
    683703      {
    684          clusters[0][y]->p_cmd_in[k][WEST]             (signal_dspin_false_cmd_in[0][y][k][WEST]);
    685          clusters[0][y]->p_cmd_out[k][WEST]            (signal_dspin_false_cmd_out[0][y][k][WEST]);
    686          clusters[0][y]->p_rsp_in[k][WEST]             (signal_dspin_false_rsp_in[0][y][k][WEST]);
    687          clusters[0][y]->p_rsp_out[k][WEST]            (signal_dspin_false_rsp_out[0][y][k][WEST]);
     704         clusters[0][y]->p_cmd_in[k][WEST]        (signal_dspin_false_cmd_in[0][y][k][WEST]);
     705         clusters[0][y]->p_cmd_out[k][WEST]       (signal_dspin_false_cmd_out[0][y][k][WEST]);
     706         clusters[0][y]->p_rsp_in[k][WEST]        (signal_dspin_false_rsp_in[0][y][k][WEST]);
     707         clusters[0][y]->p_rsp_out[k][WEST]       (signal_dspin_false_rsp_out[0][y][k][WEST]);
    688708
    689709         clusters[XMAX-1][y]->p_cmd_in[k][EAST]   (signal_dspin_false_cmd_in[XMAX-1][y][k][EAST]);
     
    692712         clusters[XMAX-1][y]->p_rsp_out[k][EAST]  (signal_dspin_false_rsp_out[XMAX-1][y][k][EAST]);
    693713      }
     714
     715      clusters[0][y]->p_clack_in[WEST]       (signal_dspin_false_clack_in[0][y][WEST]);
     716      clusters[0][y]->p_clack_out[WEST]      (signal_dspin_false_clack_out[0][y][WEST]);
     717
     718      clusters[XMAX-1][y]->p_clack_in[EAST]  (signal_dspin_false_clack_in[XMAX-1][y][EAST]);
     719      clusters[XMAX-1][y]->p_clack_out[EAST] (signal_dspin_false_clack_out[XMAX-1][y][EAST]);
    694720   }
    695721
     
    699725      for (size_t k = 0; k < 2; k++)
    700726      {
    701          clusters[x][0]->p_cmd_in[k][SOUTH]            (signal_dspin_false_cmd_in[x][0][k][SOUTH]);
    702          clusters[x][0]->p_cmd_out[k][SOUTH]           (signal_dspin_false_cmd_out[x][0][k][SOUTH]);
    703          clusters[x][0]->p_rsp_in[k][SOUTH]            (signal_dspin_false_rsp_in[x][0][k][SOUTH]);
    704          clusters[x][0]->p_rsp_out[k][SOUTH]           (signal_dspin_false_rsp_out[x][0][k][SOUTH]);
     727         clusters[x][0]->p_cmd_in[k][SOUTH]       (signal_dspin_false_cmd_in[x][0][k][SOUTH]);
     728         clusters[x][0]->p_cmd_out[k][SOUTH]      (signal_dspin_false_cmd_out[x][0][k][SOUTH]);
     729         clusters[x][0]->p_rsp_in[k][SOUTH]       (signal_dspin_false_rsp_in[x][0][k][SOUTH]);
     730         clusters[x][0]->p_rsp_out[k][SOUTH]      (signal_dspin_false_rsp_out[x][0][k][SOUTH]);
    705731
    706732         clusters[x][YMAX-1]->p_cmd_in[k][NORTH]  (signal_dspin_false_cmd_in[x][YMAX-1][k][NORTH]);
     
    709735         clusters[x][YMAX-1]->p_rsp_out[k][NORTH] (signal_dspin_false_rsp_out[x][YMAX-1][k][NORTH]);
    710736      }
     737
     738      clusters[x][0]->p_clack_in[SOUTH]       (signal_dspin_false_clack_in[x][0][SOUTH]);
     739      clusters[x][0]->p_clack_out[SOUTH]      (signal_dspin_false_clack_out[x][0][SOUTH]);
     740
     741      clusters[x][YMAX-1]->p_clack_in[NORTH]  (signal_dspin_false_clack_in[x][YMAX-1][NORTH]);
     742      clusters[x][YMAX-1]->p_clack_out[NORTH] (signal_dspin_false_clack_out[x][YMAX-1][NORTH]);
    711743   }
    712744   std::cout << "North, South, West, East connections established" << std::endl;
     
    736768               signal_dspin_false_rsp_out[x][y][k][a].read  = true;
    737769            }
     770         }
     771      }
     772   }
     773   // clack network boundaries signals
     774   for (size_t x = 0; x < XMAX ; x++){
     775      for (size_t y = 0; y < YMAX ; y++){
     776         for (size_t k = 0; k < 4; k++){
     777            signal_dspin_false_clack_in [x][y][k].write = false;
     778            signal_dspin_false_clack_in [x][y][k].read  = true;
     779            signal_dspin_false_clack_out[x][y][k].write = false;
     780            signal_dspin_false_clack_out[x][y][k].read  = true;
    738781         }
    739782      }
Note: See TracChangeset for help on using the changeset viewer.