Ignore:
Timestamp:
Sep 2, 2013, 1:28:55 PM (11 years ago)
Author:
meunier
Message:
Location:
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h

    r485 r508  
    4747{
    4848    public:
     49
     50    // Used in destructor
     51    size_t n_procs;
    4952
    5053    // Ports
     
    269272                     bool                               proc_debug_ok);
    270273
     274    ~TsarXbarCluster();
     275
    271276};
    272277}}
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp

    r504 r508  
    8686
    8787{
     88
     89    n_procs = nb_procs;
     90
    8891    // Vectors of ports definition
    89     p_cmd_in        = alloc_elems<DspinInput<dspin_cmd_width> >("p_cmd_in", 4, 3);
    90     p_cmd_out       = alloc_elems<DspinOutput<dspin_cmd_width> >("p_cmd_out", 4, 3);
    91     p_rsp_in        = alloc_elems<DspinInput<dspin_rsp_width> >("p_rsp_in", 4, 2);
    92     p_rsp_out       = alloc_elems<DspinOutput<dspin_rsp_width> >("p_rsp_out", 4, 2);
     92    p_cmd_in  = alloc_elems<DspinInput<dspin_cmd_width> >  ("p_cmd_in", 4, 3);
     93    p_cmd_out = alloc_elems<DspinOutput<dspin_cmd_width> > ("p_cmd_out", 4, 3);
     94    p_rsp_in  = alloc_elems<DspinInput<dspin_rsp_width> >  ("p_rsp_in", 4, 2);
     95    p_rsp_out = alloc_elems<DspinOutput<dspin_rsp_width> > ("p_rsp_out", 4, 2);
    9396
    9497    /////////////////////////////////////////////////////////////////////////////
     
    105108                                         GdbServer<Mips32ElIss> >(
    106109                      sproc.str().c_str(),
    107                       cluster_id*nb_procs + p,        // GLOBAL PROC_ID
     110                      cluster_id * nb_procs + p,      // GLOBAL PROC_ID
    108111                      mtd,                            // Mapping Table
    109112                      IntTab(cluster_id,p),           // SRCID
     
    113116                      8,                              // DTLB ways
    114117                      8,                              // DTLB sets
    115                       l1_i_ways,l1_i_sets,16,         // ICACHE size
    116                       l1_d_ways,l1_d_sets,16,         // DCACHE size
     118                      l1_i_ways,l1_i_sets, 16,        // ICACHE size
     119                      l1_d_ways,l1_d_sets, 16,        // DCACHE size
    117120                      4,                              // WBUF nlines
    118121                      4,                              // WBUF nwords
     
    154157                     8,                                  // INVALIDATE TABLE DEPTH
    155158                     debug_start_cycle,
    156                      memc_debug_ok );
     159                     memc_debug_ok);
    157160
    158161    wt_memc = new VciDspinTargetWrapper<vci_param_int,
     
    216219    size_t nb_direct_initiators      = nb_procs + 1;
    217220    size_t nb_direct_targets         = 3;
    218     if ( io )
     221    if (io)
    219222    {
    220223        nb_direct_initiators         = nb_procs + 3;
     
    303306
    304307    // IO cluster components
    305     if ( io )
     308    if (io)
    306309    {
    307310        /////////////////////////////////////////////
     
    335338                     "bdev",
    336339                     mtd,
    337                      IntTab(cluster_id, nb_procs+1),
     340                     IntTab(cluster_id, nb_procs + 1),
    338341                     IntTab(cluster_id, tgtid_bdev),
    339342                     disk_name,
     
    394397        /////////////////////////////////////////////
    395398        std::vector<std::string> vect_names;
    396         for( size_t tid = 0 ; tid < (nb_ttys) ; tid++ )
     399        for (size_t tid = 0; tid < nb_ttys; tid++)
    397400        {
    398401            std::ostringstream term_name;
     
    423426    router_rsp->p_resetn                     (this->p_resetn);
    424427
    425     for(int i = 0; i < 4; i++)
     428    for (int i = 0; i < 4; i++)
    426429    {
    427430        for (int k = 0; k < 3; k++)
     
    468471        xbar_cmd_d->p_local_in[p]                (signal_dspin_cmd_proc_i[p]);
    469472
    470     if ( io )
     473    if (io)
    471474    {
    472475        xbar_cmd_d->p_local_out[tgtid_mtty]      (signal_dspin_cmd_mtty_t);
     
    475478        xbar_cmd_d->p_local_out[tgtid_fbuf]      (signal_dspin_cmd_fbuf_t);
    476479        xbar_cmd_d->p_local_out[tgtid_mnic]      (signal_dspin_cmd_mnic_t);
    477         xbar_cmd_d->p_local_out[tgtid_chbuf]      (signal_dspin_cmd_chbuf_t);
    478 
    479         xbar_cmd_d->p_local_in[nb_procs+1]       (signal_dspin_cmd_bdev_i);
    480         xbar_cmd_d->p_local_in[nb_procs+2]       (signal_dspin_cmd_chbuf_i);
     480        xbar_cmd_d->p_local_out[tgtid_chbuf]     (signal_dspin_cmd_chbuf_t);
     481
     482        xbar_cmd_d->p_local_in[nb_procs + 1]     (signal_dspin_cmd_bdev_i);
     483        xbar_cmd_d->p_local_in[nb_procs + 2]     (signal_dspin_cmd_chbuf_i);
    481484    }
    482485
     
    498501        xbar_rsp_d->p_local_out[p]               (signal_dspin_rsp_proc_i[p]);
    499502
    500     if ( io )
     503    if (io)
    501504    {
    502505        xbar_rsp_d->p_local_in[tgtid_mtty]       (signal_dspin_rsp_mtty_t);
     
    505508        xbar_rsp_d->p_local_in[tgtid_fbuf]       (signal_dspin_rsp_fbuf_t);
    506509        xbar_rsp_d->p_local_in[tgtid_mnic]       (signal_dspin_rsp_mnic_t);
    507         xbar_rsp_d->p_local_in[tgtid_chbuf]       (signal_dspin_rsp_chbuf_t);
    508 
    509         xbar_rsp_d->p_local_out[nb_procs+1]      (signal_dspin_rsp_bdev_i);
    510         xbar_rsp_d->p_local_out[nb_procs+2]      (signal_dspin_rsp_chbuf_i);
     510        xbar_rsp_d->p_local_in[tgtid_chbuf]      (signal_dspin_rsp_chbuf_t);
     511
     512        xbar_rsp_d->p_local_out[nb_procs + 1]    (signal_dspin_rsp_bdev_i);
     513        xbar_rsp_d->p_local_out[nb_procs + 2]    (signal_dspin_rsp_chbuf_i);
    511514    }
    512515
     
    531534    xbar_clack_c->p_local_in[0]                  (signal_dspin_clack_memc);
    532535    for (size_t p = 0; p < nb_procs; p++)
    533         xbar_clack_c->p_local_out[p]               (signal_dspin_clack_proc[p]);
     536        xbar_clack_c->p_local_out[p]             (signal_dspin_clack_proc[p]);
    534537
    535538    std::cout << "  - Clack Coherence crossbar connected" << std::endl;
     
    575578    xicu->p_resetn                     (this->p_resetn);
    576579    xicu->p_vci                        (signal_vci_tgt_xicu);
    577     for ( size_t p=0 ; p<nb_procs ; p++)
     580    for (size_t p = 0; p < nb_procs; p++)
    578581    {
    579582        xicu->p_irq[p]                 (signal_proc_it[p]);
    580583    }
    581     for ( size_t i=0 ; i<32 ; i++)
    582     {
    583         if ( io ) // I/O cluster
     584    for (size_t i = 0; i < 32; i++)
     585    {
     586        if (io) // I/O cluster
    584587        {
    585588            if      (i < 8)                  xicu->p_hwi[i] (signal_false);
    586             else if (i < (8 + nb_dmas))      xicu->p_hwi[i] (signal_irq_mdma[i-8]);
     589            else if (i < (8 + nb_dmas))      xicu->p_hwi[i] (signal_irq_mdma[i - 8]);
    587590            else if (i < 16)                 xicu->p_hwi[i] (signal_false);
    588             else if (i < (16 + nb_ttys))     xicu->p_hwi[i] (signal_irq_mtty[i-16]);
     591            else if (i < (16 + nb_ttys))     xicu->p_hwi[i] (signal_irq_mtty[i - 16]);
    589592            else if (i < 31)                 xicu->p_hwi[i] (signal_false);
    590593            else                             xicu->p_hwi[i] (signal_irq_bdev);
     
    593596        {
    594597            if      (i < 8)                  xicu->p_hwi[i] (signal_false);
    595             else if (i < (8 + nb_dmas))      xicu->p_hwi[i] (signal_irq_mdma[i-8]);
     598            else if (i < (8 + nb_dmas))      xicu->p_hwi[i] (signal_irq_mdma[i - 8]);
    596599            else                             xicu->p_hwi[i] (signal_false);
    597600        }
     
    637640    mdma->p_vci_target                 (signal_vci_tgt_mdma);
    638641    mdma->p_vci_initiator              (signal_vci_ini_mdma);
    639     for (size_t i=0 ; i<nb_dmas ; i++)
     642    for (size_t i = 0; i < nb_dmas; i++)
    640643        mdma->p_irq[i]                 (signal_irq_mdma[i]);
    641644
     
    658661    /////////////////////////////// Components in I/O cluster
    659662
    660     if ( io )
     663    if (io)
    661664    {
    662665        // BDEV
     
    701704        mnic->p_resetn                 (this->p_resetn);
    702705        mnic->p_vci                    (signal_vci_tgt_mnic);
    703         for ( size_t i=0 ; i<nic_channels ; i++ )
     706        for (size_t i = 0; i < nic_channels; i++)
    704707        {
    705708            mnic->p_rx_irq[i]          (signal_irq_mnic_rx[i]);
     
    721724        chbuf->p_vci_target             (signal_vci_tgt_chbuf);
    722725        chbuf->p_vci_initiator          (signal_vci_ini_chbuf);
    723         for ( size_t i=0 ; i < chbufdma_channels ; i++ )
     726        for (size_t i = 0; i < chbufdma_channels; i++)
    724727        {
    725728            chbuf->p_irq[i]          (signal_irq_chbuf[i]);
     
    760763        mtty->p_resetn                 (this->p_resetn);
    761764        mtty->p_vci                    (signal_vci_tgt_mtty);
    762         for ( size_t i=0 ; i<nb_ttys ; i++ )
     765        for (size_t i = 0; i < nb_ttys; i++)
    763766        {
    764767            mtty->p_irq[i]             (signal_irq_mtty[i]);
     
    776779} // end constructor
    777780
     781
     782
     783template<size_t dspin_cmd_width,
     784         size_t dspin_rsp_width,
     785         typename vci_param_int,
     786         typename vci_param_ext> TsarXbarCluster<dspin_cmd_width,
     787                                                 dspin_rsp_width,
     788                                                 vci_param_int,
     789                                                 vci_param_ext>::~TsarXbarCluster() {
     790
     791    for (size_t p = 0; p < n_procs; p++)
     792    {
     793        delete proc[p];
     794        delete wi_proc[p];
     795    }
     796
     797    delete memc;
     798    delete wt_memc;
     799    delete xram;
     800    delete xicu;
     801    delete wt_xicu;
     802    delete mdma;
     803    delete wt_mdma;
     804    delete wi_mdma;
     805    delete xbar_cmd_d;
     806    delete xbar_rsp_d;
     807    delete xbar_m2p_c;
     808    delete xbar_p2m_c;
     809    delete xbar_clack_c;
     810    delete router_cmd;
     811    delete router_rsp;
     812    if (brom != NULL)
     813    {
     814        delete brom;
     815        delete wt_brom;
     816        delete fbuf;
     817        delete wt_fbuf;
     818        delete bdev;
     819        delete wt_bdev;
     820        delete wi_bdev;
     821        delete mnic;
     822        delete wt_mnic;
     823        delete chbuf;
     824        delete wt_chbuf;
     825        delete wi_chbuf;
     826        delete mtty;
     827        delete wt_mtty;
     828    }
     829}
     830
     831
    778832}}
    779833
    780834// Local Variables:
    781 // tab-width: 3
    782 // c-basic-offset: 3
     835// tab-width: 4
     836// c-basic-offset: 4
    783837// c-file-offsets:((innamespace . 0)(inline-open . 0))
    784838// indent-tabs-mode: nil
    785839// End:
    786840
    787 // vim: filetype=cpp:expandtab:shiftwidth=3:tabstop=3:softtabstop=3
    788 
    789 
    790 
     841// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
     842
     843
     844
Note: See TracChangeset for help on using the changeset viewer.