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 597)
+++ trunk/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h	(revision 599)
@@ -499,6 +499,4 @@
           const soclib::common::IntTab       &srcid_x,        // global index RAM network
           const soclib::common::IntTab       &tgtid_d,        // global index INT 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
@@ -543,6 +541,6 @@
       const size_t                       m_sets;             // Number of cache sets
       const size_t                       m_words;            // Number of words in a line
-      const size_t                       m_x_self;           // X self coordinate
-      const size_t                       m_y_self;           // Y self coordinate
+      size_t                             m_x_self;           // X self coordinate
+      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
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 597)
+++ trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 599)
@@ -334,6 +334,4 @@
             const IntTab        &srcid_x,          // global index on external network
             const IntTab        &tgtid_d,          // global index on direct 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
@@ -367,6 +365,4 @@
         m_sets(nsets),
         m_words(nwords),
-        m_x_self(x_self),
-        m_y_self(y_self),
         m_x_width(x_width),
         m_y_width(y_width),
@@ -529,4 +525,7 @@
             }
 
+            assert( (m_nseg > 0) and
+                    "MEMC ERROR : At least one segment must be mapped to this component");
+
             m_seg = new soclib::common::Segment*[m_nseg];
 
@@ -537,4 +536,8 @@
                 i++;
             }
+
+            addr_t gid = m_seg[0]->baseAddress() >> (vci_param_int::N - x_width - y_width);
+            m_x_self = (gid >> m_y_width) & ((1 << m_x_width) - 1);
+            m_y_self =  gid               & ((1 << m_y_width) - 1);
 
             // Allocation for IXR_RSP FSM
