Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/include/test.h	(revision 44)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/include/test.h	(revision 50)
@@ -13,4 +13,5 @@
 #include <string>
 #include <iostream>
+#include <sys/time.h>
 
 #include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
@@ -23,3 +24,35 @@
 
 void test    (string name,
-	      morpheo::behavioural::@NAMESPACE_USE::Parameters param);
+	      morpheo::behavioural::@NAMESPACE_USE::Parameters * param);
+
+class Time 
+{
+private : timeval time_begin;
+// private : timeval time_end;
+  
+public  : Time ()
+  {
+    gettimeofday(&time_begin     ,NULL);
+  };
+
+public  : ~Time ()
+  {
+    cout << *this;
+  };
+
+public  : friend ostream& operator<< (ostream& output_stream,
+				      const Time & x)
+  {
+    timeval time_end;
+    
+    gettimeofday(&time_end       ,NULL);
+    
+    uint32_t nb_cycles = static_cast<uint32_t>(sc_simulation_time());
+
+    double average = static_cast<double>(nb_cycles) / static_cast<double>(time_end.tv_sec-x.time_begin.tv_sec);
+    
+    output_stream << nb_cycles << "\t(" << average << " cycles / seconds )" << endl;
+
+    return output_stream;
+  }
+};
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp	(revision 44)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp	(revision 50)
@@ -40,9 +40,10 @@
   try 
     {
-      morpheo::behavioural::@NAMESPACE_USE::Parameters param (//size_data,
-							      //nb_port  
-							     );
+      morpheo::behavioural::@NAMESPACE_USE::Parameters * param = new morpheo::behavioural::@NAMESPACE_USE::Parameters
+	(//size_data,
+	 //nb_port  
+        );
       
-      cout << param.print(1);
+      cout << param->print(1);
       
       test (name,param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp	(revision 44)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp	(revision 50)
@@ -7,13 +7,27 @@
  */
 
-#define NB_ITERATION 1
-
-#define LABEL(str) do {cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; _@COMPONENT->vhdl_testbench_label(str);} while (0)
-
 #include "Behavioural/@DIRECTORY/SelfTest/include/test.h"
 #include "Common/include/Test.h"
 
+#define NB_ITERATION  1
+#define CYCLE_MAX     (128*NB_ITERATION)
+
+#define LABEL(str)                                                                       \
+{                                                                                        \
+  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; \
+} while(0)
+
+#define SC_START(cycle)                                        \
+do                                                             \
+{                                                              \
+  if (static_cast<uint32_t>(sc_simulation_time()) > CYCLE_MAX) \
+    {                                                          \
+      TEST_KO("Maximal cycles Reached");                       \
+    }                                                          \
+  sc_start(cycle);                                             \
+} while(0)
+
 void test (string name,
-	   morpheo::behavioural::@NAMESPACE_USE::Parameters _param)
+	   morpheo::behavioural::@NAMESPACE_USE::Parameters * _param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
@@ -23,5 +37,5 @@
 					     morpheo::behavioural::Parameters_Statistics(5,50),
 #endif
-					     _param);
+					     *_param);
   
 #ifdef SYSTEMC
@@ -48,4 +62,5 @@
 
   cout << "<" << name << "> Start Simulation ............" << endl;
+  Time * _time = new Time();
 
   /********************************************************
@@ -60,5 +75,5 @@
   srand(seed);
 
-  sc_start(0);
+  SC_START(0);
   LABEL("Initialisation");
 
@@ -69,5 +84,5 @@
       LABEL("Iteration "+toString(iteration));
 
-      sc_start(1);
+      SC_START(1);
     }
 
@@ -76,4 +91,6 @@
    ********************************************************/
 
+  TEST_OK ("End of Simulation");
+  delete _time;
   cout << "<" << name << "> ............ Stop Simulation" << endl;
 
