Changeset 836 for trunk/platforms
- Timestamp:
- Oct 15, 2014, 11:41:49 AM (10 years ago)
- Location:
- trunk/platforms
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/almos-tsar-mipsel/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd
r663 r836 34 34 memc_cell_size_int = parameter.Reference('vci_data_width_int'), 35 35 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'), 36 dspin_in_width = parameter.Reference('dspin_rsp_width'),37 dspin_out_width = parameter.Reference('dspin_cmd_width')),36 memc_dspin_in_width = parameter.Reference('dspin_rsp_width'), 37 memc_dspin_out_width = parameter.Reference('dspin_cmd_width')), 38 38 39 39 Uses('caba:vci_simple_rom', -
trunk/platforms/linux_monocluster/desc.py
r828 r836 23 23 memc_cell_size_int = cell_size, 24 24 memc_cell_size_ext = 8, 25 dspin_out_width = dspin_cmd_flit_size,26 dspin_in_width = dspin_rsp_flit_size,25 memc_dspin_out_width = dspin_cmd_flit_size, 26 memc_dspin_in_width = dspin_rsp_flit_size, 27 27 ), 28 28 Uses('caba:dspin_local_crossbar', -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd
r718 r836 39 39 40 40 Uses('caba:vci_mem_cache', 41 memc_cell_size_int = parameter.Reference('vci_data_width_int'),42 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),43 dspin_in_width= parameter.Reference('dspin_int_rsp_width'),44 dspin_out_width= parameter.Reference('dspin_int_cmd_width')),41 memc_cell_size_int = parameter.Reference('vci_data_width_int'), 42 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'), 43 memc_dspin_in_width = parameter.Reference('dspin_int_rsp_width'), 44 memc_dspin_out_width = parameter.Reference('dspin_int_cmd_width')), 45 45 46 46 Uses('caba:vci_xicu', -
trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/metadata/tsar_leti_cluster.sd
r692 r836 32 32 33 33 Uses('caba:vci_mem_cache', 34 memc_cell_size_int = parameter.Reference('vci_data_width_int'),35 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),36 dspin_in_width = parameter.Reference('dspin_rsp_width'),37 dspin_out_width = parameter.Reference('dspin_cmd_width')),34 memc_cell_size_int = parameter.Reference('vci_data_width_int'), 35 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'), 36 memc_dspin_in_width = parameter.Reference('dspin_rsp_width'), 37 memc_dspin_out_width = parameter.Reference('dspin_cmd_width')), 38 38 39 39 Uses('caba:vci_simple_ram', -
trunk/platforms/tsar_generic_xbar/scripts/counter_defs.py
r790 r836 9 9 m_prot_name['dhccp'] = "DHCCP" 10 10 m_prot_name['rwt'] = "RWT" 11 m_prot_name[' mesi'] = "HMESI"11 m_prot_name['hmesi'] = "HMESI" 12 12 13 13 m_app_name = {} -
trunk/platforms/tsar_generic_xbar/scripts/create_graphs.py
r790 r836 7 7 8 8 9 #apps = [ 'histogram', 'mandel', 'filter', 'radix', 'fft_ga' ]10 #apps = [ 'histogram', 'mandel', 'filter', ' radix', 'radix_ga', 'fft', 'fft_ga', 'filt_ga', 'kmeans', 'pca', 'lu' ]11 apps = [ 'fft', 'fft_ga' ]12 nb_procs = [ 1, 4, 8, 16, 32, 64 , 128, 256]13 single_protocols = ['dhccp', 'rwt' ]14 joint_protocols = ['dhccp', 'rwt' ]9 apps = [ 'filter', 'lu', 'fft_ga' ] 10 #apps = [ 'histogram', 'mandel', 'filter', 'fft', 'fft_ga', 'filt_ga', 'pca', 'lu' ] # radix radix_ga kmeans 11 #apps = [ 'filt_ga' ] 12 nb_procs = [ 1, 4, 8, 16, 32, 64 ] 13 single_protocols = ['dhccp', 'rwt' ] 14 joint_protocols = ['dhccp', 'rwt' ] 15 15 #joint_protocols = [] 16 16 … … 403 403 gp_stacked_name = os.path.join(scripts_path, gen_dir, prot + '_stacked.gp') 404 404 405 norm_factor_value = 256405 norm_factor_value = nb_procs[-1] 406 406 407 407 # Creating the gp file … … 616 616 gp_cost_filename = os.path.join(scripts_path, gen_dir, 'joint_relative_cost.gp') 617 617 618 direct_cost_metrics = [ 'read_cost', 'write_cost' ]619 coherence_cost_metrics = ['update_cost', 'm_inv_cost', 'broadcast_cost' ]620 618 direct_cost_metrics = [ 'read_cost', 'write_cost', 'getm_cost' ] 619 coherence_cost_metrics = ['update_cost', 'm_inv_cost', 'broadcast_cost', 'inval_ro_cost', 'cleanup_cost', 'cleanup_d_cost' ] 620 621 621 # Creating the gp file 622 622 template_file = open(stacked_tmpl, 'r') … … 702 702 703 703 704 705 704 ################################################################################# 705 ### Graph 9 : ### 706 ################################################################################# 707 708 709 data_metric_filename = os.path.join(scripts_path, gen_dir, 'single_metric.dat') 710 gp_metric_filename = os.path.join(scripts_path, gen_dir, 'single_metric.gp') 711 712 metric = 'total_write' 713 714 # Creating the gp file 715 template_file = open(stacked_tmpl, 'r') 716 template = template_file.read() 717 718 xtics_str = "(" 719 first = True 720 xpos = 0 # successive x position of the center of the first bar in a application 721 app_labels = "" 722 prot_labels = "" 723 for num_appli in range(0, len(apps)): 724 first_proc = True 725 for i in nb_procs: 726 x = 0 # local var for computing position of protocol names 727 #for prot in joint_protocols: 728 #prot_labels += "set label \"%s\" at first %f, character 2 center font \"Times,10\"\n" % (m_prot_name[prot], float((xpos - 0.5)) + x) # -0.5 instead of +0.5, don't know why... (bug gnuplot?) 729 #x += 1 730 731 if not first: 732 xtics_str += ", " 733 first = False 734 if first_proc: 735 first_proc = False 736 xpos_first = xpos 737 xtics_str += "\"%d\" %f -1" % (i, float(xpos - 0.5 + len(joint_protocols))) 738 xpos_last = xpos 739 xpos += 1 + len(joint_protocols) 740 app_name_xpos = float((xpos_first + xpos_last)) / 2 741 app_labels += "set label \"%s\" at first %f,character 1 center font \"Times,12\"\n" % (m_app_name[apps[num_appli]], app_name_xpos) 742 xpos += 1 743 xtics_str += ")" 744 745 n = 1 746 plot_str = "newhistogram \"\"" 747 for prot in joint_protocols: 748 plot_str += ", \\\n " + "'" + data_metric_filename + "'" + " using " + str(n) + " lc rgb " + colors[n] + " title \"" + m_metric_name[metric] + " for " + m_prot_name[prot] + "\"" 749 n += 1 750 751 ylabel_str = "%(m)s" % dict(m = m_metric_name[metric]) 752 content = template % dict(svg_name = os.path.join(graph_dir, 'single_metric'), xtics_str = xtics_str, plot_str = plot_str, ylabel_str = ylabel_str, app_labels = app_labels, prot_labels = prot_labels) 753 754 create_file(gp_metric_filename, content) 755 756 # Creating the data file 757 content = "#" + metric 758 content += "\n" 759 for app in apps: 760 if app != apps[0]: 761 for prot in joint_protocols: 762 for p in joint_protocols: 763 content += "%-15f " % 0.0 764 content += "\n" 765 for i in nb_procs: 766 for prot in joint_protocols: 767 for p in joint_protocols: 768 if p != prot: 769 content += "%-15f " % 0 770 else: 771 content += "%-15f " % (float(metrics_val[prot][app][i][metric])) 772 content += "\n" 773 if i != nb_procs[-1]: 774 for p in joint_protocols: 775 content += "%-15f " % 0.0 776 content += "\n" 777 778 create_file(data_metric_filename, content) 779 # Calling gnuplot 780 print "gnuplot", gp_metric_filename 781 subprocess.call([ 'gnuplot', gp_metric_filename ]) 782 783 784 785 -
trunk/platforms/tsar_generic_xbar/scripts/run_simus.py
r790 r836 12 12 # User parameters 13 13 nb_procs = [ 4 ] 14 #nb_procs = [ 1 6, 32, 64, 128, 256 ]14 #nb_procs = [ 1, 4, 8, 16, 32, 64, 128, 256 ] 15 15 rerun_stats = False 16 16 use_omp = False 17 protocol = ' dhccp'17 protocol = 'wtidl' 18 18 19 19 #apps = [ 'histogram', 'mandel', 'filter', 'radix_ga', 'fft_ga', 'kmeans' ] … … 32 32 # to come: 'barnes', 'fmm', 'ocean', 'raytrace', 'radiosity', 'waters', 'watern' 33 33 34 all_protocols = [ 'dhccp', 'rwt', 'hmesi' ]34 all_protocols = [ 'dhccp', 'rwt', 'hmesi', 'wtidl' ] 35 35 36 36 top_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..") … … 66 66 - apps_dir: path to almos-tsar-mipsel/apps directory 67 67 - almos_src_dir: path to almos source directory (for kernel and bootloader binaries) 68 - hdd_img_name: path to the hdd image to use 68 - hdd_img_name: path to the hdd image to use (will be copied but not modified) 69 - tsar_dir: path to tsar repository 70 Optional definitions (necessary if you want to use alternative protocols): 71 - rwt_dir: path to the RWT repository 72 - hmesi_dir: path to HMESI directory 73 - wtidl_dir: path to the ideal write-through protocol directory 69 74 *** Stopping execution 70 75 ''' … … 98 103 if not os.path.exists(hmesi_dir): 99 104 print "*** Error: variable hmesi_dir does not define a valid path" 105 sys.exit() 106 107 if protocol == "wtidl": 108 if wtidl_dir == "": 109 print "*** Error: variable wtidl_dir not defined in config file" 110 sys.exit() 111 if not os.path.exists(wtidl_dir): 112 print "*** Error: variable wtidl_dir does not define a valid path" 100 113 sys.exit() 101 114 … … 156 169 'modules/vci_io_bridge', 157 170 'modules/vci_iox_network', 158 'modules/vci_spi' 171 'modules/vci_spi', 159 172 'platforms/tsar_generic_xbar/tsar_xbar_cluster' 160 173 ] … … 164 177 'lib/generic_cache_tsar', 165 178 'modules/vci_cc_vcache_wrapper', 166 'modules/vci_mem_cache' 179 'modules/vci_mem_cache', 167 180 ] 168 181 … … 179 192 elif protocol == "hmesi": 180 193 arch_dir = hmesi_dir 194 elif protocol == "wtidl": 195 arch_dir = wtidl_dir 181 196 else: 182 197 assert(False) … … 213 228 #define IOMMU_ACTIVE 0 214 229 215 #define IRQ_PER_PROCESSOR 1 216 217 #endif //_HD_CONFIG_H 230 #define IRQ_PER_PROCESSOR 1 218 231 ''' % dict(x = x, y = y, nb_clus = x * y) 232 233 if protocol == 'wtidl': 234 header += '#define WT_IDL\n' 235 236 header += '#endif //_HD_CONFIG_H\n' 237 219 238 file = open(hard_config, 'w') 220 239 file.write(header) 221 240 file.close() 241 222 242 223 243 -
trunk/platforms/tsar_generic_xbar/soclib.conf
r779 r836 1 1 2 2 # DescPath modified by a script 3 4 5 6 config.default = config.mysystemcass 3 7 4 8 config.addDescPath("/users/cao/meunier/src/tsar/lib/generic_llsc_global_table") … … 9 13 config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_io_bridge") 10 14 config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_iox_network") 11 config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_spi platforms/tsar_generic_xbar/tsar_xbar_cluster")12 config.addDescPath("/users/cao/meunier/src/ rwt/communication")13 config.addDescPath("/users/cao/meunier/src/ rwt/lib/generic_cache_tsar")14 config.addDescPath("/users/cao/meunier/src/ rwt/modules/vci_cc_vcache_wrapper")15 config.addDescPath("/users/cao/meunier/src/ rwt/modules/vci_mem_cache")16 15 config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_spi") 16 config.addDescPath("/users/cao/meunier/src/tsar/platforms/tsar_generic_xbar/tsar_xbar_cluster") 17 config.addDescPath("/users/cao/meunier/src/wt_ideal/communication") 18 config.addDescPath("/users/cao/meunier/src/wt_ideal/lib/generic_cache_tsar") 19 config.addDescPath("/users/cao/meunier/src/wt_ideal/modules/vci_cc_vcache_wrapper") 20 config.addDescPath("/users/cao/meunier/src/wt_ideal/modules/vci_mem_cache") -
trunk/platforms/tsar_generic_xbar/top.cpp
r779 r836 397 397 #else 398 398 size_t x = debug_memc_id >> Y_WIDTH; 399 size_t y = debug_memc_id & ((1 <<Y_WIDTH)-1);399 size_t y = debug_memc_id & ((1 << Y_WIDTH) - 1); 400 400 401 401 assert( (x <= X_SIZE) and (y <= Y_SIZE) && … … 411 411 #else 412 412 size_t cluster_xy = debug_proc_id / NB_PROCS_MAX ; 413 size_t x 414 size_t y = cluster_xy & ((1<<Y_WIDTH)-1);413 size_t x = cluster_xy >> Y_WIDTH; 414 size_t y = cluster_xy & ((1 << Y_WIDTH) - 1); 415 415 416 416 assert( (x <= X_SIZE) and (y <= Y_SIZE) && … … 635 635 sc_uint<vci_address_width> offset; 636 636 offset = (sc_uint<vci_address_width>)cluster(x,y) 637 << (vci_address_width -x_width-y_width);637 << (vci_address_width - x_width - y_width); 638 638 639 639 std::ostringstream sh; … … 699 699 dspin_rsp_width, 700 700 vci_param_int, 701 vci_param_ext> *clusters[X_SIZE][Y_SIZE];701 vci_param_ext> * clusters[X_SIZE][Y_SIZE]; 702 702 703 703 #if USE_OPENMP … … 769 769 frozen_cycles, 770 770 debug_from, 771 debug_ok and (cluster(x,y) == debug_memc_id),772 debug_ok and (cluster(x,y) == debug_proc_id)771 debug_ok, 772 debug_ok 773 773 ); 774 774 … … 880 880 881 881 882 #ifdef WT_IDL 883 std::list<VciCcVCacheWrapper<vci_param_int, 884 dspin_cmd_width, 885 dspin_rsp_width, 886 GdbServer<Mips32ElIss> > * > l1_caches; 887 888 for (size_t x = 0; x < X_SIZE; x++) { 889 for (size_t y = 0; y < Y_SIZE; y++) { 890 for (int proc = 0; proc < NB_PROCS_MAX; proc++) { 891 l1_caches.push_back(clusters[x][y]->proc[proc]); 892 } 893 } 894 } 895 896 for (size_t x = 0; x < X_SIZE; x++) { 897 for (size_t y = 0; y < Y_SIZE; y++) { 898 clusters[x][y]->memc->set_vcache_list(l1_caches); 899 } 900 } 901 #endif 902 903 882 904 //#define SC_TRACE 883 905 #ifdef SC_TRACE … … 943 965 signal_dspin_false_cmd_out[x][y][a][k].read = true; 944 966 } 945 946 947 948 949 950 967 for (size_t k = 0; k < 2; k++){ 968 signal_dspin_false_rsp_in [x][y][a][k].write = false; 969 signal_dspin_false_rsp_in [x][y][a][k].read = true; 970 signal_dspin_false_rsp_out[x][y][a][k].write = false; 971 signal_dspin_false_rsp_out[x][y][a][k].read = true; 972 } 951 973 } 952 974 } … … 968 990 for (int64_t n = 1; n < ncycles && !stop_called; n++) 969 991 { 970 // Monitor a specific address for L1 & L2 caches971 //clusters[0][0]->proc[0]->cache_monitor(0x800002c000ULL);972 //clusters[1][0]->memc->copies_monitor(0x800002C000ULL);973 974 992 if ((n % max_cycles) == 0) 975 993 { … … 1012 1030 { 1013 1031 std::cout << "****************** cycle " << std::dec << n ; 1014 std::cout << " ************************************************" << std::endl; 1015 1016 // trace proc[debug_proc_id] 1017 size_t l = debug_proc_id % NB_PROCS_MAX ; 1018 size_t y = (debug_proc_id / NB_PROCS_MAX) % Y_SIZE ; 1019 size_t x = debug_proc_id / (Y_SIZE * NB_PROCS_MAX) ; 1020 1021 std::ostringstream proc_signame; 1022 proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << l ; 1023 std::ostringstream p2m_signame; 1024 p2m_signame << "[SIG]PROC_" << x << "_" << y << "_" << l << " P2M" ; 1025 std::ostringstream m2p_signame; 1026 m2p_signame << "[SIG]PROC_" << x << "_" << y << "_" << l << " M2P" ; 1027 1028 //clusters[x][y]->signal_vci_ini_proc[l].print_trace(proc_signame.str()); 1029 //clusters[x][y]->signal_dspin_p2m_proc[l].print_trace(p2m_signame.str()); 1030 //clusters[x][y]->signal_dspin_m2p_proc[l].print_trace(m2p_signame.str()); 1031 1032 //clusters[x][y]->signal_dspin_cmd_l2g_d.print_trace("[SIG]L2G CMD"); 1033 //clusters[x][y]->signal_dspin_cmd_g2l_d.print_trace("[SIG]G2L CMD"); 1034 //clusters[x][y]->signal_dspin_rsp_l2g_d.print_trace("[SIG]L2G RSP"); 1035 //clusters[x][y]->signal_dspin_rsp_g2l_d.print_trace("[SIG]G2L RSP"); 1036 1037 // trace memc[debug_memc_id] 1038 x = debug_memc_id / Y_SIZE; 1039 y = debug_memc_id % Y_SIZE; 1040 1041 std::ostringstream smemc; 1042 smemc << "[SIG]MEMC_" << x << "_" << y; 1043 std::ostringstream sxram; 1044 sxram << "[SIG]XRAM_" << x << "_" << y; 1045 std::ostringstream sm2p; 1046 sm2p << "[SIG]MEMC_" << x << "_" << y << " M2P" ; 1047 std::ostringstream sp2m; 1048 sp2m << "[SIG]MEMC_" << x << "_" << y << " P2M" ; 1049 1050 //clusters[x][y]->memc->print_trace(); 1051 //clusters[x][y]->signal_vci_tgt_memc.print_trace(smemc.str()); 1052 //clusters[x][y]->signal_vci_xram.print_trace(sxram.str()); 1053 //clusters[x][y]->signal_dspin_p2m_memc.print_trace(sp2m.str()); 1054 //clusters[x][y]->signal_dspin_m2p_memc.print_trace(sm2p.str()); 1055 1056 // trace replicated peripherals 1057 //clusters[1][1]->mdma->print_trace(); 1058 //clusters[1][1]->signal_vci_tgt_mdma.print_trace("[SIG]MDMA_TGT_1_1"); 1059 //clusters[1][1]->signal_vci_ini_mdma.print_trace("[SIG]MDMA_INI_1_1"); 1060 1061 1062 // trace external peripherals 1063 //size_t io_x = cluster_io_id / Y_SIZE; 1064 //size_t io_y = cluster_io_id % Y_SIZE; 1065 1066 //clusters[io_x][io_y]->brom->print_trace(); 1067 //clusters[io_x][io_y]->signal_vci_tgt_brom.print_trace("[SIG]BROM"); 1068 1069 //clusters[io_x][io_y]->bdev->print_trace(); 1070 //clusters[io_x][io_y]->signal_vci_tgt_bdev.print_trace("[SIG]BDEV_TGT"); 1071 //clusters[io_x][io_y]->signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI"); 1032 std::cout << "************************************************" << std::endl; 1033 1034 for (size_t x = 0; x < X_SIZE ; x++){ 1035 for (size_t y = 0; y < Y_SIZE ; y++){ 1036 for (int proc = 0; proc < NB_PROCS_MAX; proc++) { 1037 1038 clusters[x][y]->proc[proc]->print_trace(); 1039 1040 std::ostringstream proc_signame; 1041 proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc ; 1042 std::ostringstream p2m_signame; 1043 p2m_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc << " P2M"; 1044 std::ostringstream m2p_signame; 1045 m2p_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc << " M2P"; 1046 1047 clusters[x][y]->signal_vci_ini_proc[proc].print_trace(proc_signame.str()); 1048 clusters[x][y]->signal_dspin_p2m_proc[proc].print_trace(p2m_signame.str()); 1049 clusters[x][y]->signal_dspin_m2p_proc[proc].print_trace(m2p_signame.str()); 1050 } 1051 1052 clusters[x][y]->memc->print_trace(); 1053 1054 std::ostringstream smemc; 1055 smemc << "[SIG]MEMC_" << x << "_" << y; 1056 std::ostringstream sxram; 1057 sxram << "[SIG]XRAM_" << x << "_" << y; 1058 std::ostringstream sm2p; 1059 sm2p << "[SIG]MEMC_" << x << "_" << y << " M2P"; 1060 std::ostringstream sp2m; 1061 sp2m << "[SIG]MEMC_" << x << "_" << y << " P2M"; 1062 1063 clusters[x][y]->signal_vci_tgt_memc.print_trace(smemc.str()); 1064 clusters[x][y]->signal_vci_xram.print_trace(sxram.str()); 1065 clusters[x][y]->signal_dspin_p2m_memc.print_trace(sp2m.str()); 1066 clusters[x][y]->signal_dspin_m2p_memc.print_trace(sm2p.str()); 1067 } 1068 } 1072 1069 } 1073 1070 -
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd
r779 r836 32 32 memc_cell_size_int = parameter.Reference('vci_data_width_int'), 33 33 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'), 34 dspin_in_width = parameter.Reference('dspin_rsp_width'),35 dspin_out_width = parameter.Reference('dspin_cmd_width')),34 memc_dspin_in_width = parameter.Reference('dspin_rsp_width'), 35 memc_dspin_out_width = parameter.Reference('dspin_cmd_width')), 36 36 37 37 Uses('caba:vci_simple_rom', -
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp
r752 r836 142 142 IntTab(cluster_id), // SRCID external space 143 143 IntTab(cluster_id, tgtid_memc), // TGTID direct space 144 //(cluster_id << l_width) + nb_procs, // CC_GLOBAL_ID145 144 x_width, // Number of x bits in platform 146 145 y_width, // Number of y bits in platform … … 215 214 wt_xbar_d = new VciDspinTargetWrapper<vci_param_int, dspin_cmd_width, dspin_rsp_width>( 216 215 swtxbar.str().c_str(), 217 x_width + y_width + l_width 216 x_width + y_width + l_width); 218 217 219 218 std::ostringstream swixbar; -
trunk/platforms/tsar_mono_mmu/top.desc
r516 r836 22 22 memc_cell_size_int = cell_size, 23 23 memc_cell_size_ext = 8, 24 dspin_out_width = dspin_cmd_flit_size,25 dspin_in_width = dspin_rsp_flit_size,24 memc_dspin_out_width = dspin_cmd_flit_size, 25 memc_dspin_in_width = dspin_rsp_flit_size, 26 26 ), 27 27 Uses('caba:dspin_local_crossbar',
Note: See TracChangeset
for help on using the changeset viewer.