Changeset 986
- Timestamp:
- Apr 19, 2015, 5:19:36 PM (10 years ago)
- Location:
- branches/reconfiguration/platforms/tsar_generic_iob
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/reconfiguration/platforms/tsar_generic_iob/Makefile
r974 r986 1 1 TAGS := 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 2 SOCLIB_CC_MODE := -m release 3 SOCLIB_CC_ARGS := $(SOCLIB_CC_MODE) 6 4 SOCLIB_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 7 8 8 9 all: simul.x … … 16 17 17 18 clean: 18 soclib-cc -x -p top.desc -I.19 soclib-cc $(SOCLIB_CC_MODE) -x -p top.desc -I. 19 20 rm -rf *.o *.x tty* term* 20 21 -
branches/reconfiguration/platforms/tsar_generic_iob/scripts/onerun.py
r978 r986 4 4 5 5 import os 6 import shutil 6 7 import subprocess 7 8 import arch … … 26 27 faultymask -- a mask of disabled routers' interfaces 27 28 faultycore -- a list containing faulty cores' coordinates (x, y, l) 28 debug -- a list with debug's start cycle, stop cycle,PID and MID29 debug -- a list with debug's start cycle, PID and MID 29 30 threads -- number of OpenMP threads 30 31 firmdebug -- activate the DEBUG compilation mode on software … … 132 133 command.extend(["-PROCID", str(args.debug[1])]); 133 134 command.extend(["-MEMCID", str(args.debug[2])]); 135 command.extend(["-IOB", "1"]); 134 136 135 137 if args.ncycles > 0: … … 153 155 command.extend(["-THREADS", str(ompthreads)]) 154 156 155 156 157 logfile.write("Execute: {0}\n".format(" ".join(command))) 157 158 logfile.flush() … … 163 164 # 6. move simulation terminal output into the target config dir 164 165 if os.path.lexists("term0"): 165 os.rename("term0", os.path.join(outdir, "term"))166 shutil.copy2("term0", os.path.join(outdir, "term")) 166 167 167 168 # get command-line arguments … … 210 211 211 212 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') 214 215 215 216 parser.add_argument( -
branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
r974 r986 1069 1069 1070 1070 // Clusters 1071 TsarIobCluster<vci_param_int,1072 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]; 1077 1077 1078 1078 #if USE_OPENMP … … 1107 1107 std::ostringstream sc; 1108 1108 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 ( 1116 1110 sc.str().c_str(), 1117 1111 NB_PROCS_MAX, … … 1555 1549 } 1556 1550 1557 #if USE_NIC == 01551 #if !USE_NIC 1558 1552 for (int i = 0; i < NB_NIC_CHANNELS; i++) 1559 1553 { … … 1577 1571 1578 1572 // cycles between stats 1579 const size_t stats_period = 300000;1573 const size_t stats_period = 500000; 1580 1574 const size_t simul_period = debug_ok ? debug_period : stats_period; 1581 1575 … … 1600 1594 } 1601 1595 1602 // Monitor a specific address for one L1 cache1603 // clusters[1][1]->proc[0]->cache_monitor(0x50090ULL);1604 1605 // Monitor a specific address for one L2 cache1606 // clusters[0][0]->memc->cache_monitor( 0x170000ULL);1607 1608 // Monitor a specific address for one XRAM1609 // if (n == 3000000) clusters[0][0]->xram->start_monitor( 0x170000ULL , 64);1610 1611 1596 if (debug_ok and (n > debug_from) and (n % debug_period == 0)) 1612 1597 { … … 1614 1599 std::cout << " ************************************************" << std::endl; 1615 1600 1616 #if 01617 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 #endif1626 1627 1601 // trace proc[debug_proc_id] 1628 1602 if ( debug_proc_id != 0xFFFFFFFF ) … … 1633 1607 size_t y = cluster_xy & ((1 << Y_WIDTH) - 1); 1634 1608 1635 clusters[x][y]->proc[l]->print_trace(1); 1609 TsarCluster *c = clusters[x][y]; 1610 1611 c->proc[l]->print_trace(1); 1636 1612 std::ostringstream proc_signame; 1637 1613 proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << l ; 1638 c lusters[x][y]->signal_int_vci_ini_proc[l].print_trace(proc_signame.str());1639 1640 c lusters[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); 1641 1617 std::ostringstream xicu_signame; 1642 1618 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() ) 1651 1622 std::cout << "### IRQ_PROC_" << std::dec 1652 1623 << x << "_" << y << "_" << l << " ACTIVE" << std::endl; … … 1659 1630 size_t y = debug_memc_id & ((1 << Y_WIDTH) - 1); 1660 1631 1661 clusters[x][y]->memc->print_trace(0); 1632 TsarCluster *c = clusters[x][y]; 1633 1634 c->memc->print_trace(0); 1662 1635 std::ostringstream smemc_tgt; 1663 1636 smemc_tgt << "[SIG]MEMC_TGT_" << x << "_" << y; 1664 c lusters[x][y]->signal_int_vci_tgt_memc.print_trace(smemc_tgt.str());1637 c->signal_int_vci_tgt_memc.print_trace(smemc_tgt.str()); 1665 1638 std::ostringstream smemc_ini; 1666 1639 smemc_ini << "[SIG]MEMC_INI_" << x << "_" << y; 1667 c lusters[x][y]->signal_ram_vci_ini_memc.print_trace(smemc_ini.str());1668 1669 c lusters[x][y]->xram->print_trace();1640 c->signal_ram_vci_ini_memc.print_trace(smemc_ini.str()); 1641 1642 c->xram->print_trace(); 1670 1643 std::ostringstream sxram_tgt; 1671 1644 sxram_tgt << "[SIG]XRAM_TGT_" << x << "_" << y; 1672 c lusters[x][y]->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str());1645 c->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str()); 1673 1646 } 1674 1647 … … 1680 1653 size_t y = debug_xram_id & ((1 << Y_WIDTH) - 1); 1681 1654 1682 clusters[x][y]->xram->print_trace(); 1655 TsarCluster *c = clusters[x][y]; 1656 1657 c->xram->print_trace(); 1683 1658 std::ostringstream sxram_tgt; 1684 1659 sxram_tgt << "[SIG]XRAM_TGT_" << x << "_" << y; 1685 c lusters[x][y]->signal_ram_vci_tgt_xram.print_trace(sxram_tgt.str());1686 1687 c lusters[x][y]->ram_router_cmd->print_trace();1688 c lusters[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(); 1689 1664 } 1690 1665 … … 1692 1667 if ( debug_iob ) 1693 1668 { 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"); 1700 1676 signal_vci_ini_iob0.print_trace("[SIG]IOB0_IOX_INI"); 1701 1677 signal_vci_tgt_iob0.print_trace("[SIG]IOB0_IOX_TGT"); 1702 1678 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"); 1705 1689 1706 1690 bdev->print_trace(); … … 1708 1692 signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI"); 1709 1693 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 1720 1694 iopi->print_trace(); 1721 1695 signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI"); 1722 1696 signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT"); 1723 1697 1724 signal_vci_tgt_simh.print_trace("[SIG]SIMH_TGT");1725 1726 iox_network->print_trace();1727 1728 1698 // 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 1735 1711 } 1736 1712 }
Note: See TracChangeset
for help on using the changeset viewer.