Changeset 1053 for trunk/platforms/tsar_generic_iob/top.cpp
- Timestamp:
- Sep 15, 2017, 12:32:44 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/top.cpp
r1051 r1053 11 11 // - BROM : boot ROM 12 12 // - FBUF : Frame Buffer 13 // - MTTY : multi TTY ( one channel)13 // - MTTY : multi TTY (up to 8 channels) 14 14 // - MNIC : Network controller (up to 4 channels) 15 15 // - DISK : Block device controler (BDV / HBA / SDC) … … 44 44 // - IOPIC HWI[7:4] connected to IRQ_NIC_TX[3:0] 45 45 // - IOPIC HWI[12] connected to IRQ_IOC 46 // - IOPIC HWI[31:16] connected to IRQ_TTY_RX[15:0] 46 // - IOPIC HWI[23:16] connected to IRQ_TTY_RX[7:0] 47 // - IOPIC HWI[31:24] connected to IRQ_TTY_TX[7:0] 47 48 // 48 49 // Each cluster contains the following component: … … 135 136 #include "tsar_iob_cluster.h" 136 137 #include "vci_chbuf_dma.h" 137 #include "vci_ multi_tty.h"138 #include "vci_tty_tsar.h" 138 139 #include "vci_master_nic.h" 139 140 #include "vci_simple_rom.h" … … 460 461 "Error in tsar_generic_iob : ICU_NB_OUT cannot be smaller than 4*NB_PROCS_MAX" ); 461 462 462 assert( (NB_TXT_CHANNELS >= 1) and (NB_TXT_CHANNELS <= 16) and463 assert( (NB_TXT_CHANNELS >= 1) and (NB_TXT_CHANNELS <= 8) and 463 464 "Error in tsar_generic_iob : NB_TXT_CHANNELS parameter cannot be larger than 16" ); 464 465 … … 821 822 sc_signal<bool> signal_irq_disk; 822 823 sc_signal<bool> signal_irq_mtty_rx[NB_TXT_CHANNELS]; 824 sc_signal<bool> signal_irq_mtty_tx[NB_TXT_CHANNELS]; 823 825 sc_signal<bool> signal_irq_mnic_rx[NB_NIC_CHANNELS]; 824 826 sc_signal<bool> signal_irq_mnic_tx[NB_NIC_CHANNELS]; … … 1072 1074 #endif 1073 1075 1074 // Multi-TTY controller1076 // TTY controller 1075 1077 std::vector<std::string> vect_names; 1076 1078 for( size_t tid = 0 ; tid < NB_TXT_CHANNELS ; tid++ ) … … 1080 1082 1081 1083 vect_names.push_back(term_name.str().c_str()); 1082 1083 VciMultiTty<vci_param_ext>* mtty;1084 mtty = new VciMultiTty<vci_param_ext>( "mtty",1085 1086 1087 1084 } 1085 VciTtyTsar<vci_param_ext>* mtty; 1086 mtty = new VciTtyTsar<vci_param_ext>( "mtty", 1087 IntTab(0, IOX_MTTY_TGT_ID), 1088 maptab_iox, 1089 vect_names); 1088 1090 1089 1091 // IOPIC … … 1335 1337 for ( size_t i=0 ; i<NB_TXT_CHANNELS ; i++ ) 1336 1338 { 1337 mtty->p_irq[i] (signal_irq_mtty_rx[i]); 1339 mtty->p_irq_rx[i] (signal_irq_mtty_rx[i]); 1340 mtty->p_irq_tx[i] (signal_irq_mtty_tx[i]); 1338 1341 } 1339 1342 std::cout << " - MTTY connected" << std::endl; … … 1353 1356 else if(i < 16) iopi->p_hwi[i] (signal_irq_false); 1354 1357 else if(i < 16+NB_TXT_CHANNELS) iopi->p_hwi[i] (signal_irq_mtty_rx[i-16]); 1358 else if(i < 24) iopi->p_hwi[i] (signal_irq_false); 1359 else if(i < 24+NB_TXT_CHANNELS) iopi->p_hwi[i] (signal_irq_mtty_tx[i-24]); 1355 1360 else iopi->p_hwi[i] (signal_irq_false); 1356 1361 } … … 1651 1656 1652 1657 // Monitor a specific address for one L1 cache 1653 // clusters[0][0]->proc[0]->cache_monitor( 0x800080ULL);1658 // clusters[0][0]->proc[0]->cache_monitor( 0x00032D74ULL ); 1654 1659 1655 1660 // Monitor a specific address for one L2 cache (single word if second argument true) 1656 // clusters[0][0]->memc->cache_monitor( 0x000 07000ULL, false );1661 // clusters[0][0]->memc->cache_monitor( 0x00032D74ULL, false ); 1657 1662 1658 1663 // Monitor a specific address for one XRAM 1659 // clusters[0][0]->xram->start_monitor( 0x000 07000ULL , 64);1664 // clusters[0][0]->xram->start_monitor( 0x0008A000ULL , 64); 1660 1665 1661 1666 if ( debug_ok and (n > debug_from) ) … … 1671 1676 size_t x = cluster_xy >> 4; 1672 1677 size_t y = cluster_xy & 0xF; 1673 1678 /* 1679 size_t l = 0; 1680 size_t x = 0; 1681 size_t y; 1682 1683 for( y = 0 ; y < 2 ; y++ ) 1684 { 1685 */ 1674 1686 clusters[x][y]->proc[l]->print_trace(0x1); 1675 1687 std::ostringstream proc_signame; … … 1748 1760 // signal_vci_tgt_brom.print_trace("[SIG]BROM_TGT"); 1749 1761 1750 // mtty->print_trace();1751 //signal_vci_tgt_mtty.print_trace("[SIG]MTTY_TGT");1762 mtty->print_trace( 1 ); 1763 signal_vci_tgt_mtty.print_trace("[SIG]MTTY_TGT"); 1752 1764 1753 1765 // disk->print_trace(); … … 1759 1771 #endif 1760 1772 1761 1762 1763 1773 // mnic->print_trace( 0 ); 1774 // signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT"); 1775 // signal_vci_ini_mnic.print_trace("[SIG]MNIC_INI"); 1764 1776 1765 1777 // fbuf->print_trace(); 1766 1778 // signal_vci_tgt_fbuf.print_trace("[SIG]FBUF_TGT"); 1767 1779 1768 //iopi->print_trace();1769 //signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI");1770 //signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT");1780 iopi->print_trace(); 1781 signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI"); 1782 signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT"); 1771 1783 1772 1784 // iox_network->print_trace(); … … 1776 1788 std::cout << "### IRQ_DISK ACTIVE" << std::endl; 1777 1789 1778 if ( signal_irq_mtty_rx[0].read() ) 1779 std::cout << "### IRQ_MTTY_RX[0] ACTIVE" << std::endl; 1780 1781 if ( signal_irq_mnic_rx[0].read() ) 1782 std::cout << "### IRQ_MNIC_RX[0] ACTIVE" << std::endl; 1783 1784 if ( signal_irq_mnic_tx[0].read() ) 1785 std::cout << "### IRQ_MNIC_TX[0] ACTIVE" << std::endl; 1790 for( size_t k = 0 ; k < NB_TXT_CHANNELS ; k++ ) 1791 { 1792 if ( signal_irq_mtty_rx[k].read() ) 1793 std::cout << "### IRQ_MTTY_RX[" << k << "] ACTIVE" << std::endl; 1794 1795 if ( signal_irq_mtty_tx[k].read() ) 1796 std::cout << "### IRQ_MTTY_TX[" << k << "] ACTIVE" << std::endl; 1797 } 1798 1799 for( size_t k = 0 ; k < NB_NIC_CHANNELS ; k++ ) 1800 { 1801 if ( signal_irq_mnic_rx[k].read() ) 1802 std::cout << "### IRQ_MNIC_RX[" << k << "] ACTIVE" << std::endl; 1803 1804 if ( signal_irq_mnic_tx[k].read() ) 1805 std::cout << "### IRQ_MNIC_TX[" << k << "] ACTIVE" << std::endl; 1806 } 1786 1807 } 1787 1808 }
Note: See TracChangeset
for help on using the changeset viewer.