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 512)
+++ trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd	(revision 547)
@@ -4,7 +4,7 @@
 Module('caba:tsar_xbar_cluster', 
     classname = 'soclib::caba::TsarXbarCluster',
-	tmpl_parameters = [
-		parameter.Int('dspin_cmd_width'),
-		parameter.Int('dspin_rsp_width'),
+   tmpl_parameters = [
+      parameter.Int('dspin_cmd_width'),
+      parameter.Int('dspin_rsp_width'),
         parameter.Module('vci_param_int', default = 'caba:vci_param',
                           cell_size = parameter.Reference('vci_data_width_int')),
@@ -13,16 +13,16 @@
         ],
 
-	header_files = [ '../source/include/tsar_xbar_cluster.h', 
+   header_files = [ '../source/include/tsar_xbar_cluster.h', 
         ],
 
-	implementation_files = [ '../source/src/tsar_xbar_cluster.cpp', 
+   implementation_files = [ '../source/src/tsar_xbar_cluster.cpp', 
         ],
 
-	uses = [
-		Uses('caba:base_module'),
-		Uses('common:mapping_table'),
-		Uses('common:iss2'),
+   uses = [
+      Uses('caba:base_module'),
+      Uses('common:mapping_table'),
+      Uses('common:iss2'),
               
-		Uses('caba:vci_cc_vcache_wrapper', 
+      Uses('caba:vci_cc_vcache_wrapper', 
               cell_size       = parameter.Reference('vci_data_width_int'),
               dspin_in_width  = parameter.Reference('dspin_cmd_width'),
@@ -31,5 +31,5 @@
               gdb_iss_t       = 'common:mips32el'),
 
-		Uses('caba:vci_mem_cache',
+      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'),
@@ -37,64 +37,70 @@
               dspin_out_width = parameter.Reference('dspin_cmd_width')),
 
-		Uses('caba:vci_simple_rom',
+      Uses('caba:vci_simple_rom',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-		Uses('caba:vci_simple_ram',
+      Uses('caba:vci_simple_ram',
               cell_size       = parameter.Reference('vci_data_width_ext')),
 
-        Uses('caba:vci_xicu',
+      Uses('caba:vci_simple_ram',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-        Uses('caba:dspin_local_crossbar', 
+      Uses('caba:vci_xicu',
+              cell_size       = parameter.Reference('vci_data_width_int')),
+
+      Uses('caba:dspin_local_crossbar', 
               flit_width      = parameter.Reference('dspin_cmd_width')),
 
-        Uses('caba:dspin_local_crossbar', 
+      Uses('caba:dspin_local_crossbar', 
               flit_width      = parameter.Reference('dspin_rsp_width')),
 
-        Uses('caba:virtual_dspin_router', 
+      Uses('caba:virtual_dspin_router', 
               flit_width      = parameter.Reference('dspin_cmd_width')),
 
-        Uses('caba:virtual_dspin_router', 
+      Uses('caba:virtual_dspin_router', 
               flit_width      = parameter.Reference('dspin_rsp_width')),
 
-        Uses('caba:vci_multi_tty',
+      Uses('caba:vci_multi_tty',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-        Uses('caba:vci_framebuffer',
+      Uses('caba:vci_framebuffer',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-        Uses('caba:vci_multi_nic',
+      Uses('caba:vci_multi_nic',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-        Uses('caba:vci_chbuf_dma',
+      Uses('caba:vci_chbuf_dma',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-		Uses('caba:vci_block_device_tsar',
+      Uses('caba:vci_block_device_tsar',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-		Uses('caba:vci_multi_dma',
+      Uses('caba:vci_multi_dma',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-        Uses('caba:vci_dspin_target_wrapper',
+      Uses('caba:vci_dspin_target_wrapper',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-        Uses('caba:vci_dspin_initiator_wrapper',
+      Uses('caba:vci_dspin_initiator_wrapper',
               cell_size       = parameter.Reference('vci_data_width_int')),
 
-		Uses('common:elf_file_loader'),
-		],
+      Uses('caba:vci_simhelper',
+              cell_size       = parameter.Reference('vci_data_width_int')),
 
-	ports = [
-		Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
-		Port('caba:clock_in', 'p_clk', auto = 'clock'),
-		Port('caba:dspin_output', 'p_cmd_out', [4, 3], 
+      Uses('common:elf_file_loader'),
+      ],
+
+   ports = [
+      Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
+      Port('caba:clock_in', 'p_clk', auto = 'clock'),
+      Port('caba:dspin_output', 'p_cmd_out', [4, 3], 
               dspin_data_size = parameter.Reference('dspin_cmd_width')),
-		Port('caba:dspin_input', 'p_cmd_in', [4, 3], 
+      Port('caba:dspin_input', 'p_cmd_in', [4, 3], 
               dspin_data_size = parameter.Reference('dspin_cmd_width')),
-		Port('caba:dspin_output', 'p_rsp_out', [4, 2], 
+      Port('caba:dspin_output', 'p_rsp_out', [4, 2], 
               dspin_data_size = parameter.Reference('dspin_rsp_width')), 
-		Port('caba:dspin_input', 'p_rsp_in', [4, 2], 
+      Port('caba:dspin_input', 'p_rsp_in', [4, 2], 
               dspin_data_size = parameter.Reference('dspin_rsp_width')),
-		],
+      ],
 )
 
Index: trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h
===================================================================
--- trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h	(revision 512)
+++ trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h	(revision 547)
@@ -35,4 +35,5 @@
 #include "vci_mem_cache.h"
 #include "vci_cc_vcache_wrapper.h"
+#include "vci_simhelper.h"
 
 namespace soclib { namespace caba {
@@ -96,4 +97,5 @@
     VciSignals<vci_param_int>       signal_vci_tgt_mnic;
     VciSignals<vci_param_int>       signal_vci_tgt_chbuf;
+    VciSignals<vci_param_int>       signal_vci_tgt_simh;
 
     // Direct DSPIN signals to local crossbars
@@ -125,4 +127,6 @@
     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_chbuf_t;
     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_chbuf_t;
+    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_simh_t;
+    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_simh_t;
 
     // Coherence DSPIN signals to local crossbar
@@ -187,4 +191,11 @@
                           dspin_rsp_width>*       wt_mtty;
 
+    VciSimhelper<vci_param_int>*                  simhelper;
+
+    VciDspinTargetWrapper<vci_param_int,
+                          dspin_cmd_width,
+                          dspin_rsp_width>*       wt_simhelper;
+
+
     VciFrameBuffer<vci_param_int>*                fbuf;
 
@@ -193,5 +204,6 @@
                           dspin_rsp_width>*       wt_fbuf;
 
-    VciMultiNic<vci_param_int>*                   mnic;
+    // for almos
+    VciSimpleRom<vci_param_int>*                   mnic;
 
     VciDspinTargetWrapper<vci_param_int,
@@ -249,4 +261,5 @@
                      size_t                             tgtid_chbuf,
                      size_t                             tgtid_bdev,
+                     size_t                             tgtid_simh,
                      size_t                             memc_ways,
                      size_t                             memc_sets,
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 512)
+++ trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp	(revision 547)
@@ -59,4 +59,5 @@
          size_t                             tgtid_chbuf,
          size_t                             tgtid_bdev,
+         size_t                             tgtid_simh,
          size_t                             memc_ways,
          size_t                             memc_sets,
@@ -222,5 +223,5 @@
     {
         nb_direct_initiators         = nb_procs + 3;
-        nb_direct_targets            = 9;
+        nb_direct_targets            = 10;
     }
 
@@ -357,14 +358,20 @@
 
         /////////////////////////////////////////////
-        int mac = 0xBEEF0000;
-        mnic = new VciMultiNic<vci_param_int>(
-                     "mnic",
-                     IntTab(cluster_id, tgtid_mnic),
-                     mtd,
-                     nic_channels,
-                     nic_rx_name,
-                     nic_tx_name,
-                     mac,             // mac_4 address
-                     0xBABE );           // mac_2 address
+        // Commented for almos; we don't want the nic; replaced by a rom
+        //int mac = 0xBEEF0000;
+        //mnic = new VciMultiNic<vci_param_int>(
+        //             "mnic",
+        //             IntTab(cluster_id, tgtid_mnic),
+        //             mtd,
+        //             nic_channels,
+        //             nic_rx_name,
+        //             nic_tx_name,
+        //             mac,             // mac_4 address
+        //             0xBABE );           // mac_2 address
+        mnic = new VciSimpleRom<vci_param_int>(
+                    "mnic",
+                    IntTab(cluster_id, tgtid_mnic),
+                    mtd,
+                    loader);
 
         wt_mnic = new VciDspinTargetWrapper<vci_param_int,
@@ -414,4 +421,15 @@
                      "wt_mtty",
                      x_width + y_width + l_width);
+
+        simhelper = new VciSimhelper<vci_param_int>(
+                     "sim_helper",
+                     IntTab(cluster_id, tgtid_simh),
+                     mtd);
+
+        wt_simhelper = new VciDspinTargetWrapper<vci_param_int,
+                                                 dspin_cmd_width,
+                                                 dspin_rsp_width>(
+                     "wt_simhelper",
+                     x_width + y_width + l_width);
     }
 
@@ -479,4 +497,5 @@
         xbar_cmd_d->p_local_out[tgtid_mnic]      (signal_dspin_cmd_mnic_t);
         xbar_cmd_d->p_local_out[tgtid_chbuf]     (signal_dspin_cmd_chbuf_t);
+        xbar_cmd_d->p_local_out[tgtid_simh]      (signal_dspin_cmd_simh_t);
 
         xbar_cmd_d->p_local_in[nb_procs + 1]     (signal_dspin_cmd_bdev_i);
@@ -509,4 +528,5 @@
         xbar_rsp_d->p_local_in[tgtid_mnic]       (signal_dspin_rsp_mnic_t);
         xbar_rsp_d->p_local_in[tgtid_chbuf]      (signal_dspin_rsp_chbuf_t);
+        xbar_rsp_d->p_local_in[tgtid_simh]       (signal_dspin_rsp_simh_t);
 
         xbar_rsp_d->p_local_out[nb_procs + 1]    (signal_dspin_rsp_bdev_i);
@@ -706,6 +726,6 @@
         for (size_t i = 0; i < nic_channels; i++)
         {
-            mnic->p_rx_irq[i]          (signal_irq_mnic_rx[i]);
-            mnic->p_tx_irq[i]          (signal_irq_mnic_tx[i]);
+            //mnic->p_rx_irq[i]          (signal_irq_mnic_rx[i]);
+            //mnic->p_tx_irq[i]          (signal_irq_mnic_tx[i]);
         }
 
@@ -774,4 +794,17 @@
         wt_mtty->p_dspin_rsp           (signal_dspin_rsp_mtty_t);
         wt_mtty->p_vci                 (signal_vci_tgt_mtty);
+
+
+        // Sim Helper
+        simhelper->p_clk               (this->p_clk);
+        simhelper->p_resetn            (this->p_resetn);
+        simhelper->p_vci               (signal_vci_tgt_simh);
+        
+        // wrapper tgt Sim Helper
+        wt_simhelper->p_clk            (this->p_clk);
+        wt_simhelper->p_resetn         (this->p_resetn);
+        wt_simhelper->p_dspin_cmd      (signal_dspin_cmd_simh_t);
+        wt_simhelper->p_dspin_rsp      (signal_dspin_rsp_simh_t);
+        wt_simhelper->p_vci            (signal_vci_tgt_simh);
 
         std::cout << "  - MTTY connected" << std::endl;
@@ -831,4 +864,6 @@
         delete mtty;
         delete wt_mtty;
+        delete simhelper;
+        delete wt_simhelper;
     }
 }
