Index: trunk/platforms/almos-tsar-mipsel/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd
===================================================================
--- trunk/platforms/almos-tsar-mipsel/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd	(revision 829)
+++ trunk/platforms/almos-tsar-mipsel/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd	(revision 836)
@@ -34,6 +34,6 @@
               memc_cell_size_int = parameter.Reference('vci_data_width_int'),
               memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),
-              dspin_in_width  = parameter.Reference('dspin_rsp_width'),
-              dspin_out_width = parameter.Reference('dspin_cmd_width')),
+              memc_dspin_in_width  = parameter.Reference('dspin_rsp_width'),
+              memc_dspin_out_width = parameter.Reference('dspin_cmd_width')),
 
       Uses('caba:vci_simple_rom',
Index: trunk/platforms/linux_monocluster/desc.py
===================================================================
--- trunk/platforms/linux_monocluster/desc.py	(revision 829)
+++ trunk/platforms/linux_monocluster/desc.py	(revision 836)
@@ -23,6 +23,6 @@
                 memc_cell_size_int = cell_size,
                 memc_cell_size_ext = 8,
-                dspin_out_width = dspin_cmd_flit_size,
-                dspin_in_width = dspin_rsp_flit_size,
+                memc_dspin_out_width = dspin_cmd_flit_size,
+                memc_dspin_in_width = dspin_rsp_flit_size,
                 ),
             Uses('caba:dspin_local_crossbar',
Index: trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd
===================================================================
--- trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd	(revision 829)
+++ trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd	(revision 836)
@@ -39,8 +39,8 @@
 
         Uses('caba:vci_mem_cache',
-              memc_cell_size_int = parameter.Reference('vci_data_width_int'),
-              memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),
-              dspin_in_width     = parameter.Reference('dspin_int_rsp_width'),
-              dspin_out_width    = parameter.Reference('dspin_int_cmd_width')),
+              memc_cell_size_int   = parameter.Reference('vci_data_width_int'),
+              memc_cell_size_ext   = parameter.Reference('vci_data_width_ext'),
+              memc_dspin_in_width  = parameter.Reference('dspin_int_rsp_width'),
+              memc_dspin_out_width = parameter.Reference('dspin_int_cmd_width')),
 
         Uses('caba:vci_xicu',
Index: trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/metadata/tsar_leti_cluster.sd
===================================================================
--- trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/metadata/tsar_leti_cluster.sd	(revision 829)
+++ trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/metadata/tsar_leti_cluster.sd	(revision 836)
@@ -32,8 +32,8 @@
 
       Uses('caba:vci_mem_cache',
-              memc_cell_size_int = parameter.Reference('vci_data_width_int'),
-              memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),
-              dspin_in_width  = parameter.Reference('dspin_rsp_width'),
-              dspin_out_width = parameter.Reference('dspin_cmd_width')),
+              memc_cell_size_int   = parameter.Reference('vci_data_width_int'),
+              memc_cell_size_ext   = parameter.Reference('vci_data_width_ext'),
+              memc_dspin_in_width  = parameter.Reference('dspin_rsp_width'),
+              memc_dspin_out_width = parameter.Reference('dspin_cmd_width')),
 
       Uses('caba:vci_simple_ram',
Index: trunk/platforms/tsar_generic_xbar/scripts/counter_defs.py
===================================================================
--- trunk/platforms/tsar_generic_xbar/scripts/counter_defs.py	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/scripts/counter_defs.py	(revision 836)
@@ -9,5 +9,5 @@
 m_prot_name['dhccp'] = "DHCCP"
 m_prot_name['rwt'] = "RWT"
-m_prot_name['mesi'] = "HMESI"
+m_prot_name['hmesi'] = "HMESI"
 
 m_app_name = {}
Index: trunk/platforms/tsar_generic_xbar/scripts/create_graphs.py
===================================================================
--- trunk/platforms/tsar_generic_xbar/scripts/create_graphs.py	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/scripts/create_graphs.py	(revision 836)
@@ -7,10 +7,10 @@
 
 
-#apps = [ 'histogram', 'mandel', 'filter', 'radix', 'fft_ga' ]
-#apps = [ 'histogram', 'mandel', 'filter', 'radix', 'radix_ga', 'fft', 'fft_ga', 'filt_ga', 'kmeans', 'pca', 'lu' ]
-apps = [ 'fft', 'fft_ga' ]
-nb_procs = [ 1, 4, 8, 16, 32, 64, 128, 256 ]
-single_protocols = ['dhccp', 'rwt']
-joint_protocols = ['dhccp', 'rwt']
+apps = [ 'filter', 'lu', 'fft_ga' ]
+#apps = [ 'histogram', 'mandel', 'filter', 'fft', 'fft_ga', 'filt_ga', 'pca', 'lu' ]  # radix radix_ga kmeans
+#apps = [ 'filt_ga' ]
+nb_procs = [ 1, 4, 8, 16, 32, 64 ]
+single_protocols = ['dhccp', 'rwt' ]
+joint_protocols = ['dhccp', 'rwt' ]
 #joint_protocols = []
 
@@ -403,5 +403,5 @@
    gp_stacked_name   = os.path.join(scripts_path, gen_dir, prot + '_stacked.gp')
    
-   norm_factor_value = 256
+   norm_factor_value = nb_procs[-1]
    
    # Creating the gp file
@@ -616,7 +616,7 @@
 gp_cost_filename   = os.path.join(scripts_path, gen_dir, 'joint_relative_cost.gp')
    
-direct_cost_metrics = [ 'read_cost', 'write_cost' ]
-coherence_cost_metrics = ['update_cost', 'm_inv_cost', 'broadcast_cost' ]
-   
+direct_cost_metrics = [ 'read_cost', 'write_cost', 'getm_cost' ]
+coherence_cost_metrics = ['update_cost', 'm_inv_cost', 'broadcast_cost', 'inval_ro_cost', 'cleanup_cost', 'cleanup_d_cost' ]
+ 
 # Creating the gp file
 template_file = open(stacked_tmpl, 'r')
@@ -702,4 +702,84 @@
 
 
-
-
+#################################################################################
+### Graph 9 :         ###
+#################################################################################
+
+
+data_metric_filename = os.path.join(scripts_path, gen_dir, 'single_metric.dat')
+gp_metric_filename   = os.path.join(scripts_path, gen_dir, 'single_metric.gp')
+   
+metric = 'total_write'
+ 
+# Creating the gp file
+template_file = open(stacked_tmpl, 'r')
+template = template_file.read()
+   
+xtics_str = "("
+first = True
+xpos = 0 # successive x position of the center of the first bar in a application
+app_labels = ""
+prot_labels = ""
+for num_appli in range(0, len(apps)):
+   first_proc = True
+   for i in nb_procs:
+      x = 0 # local var for computing position of protocol names
+      #for prot in joint_protocols:
+         #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?)
+         #x += 1
+
+      if not first:
+         xtics_str += ", "
+      first = False
+      if first_proc:
+         first_proc = False
+         xpos_first = xpos
+      xtics_str += "\"%d\" %f -1" % (i, float(xpos - 0.5 + len(joint_protocols)))
+      xpos_last = xpos
+      xpos += 1 + len(joint_protocols)
+   app_name_xpos = float((xpos_first + xpos_last)) / 2
+   app_labels += "set label \"%s\" at first %f,character 1 center font \"Times,12\"\n" % (m_app_name[apps[num_appli]], app_name_xpos)
+   xpos += 1
+xtics_str += ")"
+
+n = 1
+plot_str = "newhistogram \"\""
+for prot in joint_protocols:
+   plot_str += ", \\\n    " + "'" + data_metric_filename + "'" + " using " + str(n) + " lc rgb " + colors[n] + " title \"" + m_metric_name[metric] + " for " + m_prot_name[prot] + "\""
+   n += 1
+
+ylabel_str = "%(m)s" % dict(m = m_metric_name[metric])
+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)
+
+create_file(gp_metric_filename, content)
+
+# Creating the data file
+content = "#" + metric
+content += "\n"
+for app in apps:
+   if app != apps[0]:
+      for prot in joint_protocols:
+         for p in joint_protocols:
+            content += "%-15f " % 0.0
+         content += "\n"
+   for i in nb_procs:
+      for prot in joint_protocols:
+         for p in joint_protocols:
+            if p != prot:
+               content += "%-15f " % 0
+            else:
+               content += "%-15f " % (float(metrics_val[prot][app][i][metric]))
+         content += "\n"
+      if i != nb_procs[-1]:
+         for p in joint_protocols:
+            content += "%-15f " % 0.0
+         content += "\n"
+
+create_file(data_metric_filename, content)
+# Calling gnuplot
+print "gnuplot", gp_metric_filename
+subprocess.call([ 'gnuplot', gp_metric_filename ])
+
+
+
+
Index: trunk/platforms/tsar_generic_xbar/scripts/run_simus.py
===================================================================
--- trunk/platforms/tsar_generic_xbar/scripts/run_simus.py	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/scripts/run_simus.py	(revision 836)
@@ -12,8 +12,8 @@
 # User parameters
 nb_procs = [ 4 ]
