Changeset 769 for branches/reconfiguration/platforms/tsar_generic_iob
- Timestamp:
- Aug 26, 2014, 3:08:14 PM (10 years ago)
- Location:
- branches/reconfiguration/platforms/tsar_generic_iob
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/reconfiguration/platforms/tsar_generic_iob/arch.py
r768 r769 109 109 pic_size = 0x1000 # 4 Kbytes 110 110 111 sim_base = 0x00B9000000 + offset_io 112 sim_size = 0x1000 # 4 kbytes 113 111 114 iob_base = 0x00BE000000 + offset_io 112 115 iob_size = 0x1000 # 4 kbytes 113 114 116 115 117 ### GIET_VM specifics virtual segments … … 179 181 pic = mapping.addPeriph( 'PIC', base = pic_base, size = pic_size, ptype = 'PIC', channels = 32 ) 180 182 183 sim = mapping.addPeriph( 'SIM', base = sim_base, size = sim_size, ptype = 'SIM' ) 184 181 185 mapping.addIrq( pic, index = 0, isrtype = 'ISR_NIC_RX', channel = 0 ) 182 186 mapping.addIrq( pic, index = 1, isrtype = 'ISR_NIC_RX', channel = 1 ) … … 304 308 identity = True ) 305 309 310 mapping.addGlobal( 'seg_sim', sim_base, sim_size, '__W_', 311 vtype = 'PERI', x = 0, y = 0, pseg = 'SIM', 312 identity = True ) 306 313 307 314 ### global vsegs for internal peripherals, and for schedulers -
branches/reconfiguration/platforms/tsar_generic_iob/run.py
r768 r769 62 62 "-SOFT" , "soft/build/soft.elf", 63 63 "-DISK" , "/dev/null", 64 "-NCYCLES", " 500000"],64 "-NCYCLES", "10000000"], 65 65 stdout=log_file, 66 66 stderr=log_file, -
branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
r766 r769 134 134 #include "vci_iox_network.h" 135 135 #include "vci_iopic.h" 136 #include "vci_simhelper.h" 136 137 137 138 #include "alloc_elems.h" … … 303 304 #define IOX_MTTY_TGT_ID 4 304 305 #define IOX_IOPI_TGT_ID 5 305 #define IOX_IOB0_TGT_ID 6 306 #define IOX_IOB1_TGT_ID 7 306 #define IOX_SIMH_TGT_ID 6 307 #define IOX_IOB0_TGT_ID 7 308 #define IOX_IOB1_TGT_ID 8 307 309 308 310 #define IOX_BDEV_INI_ID 0 … … 597 599 maptab_int.add(Segment(spic.str(), SEG_PIC_BASE+offset, SEG_PIC_SIZE, 598 600 IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable)); 601 602 std::ostringstream ssim; 603 ssim << "int_seg_simh_" << x << "_" << y; 604 maptab_int.add(Segment(ssim.str(), SEG_SIM_BASE+offset, SEG_SIM_SIZE, 605 IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable)); 599 606 } 600 607 … … 710 717 maptab_iox.add(Segment("iox_seg_iopi_0", SEG_PIC_BASE + iob0_base, SEG_PIC_SIZE, 711 718 IntTab(0, IOX_IOPI_TGT_ID), false)); 719 maptab_iox.add(Segment("iox_seg_simh_0", SEG_SIM_BASE + iob0_base, SEG_SIM_SIZE, 720 IntTab(0, IOX_SIMH_TGT_ID), false)); 712 721 713 722 if ( cluster_iob0 != cluster_iob1 ) … … 728 737 maptab_iox.add(Segment("iox_seg_iopi_1", SEG_PIC_BASE + iob1_base, SEG_PIC_SIZE, 729 738 IntTab(0, IOX_IOPI_TGT_ID), false)); 739 maptab_iox.add(Segment("iox_seg_simh_1", SEG_SIM_BASE + iob1_base, SEG_SIM_SIZE, 740 IntTab(0, IOX_SIMH_TGT_ID), false)); 730 741 } 731 742 … … 822 833 VciSignals<vci_param_ext> signal_vci_tgt_cdma("signal_vci_tgt_cdma"); 823 834 VciSignals<vci_param_ext> signal_vci_tgt_iopi("signal_vci_ini_iopi"); 835 VciSignals<vci_param_ext> signal_vci_tgt_simh("signal_vci_ini_simh"); 824 836 825 837 // Horizontal inter-clusters INT network DSPIN … … 910 922 911 923 const size_t nb_iox_initiators = (cluster_iob0 != cluster_iob1) ? 5 : 4; 912 const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 8 : 7;924 const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 9 : 8; 913 925 914 926 // IOX network … … 981 993 32 ); // number of input HWI 982 994 995 // Simhelper 996 VciSimhelper<vci_param_ext>* simh; 997 simh = new VciSimhelper<vci_param_ext>("simh", 998 IntTab(0, IOX_SIMH_TGT_ID), 999 maptab_iox ); 1000 983 1001 // Clusters 984 1002 TsarIobCluster<vci_param_int, … … 1111 1129 iox_network->p_to_tgt[IOX_CDMA_TGT_ID] (signal_vci_tgt_cdma); 1112 1130 iox_network->p_to_tgt[IOX_IOPI_TGT_ID] (signal_vci_tgt_iopi); 1131 iox_network->p_to_tgt[IOX_SIMH_TGT_ID] (signal_vci_tgt_simh); 1113 1132 1114 1133 if (cluster_iob0 != cluster_iob1) … … 1186 1205 std::cout << " - IOPIC connected" << std::endl; 1187 1206 1207 // Simhelper connexion 1208 simh->p_clk(signal_clk); 1209 simh->p_resetn(signal_resetn); 1210 simh->p_vci(signal_vci_tgt_simh); 1188 1211 1189 1212 // IOB0 cluster connexion to IOX network … … 1532 1555 signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI"); 1533 1556 signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT"); 1557 1558 signal_vci_tgt_simh.print_trace("[SIG]SIMH_TGT"); 1559 1534 1560 iox_network->print_trace(); 1535 1561 … … 1553 1579 try { 1554 1580 return _main(argc, argv); 1581 } catch (soclib::exception::RunTimeError &e) { 1582 std::cout << "RunTimeError: " << e.what() << std::endl; 1555 1583 } catch (std::exception &e) { 1556 1584 std::cout << e.what() << std::endl; -
branches/reconfiguration/platforms/tsar_generic_iob/top.desc
r748 r769 2 2 # -*- python -*- 3 3 4 # VCI parameters 4 # VCI parameters 5 5 vci_cell_size_int = 4 6 6 vci_cell_size_ext = 8 … … 16 16 vci_wrplen_size = 1 17 17 18 # internal DSPIN network parameters 18 # internal DSPIN network parameters 19 19 int_dspin_cmd_flit_size = 39 20 20 int_dspin_rsp_flit_size = 32 … … 26 26 todo = Platform('caba', 'top.cpp', 27 27 28 28 uses = [ 29 29 # cluster 30 Uses('caba:reconfiguration:tsar_iob_cluster', 30 Uses('caba:reconfiguration:tsar_iob_cluster', 31 31 vci_data_width_int = vci_cell_size_int, 32 vci_data_width_ext = vci_cell_size_ext, 32 vci_data_width_ext = vci_cell_size_ext, 33 33 dspin_int_cmd_width = int_dspin_cmd_flit_size, 34 34 dspin_int_rsp_width = int_dspin_rsp_flit_size, 35 35 dspin_ram_cmd_width = ram_dspin_cmd_flit_size, 36 36 dspin_ram_rsp_width = ram_dspin_rsp_flit_size), 37 37 38 38 # IOX Network 39 Uses('caba:vci_iox_network', 39 Uses('caba:vci_iox_network', 40 40 cell_size = vci_cell_size_ext), 41 41 42 42 # ROM 43 Uses('caba:vci_simple_rom', 43 Uses('caba:vci_simple_rom', 44 44 cell_size = vci_cell_size_ext), 45 45 46 46 # Frame Buffer 47 Uses('caba:vci_framebuffer', 47 Uses('caba:vci_framebuffer', 48 48 cell_size = vci_cell_size_ext), 49 49 50 50 # Block Device 51 Uses('caba:vci_block_device_tsar', 51 Uses('caba:vci_block_device_tsar', 52 52 cell_size = vci_cell_size_ext), 53 53 54 # NIC 55 Uses('caba:vci_multi_nic', 54 # NIC 55 Uses('caba:vci_multi_nic', 56 56 cell_size = vci_cell_size_ext), 57 57 58 58 # Chained DMA 59 Uses('caba:vci_chbuf_dma', 59 Uses('caba:vci_chbuf_dma', 60 60 cell_size = vci_cell_size_ext), 61 61 62 62 # TTY 63 Uses('caba:vci_multi_tty', 63 Uses('caba:vci_multi_tty', 64 64 cell_size = vci_cell_size_ext), 65 65 66 66 # IOPIC 67 Uses('caba:vci_iopic', 67 Uses('caba:vci_iopic', 68 68 cell_size = vci_cell_size_ext), 69 69 70 Uses('common:elf_file_loader'), 70 # SIMHELPER 71 Uses('caba:vci_simhelper', 72 cell_size = vci_cell_size_ext), 73 74 Uses('common:elf_file_loader'), 71 75 Uses('common:plain_file_loader'), 72 76 ], 73 77 74 78 # default VCI parameters (global variables) 75 cell_size = vci_cell_size_int, 76 77 78 79 80 81 82 83 84 79 cell_size = vci_cell_size_int, 80 plen_size = vci_plen_size, 81 addr_size = vci_addr_size, 82 rerror_size = vci_rerror_size, 83 clen_size = vci_clen_size, 84 rflag_size = vci_rflag_size, 85 srcid_size = vci_srcid_size, 86 pktid_size = vci_pktid_size, 87 trdid_size = vci_trdid_size, 88 wrplen_size = vci_wrplen_size, 85 89 86 90 )
Note: See TracChangeset
for help on using the changeset viewer.