Changeset 986


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

reconf: some improvements on tsar_generic_iob platform

Location:
branches/reconfiguration/platforms/tsar_generic_iob
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/Makefile

    r974 r986  
    11TAGS := cscope.out
    2 SOCLIB_CC_ARGS :=
    3 SOCLIB_CC_ARGS += -bcaba:reconf:vci_xicu
    4 SOCLIB_CC_ARGS += -bcaba:vci_iopic
    5 SOCLIB_CC_ARGS += -bcaba:vci_block_device_tsar
     2SOCLIB_CC_MODE := -m release
     3SOCLIB_CC_ARGS := $(SOCLIB_CC_MODE)
    64SOCLIB_CC_ARGS += -v
     5#SOCLIB_CC_ARGS += -bcaba:reconf:vci_xicu
     6#SOCLIB_CC_ARGS += -bcaba:vci_iopic
     7#SOCLIB_CC_ARGS += -bcaba:vci_block_device_tsar
    78
    89all: simul.x
     
    1617
    1718clean:
    18         soclib-cc -x -p top.desc -I.
     19        soclib-cc $(SOCLIB_CC_MODE) -x -p top.desc -I.
    1920        rm -rf *.o *.x tty* term*
    2021
  • branches/reconfiguration/platforms/tsar_generic_iob/scripts/onerun.py

    r978 r986  
    44
    55import os
     6import shutil
    67import subprocess
    78import arch
     
    2627    faultymask   -- a mask of disabled routers' interfaces
    2728    faultycore   -- a list containing faulty cores' coordinates (x, y, l)
    28     debug        -- a list with debug's start cycle, stop cycle, PID and MID
     29    debug        -- a list with debug's start cycle, PID and MID
    2930    threads      -- number of OpenMP threads
    3031    firmdebug    -- activate the DEBUG compilation mode on software
     
    132133        command.extend(["-PROCID", str(args.debug[1])]);
    133134        command.extend(["-MEMCID", str(args.debug[2])]);
     135        command.extend(["-IOB", "1"]);
    134136
    135137    if args.ncycles > 0:
     
    153155    command.extend(["-THREADS", str(ompthreads)])
    154156
    155 
    156157    logfile.write("Execute: {0}\n".format(" ".join(command)))
    157158    logfile.flush()
     
    163164    # 6. move simulation terminal output into the target config dir
    164165    if os.path.lexists("term0"):
    165         os.rename("term0", os.path.join(outdir, "term"))
     166        shutil.copy2("term0", os.path.join(outdir, "term"))
    166167
    167168# get command-line arguments
     
    210211
    211212    parser.add_argument(
    212         '--debug', '-g', dest='debug', nargs=4,
    213         help='needs four arguments: from, to, procid, memcid')
     213        '--debug', '-g', dest='debug', nargs=3,
     214        help='needs four arguments: from, procid, memcid')
    214215
    215216    parser.add_argument(
  • 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.