-#nb_procs = [ 16, 32, 64, 128, 256 ]
+#nb_procs = [ 1, 4, 8, 16, 32, 64, 128, 256 ]
 rerun_stats = False
 use_omp = False
-protocol = 'dhccp'
+protocol = 'wtidl'
 
 #apps = [ 'histogram', 'mandel', 'filter', 'radix_ga', 'fft_ga', 'kmeans' ]
@@ -32,5 +32,5 @@
 # to come: 'barnes', 'fmm', 'ocean', 'raytrace', 'radiosity', 'waters', 'watern'
 
-all_protocols = [ 'dhccp', 'rwt', 'hmesi' ]
+all_protocols = [ 'dhccp', 'rwt', 'hmesi', 'wtidl' ]
 
 top_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")
@@ -66,5 +66,10 @@
  - apps_dir:      path to almos-tsar-mipsel/apps directory
  - almos_src_dir: path to almos source directory (for kernel and bootloader binaries)
- - hdd_img_name:  path to the hdd image to use
+ - hdd_img_name:  path to the hdd image to use (will be copied but not modified)
+ - tsar_dir:      path to tsar repository
+Optional definitions (necessary if you want to use alternative protocols):
+ - rwt_dir:       path to the RWT repository
+ - hmesi_dir:     path to HMESI directory
+ - wtidl_dir:     path to the ideal write-through protocol directory
 *** Stopping execution
 '''
@@ -98,4 +103,12 @@
     if not os.path.exists(hmesi_dir):
         print "*** Error: variable hmesi_dir does not define a valid path"
+        sys.exit()
+
+if protocol == "wtidl":
+    if wtidl_dir == "":
+        print "*** Error: variable wtidl_dir not defined in config file"
+        sys.exit()
+    if not os.path.exists(wtidl_dir):
+        print "*** Error: variable wtidl_dir does not define a valid path"
         sys.exit()
 
@@ -156,5 +169,5 @@
             'modules/vci_io_bridge',
             'modules/vci_iox_network',
-            'modules/vci_spi'
+            'modules/vci_spi',
             'platforms/tsar_generic_xbar/tsar_xbar_cluster'
     ]
@@ -164,5 +177,5 @@
             'lib/generic_cache_tsar',
             'modules/vci_cc_vcache_wrapper',
-            'modules/vci_mem_cache'
+            'modules/vci_mem_cache',
     ]
 
@@ -179,4 +192,6 @@
     elif protocol == "hmesi":
         arch_dir = hmesi_dir
+    elif protocol == "wtidl":
+        arch_dir = wtidl_dir
     else:
         assert(False)
@@ -213,11 +228,16 @@
 #define IOMMU_ACTIVE        0
 
-#define   IRQ_PER_PROCESSOR   1
-
-#endif //_HD_CONFIG_H
+#define IRQ_PER_PROCESSOR   1
 ''' % dict(x = x, y = y, nb_clus = x * y)
