Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp	(revision 67)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp	(revision 71)
@@ -20,12 +20,9 @@
 #endif
 #ifdef STATISTICS
-			      morpheo::behavioural::Parameters_Statistics             param_statistics,
+			      morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
 			      morpheo::behavioural::generic::counter::Parameters param ):
 			      _name              (name)
 			      ,_param            (param)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,Counter,"Counter","Begin");
@@ -37,7 +34,5 @@
 #ifdef STATISTICS
     // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    statistics_declaration(param_statistics);
 #endif
 
@@ -82,6 +77,4 @@
 
 #ifdef STATISTICS
-    _stat->generate_file(statistics(0));
-    
     delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_end_cycle.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_end_cycle.cpp	(revision 71)
@@ -0,0 +1,38 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Counter/include/Counter.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace counter {
+
+
+  void Counter::end_cycle ()
+  {
+    log_printf(FUNC,Counter,"end_cycle","Begin");
+
+#ifdef STATISTICS
+    _stat->end_cycle();
+#endif    
+
+#ifdef VHDL_TESTBENCH
+    // Evaluation before read the ouput signal
+//  sc_start(0);
+    _interfaces->testbench();
+#endif
+
+    log_printf(FUNC,Counter,"end_cycle","End");
+  };
+
+}; // end namespace counter
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics.cpp	(revision 67)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Counter.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-  string Counter::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,Counter,"statistics","Begin");
-
-    string txt = _stat->print(depth);
-
-    log_printf(FUNC,Counter,"statistics","End");
-
-    return txt;
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp	(revision 71)
@@ -0,0 +1,34 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Counter/include/Counter.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace counter {
+
+#undef  FUNCTION
+#define FUNCTION "Counter::statistics_declaration"
+  void Counter::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,Counter,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<string>(_name),
+		      "Counter",
+		      param_statistics);
+    
+    log_printf(FUNC,Counter,FUNCTION,"End");
+  };
+
+}; // end namespace counter
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_print.cpp	(revision 71)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_print.cpp	(revision 71)
@@ -0,0 +1,34 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Counter/include/Counter.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace counter {
+
+#undef  FUNCTION
+#define FUNCTION "Counter::statistics_print"
+  string Counter::statistics_print (uint32_t depth)
+  {
+    log_printf(FUNC,Counter,FUNCTION,"Begin");
+
+    string txt = _stat->print(depth);
+    
+    log_printf(FUNC,Counter,FUNCTION,"End");
+
+    return txt;
+  };
+
+}; // end namespace counter
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_transition.cpp	(revision 67)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_transition.cpp	(revision 71)
@@ -20,11 +20,5 @@
     log_printf(FUNC,Counter,"transition","Begin");
 
-#ifdef STATISTICS
-    _stat->add();
-#endif    
-
-#ifdef VHDL_TESTBENCH
-    vhdl_testbench_transition ();
-#endif
+    end_cycle();
 
     log_printf(FUNC,Counter,"transition","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_testbench_transition.cpp	(revision 67)
+++ 	(revision )
@@ -1,33 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Counter.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-
-  void Counter::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,Counter,"vhdl_testbench_transition","Begin");
-
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,Counter,"vhdl_testbench_transition","End");
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics.cpp	(revision 67)
+++ 	(revision )
@@ -1,40 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-
-  Statistics::Statistics (string                                      name                       ,
-			  morpheo::behavioural::Parameters_Statistics parameters_statistics      ,
-			  Parameters                                  parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,Counter,"Statistics","Begin");
-    log_printf(FUNC,Counter,"Statistics","End");
-  };
-  
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,Counter,"~Statistics","Begin");
-    log_printf(FUNC,Counter,"~Statistics","End");
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics_add.cpp	(revision 67)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-
-  void Statistics::add ()
-  {
-    log_printf(FUNC,Counter,"add","Begin");
-    log_printf(FUNC,Counter,"add","End");
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics_print.cpp	(revision 67)
+++ 	(revision )
@@ -1,49 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,Counter,"print","Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<counter name=\"" << _name << "\" >" << endl
-        << print_body(depth+1)
-	<< tab << "</counter>" << endl;
-    
-    log_printf(FUNC,Counter,"print","End");
-
-    return msg.str();
-  };
-
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::counter::Statistics & x)
-  {
-    output_stream << x.print(0);
-
-    return output_stream;
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Statistics_print_body.cpp	(revision 67)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Counter/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-namespace generic {
-namespace counter {
-
-
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,Counter,"print_body","Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,Counter,"print_body","End");
-
-    return msg.str();
-  };
-
-}; // end namespace counter
-}; // end namespace generic
-
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
