Index: trunk/modules/vci_synthetic_initator/caba/sources/include/vci_synthetic_initiator.h
===================================================================
--- trunk/modules/vci_synthetic_initator/caba/sources/include/vci_synthetic_initiator.h	(revision 123)
+++ trunk/modules/vci_synthetic_initator/caba/sources/include/vci_synthetic_initiator.h	(revision 124)
@@ -41,5 +41,4 @@
 #include "mapping_table.h"
 #include "arithmetics.h"
-//#include <cmath>
 
 namespace soclib {  namespace caba {
Index: trunk/modules/vci_synthetic_initator/caba/sources/src/vci_synthetic_initiator.cpp
===================================================================
--- trunk/modules/vci_synthetic_initator/caba/sources/src/vci_synthetic_initiator.cpp	(revision 123)
+++ trunk/modules/vci_synthetic_initator/caba/sources/src/vci_synthetic_initiator.cpp	(revision 124)
@@ -107,4 +107,8 @@
     /////////////////////////////////
   {
+  	for(int i = 0; i < tab_size ; i++){
+	  delete r_req_id[i];
+	}
+	delete r_req_id;
   }
 
@@ -142,7 +146,7 @@
 		  << " Adresse to send : " << std::hex << m_address_to_send 
 		  << " Number of broadcast to receive : " << std::dec << r_bc_nrsp.read() 
-		  << " Number of packets sent : " << std::dec << m_npackets << m_id_to_send << std::endl;
+		  << " Number of packets sent : " << std::dec << m_npackets << " " << m_id_to_send << std::endl;
 	for(int i = 0; i < (1<<vci_param::T) ; i++){
-	  std::cout << "ID : " << i << " " << r_req_id[i][0].read() << " " << r_req_id[i][0].read() << std::endl;
+	  std::cout << "ID : " << i << " " << (r_req_id[i][0].read()) << " " << (r_req_id[i][0].read()) << std::endl;
 	}
   }
@@ -198,5 +202,5 @@
    	r_req_id[i][0] = 0;
    	r_req_id[i][1] = 0;
-	//std::cout << name() << " bla bla " << i << std::endl;
+      //  std::cout << "bla bla" << std::endl;
       }
 
@@ -219,10 +223,11 @@
 	      r_cmd_fsm = VCI_BC_SEND ;
 	    } else {
+	      m_id_to_send = -1;
 	      for(int i = 0; i < tab_size; i++){
-	        if(r_req_id[i][0] == 0){
+	        if(r_req_id[i][0].read() == 0){
 		  m_id_to_send = i;
+		  r_req_id[i][0] = m_date_fifo.read();
+		  r_req_id[i][1] = m_cpt_cycles;
 		  break;
-		}else{
-		  m_id_to_send = -1;
 		}
 	      }
@@ -248,6 +253,8 @@
 	  if (p_vci.cmdack.read()){
 	    if (m_count == m_length-1) {
-	      r_req_id[(int)m_id_to_send][0] = m_date_fifo.read();
-	      r_req_id[m_id_to_send][1] = m_cpt_cycles;
+	      //r_req_id[m_id_to_send][0] = (uint64_t)(m_date_fifo.read());
+	      //r_req_id[m_id_to_send][0] = m_date_fifo.read();
+	      //r_req_id[m_id_to_send][1] = m_cpt_cycles;
+	      //std::cout << name () << " FIFO " << m_date_fifo.read() << std::endl;
 	      date_fifo_get = true;
 	      r_cmd_fsm = VCI_IDLE ;
@@ -265,11 +272,10 @@
 	    r_bc_nrsp = (m_xmax - m_xmin) * (m_ymax - m_ymin) ;
 	    m_start_latency_bc = m_cpt_cycles;
+	    r_broadcast_rsp = true;
 	    date_fifo_get = true;
-	    r_broadcast_rsp = true;
 	    r_bc_rsp_fsm = VCI_IDLE;
             break;
 	  }
         }
-
     } // end switch vci_fsm
 
@@ -305,9 +311,10 @@
     if(p_vci.rspval.read()){
       if((int)(p_vci.pktid.read()) == 0){
-	m_latency1 = m_latency1 + (m_cpt_cycles - r_req_id[(int)(p_vci.trdid.read())][0]);
-	m_latency2 = m_latency2 + (m_cpt_cycles - r_req_id[(int)(p_vci.trdid.read())][1]);
+	m_latency1 = m_latency1 + (m_cpt_cycles - r_req_id[(int)(p_vci.rtrdid.read())][0].read());
+	m_latency2 = m_latency2 + (m_cpt_cycles - r_req_id[(int)(p_vci.rtrdid.read())][1].read());
 	m_npackets++;
-        r_req_id[(int)(p_vci.trdid.read())][0] = 0;
-        r_req_id[(int)(p_vci.trdid.read())][1] = 0;
+        r_req_id[(int)(p_vci.rtrdid.read())][0] = 0;
+        r_req_id[(int)(p_vci.rtrdid.read())][1] = 0;
+	//std::cout << name() << " bla bla " << p_vci.rtrdid.read() << std::endl;
       }
     }