+
+   if protocol == 'wtidl':
+       header += '#define WT_IDL\n'
+
+   header += '#endif //_HD_CONFIG_H\n'
+
    file = open(hard_config, 'w')
    file.write(header)
    file.close()
+
 
 
Index: trunk/platforms/tsar_generic_xbar/soclib.conf
===================================================================
--- trunk/platforms/tsar_generic_xbar/soclib.conf	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/soclib.conf	(revision 836)
@@ -1,4 +1,8 @@
 
 # DescPath modified by a script
+
+
+
+config.default = config.mysystemcass
 
 config.addDescPath("/users/cao/meunier/src/tsar/lib/generic_llsc_global_table")
@@ -9,8 +13,8 @@
 config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_io_bridge")
 config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_iox_network")
-config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_spiplatforms/tsar_generic_xbar/tsar_xbar_cluster")
-config.addDescPath("/users/cao/meunier/src/rwt/communication")
-config.addDescPath("/users/cao/meunier/src/rwt/lib/generic_cache_tsar")
-config.addDescPath("/users/cao/meunier/src/rwt/modules/vci_cc_vcache_wrapper")
-config.addDescPath("/users/cao/meunier/src/rwt/modules/vci_mem_cache")
-
+config.addDescPath("/users/cao/meunier/src/tsar/modules/vci_spi")
+config.addDescPath("/users/cao/meunier/src/tsar/platforms/tsar_generic_xbar/tsar_xbar_cluster")
+config.addDescPath("/users/cao/meunier/src/wt_ideal/communication")
+config.addDescPath("/users/cao/meunier/src/wt_ideal/lib/generic_cache_tsar")
+config.addDescPath("/users/cao/meunier/src/wt_ideal/modules/vci_cc_vcache_wrapper")
+config.addDescPath("/users/cao/meunier/src/wt_ideal/modules/vci_mem_cache")
Index: trunk/platforms/tsar_generic_xbar/top.cpp
===================================================================
--- trunk/platforms/tsar_generic_xbar/top.cpp	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/top.cpp	(revision 836)
@@ -397,5 +397,5 @@
 #else
             size_t x = debug_memc_id >> Y_WIDTH;
