Index: trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h
===================================================================
--- trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h	(revision 596)
+++ trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h	(revision 597)
@@ -499,5 +499,6 @@
           const soclib::common::IntTab       &srcid_x,        // global index RAM network
           const soclib::common::IntTab       &tgtid_d,        // global index INT network
-          const size_t                       cc_global_id,    // global index CC network
+          const size_t                       x_self,          // self X coordinate
+          const size_t                       y_self,          // self Y coordinate
           const size_t                       x_width,         // X width in platform
           const size_t                       y_width,         // Y width in platform
@@ -542,7 +543,8 @@
       const size_t                       m_sets;             // Number of cache sets
       const size_t                       m_words;            // Number of words in a line
-      const size_t                       m_cc_global_id;     // global_index on cc network
-      const size_t                       m_xwidth;           // number of x bits in platform
-      const size_t                       m_ywidth;           // number of y bits in platform
+      const size_t                       m_x_self;           // X self coordinate
+      const size_t                       m_y_self;           // Y self coordinate
+      const size_t                       m_x_width;          // number of x bits in platform
+      const size_t                       m_y_width;          // number of y bits in platform
       size_t                             m_debug_start_cycle;
       bool                               m_debug_ok;
Index: trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp
===================================================================
--- trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 596)
+++ trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 597)
@@ -334,5 +334,6 @@
             const IntTab        &srcid_x,          // global index on external network
             const IntTab        &tgtid_d,          // global index on direct network
-            const size_t        cc_global_id,      // global index on cc network
+            const size_t        x_self,            // self x coordinate
+            const size_t        y_self,            // self y coordinate
             const size_t        x_width,           // number of x bits in platform
             const size_t        y_width,           // number of x bits in platform
@@ -366,7 +367,8 @@
         m_sets(nsets),
         m_words(nwords),
-        m_cc_global_id(cc_global_id),
-        m_xwidth(x_width),
-        m_ywidth(y_width),
+        m_x_self(x_self),
+        m_y_self(y_self),
+        m_x_width(x_width),
+        m_y_width(y_width),
         m_debug_start_cycle(debug_start_cycle),
         m_debug_ok(debug_ok),
@@ -644,10 +646,9 @@
     {
         const uint32_t srcid_width = vci_param_int::S;
-        uint8_t self_x_srcid = m_cc_global_id >> (srcid_width - m_xwidth);
-        uint8_t self_y_srcid = (m_cc_global_id >> (srcid_width - m_ywidth)) & ((1 << m_xwidth) - 1);
-
-        uint8_t x_srcid = req_srcid >> (srcid_width - m_xwidth);
-        uint8_t y_srcid = (req_srcid >> (srcid_width - m_ywidth - m_xwidth)) & ((1 << m_xwidth) - 1);
-        return abs(self_x_srcid - x_srcid) + abs(self_y_srcid - y_srcid);
+
+        uint8_t req_x = (req_srcid >> (srcid_width - m_x_width));
+        uint8_t req_y = (req_srcid >> (srcid_width - m_x_width - m_y_width)) & ((1 << m_y_width) - 1);
+
+        return abs(m_x_self - req_x) + abs(m_y_self - req_y);
     }
 
@@ -8460,8 +8461,4 @@
 
                     DspinDhccpParam::dspin_set( flit,
-                            m_cc_global_id,
-                            DspinDhccpParam::MULTI_INVAL_SRCID);
-
-                    DspinDhccpParam::dspin_set( flit,
                             r_config_to_cc_send_trdid.read(),
                             DspinDhccpParam::MULTI_INVAL_UPDT_INDEX);
@@ -8510,8 +8507,4 @@
 
                     DspinDhccpParam::dspin_set( flit,
-                            m_cc_global_id,
-                            DspinDhccpParam::MULTI_INVAL_SRCID);
-
-                    DspinDhccpParam::dspin_set( flit,
                             r_xram_rsp_to_cc_send_trdid.read(),
                             DspinDhccpParam::MULTI_INVAL_UPDT_INDEX);
@@ -8550,8 +8543,4 @@
                             m_broadcast_boundaries,
                             DspinDhccpParam::BROADCAST_BOX);
-
-                    DspinDhccpParam::dspin_set( flit,
-                            m_cc_global_id,
-                            DspinDhccpParam::BROADCAST_SRCID);
 
                     DspinDhccpParam::dspin_set( flit,
@@ -8637,9 +8626,4 @@
                     DspinDhccpParam::dspin_set(
                             flit,
-                            m_cc_global_id,
-                            DspinDhccpParam::MULTI_UPDT_SRCID);
-
-                    DspinDhccpParam::dspin_set(
-                            flit,
                             r_write_to_cc_send_trdid.read(),
                             DspinDhccpParam::MULTI_UPDT_UPDT_INDEX);
@@ -8727,9 +8711,4 @@
                             dest,
                             DspinDhccpParam::MULTI_UPDT_DEST);
-
-                    DspinDhccpParam::dspin_set(
-                            flit,
-                            m_cc_global_id,
-                            DspinDhccpParam::MULTI_UPDT_SRCID);
 
                     DspinDhccpParam::dspin_set(
