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 128)
+++ trunk/modules/vci_synthetic_initator/caba/sources/src/vci_synthetic_initiator.cpp	(revision 129)
@@ -319,5 +319,9 @@
       fifo_put = true ;
       fifo_bc  = true;
-      if (r_date_fifo.wok())   r_nb_bc = r_nb_bc.read() + 1;
+      if (r_date_fifo.wok())   
+      {
+        r_nb_bc = r_nb_bc.read() + 1;
+        r_cpt_period = 0;
+      }
     }
     else if( ( (uint64_t)(m_rho*r_cpt_cycles.read()) > (uint64_t)(m_length*r_nb_single.read()*1000)) )
@@ -327,4 +331,9 @@
       if (r_date_fifo.wok())   r_nb_single = r_nb_single.read() + 1;
     }
+
+    if ( m_bc_period && (r_cpt_period.read() > m_bc_period) && r_data_fifo.wok() ) 
+      m_cpt_period = 0;
+    else
+      m_cpt_period = m_cpt_period.read() + 1;
 
     ////////////////////////
@@ -350,5 +359,4 @@
     ///////////////////////////
     r_cpt_cycles = r_cpt_cycles.read() + 1;
-    r_cpt_period = r_cpt_period.read() + 1;
 
     return;
