Changeset 851


Ignore:
Timestamp:
Oct 20, 2014, 12:16:17 PM (8 years ago)
Author:
cfuguet
Message:

reconf/tsar_generic_iob: replacing the virtual dspin routers by dspin routers

  • The two virtual dspin routers of the L1-L2 network have been replaced by 5 dspin routers: CMD, M2P, CLACK, RSP, P2M
Location:
branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd

    r841 r851  
    7878              dspin_rsp_width    = parameter.Reference('dspin_int_rsp_width')),
    7979
    80         Uses('caba:virtual_dspin_router',
     80        Uses('caba:dspin_router',
    8181              flit_width         = parameter.Reference('dspin_int_cmd_width')),
    8282
    83         Uses('caba:virtual_dspin_router',
     83        Uses('caba:dspin_router',
    8484              flit_width         = parameter.Reference('dspin_int_rsp_width')),
    8585
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r806 r851  
    2727#include "vci_dspin_target_wrapper.h"
    2828#include "dspin_router.h"
    29 #include "virtual_dspin_router.h"
    3029#include "vci_multi_dma.h"
    3130#include "vci_mem_cache.h"
     
    164163    DspinLocalCrossbar<dspin_int_cmd_width>*          int_xbar_clack_c;
    165164
    166     VirtualDspinRouter<dspin_int_cmd_width>*          int_router_cmd;
    167     VirtualDspinRouter<dspin_int_rsp_width>*          int_router_rsp;
     165    DspinRouter<dspin_int_cmd_width>**                int_router_cmd;
     166    DspinRouter<dspin_int_rsp_width>**                int_router_rsp;
    168167
    169168    VciSimpleRam<vci_param_ext>*                      xram;
     
    244243                    bool                               iob0_debug_ok );
    245244
     245    ~TsarIobCluster();
     246
    246247  protected:
    247248
  • branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r806 r851  
    295295
    296296    //////////////  INT ROUTER(S)
    297     std::ostringstream s_int_router_cmd;
    298     s_int_router_cmd << "router_cmd_" << x_id << "_" << y_id;
    299     int_router_cmd = new VirtualDspinRouter<dspin_int_cmd_width>(
    300                      s_int_router_cmd.str().c_str(),
    301                      x_id,y_id,                    // coordinate in the mesh
    302                      x_width, y_width,             // x & y fields width
    303                      3,                            // nb virtual channels
    304                      4, 4);                        // input & output fifo depths
    305 
    306     std::ostringstream s_int_router_rsp;
    307     s_int_router_rsp << "router_rsp_" << x_id << "_" << y_id;
    308     int_router_rsp = new VirtualDspinRouter<dspin_int_rsp_width>(
    309                      s_int_router_rsp.str().c_str(),
    310                      x_id,y_id,                    // router coordinates in mesh
    311                      x_width, y_width,             // x & y fields width
    312                      2,                            // nb virtual channels
    313                      4, 4);                        // input & output fifo depths
     297    int_router_cmd = new DspinRouter<dspin_int_cmd_width>*[3];
     298    for (int k = 0; k < 3; k++)
     299    {
     300        std::ostringstream s_int_router_cmd;
     301        s_int_router_cmd << "router_cmd_" << x_id << "_" << y_id << "_" << k;
     302        int_router_cmd[k] = new DspinRouter<dspin_int_cmd_width>(
     303                s_int_router_cmd.str().c_str(),
     304                x_id, y_id,
     305                x_width, y_width,
     306                4, 4,
     307                (k == 1));
     308    }
     309
     310    int_router_rsp = new DspinRouter<dspin_int_rsp_width>*[2];
     311    for (int k = 0; k < 2; k++)
     312    {
     313        std::ostringstream s_int_router_rsp;
     314        s_int_router_rsp << "router_rsp_" << x_id << "_" << y_id << "_" << k;
     315        int_router_rsp[k] = new DspinRouter<dspin_int_rsp_width>(
     316                s_int_router_rsp.str().c_str(),
     317                x_id, y_id,
     318                x_width, y_width,
     319                4, 4,
     320                false);
     321    }
    314322
    315323    //////////////  XRAM
     
    416424
    417425    //////////////////////// internal CMD & RSP routers
    418     int_router_cmd->p_clk                        (this->p_clk);
    419     int_router_cmd->p_resetn                     (this->p_resetn);
    420     int_router_rsp->p_clk                        (this->p_clk);
    421     int_router_rsp->p_resetn                     (this->p_resetn);
    422 
    423     for (int i = 0; i < 4; i++)
    424     {
    425         for(int k = 0; k < 3; k++)
     426    for(int k = 0; k < 3; k++)
     427    {
     428        int_router_cmd[k]->p_clk                 (this->p_clk);
     429        int_router_cmd[k]->p_resetn              (this->p_resetn);
     430        for (int i = 0; i < 4; i++)
    426431        {
    427             int_router_cmd->p_out[i][k]          (this->p_dspin_int_cmd_out[i][k]);
    428             int_router_cmd->p_in[i][k]           (this->p_dspin_int_cmd_in[i][k]);
     432            int_router_cmd[k]->p_out[i]          (this->p_dspin_int_cmd_out[i][k]);
     433            int_router_cmd[k]->p_in[i]           (this->p_dspin_int_cmd_in[i][k]);
    429434        }
    430 
    431         for(int k = 0; k < 2; k++)
     435    }
     436
     437    for(int k = 0; k < 2; k++)
     438    {
     439        int_router_rsp[k]->p_clk                 (this->p_clk);
     440        int_router_rsp[k]->p_resetn              (this->p_resetn);
     441        for (int i = 0; i < 4; i++)
    432442        {
    433             int_router_rsp->p_out[i][k]          (this->p_dspin_int_rsp_out[i][k]);
    434             int_router_rsp->p_in[i][k]           (this->p_dspin_int_rsp_in[i][k]);
     443            int_router_rsp[k]->p_out[i]          (this->p_dspin_int_rsp_out[i][k]);
     444            int_router_rsp[k]->p_in[i]           (this->p_dspin_int_rsp_in[i][k]);
    435445        }
    436446    }
    437447
    438448    // local ports
    439     int_router_cmd->p_out[4][0]                  (signal_int_dspin_cmd_g2l_d);
    440     int_router_cmd->p_out[4][1]                  (signal_int_dspin_m2p_g2l_c);
    441     int_router_cmd->p_out[4][2]                  (signal_int_dspin_clack_g2l_c);
    442     int_router_cmd->p_in[4][0]                   (signal_int_dspin_cmd_l2g_d);
    443     int_router_cmd->p_in[4][1]                   (signal_int_dspin_m2p_l2g_c);
    444     int_router_cmd->p_in[4][2]                   (signal_int_dspin_clack_l2g_c);
    445 
    446     int_router_rsp->p_out[4][0]                  (signal_int_dspin_rsp_g2l_d);
    447     int_router_rsp->p_out[4][1]                  (signal_int_dspin_p2m_g2l_c);
    448     int_router_rsp->p_in[4][0]                   (signal_int_dspin_rsp_l2g_d);
    449     int_router_rsp->p_in[4][1]                   (signal_int_dspin_p2m_l2g_c);
     449    int_router_cmd[0]->p_out[4]                  (signal_int_dspin_cmd_g2l_d);
     450    int_router_cmd[1]->p_out[4]                  (signal_int_dspin_m2p_g2l_c);
     451    int_router_cmd[2]->p_out[4]                  (signal_int_dspin_clack_g2l_c);
     452    int_router_cmd[0]->p_in[4]                   (signal_int_dspin_cmd_l2g_d);
     453    int_router_cmd[1]->p_in[4]                   (signal_int_dspin_m2p_l2g_c);
     454    int_router_cmd[2]->p_in[4]                   (signal_int_dspin_clack_l2g_c);
     455
     456    int_router_rsp[0]->p_out[4]                  (signal_int_dspin_rsp_g2l_d);
     457    int_router_rsp[1]->p_out[4]                  (signal_int_dspin_p2m_g2l_c);
     458    int_router_rsp[0]->p_in[4]                   (signal_int_dspin_rsp_l2g_d);
     459    int_router_rsp[1]->p_in[4]                   (signal_int_dspin_p2m_l2g_c);
    450460
    451461    ///////////////////// CMD DSPIN  local crossbar direct
     
    654664} // end init
    655665
     666tmpl(/**/)::~TsarIobCluster()
     667{
     668    for (int k = 0; k < 3; k++)
     669    {
     670        delete int_router_cmd[k];
     671    }
     672    delete [] int_router_cmd;
     673
     674    for (int k = 0; k < 2; k++)
     675    {
     676        delete int_router_rsp[k];
     677    }
     678    delete [] int_router_rsp;
     679}
     680
    656681}}
    657682
Note: See TracChangeset for help on using the changeset viewer.