Ignore:
Timestamp:
May 30, 2014, 5:07:05 PM (11 years ago)
Author:
meunier
Message:
  • Replaced vci_dspin_local_crossbar with a vci_local_crossbar in tsar_generic_xbar
  • Added the scripts/ directory in tsar_generic_xbar
Location:
trunk/platforms/tsar_generic_xbar
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_xbar

    • Property svn:ignore set to
      term*

  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd

    r547 r706  
    33
    44Module('caba:tsar_xbar_cluster',
    5     classname = 'soclib::caba::TsarXbarCluster',
     5   classname = 'soclib::caba::TsarXbarCluster',
    66   tmpl_parameters = [
    77      parameter.Int('dspin_cmd_width'),
     
    4747
    4848      Uses('caba:vci_xicu',
     49              cell_size       = parameter.Reference('vci_data_width_int')),
     50
     51      Uses('caba:vci_local_crossbar',
    4952              cell_size       = parameter.Reference('vci_data_width_int')),
    5053
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h

    r624 r706  
    2424#include "vci_xicu.h"
    2525#include "dspin_local_crossbar.h"
     26#include "vci_local_crossbar.h"
    2627#include "vci_dspin_initiator_wrapper.h"
    2728#include "vci_dspin_target_wrapper.h"
     
    3637#include "vci_cc_vcache_wrapper.h"
    3738#include "vci_simhelper.h"
    38 #include "../../../../giet_vm/hard_config.h"
    3939
    4040namespace soclib { namespace caba {
     
    6363    // interrupt signals
    6464    sc_signal<bool>         signal_false;
    65     sc_signal<bool>         signal_proc_it[8*IRQ_PER_PROCESSOR];
     65    sc_signal<bool>         signal_proc_it[8 * 6]; // 6 = Number of IRQs in the MIPS
    6666    sc_signal<bool>         signal_irq_mdma[8];
    6767    sc_signal<bool>         signal_irq_mtty[23];
     
    8585
    8686    // Direct VCI signals to VCI/DSPIN wrappers
     87    VciSignals<vci_param_int>       signal_vci_g2l_d;
     88    VciSignals<vci_param_int>       signal_vci_l2g_d;
     89
    8790    VciSignals<vci_param_int>       signal_vci_ini_proc[8];
    8891    VciSignals<vci_param_int>       signal_vci_ini_mdma;
     
    101104    VciSignals<vci_param_int>       signal_vci_tgt_simh;
    102105
    103     // Direct DSPIN signals to local crossbars
    104     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_proc_i[8];
    105     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_proc_i[8];
    106     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_mdma_i;
    107     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_mdma_i;
    108     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_bdev_i;
    109     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_bdev_i;
    110     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_chbuf_i;
    111     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_chbuf_i;
    112 
    113     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_memc_t;
    114     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_memc_t;
    115     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_xicu_t;
    116     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_xicu_t;
    117     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_mdma_t;
    118     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_mdma_t;
    119     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_mtty_t;
    120     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_mtty_t;
    121     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_bdev_t;
    122     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_bdev_t;
    123     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_brom_t;
    124     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_brom_t;
    125     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_fbuf_t;
    126     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_fbuf_t;
    127     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_mnic_t;
    128     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_mnic_t;
    129     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_chbuf_t;
    130     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_chbuf_t;
    131     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_simh_t;
    132     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_simh_t;
    133106
    134107    // Coherence DSPIN signals to local crossbar
     
    150123                       GdbServer<Mips32ElIss> >*  proc[8];
    151124
    152     VciDspinInitiatorWrapper<vci_param_int,
    153                              dspin_cmd_width,
    154                              dspin_rsp_width>*    wi_proc[8];
    155125
    156126    VciMemCache<vci_param_int,
     
    159129                dspin_cmd_width>*                 memc;
    160130
     131    VciXicu<vci_param_int>*                       xicu;
     132
     133    VciMultiDma<vci_param_int>*                   mdma;
     134
     135    VciSimpleRam<vci_param_ext>*                  xram;
     136
     137    VciSimpleRom<vci_param_int>*                  brom;
     138
     139    VciMultiTty<vci_param_int>*                   mtty;
     140
     141    VciSimhelper<vci_param_int>*                  simhelper;
     142
     143    VciFrameBuffer<vci_param_int>*                fbuf;
     144
     145    VciMultiNic<vci_param_int>*                  mnic;
     146
     147    VciChbufDma<vci_param_int>*                   chbuf;
     148
     149    VciBlockDeviceTsar<vci_param_int>*            bdev;
     150
     151    VciLocalCrossbar<vci_param_int>*              xbar_d;
     152    VciDspinInitiatorWrapper<vci_param_int,
     153                             dspin_cmd_width,
     154                             dspin_rsp_width>*    wi_xbar_d;
    161155    VciDspinTargetWrapper<vci_param_int,
    162156                          dspin_cmd_width,
    163                           dspin_rsp_width>*       wt_memc;
    164 
    165     VciXicu<vci_param_int>*                       xicu;
    166 
    167     VciDspinTargetWrapper<vci_param_int,
    168                           dspin_cmd_width,
    169                           dspin_rsp_width>*       wt_xicu;
    170 
    171     VciMultiDma<vci_param_int>*                   mdma;
    172 
    173     VciDspinInitiatorWrapper<vci_param_int,
    174                              dspin_cmd_width,
    175                              dspin_rsp_width>*    wi_mdma;
    176 
    177     VciDspinTargetWrapper<vci_param_int,
    178                           dspin_cmd_width,
    179                           dspin_rsp_width>*       wt_mdma;
    180 
    181     VciSimpleRam<vci_param_ext>*                  xram;
    182 
    183     VciSimpleRom<vci_param_int>*                  brom;
    184 
    185     VciDspinTargetWrapper<vci_param_int,
    186                           dspin_cmd_width,
    187                           dspin_rsp_width>*       wt_brom;
    188 
    189     VciMultiTty<vci_param_int>*                   mtty;
    190 
    191     VciDspinTargetWrapper<vci_param_int,
    192                           dspin_cmd_width,
    193                           dspin_rsp_width>*       wt_mtty;
    194 
    195     VciSimhelper<vci_param_int>*                  simhelper;
    196 
    197     VciDspinTargetWrapper<vci_param_int,
    198                           dspin_cmd_width,
    199                           dspin_rsp_width>*       wt_simhelper;
    200 
    201 
    202     VciFrameBuffer<vci_param_int>*                fbuf;
    203 
    204     VciDspinTargetWrapper<vci_param_int,
    205                           dspin_cmd_width,
    206                           dspin_rsp_width>*       wt_fbuf;
    207 
    208     VciMultiNic<vci_param_int>*                   mnic;
    209 
    210     VciDspinTargetWrapper<vci_param_int,
    211                           dspin_cmd_width,
    212                           dspin_rsp_width>*       wt_mnic;
    213 
    214     VciChbufDma<vci_param_int>*                   chbuf;
    215 
    216     VciDspinTargetWrapper<vci_param_int,
    217                           dspin_cmd_width,
    218                           dspin_rsp_width>*       wt_chbuf;
    219 
    220     VciDspinInitiatorWrapper<vci_param_int,
    221                           dspin_cmd_width,
    222                           dspin_rsp_width>*       wi_chbuf;
    223 
    224     VciBlockDeviceTsar<vci_param_int>*            bdev;
    225 
    226     VciDspinInitiatorWrapper<vci_param_int,
    227                              dspin_cmd_width,
    228                              dspin_rsp_width>*    wi_bdev;
    229 
    230     VciDspinTargetWrapper<vci_param_int,
    231                           dspin_cmd_width,
    232                           dspin_rsp_width>*       wt_bdev;
    233 
    234     DspinLocalCrossbar<dspin_cmd_width>*          xbar_cmd_d;
    235     DspinLocalCrossbar<dspin_rsp_width>*          xbar_rsp_d;
     157                          dspin_rsp_width>*       wt_xbar_d;
     158
    236159    DspinLocalCrossbar<dspin_cmd_width>*          xbar_m2p_c;
    237160    DspinLocalCrossbar<dspin_rsp_width>*          xbar_p2m_c;
     
    269192                     size_t                             l1_d_ways,
    270193                     size_t                             l1_d_sets,
     194                     size_t                             irq_per_processor,
    271195                     size_t                             xram_latency,  // external ram
    272196                     bool                               io,            // I/O cluster
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp

    r624 r706  
    6666         size_t                             l1_d_ways,
    6767         size_t                             l1_d_sets,
     68         size_t                             irq_per_processor,
    6869         size_t                             xram_latency,
    6970         bool                               io,
     
    7778         uint32_t                           nic_timeout,
    7879         size_t                             chbufdma_channels,
    79          const Loader                      &loader,
     80         const Loader &                     loader,
    8081         uint32_t                           frozen_cycles,
    8182         uint32_t                           debug_start_cycle,
     
    127128                      proc_debug_ok);
    128129
    129         std::ostringstream swip;
    130         swip << "wi_proc_" << x_id << "_" << y_id << "_" << p;
    131         wi_proc[p] = new VciDspinInitiatorWrapper<vci_param_int,
    132                                                   dspin_cmd_width,
    133                                                   dspin_rsp_width>(
    134                      swip.str().c_str(),
    135                      x_width + y_width + l_width);
    136130    }
    137131
     
    148142                     IntTab(cluster_id),                 // SRCID external space
    149143                     IntTab(cluster_id, tgtid_memc),     // TGTID direct space
     144                     //(cluster_id << l_width) + nb_procs, // CC_GLOBAL_ID
    150145                     x_width,                            // Number of x bits in platform
    151146                     y_width,                            // Number of y bits in platform
     
    159154                     memc_debug_ok);
    160155
    161     wt_memc = new VciDspinTargetWrapper<vci_param_int,
    162                                         dspin_cmd_width,
    163                                         dspin_rsp_width>(
    164                      "wt_memc",
    165                      x_width + y_width + l_width);
    166156
    167157    /////////////////////////////////////////////////////////////////////////////
     
    182172                     mtd,                               // mapping table
    183173                     IntTab(cluster_id, tgtid_xicu),    // TGTID_D
    184                      32,                                // number of timer IRQs
     174                     nb_procs,                          // number of timer IRQs
    185175                     32,                                // number of hard IRQs
    186176                     32,                                // number of soft IRQs
    187                      nb_procs*IRQ_PER_PROCESSOR);       // number of output IRQs
    188 
    189     wt_xicu = new VciDspinTargetWrapper<vci_param_int,
    190                                         dspin_cmd_width,
    191                                         dspin_rsp_width>(
    192                      "wt_xicu",
    193                      x_width + y_width + l_width);
     177                     nb_procs*irq_per_processor);                         // number of output IRQs
     178
    194179
    195180    /////////////////////////////////////////////////////////////////////////////
     
    204189                     nb_dmas);                            // number of IRQs
    205190
    206     wt_mdma = new VciDspinTargetWrapper<vci_param_int,
    207                                         dspin_cmd_width,
    208                                         dspin_rsp_width>(
    209                      "wt_mdma",
    210                      x_width + y_width + l_width);
    211 
    212     wi_mdma = new VciDspinInitiatorWrapper<vci_param_int,
    213                                            dspin_cmd_width,
    214                                            dspin_rsp_width>(
    215                      "wi_mdma",
    216                      x_width + y_width + l_width);
    217191
    218192    /////////////////////////////////////////////////////////////////////////////
     
    225199    }
    226200
    227     xbar_cmd_d = new DspinLocalCrossbar<dspin_cmd_width>(
    228                      "xbar_cmd_d",
    229                      mtd,                          // mapping table
    230                      x_id, y_id,                   // cluster coordinates
    231                      x_width, y_width, l_width,
    232                      nb_direct_initiators,         // number of local of sources
    233                      nb_direct_targets,            // number of local dests
    234                      2, 2,                         // fifo depths 
    235                      true,                         // CMD
    236                      true,                         // use local routing table
    237                      false );                      // no broadcast
    238 
    239     /////////////////////////////////////////////////////////////////////////////
    240     xbar_rsp_d = new DspinLocalCrossbar<dspin_rsp_width>(
    241                      "xbar_rsp_d",
    242                      mtd,                          // mapping table
    243                      x_id, y_id,                   // cluster coordinates
    244                      x_width, y_width, l_width,
    245                      nb_direct_targets,            // number of local sources
    246                      nb_direct_initiators,         // number of local dests
    247                      2, 2,                         // fifo depths 
    248                      false,                        // RSP
    249                      false,                        // don't use local routing table
    250                      false );                      // no broadcast
     201    std::ostringstream sxbar;
     202    sxbar << "xbar_" << x_id << "_" << y_id;
     203    xbar_d = new VciLocalCrossbar<vci_param_int>(
     204                     sxbar.str().c_str(),
     205                     mtd,                             // mapping table
     206                     //x_id, y_id,                    // cluster coordinates
     207                     cluster_id,
     208                     nb_direct_initiators,            // number of local of sources
     209                     nb_direct_targets,               // number of local dests
     210                     tgtid_memc);                     // Default target
     211
     212    ////////////// vci_dspin wrappers
     213    std::ostringstream swtxbar;
     214    swtxbar << "wt_xbar_" << x_id << "_" << y_id;
     215    wt_xbar_d = new VciDspinTargetWrapper<vci_param_int, dspin_cmd_width, dspin_rsp_width>(
     216                swtxbar.str().c_str(),
     217                x_width + y_width + l_width );
     218
     219    std::ostringstream swixbar;
     220    swixbar << "wi_xbar_" << x_id << "_" << y_id;
     221    wi_xbar_d = new VciDspinInitiatorWrapper<vci_param_int, dspin_cmd_width, dspin_rsp_width>(
     222                swixbar.str().c_str(),
     223                x_width + y_width + l_width );
    251224
    252225    /////////////////////////////////////////////////////////////////////////////
     
    315288                     loader);
    316289
    317         wt_brom = new VciDspinTargetWrapper<vci_param_int,
    318                                             dspin_cmd_width,
    319                                             dspin_rsp_width>(
    320                      "wt_brom",
    321                      x_width + y_width + l_width);
    322 
    323290        /////////////////////////////////////////////
    324291        fbuf = new VciFrameBuffer<vci_param_int>(
     
    327294                     mtd,
    328295                     xfb, yfb);
    329 
    330         wt_fbuf = new VciDspinTargetWrapper<vci_param_int,
    331                                             dspin_cmd_width,
    332                                             dspin_rsp_width>(
    333                      "wt_fbuf",
    334                      x_width + y_width + l_width);
    335296
    336297        /////////////////////////////////////////////
     
    343304                     block_size,
    344305                     64);            // burst size
    345 
    346         wt_bdev = new VciDspinTargetWrapper<vci_param_int,
    347                                             dspin_cmd_width,
    348                                             dspin_rsp_width>(
    349                      "wt_bdev",
    350                      x_width + y_width + l_width);
    351 
    352         wi_bdev = new VciDspinInitiatorWrapper<vci_param_int,
    353                                                dspin_cmd_width,
    354                                                dspin_rsp_width>(
    355                      "wi_bdev",
    356                      x_width + y_width + l_width);
    357306
    358307        int mac = 0xBEEF0000;
     
    367316                     nic_tx_name);
    368317
    369         wt_mnic = new VciDspinTargetWrapper<vci_param_int,
    370                                            dspin_cmd_width,
    371                                            dspin_rsp_width>(
    372                     "wt_mnic",
    373                     x_width + y_width + l_width);
     318
    374319
    375320        /////////////////////////////////////////////
     
    382327                     chbufdma_channels);
    383328
    384         wt_chbuf = new VciDspinTargetWrapper<vci_param_int,
    385                                             dspin_cmd_width,
    386                                             dspin_rsp_width>(
    387                      "wt_chbuf",
    388                      x_width + y_width + l_width);
    389 
    390         wi_chbuf = new VciDspinInitiatorWrapper<vci_param_int,
    391                                             dspin_cmd_width,
    392                                             dspin_rsp_width>(
    393                      "wi_chbuf",
    394                      x_width + y_width + l_width);
    395 
    396329        /////////////////////////////////////////////
    397330        std::vector<std::string> vect_names;
     
    408341                     vect_names);
    409342
    410         wt_mtty = new VciDspinTargetWrapper<vci_param_int,
    411                                             dspin_cmd_width,
    412                                             dspin_rsp_width>(
    413                      "wt_mtty",
    414                      x_width + y_width + l_width);
    415 
    416343        simhelper = new VciSimhelper<vci_param_int>(
    417344                     "sim_helper",
    418345                     IntTab(cluster_id, tgtid_simh),
    419346                     mtd);
    420 
    421         wt_simhelper = new VciDspinTargetWrapper<vci_param_int,
    422                                                  dspin_cmd_width,
    423                                                  dspin_rsp_width>(
    424                      "wt_simhelper",
    425                      x_width + y_width + l_width);
    426347    }
    427348
     
    466387    std::cout << "  - CMD & RSP routers connected" << std::endl;
    467388
    468     ///////////////////// CMD DSPIN  local crossbar direct
    469     xbar_cmd_d->p_clk                            (this->p_clk);
    470     xbar_cmd_d->p_resetn                         (this->p_resetn);
    471     xbar_cmd_d->p_global_out                     (signal_dspin_cmd_l2g_d);
    472     xbar_cmd_d->p_global_in                      (signal_dspin_cmd_g2l_d);
    473 
    474     xbar_cmd_d->p_local_out[tgtid_memc]          (signal_dspin_cmd_memc_t);
    475     xbar_cmd_d->p_local_out[tgtid_xicu]          (signal_dspin_cmd_xicu_t);
    476     xbar_cmd_d->p_local_out[tgtid_mdma]          (signal_dspin_cmd_mdma_t);
    477 
    478     xbar_cmd_d->p_local_in[nb_procs]             (signal_dspin_cmd_mdma_i);
     389    wi_xbar_d->p_clk                         (this->p_clk);
     390    wi_xbar_d->p_resetn                      (this->p_resetn);
     391    wi_xbar_d->p_vci                         (signal_vci_l2g_d);
     392    wi_xbar_d->p_dspin_cmd                   (signal_dspin_cmd_l2g_d);
     393    wi_xbar_d->p_dspin_rsp                   (signal_dspin_rsp_g2l_d);
     394
     395    std::cout << "  - Wrapper Ini VCI2DSPIN Direct connected" << std::endl;
     396
     397    wt_xbar_d->p_clk                         (this->p_clk);
     398    wt_xbar_d->p_resetn                      (this->p_resetn);
     399    wt_xbar_d->p_vci                         (signal_vci_g2l_d);
     400    wt_xbar_d->p_dspin_cmd                   (signal_dspin_cmd_g2l_d);
     401    wt_xbar_d->p_dspin_rsp                   (signal_dspin_rsp_l2g_d);
     402
     403    std::cout << "  - Wrapper Tgt VCI2DSPIN Direct connected" << std::endl;
     404
     405    ///////////////////// CMD VCI  local crossbar direct
     406    xbar_d->p_clk                            (this->p_clk);
     407    xbar_d->p_resetn                         (this->p_resetn);
     408    xbar_d->p_target_to_up                   (signal_vci_g2l_d);
     409    xbar_d->p_initiator_to_up                (signal_vci_l2g_d);
     410
     411    xbar_d->p_to_target[tgtid_memc]          (signal_vci_tgt_memc);
     412    xbar_d->p_to_target[tgtid_xicu]          (signal_vci_tgt_xicu);
     413    xbar_d->p_to_target[tgtid_mdma]          (signal_vci_tgt_mdma);
     414
     415    xbar_d->p_to_initiator[nb_procs]         (signal_vci_ini_mdma);
    479416
    480417    for (size_t p = 0; p < nb_procs; p++)
    481         xbar_cmd_d->p_local_in[p]                (signal_dspin_cmd_proc_i[p]);
     418        xbar_d->p_to_initiator[p]            (signal_vci_ini_proc[p]);
    482419
    483420    if (io)
    484421    {
    485         xbar_cmd_d->p_local_out[tgtid_mtty]      (signal_dspin_cmd_mtty_t);
    486         xbar_cmd_d->p_local_out[tgtid_brom]      (signal_dspin_cmd_brom_t);
    487         xbar_cmd_d->p_local_out[tgtid_bdev]      (signal_dspin_cmd_bdev_t);
    488         xbar_cmd_d->p_local_out[tgtid_fbuf]      (signal_dspin_cmd_fbuf_t);
    489         xbar_cmd_d->p_local_out[tgtid_mnic]      (signal_dspin_cmd_mnic_t);
    490         xbar_cmd_d->p_local_out[tgtid_chbuf]     (signal_dspin_cmd_chbuf_t);
    491         xbar_cmd_d->p_local_out[tgtid_simh]      (signal_dspin_cmd_simh_t);
    492 
    493         xbar_cmd_d->p_local_in[nb_procs + 1]     (signal_dspin_cmd_bdev_i);
    494         xbar_cmd_d->p_local_in[nb_procs + 2]     (signal_dspin_cmd_chbuf_i);
    495     }
    496 
    497     std::cout << "  - Command Direct crossbar connected" << std::endl;
    498 
    499     //////////////////////// RSP DSPIN  local crossbar direct
    500     xbar_rsp_d->p_clk                            (this->p_clk);
    501     xbar_rsp_d->p_resetn                         (this->p_resetn);
    502     xbar_rsp_d->p_global_out                     (signal_dspin_rsp_l2g_d);
    503     xbar_rsp_d->p_global_in                      (signal_dspin_rsp_g2l_d);
    504 
    505     xbar_rsp_d->p_local_in[tgtid_memc]           (signal_dspin_rsp_memc_t);
    506     xbar_rsp_d->p_local_in[tgtid_xicu]           (signal_dspin_rsp_xicu_t);
    507     xbar_rsp_d->p_local_in[tgtid_mdma]           (signal_dspin_rsp_mdma_t);
    508 
    509     xbar_rsp_d->p_local_out[nb_procs]            (signal_dspin_rsp_mdma_i);
    510 
    511     for (size_t p = 0; p < nb_procs; p++)
    512         xbar_rsp_d->p_local_out[p]               (signal_dspin_rsp_proc_i[p]);
    513 
    514     if (io)
    515     {
    516         xbar_rsp_d->p_local_in[tgtid_mtty]       (signal_dspin_rsp_mtty_t);
    517         xbar_rsp_d->p_local_in[tgtid_brom]       (signal_dspin_rsp_brom_t);
    518         xbar_rsp_d->p_local_in[tgtid_bdev]       (signal_dspin_rsp_bdev_t);
    519         xbar_rsp_d->p_local_in[tgtid_fbuf]       (signal_dspin_rsp_fbuf_t);
    520         xbar_rsp_d->p_local_in[tgtid_mnic]       (signal_dspin_rsp_mnic_t);
    521         xbar_rsp_d->p_local_in[tgtid_chbuf]      (signal_dspin_rsp_chbuf_t);
    522         xbar_rsp_d->p_local_in[tgtid_simh]       (signal_dspin_rsp_simh_t);
    523 
    524         xbar_rsp_d->p_local_out[nb_procs + 1]    (signal_dspin_rsp_bdev_i);
    525         xbar_rsp_d->p_local_out[nb_procs + 2]    (signal_dspin_rsp_chbuf_i);
    526     }
    527 
    528     std::cout << "  - Response Direct crossbar connected" << std::endl;
     422        xbar_d->p_to_target[tgtid_mtty]      (signal_vci_tgt_mtty);
     423        xbar_d->p_to_target[tgtid_brom]      (signal_vci_tgt_brom);
     424        xbar_d->p_to_target[tgtid_bdev]      (signal_vci_tgt_bdev);
     425        xbar_d->p_to_target[tgtid_fbuf]      (signal_vci_tgt_fbuf);
     426        xbar_d->p_to_target[tgtid_mnic]      (signal_vci_tgt_mnic);
     427        xbar_d->p_to_target[tgtid_chbuf]     (signal_vci_tgt_chbuf);
     428        xbar_d->p_to_target[tgtid_simh]      (signal_vci_tgt_simh);
     429
     430        xbar_d->p_to_initiator[nb_procs + 1] (signal_vci_ini_bdev);
     431        xbar_d->p_to_initiator[nb_procs + 2] (signal_vci_ini_chbuf);
     432    }
     433
     434    std::cout << "  - Direct crossbar connected" << std::endl;
    529435
    530436    ////////////////////// M2P DSPIN local crossbar coherence
     
    572478        proc[p]->p_dspin_clack              (signal_dspin_clack_proc[p]);
    573479
    574         for ( size_t i = 0 ; i < IRQ_PER_PROCESSOR ; i++)
    575         {
    576             proc[p]->p_irq[i]               (signal_proc_it[p*IRQ_PER_PROCESSOR+i]);
    577         }
    578         for ( size_t j = IRQ_PER_PROCESSOR ; j < 6 ; j++)
     480        for ( size_t i = 0; i < irq_per_processor; i++)
     481        {
     482            proc[p]->p_irq[i]               (signal_proc_it[p*irq_per_processor + i]);
     483        }
     484        for ( size_t j = irq_per_processor; j < 6; j++) // 6 = number of irqs in the MIPS
    579485        {
    580486            proc[p]->p_irq[j]               (signal_false);
    581487        }
    582488
    583         wi_proc[p]->p_clk                   (this->p_clk);
    584         wi_proc[p]->p_resetn                (this->p_resetn);
    585         wi_proc[p]->p_dspin_cmd             (signal_dspin_cmd_proc_i[p]);
    586         wi_proc[p]->p_dspin_rsp             (signal_dspin_rsp_proc_i[p]);
    587         wi_proc[p]->p_vci                   (signal_vci_ini_proc[p]);
    588489    }
    589490
     
    594495    xicu->p_resetn                     (this->p_resetn);
    595496    xicu->p_vci                        (signal_vci_tgt_xicu);
    596 
    597     for (size_t i = 0; i < nb_procs*IRQ_PER_PROCESSOR; i++)
    598     {
    599         xicu->p_irq[i]                       (signal_proc_it[i]);
     497    for (size_t p = 0; p < nb_procs * irq_per_processor; p++)
     498    {
     499        xicu->p_irq[p]                 (signal_proc_it[p]);
    600500    }
    601501    for (size_t i = 0; i < 32; i++)
     
    620520        }
    621521    }
    622 
    623     // wrapper XICU
    624     wt_xicu->p_clk                     (this->p_clk);
    625     wt_xicu->p_resetn                  (this->p_resetn);
    626     wt_xicu->p_dspin_cmd               (signal_dspin_cmd_xicu_t);
    627     wt_xicu->p_dspin_rsp               (signal_dspin_rsp_xicu_t);
    628     wt_xicu->p_vci                     (signal_vci_tgt_xicu);
    629522
    630523    std::cout << "  - XICU connected" << std::endl;
     
    640533    memc->p_dspin_clack                (signal_dspin_clack_memc);
    641534
    642     // wrapper MEMC
    643     wt_memc->p_clk                     (this->p_clk);
    644     wt_memc->p_resetn                  (this->p_resetn);
    645     wt_memc->p_dspin_cmd               (signal_dspin_cmd_memc_t);
    646     wt_memc->p_dspin_rsp               (signal_dspin_rsp_memc_t);
    647     wt_memc->p_vci                     (signal_vci_tgt_memc);
    648 
    649535    std::cout << "  - MEMC connected" << std::endl;
    650536
     
    664550        mdma->p_irq[i]                 (signal_irq_mdma[i]);
    665551
    666     // wrapper tgt MDMA
    667     wt_mdma->p_clk                     (this->p_clk);
    668     wt_mdma->p_resetn                  (this->p_resetn);
    669     wt_mdma->p_dspin_cmd               (signal_dspin_cmd_mdma_t);
    670     wt_mdma->p_dspin_rsp               (signal_dspin_rsp_mdma_t);
    671     wt_mdma->p_vci                     (signal_vci_tgt_mdma);
    672 
    673     // wrapper ini MDMA
    674     wi_mdma->p_clk                     (this->p_clk);
    675     wi_mdma->p_resetn                  (this->p_resetn);
    676     wi_mdma->p_dspin_cmd               (signal_dspin_cmd_mdma_i);
    677     wi_mdma->p_dspin_rsp               (signal_dspin_rsp_mdma_i);
    678     wi_mdma->p_vci                     (signal_vci_ini_mdma);
    679 
    680552    std::cout << "  - MDMA connected" << std::endl;
    681553
     
    691563        bdev->p_vci_initiator          (signal_vci_ini_bdev);
    692564
    693         // wrapper tgt BDEV
    694         wt_bdev->p_clk                 (this->p_clk);
    695         wt_bdev->p_resetn              (this->p_resetn);
    696         wt_bdev->p_dspin_cmd           (signal_dspin_cmd_bdev_t);
    697         wt_bdev->p_dspin_rsp           (signal_dspin_rsp_bdev_t);
    698         wt_bdev->p_vci                 (signal_vci_tgt_bdev);
    699 
    700         // wrapper ini BDEV
    701         wi_bdev->p_clk                 (this->p_clk);
    702         wi_bdev->p_resetn              (this->p_resetn);
    703         wi_bdev->p_dspin_cmd           (signal_dspin_cmd_bdev_i);
    704         wi_bdev->p_dspin_rsp           (signal_dspin_rsp_bdev_i);
    705         wi_bdev->p_vci                 (signal_vci_ini_bdev);
    706 
    707565        std::cout << "  - BDEV connected" << std::endl;
    708566
     
    711569        fbuf->p_resetn                 (this->p_resetn);
    712570        fbuf->p_vci                    (signal_vci_tgt_fbuf);
    713 
    714         // wrapper tgt FBUF
    715         wt_fbuf->p_clk                 (this->p_clk);
    716         wt_fbuf->p_resetn              (this->p_resetn);
    717         wt_fbuf->p_dspin_cmd           (signal_dspin_cmd_fbuf_t);
    718         wt_fbuf->p_dspin_rsp           (signal_dspin_rsp_fbuf_t);
    719         wt_fbuf->p_vci                 (signal_vci_tgt_fbuf);
    720571
    721572        std::cout << "  - FBUF connected" << std::endl;
     
    730581            mnic->p_tx_irq[i]          (signal_irq_mnic_tx[i]);
    731582        }
    732 
    733         // wrapper tgt MNIC
    734         wt_mnic->p_clk                 (this->p_clk);
    735         wt_mnic->p_resetn              (this->p_resetn);
    736         wt_mnic->p_dspin_cmd           (signal_dspin_cmd_mnic_t);
    737         wt_mnic->p_dspin_rsp           (signal_dspin_rsp_mnic_t);
    738         wt_mnic->p_vci                 (signal_vci_tgt_mnic);
    739583
    740584        std::cout << "  - MNIC connected" << std::endl;
     
    750594        }
    751595
    752         // wrapper tgt CHBUF
    753         wt_chbuf->p_clk                 (this->p_clk);
    754         wt_chbuf->p_resetn              (this->p_resetn);
    755         wt_chbuf->p_dspin_cmd           (signal_dspin_cmd_chbuf_t);
    756         wt_chbuf->p_dspin_rsp           (signal_dspin_rsp_chbuf_t);
    757         wt_chbuf->p_vci                 (signal_vci_tgt_chbuf);
    758 
    759         // wrapper ini CHBUF
    760         wi_chbuf->p_clk                 (this->p_clk);
    761         wi_chbuf->p_resetn              (this->p_resetn);
    762         wi_chbuf->p_dspin_cmd           (signal_dspin_cmd_chbuf_i);
    763         wi_chbuf->p_dspin_rsp           (signal_dspin_rsp_chbuf_i);
    764         wi_chbuf->p_vci                 (signal_vci_ini_chbuf);
    765 
    766596        std::cout << "  - CHBUF connected" << std::endl;
    767597
     
    770600        brom->p_resetn                 (this->p_resetn);
    771601        brom->p_vci                    (signal_vci_tgt_brom);
    772 
    773         // wrapper tgt BROM
    774         wt_brom->p_clk                 (this->p_clk);
    775         wt_brom->p_resetn              (this->p_resetn);
    776         wt_brom->p_dspin_cmd           (signal_dspin_cmd_brom_t);
    777         wt_brom->p_dspin_rsp           (signal_dspin_rsp_brom_t);
    778         wt_brom->p_vci                 (signal_vci_tgt_brom);
    779602
    780603        std::cout << "  - BROM connected" << std::endl;
     
    789612        }
    790613
    791         // wrapper tgt MTTY
    792         wt_mtty->p_clk                 (this->p_clk);
    793         wt_mtty->p_resetn              (this->p_resetn);
    794         wt_mtty->p_dspin_cmd           (signal_dspin_cmd_mtty_t);
    795         wt_mtty->p_dspin_rsp           (signal_dspin_rsp_mtty_t);
    796         wt_mtty->p_vci                 (signal_vci_tgt_mtty);
     614        std::cout << "  - MTTY connected" << std::endl;
    797615
    798616
     
    802620        simhelper->p_vci               (signal_vci_tgt_simh);
    803621       
    804         // wrapper tgt Sim Helper
    805         wt_simhelper->p_clk            (this->p_clk);
    806         wt_simhelper->p_resetn         (this->p_resetn);
    807         wt_simhelper->p_dspin_cmd      (signal_dspin_cmd_simh_t);
    808         wt_simhelper->p_dspin_rsp      (signal_dspin_rsp_simh_t);
    809         wt_simhelper->p_vci            (signal_vci_tgt_simh);
    810 
    811         std::cout << "  - MTTY connected" << std::endl;
     622        std::cout << "  - SIMH connected" << std::endl;
    812623   }
    813624} // end constructor
     
    831642    {
    832643        delete proc[p];
    833         delete wi_proc[p];
    834644    }
    835645
    836646    delete memc;
    837     delete wt_memc;
    838647    delete xram;
    839648    delete xicu;
    840     delete wt_xicu;
    841649    delete mdma;
    842     delete wt_mdma;
    843     delete wi_mdma;
    844     delete xbar_cmd_d;
    845     delete xbar_rsp_d;
     650    delete xbar_d;
     651    delete wt_xbar_d;
     652    delete wi_xbar_d;
    846653    delete xbar_m2p_c;
    847654    delete xbar_p2m_c;
     
    852659    {
    853660        delete brom;
    854         delete wt_brom;
    855661        delete fbuf;
    856         delete wt_fbuf;
    857662        delete bdev;
    858         delete wt_bdev;
    859         delete wi_bdev;
    860663        delete mnic;
    861         delete wt_mnic;
    862664        delete chbuf;
    863         delete wt_chbuf;
    864         delete wi_chbuf;
    865665        delete mtty;
    866         delete wt_mtty;
    867666        delete simhelper;
    868         delete wt_simhelper;
    869667    }
    870668}
Note: See TracChangeset for help on using the changeset viewer.