Ignore:
Timestamp:
Apr 19, 2015, 5:19:36 PM (9 years ago)
Author:
cfuguet
Message:

reconf: some improvements on tsar_generic_iob platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/top.cpp

    r974 r986  
    10691069
    10701070   // Clusters
    1071    TsarIobCluster<vci_param_int,
    1072                   vci_param_ext,
    1073                   dspin_int_cmd_width,
    1074                   dspin_int_rsp_width,
    1075                   dspin_ram_cmd_width,
    1076                   dspin_ram_rsp_width>* clusters[X_SIZE][Y_SIZE];
     1071   typedef TsarIobCluster<
     1072      vci_param_int, vci_param_ext,
     1073      dspin_int_cmd_width, dspin_int_rsp_width,
     1074      dspin_ram_cmd_width, dspin_ram_rsp_width> TsarCluster;
     1075
     1076   TsarCluster* clusters[X_SIZE][Y_SIZE];
    10771077
    10781078#if USE_OPENMP
     
    11071107            std::ostringstream sc;
    11081108            sc << "cluster_" << x << "_" << y;
    1109             clusters[x][y] = new TsarIobCluster<vci_param_int,
    1110                                                 vci_param_ext,
    1111                                                 dspin_int_cmd_width,
    1112                                                 dspin_int_rsp_width,
    1113                                                 dspin_ram_cmd_width,
    1114                                                 dspin_ram_rsp_width>
    1115             (
     1109            clusters[x][y] = new TsarCluster (
    11161110                sc.str().c_str(),
    11171111                NB_PROCS_MAX,
     
    15551549   }
    15561550
    1557 #if USE_NIC == 0
     1551#if !USE_NIC
    15581552   for (int i = 0; i < NB_NIC_CHANNELS; i++)
    15591553   {
     
    15771571
    15781572   // cycles between stats
    1579    const size_t stats_period = 300000;
     1573   const size_t stats_period = 500000;
    15801574   const size_t simul_period = debug_ok ? debug_period : stats_period;
    15811575
     
    16001594      }
    16011595
    1602       // Monitor a specific address for one L1 cache
    1603       // clusters[1][1]->proc[0]->cache_monitor(0x50090ULL);
    1604 
    1605       // Monitor a specific address for one L2 cache
    1606       // clusters[0][0]->memc->cache_monitor( 0x170000ULL);
    1607 
    1608       // Monitor a specific address for one XRAM
    1609       // if (n == 3000000) clusters[0][0]->xram->start_monitor( 0x170000ULL , 64);
    1610 
    16111596      if (debug_ok and (n > debug_from) and (n % debug_period == 0))
    16121597      {
     
    16141599         std::cout << " ************************************************" << std::endl;
    16151600
    1616 #if 0
    1617          for (int x = 0; x < X_SIZE; ++x)
    1618          {
    1619             for (int y = 0; y < Y_SIZE; ++y)
    1620             {
    1621                clusters[x][y]->int_router_cmd[0]->print_trace();
    1622                clusters[x][y]->int_router_rsp[0]->print_trace();
    1623             }
    1624          }
    1625 #endif
    1626 
    16271601         // trace proc[debug_proc_id]
    16281602         if ( debug_proc_id != 0xFFFFFFFF )
     
    16331607            size_t y          = cluster_xy & ((1 << Y_WIDTH) - 1);
    16341608
    1635             clusters[x][y]->proc[l]->print_trace(1);
     1609            TsarCluster *c = clusters[x][y];
     1610
     1611            c->proc[l]->print_trace(1);
    16361612            std::ostringstream proc_signame;
    16371613            proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << l ;
    1638             clusters[x][y]->signal_int_vci_ini_proc[l].print_trace(proc_signame.str());
    1639 
    1640             clusters[x][y]->xicu->print_trace(l);
     1614            c->signal_int_vci_ini_proc[l].print_trace(proc_signame.str());
     1615
     1616            c->xicu->print_trace(l);
    16411617            std::ostringstream xicu_signame;
    16421618            xicu_signame << "[SIG]XICU_" << x << "_" << y;
    1643             clusters[x][y]->signal_int_vci_tgt_xicu.print_trace(xicu_signame.str());
    1644 
    1645             //              clusters[x][y]->mdma->print_trace();
    1646             //              std::ostringstream mdma_signame;
    1647             //              mdma_signame << "[SIG]MDMA_" << x << "_" << y;
    1648             //              clusters[x][y]->signal_int_vci_tgt_mdma.print_trace(mdma_signame.str());
    1649 
    1650             if( clusters[x][y]->signal_proc_it[l].read() )
     1619            c->signal_int_vci_tgt_xicu.print_trace(xicu_signame.str());
     1620
     1621            if( c->signal_proc_it[l].read() )
    16511622               std::cout << "### IRQ_PROC_" << std::dec
    16521623                  << x << "_" << y << "_" << l << " ACTIVE" << std::endl;
     
    16591630            size_t y = debug_memc_id & ((1 << Y_WIDTH) - 1);
    16601631
    1661             clusters[x][y]->memc->print_trace(0);
     1632            TsarCluster *c = clusters[x][y];
     1633
     1634            c->memc->print_trace(0);
    16621635            std::ostringstream smemc_tgt;
    16631636            smemc_tgt << "[SIG]MEMC_TGT_" << x << "_" << y;
    1664             clusters[x][y]->signal_int_vci_tgt_memc.print_trace(smemc_tgt.str());
     1637            c->signal_int_vci_tgt_memc.print_trace(smemc_tgt.str());
    16651638            std::ostringstream smemc_ini;
    16661639            smemc_ini << "[SIG]MEMC_INI_" << x << "_" << y;
    1667             clusters[x][y]->signal_ram_vci_ini_memc.print_trace(smemc_ini.str());
    1668 
    1669             clusters[x][y]->xram->print_trace();
     1640            c->signal_ram_vci_ini_memc.print_trace(smemc_ini.str());
     1641
     1642            c->xram->print_trace();
    16701643            std::ostringstream sxram_tgt;
    16711644            sxram_tgt << "[SIG]XRAM_TGT_" << x << "_" << y;
    1672             clusters[x][y]->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str());
     1645            c->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str());
    16731646         }
    16741647
     
    16801653            size_t y = debug_xram_id & ((1 << Y_WIDTH) - 1);
    16811654
    1682             clusters[x][y]->xram->print_trace();
     1655            TsarCluster *c = clusters[x][y];
     1656
     1657            c->xram->print_trace();
    16831658            std::ostringstream sxram_tgt;
    16841659            sxram_tgt << "[SIG]XRAM_TGT_" << x << "_" << y;
    1685             clusters[x][y]->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str());
    1686 
    1687             clusters[x][y]->ram_router_cmd->print_trace();
    1688             clusters[x][y]->ram_router_rsp->print_trace();
     1660            c->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str());
     1661
     1662            c->ram_router_cmd->print_trace();
     1663            c->ram_router_rsp->print_trace();
    16891664         }
    16901665
     
    16921667         if ( debug_iob )
    16931668         {
    1694             clusters[0][0]->iob->print_trace();
    1695             clusters[X_SIZE-1][Y_SIZE-1]->iob->print_trace();
    1696             //              clusters[0][0]->signal_int_vci_tgt_iobx.print_trace( "[SIG]IOB0_INT_TGT");
    1697             //              clusters[0][0]->signal_int_vci_ini_iobx.print_trace( "[SIG]IOB0_INT_INI");
    1698             //              clusters[0][0]->signal_ram_vci_ini_iobx.print_trace( "[SIG]IOB0_RAM_INI");
    1699 
     1669            TsarCluster* c;
     1670
     1671            c = clusters[0][0];
     1672            c->iob->print_trace();
     1673            c->signal_int_vci_tgt_iobx.print_trace("[SIG]IOB0_INT_TGT");
     1674            c->signal_int_vci_ini_iobx.print_trace("[SIG]IOB0_INT_INI");
     1675            c->signal_ram_vci_ini_iobx.print_trace("[SIG]IOB0_RAM_INI");
    17001676            signal_vci_ini_iob0.print_trace("[SIG]IOB0_IOX_INI");
    17011677            signal_vci_tgt_iob0.print_trace("[SIG]IOB0_IOX_TGT");
    17021678
    1703             // mtty->print_trace();
    1704             // signal_vci_tgt_mtty.print_trace("[SIG]IOX_MTTY_TGT");
     1679            c = clusters[X_SIZE-1][Y_SIZE-1];
     1680            c->iob->print_trace();
     1681            c->signal_int_vci_tgt_iobx.print_trace("[SIG]IOB1_INT_TGT");
     1682            c->signal_int_vci_ini_iobx.print_trace("[SIG]IOB1_INT_INI");
     1683            c->signal_ram_vci_ini_iobx.print_trace("[SIG]IOB1_RAM_INI");
     1684            signal_vci_ini_iob1.print_trace("[SIG]IOB1_IOX_INI");
     1685            signal_vci_tgt_iob1.print_trace("[SIG]IOB1_IOX_TGT");
     1686
     1687            mtty->print_trace();
     1688            signal_vci_tgt_mtty.print_trace("[SIG]IOX_MTTY_TGT");
    17051689
    17061690            bdev->print_trace();
     
    17081692            signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI");
    17091693
    1710             // mnic->print_trace();
    1711             // signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT");
    1712 
    1713             // cdma->print_trace();
    1714             // signal_vci_tgt_cdma.print_trace("[SIG]IOX_CDMA_TGT");
    1715             // signal_vci_ini_cdma.print_trace("[SIG]IOX_CDMA_INI");
    1716 
    1717             // fbuf->print_trace();
    1718             // signal_vci_tgt_fbuf.print_trace("[SIG]FBUF");
    1719 
    17201694            iopi->print_trace();
    17211695            signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI");
    17221696            signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT");
    17231697
    1724             signal_vci_tgt_simh.print_trace("[SIG]SIMH_TGT");
    1725 
    1726             iox_network->print_trace();
    1727 
    17281698            // interrupts
    1729             if (signal_irq_bdev)       std::cout << "### IRQ_BDEV ACTIVE"       << std::endl;
    1730             if (signal_irq_mtty_rx[0]) std::cout << "### IRQ_MTTY ACTIVE"       << std::endl;
    1731             if (signal_irq_mnic_rx[0]) std::cout << "### IRQ_MNIC_RX[0] ACTIVE" << std::endl;
    1732             if (signal_irq_mnic_rx[1]) std::cout << "### IRQ_MNIC_RX[1] ACTIVE" << std::endl;
    1733             if (signal_irq_mnic_tx[0]) std::cout << "### IRQ_MNIC_TX[0] ACTIVE" << std::endl;
    1734             if (signal_irq_mnic_tx[1]) std::cout << "### IRQ_MNIC_TX[1] ACTIVE" << std::endl;
     1699            if (signal_irq_bdev)
     1700               std::cout << "### IRQ_BDEV ACTIVE" << std::endl;
     1701            if (signal_irq_mtty_rx[0])
     1702               std::cout << "### IRQ_MTTY ACTIVE" << std::endl;
     1703
     1704#if USE_NIC
     1705            for ( size_t i=0 ; i<NB_NIC_CHANNELS ; ++i )
     1706               if (signal_irq_mnic_rx[i])
     1707                  std::cout << "### IRQ_MNIC_RX[" << i << "] ACTIVE" << std::endl;
     1708               if (signal_irq_mnic_tx[i])
     1709                  std::cout << "### IRQ_MNIC_TX[" << i << "] ACTIVE" << std::endl;
     1710#endif
    17351711         }
    17361712      }
Note: See TracChangeset for help on using the changeset viewer.