Ignore:
Timestamp:
May 17, 2014, 11:54:12 AM (10 years ago)
Author:
cfuguet
Message:

tsar_generic_iob:

  • Replacing tsar_iob_cluster dspin_local_crossbar by vci_local_crossbar (Direct Network)
  • Display real simulation clock frequency in top.cpp
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r607 r693  
    149149                      debug_start_cycle,
    150150                      proc_debug_ok);
    151 
    152         std::ostringstream s_wi_proc;
    153         s_wi_proc << "proc_wi_" << x_id << "_" << y_id << "_" << p;
    154         proc_wi[p] = new VciDspinInitiatorWrapper<vci_param_int,
    155                                                       dspin_int_cmd_width,
    156                                                       dspin_int_rsp_width>(
    157                      s_wi_proc.str().c_str(),
    158                      x_width + y_width + l_width);
    159151    }
    160152
     
    182174                     memc_debug_ok );
    183175
    184     std::ostringstream s_wt_memc;
    185     s_wt_memc << "memc_wt_" << x_id << "_" << y_id;
    186     memc_int_wt = new VciDspinTargetWrapper<vci_param_int,
    187                                             dspin_int_cmd_width,
    188                                             dspin_int_rsp_width>(
    189                      s_wt_memc.str().c_str(),
    190                      x_width + y_width + l_width);
    191 
    192176    std::ostringstream s_wi_memc;
    193177    s_wi_memc << "memc_wi_" << x_id << "_" << y_id;
     
    210194                     nb_procs);                         // number of output IRQs
    211195
    212     std::ostringstream s_wt_xicu;
    213     s_wt_xicu << "xicu_wt_" << x_id << "_" << y_id;
    214     xicu_int_wt = new VciDspinTargetWrapper<vci_param_int,
    215                                         dspin_int_cmd_width,
    216                                         dspin_int_rsp_width>(
    217                      s_wt_xicu.str().c_str(),
    218                      x_width + y_width + l_width);
    219 
    220196    ////////////  MDMA
    221197    std::ostringstream s_mdma;
     
    229205                     nb_dmas);                            // number of IRQs
    230206
    231     std::ostringstream s_wt_mdma;
    232     s_wt_mdma << "mdma_wt_" << x_id << "_" << y_id;
    233     mdma_int_wt = new VciDspinTargetWrapper<vci_param_int,
    234                                             dspin_int_cmd_width,
    235                                             dspin_int_rsp_width>(
    236                      s_wt_mdma.str().c_str(),
    237                      x_width + y_width + l_width);
    238 
    239     std::ostringstream s_wi_mdma;
    240     s_wi_mdma << "mdma_wi_" << x_id << "_" << y_id;
    241     mdma_int_wi = new VciDspinInitiatorWrapper<vci_param_int,
    242                                                dspin_int_cmd_width,
    243                                                dspin_int_rsp_width>(
    244                      s_wi_mdma.str().c_str(),
    245                      x_width + y_width + l_width);
    246 
    247207    ///////////  Direct LOCAL_XBAR(S)
    248208    size_t nb_direct_initiators      = nb_procs + 1;
     
    254214    }
    255215
    256     std::ostringstream s_int_xbar_cmd_d;
    257     s_int_xbar_cmd_d << "int_xbar_cmd_d_" << x_id << "_" << y_id;
    258     int_xbar_cmd_d = new DspinLocalCrossbar<dspin_int_cmd_width>(
    259                      s_int_xbar_cmd_d.str().c_str(),
     216    std::ostringstream s_int_xbar_d;
     217    s_int_xbar_d << "int_xbar_cmd_d_" << x_id << "_" << y_id;
     218    int_xbar_d = new VciLocalCrossbar<vci_param_int>(
     219                     s_int_xbar_d.str().c_str(),
    260220                     mt_int,                       // mapping table
    261                      x_id, y_id,                   // cluster coordinates
    262                      x_width, y_width, l_width,
    263                      nb_direct_initiators,         // number of local of sources
    264                      nb_direct_targets,            // number of local dests
    265                      2, 2,                         // fifo depths 
    266                      true,                         // CMD crossbar
    267                      true,                         // use routing table
    268                      false );                      // no broacast
    269 
    270     std::ostringstream s_int_xbar_rsp_d;
    271     s_int_xbar_rsp_d << "int_xbar_rsp_d_" << x_id << "_" << y_id;
    272     int_xbar_rsp_d = new DspinLocalCrossbar<dspin_int_rsp_width>(
    273                      s_int_xbar_rsp_d.str().c_str(),
    274                      mt_int,                       // mapping table
    275                      x_id, y_id,                   // cluster coordinates
    276                      x_width, y_width, l_width,
    277                      nb_direct_targets,            // number of local sources     
    278                      nb_direct_initiators,         // number of local dests
    279                      2, 2,                         // fifo depths
    280                      false,                        // RSP crossbar 
    281                      false,                        // don't use routing table
    282                      false );                      // no broacast
     221                     cluster_id,                   // cluster id
     222                     nb_direct_initiators,         // number of local initiators
     223                     nb_direct_targets,            // number of local targets
     224                     0 );                          // default target
     225
     226    std::ostringstream s_int_dspin_ini_wrapper_gate_d;
     227    s_int_dspin_ini_wrapper_gate_d << "int_dspin_ini_wrapper_gate_d_"
     228                                   << x_id << "_" << y_id;
     229    int_wi_gate_d = new VciDspinInitiatorWrapper<vci_param_int,
     230                                           dspin_int_cmd_width,
     231                                           dspin_int_rsp_width>(
     232                     s_int_dspin_ini_wrapper_gate_d.str().c_str(),
     233                     x_width + y_width + l_width);
     234
     235    std::ostringstream s_int_dspin_tgt_wrapper_gate_d;
     236    s_int_dspin_tgt_wrapper_gate_d << "int_dspin_tgt_wrapper_gate_d_"
     237                                   << x_id << "_" << y_id;
     238    int_wt_gate_d = new VciDspinTargetWrapper<vci_param_int,
     239                                        dspin_int_cmd_width,
     240                                        dspin_int_rsp_width>(
     241                     s_int_dspin_tgt_wrapper_gate_d.str().c_str(),
     242                     x_width + y_width + l_width);
     243
    283244
    284245    ////////////  Coherence LOCAL_XBAR(S)
     
    430391                     iob_debug_ok );
    431392       
    432         std::ostringstream s_iob_int_wi;
    433         s_iob_int_wi << "iob_int_wi_" << x_id << "_" << y_id;   
    434         iob_int_wi = new VciDspinInitiatorWrapper<vci_param_int,
    435                                                   dspin_int_cmd_width,
    436                                                   dspin_int_rsp_width>(
    437                      s_iob_int_wi.str().c_str(),
    438                      x_width + y_width + l_width);
    439 
    440         std::ostringstream s_iob_int_wt;
    441         s_iob_int_wt << "iob_int_wt_" << x_id << "_" << y_id;   
    442         iob_int_wt = new VciDspinTargetWrapper<vci_param_int,
    443                                                dspin_int_cmd_width,
    444                                                dspin_int_rsp_width>(
    445                      s_iob_int_wt.str().c_str(),
    446                      x_width + y_width + l_width);
    447 
    448393        std::ostringstream s_iob_ram_wi;
    449394        s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id;   
     
    500445
    501446    ///////////////////// CMD DSPIN  local crossbar direct
    502     int_xbar_cmd_d->p_clk                        (this->p_clk);
    503     int_xbar_cmd_d->p_resetn                     (this->p_resetn);
    504     int_xbar_cmd_d->p_global_out                 (signal_int_dspin_cmd_l2g_d);
    505     int_xbar_cmd_d->p_global_in                  (signal_int_dspin_cmd_g2l_d);
    506 
    507     int_xbar_cmd_d->p_local_out[memc_int_tgtid]  (signal_int_dspin_cmd_memc_t);
    508     int_xbar_cmd_d->p_local_out[xicu_int_tgtid]  (signal_int_dspin_cmd_xicu_t);
    509     int_xbar_cmd_d->p_local_out[mdma_int_tgtid]  (signal_int_dspin_cmd_mdma_t);
    510 
    511     int_xbar_cmd_d->p_local_in[mdma_int_srcid]   (signal_int_dspin_cmd_mdma_i);
    512 
     447    int_xbar_d->p_clk                                 (this->p_clk);
     448    int_xbar_d->p_resetn                              (this->p_resetn);
     449    int_xbar_d->p_initiator_to_up                     (signal_int_vci_l2g);
     450    int_xbar_d->p_target_to_up                        (signal_int_vci_g2l);
     451
     452    int_xbar_d->p_to_target[memc_int_tgtid]           (signal_int_vci_tgt_memc);
     453    int_xbar_d->p_to_target[xicu_int_tgtid]           (signal_int_vci_tgt_xicu);
     454    int_xbar_d->p_to_target[mdma_int_tgtid]           (signal_int_vci_tgt_mdma);
     455    int_xbar_d->p_to_initiator[mdma_int_srcid]        (signal_int_vci_ini_mdma);
    513456    for (size_t p = 0; p < nb_procs; p++)
    514     int_xbar_cmd_d->p_local_in[proc_int_srcid+p] (signal_int_dspin_cmd_proc_i[p]);
     457       int_xbar_d->p_to_initiator[proc_int_srcid + p] (signal_int_vci_ini_proc[p]);
    515458
    516459    if ( (cluster_id == cluster_iob0) or (cluster_id == cluster_iob1) )
    517460    {
    518     int_xbar_cmd_d->p_local_out[iobx_int_tgtid]  (signal_int_dspin_cmd_iobx_t);
    519     int_xbar_cmd_d->p_local_in[iobx_int_srcid]   (signal_int_dspin_cmd_iobx_i);
    520     }
    521 
    522     //////////////////////// RSP DSPIN  local crossbar direct
    523     int_xbar_rsp_d->p_clk                        (this->p_clk);
    524     int_xbar_rsp_d->p_resetn                     (this->p_resetn);
    525     int_xbar_rsp_d->p_global_out                 (signal_int_dspin_rsp_l2g_d);
    526     int_xbar_rsp_d->p_global_in                  (signal_int_dspin_rsp_g2l_d);
    527 
    528     int_xbar_rsp_d->p_local_in[memc_int_tgtid]   (signal_int_dspin_rsp_memc_t);
    529     int_xbar_rsp_d->p_local_in[xicu_int_tgtid]   (signal_int_dspin_rsp_xicu_t);
    530     int_xbar_rsp_d->p_local_in[mdma_int_tgtid]   (signal_int_dspin_rsp_mdma_t);
    531 
    532     int_xbar_rsp_d->p_local_out[mdma_int_srcid]  (signal_int_dspin_rsp_mdma_i);
    533 
    534     for (size_t p = 0; p < nb_procs; p++)
    535     int_xbar_rsp_d->p_local_out[proc_int_srcid+p] (signal_int_dspin_rsp_proc_i[p]);
    536 
    537     if ( (cluster_id == cluster_iob0) or (cluster_id == cluster_iob1) )
    538     {
    539     int_xbar_rsp_d->p_local_in[iobx_int_tgtid]   (signal_int_dspin_rsp_iobx_t);
    540     int_xbar_rsp_d->p_local_out[iobx_int_srcid]  (signal_int_dspin_rsp_iobx_i);
    541     }
    542 
     461       int_xbar_d->p_to_target[iobx_int_tgtid]        (signal_int_vci_tgt_iobx);
     462       int_xbar_d->p_to_initiator[iobx_int_srcid]     (signal_int_vci_ini_iobx);
     463    }
     464
     465    int_wi_gate_d->p_clk                           (this->p_clk);
     466    int_wi_gate_d->p_resetn                        (this->p_resetn);
     467    int_wi_gate_d->p_vci                           (signal_int_vci_l2g);
     468    int_wi_gate_d->p_dspin_cmd                     (signal_int_dspin_cmd_l2g_d);
     469    int_wi_gate_d->p_dspin_rsp                     (signal_int_dspin_rsp_g2l_d);
     470
     471    int_wt_gate_d->p_clk                           (this->p_clk);
     472    int_wt_gate_d->p_resetn                        (this->p_resetn);
     473    int_wt_gate_d->p_vci                           (signal_int_vci_g2l);
     474    int_wt_gate_d->p_dspin_cmd                     (signal_int_dspin_cmd_g2l_d);
     475    int_wt_gate_d->p_dspin_rsp                     (signal_int_dspin_rsp_l2g_d);
     476   
    543477    ////////////////////// M2P DSPIN local crossbar coherence
    544478    int_xbar_m2p_c->p_clk                        (this->p_clk);
     
    582516            proc[p]->p_irq[j]                    (signal_false);
    583517        }
    584 
    585         proc_wi[p]->p_clk                        (this->p_clk);
    586         proc_wi[p]->p_resetn                     (this->p_resetn);
    587         proc_wi[p]->p_dspin_cmd                  (signal_int_dspin_cmd_proc_i[p]);
    588         proc_wi[p]->p_dspin_rsp                  (signal_int_dspin_rsp_proc_i[p]);
    589         proc_wi[p]->p_vci                        (signal_int_vci_ini_proc[p]);
    590518    }
    591519
     
    605533            xicu->p_hwi[i]                       (signal_false);
    606534    }                     
    607 
    608     // wrapper XICU
    609     xicu_int_wt->p_clk                           (this->p_clk);
    610     xicu_int_wt->p_resetn                        (this->p_resetn);
    611     xicu_int_wt->p_dspin_cmd                     (signal_int_dspin_cmd_xicu_t);
    612     xicu_int_wt->p_dspin_rsp                     (signal_int_dspin_rsp_xicu_t);
    613     xicu_int_wt->p_vci                           (signal_int_vci_tgt_xicu);
    614535
    615536    ///////////////////////////////////// MEMC
     
    623544    memc->p_irq                                  (signal_irq_memc);
    624545
    625     // wrapper to INT network
    626     memc_int_wt->p_clk                           (this->p_clk);
    627     memc_int_wt->p_resetn                        (this->p_resetn);
    628     memc_int_wt->p_dspin_cmd                     (signal_int_dspin_cmd_memc_t);
    629     memc_int_wt->p_dspin_rsp                     (signal_int_dspin_rsp_memc_t);
    630     memc_int_wt->p_vci                           (signal_int_vci_tgt_memc);
    631 
    632546    // wrapper to RAM network
    633547    memc_ram_wi->p_clk                           (this->p_clk);
     
    656570    for (size_t i=0 ; i<nb_dmas ; i++)
    657571        mdma->p_irq[i]                           (signal_irq_mdma[i]);
    658 
    659     // target wrapper
    660     mdma_int_wt->p_clk                           (this->p_clk);
    661     mdma_int_wt->p_resetn                        (this->p_resetn);
    662     mdma_int_wt->p_dspin_cmd                     (signal_int_dspin_cmd_mdma_t);
    663     mdma_int_wt->p_dspin_rsp                     (signal_int_dspin_rsp_mdma_t);
    664     mdma_int_wt->p_vci                           (signal_int_vci_tgt_mdma);
    665 
    666     // initiator wrapper
    667     mdma_int_wi->p_clk                           (this->p_clk);
    668     mdma_int_wi->p_resetn                        (this->p_resetn);
    669     mdma_int_wi->p_dspin_cmd                     (signal_int_dspin_cmd_mdma_i);
    670     mdma_int_wi->p_dspin_rsp                     (signal_int_dspin_rsp_mdma_i);
    671     mdma_int_wi->p_vci                           (signal_int_vci_ini_mdma);
    672572
    673573    //////////////////////////// RAM network CMD & RSP routers
     
    710610        iob_ram_wi->p_dspin_rsp                  (*(this->p_dspin_iob_rsp_in));
    711611        iob_ram_wi->p_vci                        (signal_ram_vci_ini_iobx);
    712 
    713         // initiator wrapper to INT network
    714         iob_int_wi->p_clk                        (this->p_clk);
    715         iob_int_wi->p_resetn                     (this->p_resetn);
    716         iob_int_wi->p_dspin_cmd                  (signal_int_dspin_cmd_iobx_i);
    717         iob_int_wi->p_dspin_rsp                  (signal_int_dspin_rsp_iobx_i);
    718         iob_int_wi->p_vci                        (signal_int_vci_ini_iobx);
    719 
    720         // target wrapper to INT network
    721         iob_int_wt->p_clk                        (this->p_clk);
    722         iob_int_wt->p_resetn                     (this->p_resetn);
    723         iob_int_wt->p_dspin_cmd                  (signal_int_dspin_cmd_iobx_t);
    724         iob_int_wt->p_dspin_rsp                  (signal_int_dspin_rsp_iobx_t);
    725         iob_int_wt->p_vci                        (signal_int_vci_tgt_iobx);
    726612    }
    727613
Note: See TracChangeset for help on using the changeset viewer.