-            size_t y = debug_memc_id & ((1<<Y_WIDTH)-1);
+            size_t y = debug_memc_id & ((1 << Y_WIDTH) - 1);
 
             assert( (x <= X_SIZE) and (y <= Y_SIZE) &&
@@ -411,6 +411,6 @@
 #else
             size_t cluster_xy = debug_proc_id / NB_PROCS_MAX ;
-            size_t x          = cluster_xy >> Y_WIDTH;
-            size_t y          = cluster_xy & ((1<<Y_WIDTH)-1);
+            size_t x = cluster_xy >> Y_WIDTH;
+            size_t y = cluster_xy & ((1 << Y_WIDTH) - 1);
 
             assert( (x <= X_SIZE) and (y <= Y_SIZE) &&
@@ -635,5 +635,5 @@
          sc_uint<vci_address_width> offset;
          offset = (sc_uint<vci_address_width>)cluster(x,y) 
-                   << (vci_address_width-x_width-y_width);
+                   << (vci_address_width - x_width - y_width);
 
          std::ostringstream sh;
@@ -699,5 +699,5 @@
                    dspin_rsp_width,
                    vci_param_int,
-                   vci_param_ext>*          clusters[X_SIZE][Y_SIZE];
+                   vci_param_ext> * clusters[X_SIZE][Y_SIZE];
 
 #if USE_OPENMP
@@ -769,6 +769,6 @@
                 frozen_cycles,
                 debug_from,
-                debug_ok and (cluster(x,y) == debug_memc_id),
-                debug_ok and (cluster(x,y) == debug_proc_id)
+                debug_ok,
+                debug_ok
             );
 
@@ -880,4 +880,26 @@
 
 
+#ifdef WT_IDL
+    std::list<VciCcVCacheWrapper<vci_param_int,
+        dspin_cmd_width,
+        dspin_rsp_width,
+        GdbServer<Mips32ElIss> > * > l1_caches;
+
+   for (size_t x = 0; x < X_SIZE; x++) {
+      for (size_t y = 0; y < Y_SIZE; y++) {
+         for (int proc = 0; proc < NB_PROCS_MAX; proc++) {
+            l1_caches.push_back(clusters[x][y]->proc[proc]);
+         }
+      }
+   }
+
+   for (size_t x = 0; x < X_SIZE; x++) {
+      for (size_t y = 0; y < Y_SIZE; y++) {
+         clusters[x][y]->memc->set_vcache_list(l1_caches);
+      }
+   }
+#endif
+
+
 //#define SC_TRACE
 #ifdef SC_TRACE
@@ -943,10 +965,10 @@
                signal_dspin_false_cmd_out[x][y][a][k].read  = true;
             }
