Ignore:
Timestamp:
Oct 21, 2015, 11:48:40 AM (9 years ago)
Author:
meunier
Message:
  • Update the scripts to use a common file hard_params.py in both gen_arch_info and gen_hdd
  • Adding the P_WIDTH parameter in the topcell
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

    r885 r1023  
    190190                     size_t                             y_width,       // y field bits
    191191                     size_t                             l_width,       // l field bits
     192                     size_t                             p_width,
    192193                     size_t                             tgtid_memc,
    193194                     size_t                             tgtid_xicu,
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp

    r885 r1023  
    5050         size_t                             y_width,
    5151         size_t                             l_width,
     52         size_t                             p_width,
    5253         size_t                             tgtid_memc,
    5354         size_t                             tgtid_xicu,
     
    8586            : soclib::caba::BaseModule(insname),
    8687            p_clk("clk"),
    87             p_resetn("resetn")
    88 
    89 {
     88            p_resetn("resetn") {
    9089
    9190    n_procs = nb_procs;
     
    114113    /////////////////////////////////////////////////////////////////////////////
    115114
    116     for (size_t p = 0; p < nb_procs; p++)
    117     {
     115    for (size_t p = 0; p < nb_procs; p++) {
    118116        std::ostringstream sproc;
    119117        sproc << "proc_" << x_id << "_" << y_id << "_" << p;
     
    123121                                         GdbServer<Mips32ElIss> >(
    124122                      sproc.str().c_str(),
    125                       cluster_id * nb_procs + p,      // GLOBAL PROC_ID
     123                      (cluster_id << p_width) + p,    // GLOBAL PROC_ID
    126124                      mtd,                            // Mapping Table
    127                       IntTab(cluster_id,p),           // SRCID
     125                      IntTab(cluster_id, p),          // SRCID
    128126                      (cluster_id << l_width) + p,    // CC_GLOBAL_ID
    129127                      8,                              // ITLB ways
     
    205203    size_t nb_direct_initiators      = nb_procs + 1;
    206204    size_t nb_direct_targets         = 3;
    207     if (io)
    208     {
     205    if (io) {
    209206        nb_direct_initiators         = nb_procs + 3;
    210207        nb_direct_targets            = 10;
     
    321318
    322319    // IO cluster components
    323     if (io)
    324     {
     320    if (io) {
    325321        /////////////////////////////////////////////
    326322        brom = new VciSimpleRom<vci_param_int>(
     
    371367        /////////////////////////////////////////////
    372368        std::vector<std::string> vect_names;
    373         for (size_t tid = 0; tid < nb_ttys; tid++)
    374         {
     369        for (size_t tid = 0; tid < nb_ttys; tid++) {
    375370            std::ostringstream term_name;
    376371            term_name <<  "term" << tid;
     
    406401
    407402    // loop on N/S/E/W ports
    408     for (size_t i = 0; i < 4; i++)
    409     {
     403    for (size_t i = 0; i < 4; i++) {
    410404        router_cmd->p_out[i]               (this->p_cmd_out[i]);
    411405        router_cmd->p_in[i]                (this->p_cmd_in[i]);
     
    469463    xbar_d->p_to_initiator[nb_procs]         (signal_vci_ini_mdma);
    470464
    471     for (size_t p = 0; p < nb_procs; p++)
     465    for (size_t p = 0; p < nb_procs; p++) {
    472466        xbar_d->p_to_initiator[p]            (signal_vci_ini_proc[p]);
    473 
    474     if (io)
    475     {
     467    }
     468
     469    if (io) {
    476470        xbar_d->p_to_target[tgtid_mtty]      (signal_vci_tgt_mtty);
    477471        xbar_d->p_to_target[tgtid_brom]      (signal_vci_tgt_brom);
     
    494488    xbar_m2p_c->p_global_in                      (signal_dspin_m2p_g2l_c);
    495489    xbar_m2p_c->p_local_in[0]                    (signal_dspin_m2p_memc);
    496     for (size_t p = 0; p < nb_procs; p++)
     490    for (size_t p = 0; p < nb_procs; p++) {
    497491        xbar_m2p_c->p_local_out[p]               (signal_dspin_m2p_proc[p]);
     492    }
    498493
    499494    std::cout << "  - M2P Coherence crossbar connected" << std::endl;
     
    505500    xbar_clack_c->p_global_in                    (signal_dspin_clack_g2l_c);
    506501    xbar_clack_c->p_local_in[0]                  (signal_dspin_clack_memc);
    507     for (size_t p = 0; p < nb_procs; p++)
     502    for (size_t p = 0; p < nb_procs; p++) {
    508503        xbar_clack_c->p_local_out[p]             (signal_dspin_clack_proc[p]);
     504    }
    509505
    510506    std::cout << "  - Clack Coherence crossbar connected" << std::endl;
     
    516512    xbar_p2m_c->p_global_in                      (signal_dspin_p2m_g2l_c);
    517513    xbar_p2m_c->p_local_out[0]                   (signal_dspin_p2m_memc);
    518     for (size_t p = 0; p < nb_procs; p++)
     514    for (size_t p = 0; p < nb_procs; p++) {
    519515        xbar_p2m_c->p_local_in[p]                (signal_dspin_p2m_proc[p]);
     516    }
    520517
    521518    std::cout << "  - P2M Coherence crossbar connected" << std::endl;
     
    523520
    524521    //////////////////////////////////// Processors
    525     for (size_t p = 0; p < nb_procs; p++)
    526     {
     522    for (size_t p = 0; p < nb_procs; p++) {
    527523        proc[p]->p_clk                      (this->p_clk);
    528524        proc[p]->p_resetn                   (this->p_resetn);
     
    532528        proc[p]->p_dspin_clack              (signal_dspin_clack_proc[p]);
    533529
    534         for ( size_t i = 0; i < irq_per_processor; i++)
    535         {
     530        for ( size_t i = 0; i < irq_per_processor; i++) {
    536531            proc[p]->p_irq[i]               (signal_proc_it[p*irq_per_processor + i]);
    537532        }
    538         for ( size_t j = irq_per_processor; j < 6; j++) // 6 = number of irqs in the MIPS
    539         {
     533        for ( size_t j = irq_per_processor; j < 6; j++) {
     534            // 6 = number of irqs in the MIPS
    540535            proc[p]->p_irq[j]               (signal_false);
    541536        }
     
    549544    xicu->p_resetn                     (this->p_resetn);
    550545    xicu->p_vci                        (signal_vci_tgt_xicu);
    551     for (size_t p = 0; p < nb_procs * irq_per_processor; p++)
    552     {
     546    for (size_t p = 0; p < nb_procs * irq_per_processor; p++) {
    553547        xicu->p_irq[p]                 (signal_proc_it[p]);
    554548    }
    555     for (size_t i = 0; i < 32; i++)
    556     {
    557         if (io) // I/O cluster
    558         {
     549    for (size_t i = 0; i < 32; i++) {
     550        if (io) {
     551            // I/O cluster
    559552            if      (i < 8)                  xicu->p_hwi[i] (signal_false);
    560553            else if (i < (8 + nb_dmas))      xicu->p_hwi[i] (signal_irq_mdma[i - 8]);
     
    565558            else                             xicu->p_hwi[i] (signal_irq_bdev);
    566559        }
    567         else      // other clusters
    568         {
     560        else {
     561            // other clusters
    569562            if      (i < 8)                  xicu->p_hwi[i] (signal_false);
    570563            else if (i < (8 + nb_dmas))      xicu->p_hwi[i] (signal_irq_mdma[i - 8]);
     
    601594    mdma->p_vci_target                 (signal_vci_tgt_mdma);
    602595    mdma->p_vci_initiator              (signal_vci_ini_mdma);
    603     for (size_t i = 0; i < nb_dmas; i++)
     596    for (size_t i = 0; i < nb_dmas; i++) {
    604597        mdma->p_irq[i]                 (signal_irq_mdma[i]);
     598    }
    605599
    606600    std::cout << "  - MDMA connected" << std::endl;
     
    608602    /////////////////////////////// Components in I/O cluster
    609603
    610     if (io)
    611     {
     604    if (io) {
    612605        // BDEV
    613606        bdev->p_clk                    (this->p_clk);
     
    630623        mnic->p_resetn                 (this->p_resetn);
    631624        mnic->p_vci                    (signal_vci_tgt_mnic);
    632         for (size_t i = 0; i < nic_channels; i++)
    633         {
     625        for (size_t i = 0; i < nic_channels; i++) {
    634626            mnic->p_rx_irq[i]          (signal_irq_mnic_rx[i]);
    635627            mnic->p_tx_irq[i]          (signal_irq_mnic_tx[i]);
     
    643635        chbuf->p_vci_target             (signal_vci_tgt_chbuf);
    644636        chbuf->p_vci_initiator          (signal_vci_ini_chbuf);
    645         for (size_t i = 0; i < chbufdma_channels; i++)
    646         {
     637        for (size_t i = 0; i < chbufdma_channels; i++) {
    647638            chbuf->p_irq[i]          (signal_irq_chbuf[i]);
    648639        }
     
    661652        mtty->p_resetn                 (this->p_resetn);
    662653        mtty->p_vci                    (signal_vci_tgt_mtty);
    663         for (size_t i = 0; i < nb_ttys; i++)
    664         {
     654        for (size_t i = 0; i < nb_ttys; i++) {
    665655            mtty->p_irq[i]             (signal_irq_mtty[i]);
    666656        }
     
    703693    dealloc_elems<DspinOutput<dspin_cmd_width> >(p_cla_out, 4);
    704694
    705     for (size_t p = 0; p < n_procs; p++)
    706     {
     695    for (size_t p = 0; p < n_procs; p++) {
    707696        delete proc[p];
    708697    }
     
    720709    delete router_cmd;
    721710    delete router_rsp;
    722     if (brom != NULL)
    723     {
     711    if (brom != NULL) {
    724712        delete brom;
    725713        delete fbuf;
Note: See TracChangeset for help on using the changeset viewer.