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 898)
+++ trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 908)
@@ -678,5 +678,5 @@
         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);
+        return abs(m_x_self - req_x) + abs(m_y_self - req_y) + 1;
     }
 
@@ -686,5 +686,5 @@
     /////////////////////////////////////////////////////
     {
-        return req_distance(req_srcid) == 0;
+        return req_distance(req_srcid) == 1;
     }
 
@@ -1726,10 +1726,5 @@
                     cmd_write_fifo_put = true;
                     // <Activity counters>
-                    if (p_vci_tgt.cmd.read() == vci_param_int::CMD_NOP)
-                    {
-                        // (2 (CMD) + 1 (RSP)) flits VCI => 4 + (1 (success) || 2 (failure)) flits dspin
-                        m_cpt_sc_cost += 5 * req_distance(p_vci_tgt.srcid.read());
-                    }
-                    else {
+                    if (p_vci_tgt.cmd.read() != vci_param_int::CMD_NOP) {
                         if (is_local_req(p_vci_tgt.srcid.read()))
                         {
@@ -1740,6 +1735,4 @@
                             m_cpt_write_flits_remote++;
                         }
-                        // (burst_size (CMD) + 1 (RSP) flits VCI => 2 + burst_size + 1 flits dspin
-                        m_cpt_write_cost += (3 + (plen >> 2)) * req_distance(p_vci_tgt.srcid.read());
                     }
                     // </Activity counters>
@@ -1750,4 +1743,7 @@
                         if (p_vci_tgt.cmd.read() == vci_param_int::CMD_NOP)
                         {
+                            // SC
+                            // (2 (CMD) + 1 (RSP)) flits VCI => 4 + (1 (success) || 2 (failure)) flits dspin
+                            m_cpt_sc_cost += 5 * req_distance(p_vci_tgt.srcid.read());
                             if (is_local_req(p_vci_tgt.srcid.read()))
                             {
@@ -1760,4 +1756,8 @@
                         }
                         else {
+                            // Writes
+                            // (burst_size + 1 (CMD) + 1 (RSP)) flits VCI => 2 + burst_size + 1 flits dspin
+                            m_cpt_write_cost += (3 + (plen >> 2)) * req_distance(p_vci_tgt.srcid.read());
+
                             if (is_local_req(p_vci_tgt.srcid.read()))
                             {