-             for (size_t k = 0; k < 2; k++){
-                signal_dspin_false_rsp_in [x][y][a][k].write = false;
-                signal_dspin_false_rsp_in [x][y][a][k].read  = true;
-                signal_dspin_false_rsp_out[x][y][a][k].write = false;
-                signal_dspin_false_rsp_out[x][y][a][k].read  = true;
-             }
+            for (size_t k = 0; k < 2; k++){
+               signal_dspin_false_rsp_in [x][y][a][k].write = false;
+               signal_dspin_false_rsp_in [x][y][a][k].read  = true;
+               signal_dspin_false_rsp_out[x][y][a][k].write = false;
+               signal_dspin_false_rsp_out[x][y][a][k].read  = true;
+            }
          }
       }
@@ -968,8 +990,4 @@
       for (int64_t n = 1; n < ncycles && !stop_called; n++)
       {
-         // Monitor a specific address for L1 & L2 caches
-         //clusters[0][0]->proc[0]->cache_monitor(0x800002c000ULL);
-         //clusters[1][0]->memc->copies_monitor(0x800002C000ULL);
-
          if ((n % max_cycles) == 0)
          {
@@ -1012,62 +1030,41 @@
          {
             std::cout << "****************** cycle " << std::dec << n ;
-            std::cout << " ************************************************" << std::endl;
-
-            // trace proc[debug_proc_id]
-            size_t l = debug_proc_id % NB_PROCS_MAX ;
-            size_t y = (debug_proc_id / NB_PROCS_MAX) % Y_SIZE ;
-            size_t x = debug_proc_id / (Y_SIZE * NB_PROCS_MAX) ;
-
-            std::ostringstream proc_signame;
-            proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << l ;
-            std::ostringstream p2m_signame;
-            p2m_signame << "[SIG]PROC_" << x << "_" << y << "_" << l << " P2M" ;
-            std::ostringstream m2p_signame;
-            m2p_signame << "[SIG]PROC_" << x << "_" << y << "_" << l << " M2P" ;
-
-            //clusters[x][y]->signal_vci_ini_proc[l].print_trace(proc_signame.str());
-            //clusters[x][y]->signal_dspin_p2m_proc[l].print_trace(p2m_signame.str());
-            //clusters[x][y]->signal_dspin_m2p_proc[l].print_trace(m2p_signame.str());
-
-            //clusters[x][y]->signal_dspin_cmd_l2g_d.print_trace("[SIG]L2G CMD");
-            //clusters[x][y]->signal_dspin_cmd_g2l_d.print_trace("[SIG]G2L CMD");
-            //clusters[x][y]->signal_dspin_rsp_l2g_d.print_trace("[SIG]L2G RSP");
-            //clusters[x][y]->signal_dspin_rsp_g2l_d.print_trace("[SIG]G2L RSP");
-
-            // trace memc[debug_memc_id]
-            x = debug_memc_id / Y_SIZE;
-            y = debug_memc_id % Y_SIZE;
-
-            std::ostringstream smemc;
-            smemc << "[SIG]MEMC_" << x << "_" << y;
-            std::ostringstream sxram;
-            sxram << "[SIG]XRAM_" << x << "_" << y;
-            std::ostringstream sm2p;
-            sm2p << "[SIG]MEMC_" << x << "_" << y << " M2P" ;
-            std::ostringstream sp2m;
-            sp2m << "[SIG]MEMC_" << x << "_" << y << " P2M" ;
-
-            //clusters[x][y]->memc->print_trace();
-            //clusters[x][y]->signal_vci_tgt_memc.print_trace(smemc.str());
-            //clusters[x][y]->signal_vci_xram.print_trace(sxram.str());
-            //clusters[x][y]->signal_dspin_p2m_memc.print_trace(sp2m.str());
-            //clusters[x][y]->signal_dspin_m2p_memc.print_trace(sm2p.str());
-
-            // trace replicated peripherals
-            //clusters[1][1]->mdma->print_trace();
-            //clusters[1][1]->signal_vci_tgt_mdma.print_trace("[SIG]MDMA_TGT_1_1");
-            //clusters[1][1]->signal_vci_ini_mdma.print_trace("[SIG]MDMA_INI_1_1");
-
-
-            // trace external peripherals
-            //size_t io_x   = cluster_io_id / Y_SIZE;
-            //size_t io_y   = cluster_io_id % Y_SIZE;
-
-            //clusters[io_x][io_y]->brom->print_trace();
-            //clusters[io_x][io_y]->signal_vci_tgt_brom.print_trace("[SIG]BROM");
-
-            //clusters[io_x][io_y]->bdev->print_trace();
-            //clusters[io_x][io_y]->signal_vci_tgt_bdev.print_trace("[SIG]BDEV_TGT");
-            //clusters[io_x][io_y]->signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI");
+            std::cout << "************************************************" << std::endl;
+
+            for (size_t x = 0; x < X_SIZE ; x++){
+               for (size_t y = 0; y < Y_SIZE ; y++){
+                  for (int proc = 0; proc < NB_PROCS_MAX; proc++) {
+
+                     clusters[x][y]->proc[proc]->print_trace();
+                     
+                     std::ostringstream proc_signame;
+                     proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc ;
+                     std::ostringstream p2m_signame;
+                     p2m_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc << " P2M";
+                     std::ostringstream m2p_signame;
+                     m2p_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc << " M2P";
+
+                     clusters[x][y]->signal_vci_ini_proc[proc].print_trace(proc_signame.str());
+                     clusters[x][y]->signal_dspin_p2m_proc[proc].print_trace(p2m_signame.str());
+                     clusters[x][y]->signal_dspin_m2p_proc[proc].print_trace(m2p_signame.str());
+                  }
+
+                  clusters[x][y]->memc->print_trace();
+
+                  std::ostringstream smemc;
+                  smemc << "[SIG]MEMC_" << x << "_" << y;
+                  std::ostringstream sxram;
+                  sxram << "[SIG]XRAM_" << x << "_" << y;
+                  std::ostringstream sm2p;
+                  sm2p << "[SIG]MEMC_" << x << "_" << y << " M2P";
+                  std::ostringstream sp2m;
+                  sp2m << "[SIG]MEMC_" << x << "_" << y << " P2M";
+
+                  clusters[x][y]->signal_vci_tgt_memc.print_trace(smemc.str());
+                  clusters[x][y]->signal_vci_xram.print_trace(sxram.str());
+                  clusters[x][y]->signal_dspin_p2m_memc.print_trace(sp2m.str());
+                  clusters[x][y]->signal_dspin_m2p_memc.print_trace(sm2p.str());
+               }
+            }
          }
 
Index: trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd
===================================================================
--- trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd	(revision 836)
@@ -32,6 +32,6 @@
                 memc_cell_size_int = parameter.Reference('vci_data_width_int'),
                 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),
-                dspin_in_width  = parameter.Reference('dspin_rsp_width'),
-                dspin_out_width = parameter.Reference('dspin_cmd_width')),
+                memc_dspin_in_width  = parameter.Reference('dspin_rsp_width'),
+                memc_dspin_out_width = parameter.Reference('dspin_cmd_width')),
 
         Uses('caba:vci_simple_rom',
Index: trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp
===================================================================
--- trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp	(revision 829)
+++ trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp	(revision 836)
@@ -142,5 +142,4 @@
                      IntTab(cluster_id),                 // SRCID external space
                      IntTab(cluster_id, tgtid_memc),     // TGTID direct space
-                     //(cluster_id << l_width) + nb_procs, // CC_GLOBAL_ID
                      x_width,                            // Number of x bits in platform
                      y_width,                            // Number of y bits in platform
@@ -215,5 +214,5 @@
     wt_xbar_d = new VciDspinTargetWrapper<vci_param_int, dspin_cmd_width, dspin_rsp_width>(
                 swtxbar.str().c_str(),
-                x_width + y_width + l_width );
+                x_width + y_width + l_width);
 
     std::ostringstream swixbar;
Index: trunk/platforms/tsar_mono_mmu/top.desc
===================================================================
--- trunk/platforms/tsar_mono_mmu/top.desc	(revision 829)
+++ trunk/platforms/tsar_mono_mmu/top.desc	(revision 836)
@@ -22,6 +22,6 @@
 	    memc_cell_size_int = cell_size,
 	    memc_cell_size_ext = 8,
-	    dspin_out_width = dspin_cmd_flit_size,
-	    dspin_in_width = dspin_rsp_flit_size,
+	    memc_dspin_out_width = dspin_cmd_flit_size,
+	    memc_dspin_in_width = dspin_rsp_flit_size,
 	),
 	Uses('caba:dspin_local_crossbar',
