Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component.cpp	(revision 76)
@@ -2,5 +2,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -30,46 +30,52 @@
     ,_param            (param)
     ,_usage            (usage)
-// #ifdef STATISTICS
-// 			      ,_param_statistics (param_statistics)
-// #endif
   {
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
 
     log_printf(INFO,@COMPONENT,FUNCTION,"Allocation");
-    allocation ();
+
+    allocation (
+#ifdef STATISTICS
+		param_statistics
+#endif
+		);
 
 #ifdef STATISTICS
-    log_printf(INFO,@COMPONENT,FUNCTION,"Allocation of statistics");
+    if (_usage & USE_STATISTICS)
+      {	
+	log_printf(INFO,@COMPONENT,FUNCTION,"Allocation of statistics");
 
-    // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+	statistics_declaration(param_statistics);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    log_printf(INFO,@COMPONENT,FUNCTION,"Generate the vhdl");
-
-    vhdl();
+    if (_usage & USE_VHDL)
+      {
+	// generate the vhdl
+	log_printf(INFO,@COMPONENT,FUNCTION,"Generate the vhdl");
+	
+	vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    log_printf(INFO,@COMPONENT,FUNCTION,"Method - transition");
+    if (_usage & USE_SYSTEMC)
+      {
+	log_printf(INFO,@COMPONENT,FUNCTION,"Method - transition");
 
-    SC_METHOD (transition);
-    dont_initialize ();
-    sensitive_pos << *(in_CLOCK);
-//#endif
-
-#ifdef SYSTEMCASS_SPECIFIC
-    // List dependency information
-#endif    
-
+	SC_METHOD (transition);
+	dont_initialize ();
+	sensitive << (*(in_CLOCK)).pos();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+	
 #endif
+      }
     log_printf(FUNC,@COMPONENT,FUNCTION,"End");
   };
-  
+    
 #undef  FUNCTION
 #define FUNCTION "@COMPONENT::~@COMPONENT"
@@ -79,8 +85,10 @@
 
 #ifdef STATISTICS
-    log_printf(INFO,@COMPONENT,FUNCTION,"Generate Statistics file");
-
-    _stat->generate_file(statistics(0));
-    delete _stat;
+    if (_usage & USE_STATISTICS)
+      {
+	log_printf(INFO,@COMPONENT,FUNCTION,"Generate Statistics file");
+	
+	delete _stat;
+      }
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_allocation.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_allocation.cpp	(revision 76)
@@ -2,9 +2,10 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
 #include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -15,11 +16,15 @@
 #undef  FUNCTION
 #define FUNCTION "@COMPONENT::allocation"
-  void @COMPONENT::allocation (void)
+  void @COMPONENT::allocation (
+#ifdef STATISTICS
+			       morpheo::behavioural::Parameters_Statistics * param_statistics
+#else
+			       void
+#endif
+			       )
   {
-    string rename;
-
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
@@ -32,5 +37,5 @@
     _interfaces = entity->set_interfaces();
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
       Interface * interface = _interfaces->set_interface(""
@@ -45,5 +50,5 @@
      in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
 #ifdef POSITION
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_deallocation.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_deallocation.cpp	(revision 76)
@@ -2,5 +2,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -18,10 +18,10 @@
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
 
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    delete    in_CLOCK ;
-//#endif
-    delete    in_NRESET;
-
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    if (_usage & USE_SYSTEMC)
+      {
+	delete    in_CLOCK ;
+	delete    in_NRESET;
+      }
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
     delete _component;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_end_cycle.cpp	(revision 76)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_end_cycle.cpp	(revision 76)
@@ -0,0 +1,37 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
+
+namespace morpheo {
+namespace behavioural {
+@NAMESPACE_BEGIN
+
+#undef  FUNCTION
+#define FUNCTION "@COMPONENT::end_cycle"
+void @COMPONENT::end_cycle ()
+  {
+    log_printf(FUNC,@COMPONENT,FUNCTION,"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,@COMPONENT,FUNCTION,"End");
+  };
+
+@NAMESPACE_END
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_statistics.cpp	(revision 57)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
-
-namespace morpheo {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::statistics"
-  string @COMPONENT::statistics (uint32_t depth)
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-
-    string txt = _stat->print(depth);
-    
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-
-    return txt;
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics_declaration.cpp	(revision 76)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics_declaration.cpp	(revision 76)
@@ -0,0 +1,31 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
+
+namespace morpheo {
+namespace behavioural {
+@NAMESPACE_BEGIN
+
+#undef  FUNCTION
+#define FUNCTION "@COMPONENT::statistics_declaration"
+  void @COMPONENT::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
+
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "@COMPONENT",
+		      param_statistics);
+    
+    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
+  };
+
+@NAMESPACE_END
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_transition.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_transition.cpp	(revision 76)
@@ -1,8 +1,7 @@
 #ifdef SYSTEMC
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 /*
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -20,10 +19,6 @@
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
 
-#ifdef STATISTICS
-    _stat->add();
-#endif    
-
-#ifdef VHDL_TESTBENCH
-    vhdl_testbench_transition ();
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    end_cycle ();
 #endif
 
@@ -35,3 +30,2 @@
 }; // end namespace morpheo              
 #endif
-//#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl.cpp	(revision 76)
@@ -3,5 +3,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_body.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl_body.cpp	(revision 76)
@@ -3,5 +3,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_declaration.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl_declaration.cpp	(revision 76)
@@ -3,5 +3,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_testbench_transition.cpp	(revision 57)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
-
-namespace morpheo                    {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::vhdl_testbench_transition"
-  void @COMPONENT::vhdl_testbench_transition ()
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-
-    // Evaluation before read the ouput signal
-//     sc_start(0);
-
-    _interfaces->testbench();
-
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters_msg_error.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_msg_error.cpp	(revision 76)
@@ -2,5 +2,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -9,5 +9,4 @@
 #include "Behavioural/@DIRECTORY/include/Parameters.h"
 #include <sstream>
-using namespace std;
 
 namespace morpheo                    {
@@ -17,9 +16,9 @@
 #undef  FUNCTION
 #define FUNCTION "@COMPONENT::msg_error"
-  string Parameters::msg_error(void)
+  std::string Parameters::msg_error(void)
   {
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
 
-    string msg = "";
+    std::string msg = "";
 
     return msg;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters_print.cpp	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_print.cpp	(revision 76)
@@ -2,5 +2,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -8,5 +8,4 @@
 #include "Behavioural/@DIRECTORY/include/Parameters.h"
 #include "Behavioural/include/XML.h"
-using namespace std;
 
 namespace morpheo                    {
@@ -16,5 +15,5 @@
 #undef  FUNCTION
 #define FUNCTION "@COMPONENT::print"
-  string Parameters::print (uint32_t depth)
+  std::string Parameters::print (uint32_t depth)
   {
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
@@ -33,6 +32,6 @@
 #undef  FUNCTION
 #define FUNCTION "@COMPONENT::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::@NAMESPACE_USE::Parameters & x)
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::@NAMESPACE_USE::Parameters & x)
   {
     log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Statistics.cpp	(revision 57)
+++ 	(revision )
@@ -1,40 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/Statistics.h"
-
-namespace morpheo                    {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::Statistics"
-  Statistics::Statistics (string                                        name                       ,
-			  morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
-			  Parameters                                  * parameters
-			  ) :
-    morpheo::behavioural::Statistics(name                  ,
-				     parameters_statistics ),
-    _parameters(parameters)
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-  };
-  
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::~Statistics"
-  Statistics::~Statistics () 
-  { 
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Statistics_add.cpp	(revision 57)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::add"
-  void Statistics::add ()
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Statistics_print.cpp	(revision 57)
+++ 	(revision )
@@ -1,53 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::print"
-  string Statistics::print (uint32_t depth)
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "<@COMPONENT_LOWER name=\"" << _name << "\" >" << endl
-        << print_body(depth+1) << endl
-	<< tab << "</@COMPONENT_LOWER>" << endl;
-    
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::operator<<"
-  ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::@NAMESPACE_USE::Statistics & x)
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-
-    output_stream << x.print(0);
-
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-
-    return output_stream;
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Statistics_print_body.cpp	(revision 57)
+++ 	(revision )
@@ -1,37 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/Statistics.h"
-
-#include <sstream>
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-#undef  FUNCTION
-#define FUNCTION "@COMPONENT::print_body"
-  string Statistics::print_body (uint32_t depth)
-  {
-    log_printf(FUNC,@COMPONENT,FUNCTION,"Begin");
-
-    string        tab = string(depth,'\t');
-    ostringstream msg;
-
-    msg << tab << "";
-    
-    log_printf(FUNC,@COMPONENT,FUNCTION,"End");
-
-    return msg.str();
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
