Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Comparator
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/include/test.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/include/test.h	(revision 113)
@@ -11,5 +11,5 @@
 #endif
 
-#define NB_ITERATION  1
+#define NB_ITERATION  1024
 #define CYCLE_MAX     (1024*NB_ITERATION)
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/main.cpp	(revision 113)
@@ -19,5 +19,4 @@
   err (_(" * type      (Tcomparator_scheme_t)\n"));
 
-
   exit (1);
 }
@@ -34,4 +33,5 @@
   uint32_t x = 1;
 
+  string name = argv[x++];
   uint32_t             _size_data;
   bool                 _is_signed;
@@ -41,6 +41,4 @@
   SELFTEST0(_is_signed,bool                ,argv,x);
   SELFTEST0(_type     ,Tcomparator_scheme_t,argv,x);
-
-  string name = argv[x++];
 
   int _return = EXIT_SUCCESS;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/test.cpp	(revision 113)
@@ -9,4 +9,5 @@
 #include "Behavioural/Generic/Comparator/SelfTest/include/test.h"
 #include "Behavioural/include/Allocation.h"
+#include "Common/include/BitManipulation.h"
 
 void test (string name,
@@ -50,4 +51,12 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tdata_t   > *  in_COMPARE_DATA_0;
+  sc_signal<Tdata_t   > *  in_COMPARE_DATA_1;
+  sc_signal<Tcontrol_t> * out_COMPARE_TEST  ;
+
+  ALLOC0_SC_SIGNAL( in_COMPARE_DATA_0," in_COMPARE_DATA_0",Tdata_t   );
+  ALLOC0_SC_SIGNAL( in_COMPARE_DATA_1," in_COMPARE_DATA_1",Tdata_t   );
+  ALLOC0_SC_SIGNAL(out_COMPARE_TEST  ,"out_COMPARE_TEST  ",Tcontrol_t);
   
   /********************************************************
@@ -60,5 +69,8 @@
   (*(_Comparator->in_NRESET))       (*(in_NRESET));
 
-
+  INSTANCE0_SC_SIGNAL(_Comparator, in_COMPARE_DATA_0);
+  INSTANCE0_SC_SIGNAL(_Comparator, in_COMPARE_DATA_1);
+  INSTANCE0_SC_SIGNAL(_Comparator,out_COMPARE_TEST  );
+  
   msg(_("<%s> : Start Simulation ............\n"),name.c_str());
     
@@ -90,4 +102,119 @@
       LABEL("Iteration %d",iteration);
 
+      uint64_t data0 = range<uint64_t>(rand(),_param->_size_data);
+      uint64_t data1 = range<uint64_t>(rand(),_param->_size_data);
+
+      in_COMPARE_DATA_0->write(static_cast<Tdata_t>(data0));
+      in_COMPARE_DATA_1->write(static_cast<Tdata_t>(data1));
+      
+      SC_START(0);
+      
+      Tcontrol_t test = false;
+      switch (_param->_size_data)
+        {
+        case 8 :
+          {
+            if (_param->_is_signed)
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast< int8_t>(data0) == static_cast< int8_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast< int8_t>(data0) != static_cast< int8_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast< int8_t>(data0) >  static_cast< int8_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int8_t>(data0) >= static_cast< int8_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast< int8_t>(data0) <  static_cast< int8_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast< int8_t>(data0) <= static_cast< int8_t>(data1); break;
+                }
+            else
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast<uint8_t>(data0) == static_cast<uint8_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast<uint8_t>(data0) != static_cast<uint8_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast<uint8_t>(data0) >  static_cast<uint8_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint8_t>(data0) >= static_cast<uint8_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast<uint8_t>(data0) <  static_cast<uint8_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast<uint8_t>(data0) <= static_cast<uint8_t>(data1); break;
+                }
+            break;
+          }
+        case 16 :
+          {
+            if (_param->_is_signed)
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast< int16_t>(data0) == static_cast< int16_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast< int16_t>(data0) != static_cast< int16_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast< int16_t>(data0) >  static_cast< int16_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int16_t>(data0) >= static_cast< int16_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast< int16_t>(data0) <  static_cast< int16_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast< int16_t>(data0) <= static_cast< int16_t>(data1); break;
+                }
+            else
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast<uint16_t>(data0) == static_cast<uint16_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast<uint16_t>(data0) != static_cast<uint16_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast<uint16_t>(data0) >  static_cast<uint16_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint16_t>(data0) >= static_cast<uint16_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast<uint16_t>(data0) <  static_cast<uint16_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast<uint16_t>(data0) <= static_cast<uint16_t>(data1); break;
+                }
+            break;
+          }
+        case 32 :
+          {
+            if (_param->_is_signed)
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast< int32_t>(data0) == static_cast< int32_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast< int32_t>(data0) != static_cast< int32_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast< int32_t>(data0) >  static_cast< int32_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int32_t>(data0) >= static_cast< int32_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast< int32_t>(data0) <  static_cast< int32_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast< int32_t>(data0) <= static_cast< int32_t>(data1); break;
+                }
+            else
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast<uint32_t>(data0) == static_cast<uint32_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast<uint32_t>(data0) != static_cast<uint32_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast<uint32_t>(data0) >  static_cast<uint32_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint32_t>(data0) >= static_cast<uint32_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast<uint32_t>(data0) <  static_cast<uint32_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast<uint32_t>(data0) <= static_cast<uint32_t>(data1); break;
+                }
+            break;
+          }
+        case 64 :
+          {
+            if (_param->_is_signed)
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast< int64_t>(data0) == static_cast< int64_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast< int64_t>(data0) != static_cast< int64_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast< int64_t>(data0) >  static_cast< int64_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int64_t>(data0) >= static_cast< int64_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast< int64_t>(data0) <  static_cast< int64_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast< int64_t>(data0) <= static_cast< int64_t>(data1); break;
+                }
+            else
+              switch (_param->_type)
+                {
+                case COMPARATOR_EQUAL            : test = static_cast<uint64_t>(data0) == static_cast<uint64_t>(data1); break;
+                case COMPARATOR_NOT_EQUAL        : test = static_cast<uint64_t>(data0) != static_cast<uint64_t>(data1); break;
+                case COMPARATOR_GREATER          : test = static_cast<uint64_t>(data0) >  static_cast<uint64_t>(data1); break;
+                case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint64_t>(data0) >= static_cast<uint64_t>(data1); break;
+                case COMPARATOR_LESS             : test = static_cast<uint64_t>(data0) <  static_cast<uint64_t>(data1); break;
+                case COMPARATOR_LESS_OR_EQUAL    : test = static_cast<uint64_t>(data0) <= static_cast<uint64_t>(data1); break;
+                }
+            break;
+          }
+        default :
+          {
+            TEST_KO("Invalid size for the test.");
+          }
+        }
+
+      TEST(Tcontrol_t,out_COMPARE_TEST->read(),test);
+
       SC_START(1);
     }
@@ -104,4 +231,7 @@
   delete in_CLOCK;
   delete in_NRESET;
+  DELETE0_SC_SIGNAL( in_COMPARE_DATA_0);
+  DELETE0_SC_SIGNAL( in_COMPARE_DATA_1);
+  DELETE0_SC_SIGNAL(out_COMPARE_TEST  );
     }
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Comparator.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Comparator.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Comparator.h	(revision 113)
@@ -64,6 +64,5 @@
   public    : SC_IN (Tdata_t   )            *  in_COMPARE_DATA_0;
   public    : SC_IN (Tdata_t   )            *  in_COMPARE_DATA_1;
-  public    : SC_OUT(Tcontrol_t)            *  in_COMPARE_TEST  ;
-    
+  public    : SC_OUT(Tcontrol_t)            * out_COMPARE_TEST  ;
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
@@ -105,5 +104,5 @@
 #ifdef SYSTEMC				       
   public  : void        transition                (void);
-//public  : void        genMoore                  (void);
+  public  : void        genMealy                  (void);
 #endif					       
 
@@ -112,4 +111,7 @@
   private : void        vhdl_declaration          (Vhdl * & vhdl);
   private : void        vhdl_body                 (Vhdl * & vhdl);
+
+  private : void        vhdl_xilinx_declaration   (Vhdl * & vhdl);
+  private : void        vhdl_xilinx_body          (Vhdl * & vhdl);
 #endif					       
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Parameters.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/include/Parameters.h	(revision 113)
@@ -26,4 +26,7 @@
   public : Tcomparator_scheme_t _type;
 
+  public : int64_t              _extends;
+  public : int64_t              _mask_sign;
+
     //-----[ methods ]-----------------------------------------------------------
   public : Parameters  (uint32_t             size_data,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator.cpp	(revision 113)
@@ -77,13 +77,15 @@
 # endif    
 
-// 	log_printf(INFO,Comparator,FUNCTION,_("<%s> : Method - genMoore"),_name.c_str());
+	log_printf(INFO,Comparator,FUNCTION,_("<%s> : Method - genMealy"),_name.c_str());
 
-// 	SC_METHOD (genMoore);
-// 	dont_initialize ();
-// 	sensitive << (*(in_CLOCK)).neg(); // need internal register
+	SC_METHOD (genMealy);
+	dont_initialize ();
+// 	sensitive << (*(in_CLOCK)).neg(); // don't need internal register
+        sensitive << (*(in_COMPARE_DATA_0))
+                  << (*(in_COMPARE_DATA_1));
 	
-// # ifdef SYSTEMCASS_SPECIFIC
-// 	// List dependency information
-// # endif    
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
 	
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_allocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_allocation.cpp	(revision 113)
@@ -53,4 +53,16 @@
       in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
     }
+
+    // ~~~~~[ Interface : "compare" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      ALLOC0_INTERFACE_BEGIN("compare",IN,SOUTH,_("Compare interface"));
+
+      ALLOC0_SIGNAL_IN ( in_COMPARE_DATA_0,"DATA_0",Tdata_t   ,_param->_size_data);
+      ALLOC0_SIGNAL_IN ( in_COMPARE_DATA_1,"DATA_1",Tdata_t   ,_param->_size_data);
+      ALLOC0_SIGNAL_OUT(out_COMPARE_TEST  ,"TEST"  ,Tcontrol_t,1);
+
+      ALLOC0_INTERFACE_END();
+    }
+
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_deallocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_deallocation.cpp	(revision 113)
@@ -25,4 +25,8 @@
 	delete    in_CLOCK ;
 	delete    in_NRESET;
+
+        DELETE0_SIGNAL( in_COMPARE_DATA_0,_param->_size_data);
+        DELETE0_SIGNAL( in_COMPARE_DATA_1,_param->_size_data);
+        DELETE0_SIGNAL(out_COMPARE_TEST  ,1);
       }
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_genMealy.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_genMealy.cpp	(revision 113)
@@ -0,0 +1,82 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Comparator/include/Comparator.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace comparator {
+
+
+#undef  FUNCTION
+#define FUNCTION "Comparator::genMealy"
+  void Comparator::genMealy (void)
+  {
+    log_begin(Comparator,FUNCTION);
+
+    Tcontrol_t test;
+    Tdata_t data_0 = PORT_READ(in_COMPARE_DATA_0);
+    Tdata_t data_1 = PORT_READ(in_COMPARE_DATA_1);
+    
+    if (_param->_is_signed)
+      {
+        int64_t data0 = static_cast<int64_t>(data_0);
+        int64_t data1 = static_cast<int64_t>(data_1);
+
+        data0 = ((data0 & _param->_mask_sign) != 0)?(_param->_extends|data0):(~_param->_extends & data0);
+        data1 = ((data1 & _param->_mask_sign) != 0)?(_param->_extends|data1):(~_param->_extends & data1);
+
+        switch (_param->_type)
+          {
+          case COMPARATOR_EQUAL            : test = (data0 == data1); break;
+          case COMPARATOR_NOT_EQUAL        : test = (data0 != data1); break;
+          case COMPARATOR_GREATER          : test = (data0 >  data1); break;
+          case COMPARATOR_GREATER_OR_EQUAL : test = (data0 >= data1); break;
+          case COMPARATOR_LESS             : test = (data0 <  data1); break;
+          case COMPARATOR_LESS_OR_EQUAL    : test = (data0 <= data1); break;
+          }
+      }
+    else
+      {
+        uint64_t data0 = ~_param->_extends & static_cast<uint64_t>(data_0);
+        uint64_t data1 = ~_param->_extends & static_cast<uint64_t>(data_1);
+
+        switch (_param->_type)
+          {
+          case COMPARATOR_EQUAL            : test = (data0 == data1); break;
+          case COMPARATOR_NOT_EQUAL        : test = (data0 != data1); break;
+          case COMPARATOR_GREATER          : test = (data0 >  data1); break;
+          case COMPARATOR_GREATER_OR_EQUAL : test = (data0 >= data1); break;
+          case COMPARATOR_LESS             : test = (data0 <  data1); break;
+          case COMPARATOR_LESS_OR_EQUAL    : test = (data0 <= data1); break;
+          }
+      }
+
+    log_printf(TRACE,Comparator,FUNCTION,"  * size_data : %d",_param->_size_data);
+    log_printf(TRACE,Comparator,FUNCTION,"  * extends   : %llx",_param->_extends  );
+
+
+    log_printf(TRACE,Comparator,FUNCTION,"  * %.x %s (%d) %x = %d"
+               ,data_0
+               ,toString(_param->_type).c_str()
+               ,_param->_is_signed
+               ,data_1
+               ,test);
+
+    PORT_WRITE(out_COMPARE_TEST,test);
+
+    log_end(Comparator,FUNCTION);
+  };
+
+}; // end namespace comparator
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl.cpp	(revision 113)
@@ -27,6 +27,12 @@
     _component->vhdl_instance(vhdl);
 
+    // default architecture
     vhdl_declaration (vhdl);
     vhdl_body        (vhdl);
+
+    // Xilinx architecture
+    vhdl->set_architecture("xilinx");
+    vhdl_xilinx_declaration (vhdl);
+    vhdl_xilinx_body        (vhdl);
 
     vhdl->generate_file();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_body.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_body.cpp	(revision 113)
@@ -0,0 +1,31 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Comparator/include/Comparator.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace comparator {
+
+
+#undef  FUNCTION
+#define FUNCTION "Comparator::vhdl_xilinx_body"
+  void Comparator::vhdl_xilinx_body (Vhdl * & vhdl)
+  {
+    log_begin(Comparator,FUNCTION);
+    vhdl->set_body ("");
+    log_end(Comparator,FUNCTION);
+  };
+
+}; // end namespace comparator
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_declaration.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Comparator_vhdl_xilinx_declaration.cpp	(revision 113)
@@ -0,0 +1,33 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Comparator/include/Comparator.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace comparator {
+
+
+#undef  FUNCTION
+#define FUNCTION "Comparator::vhdl_xilinx_declaration"
+  void Comparator::vhdl_xilinx_declaration (Vhdl * & vhdl)
+  {
+    log_begin(Comparator,FUNCTION);
+
+    vhdl->set_library("XilinxCoreLib","c_compare_v9_0_comp","all");
+
+    log_end(Comparator,FUNCTION);
+  };
+
+}; // end namespace comparator
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Parameters.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Parameters.cpp	(revision 113)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Generic/Comparator/include/Parameters.h"
+#include "Common/include/BitManipulation.h"
 
 namespace morpheo {
@@ -12,5 +13,4 @@
 namespace generic {
 namespace comparator {
-
 
 #undef  FUNCTION
@@ -28,4 +28,7 @@
 
     test();
+
+    _extends   = gen_mask_not<int64_t>(_size_data);
+    _mask_sign = (1<<(_size_data-1));
 
     if (is_toplevel)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Parameters_msg_error.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/src/Parameters_msg_error.cpp	(revision 113)
@@ -24,4 +24,7 @@
     Parameters_test test ("Comparator");
 
+    if (_size_data > 64)
+      test.error(_("Max size is 64 bits.\n"));
+
     log_end(Comparator,FUNCTION);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Counter
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/include/test.h	(revision 112)
+++ 	(revision )
@@ -1,27 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test "RegisterFile"
- */
-
-#ifdef SYSTEMC
-#include "systemc.h"
-#endif
-
-#include <string>
-#include <iostream>
-
-#include "Common/include/Time.h"
-#include "Behavioural/Generic/Counter/include/Counter.h"
-
-using namespace std;
-using namespace morpheo;
-using namespace morpheo::behavioural;
-using namespace morpheo::behavioural::generic;
-
-using namespace morpheo::behavioural::generic::counter;
-
-void test   (string name,
-	     morpheo::behavioural::generic::counter::Parameters param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/include/top.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/include/top.h	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/include/top.h	(revision 113)
@@ -0,0 +1,54 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test "Counter"
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#define NB_ITERATION  1024
+#define CYCLE_MAX     (1024*NB_ITERATION)
+
+#include "Common/include/Test.h"
+#include "Common/include/Time.h"
+#include "Behavioural/Generic/Counter/include/Counter.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::generic;
+using namespace morpheo::behavioural::generic::counter;
+
+SC_MODULE(top)
+{
+#ifdef SYSTEMC
+ private: sc_clock               *  in_CLOCK ;
+ private: sc_signal<Tcontrol_t>  *  in_NRESET;
+ private: sc_signal<Tdata_t>    **  in_COUNTER_DATA  ;// [param->_nb_port]
+ private: sc_signal<Tcontrol_t> **  in_COUNTER_ADDSUB;// [param->_nb_port]
+ private: sc_signal<Tdata_t>    ** out_COUNTER_DATA  ;// [param->_nb_port]
+#endif
+
+ private: std::string                                          name ;
+ private: morpheo::behavioural::generic::counter::Parameters * param;
+#ifdef STATISTICS
+ private: morpheo::behavioural::Parameters_Statistics        * param_stat;
+#endif
+ private: Counter                                            * component;
+
+ private: void usage        (string exec);
+ private: void allocation   (void);
+ private: void deallocation (void);
+ public : void test         (void);
+
+#ifdef MTI_SYSTEMC
+  SC_CTOR(top::top);
+#else
+ public : top (sc_module_name module_name,int argc, char * argv[]);
+#endif
+ public : ~top(void);
+};
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/main.cpp	(revision 113)
@@ -2,43 +2,47 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
-#include "Behavioural/Generic/Counter/SelfTest/include/test.h"
+#include "Behavioural/Generic/Counter/SelfTest/include/top.h"
 
-#define NB_PARAMS 2
+#ifndef MTI_SYSTEMC
+# ifndef SYSTEMC
+int main    (int argc, char * argv[])
+# else
+int sc_main (int argc, char * argv[])
+# endif
+{
+  int _return = EXIT_SUCCESS;
 
-void usage (string exec)
-{
-  cerr << "<Usage> " << exec << " name_instance list_params" << endl
-       << "list_params is :" << endl
-       << " - size_data     (unsigned int)" << endl
-       << " - nb_port       (unsigned int)" << endl;
+  try 
+    {
+      top * my_top = new top ("my_top",argc,argv);
 
-  exit (1);
+      my_top->test();
+
+      delete my_top;
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msg (_("%s\n"),error.what ());
+      _return = EXIT_FAILURE;
+    }
+  
+  try 
+    {
+      if (_return == EXIT_SUCCESS)
+	TEST_OK("Counter : no error");
+      else
+	TEST_KO("Counter : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//       msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
+    }
+
+  return _return;
 }
-
-#ifndef SYSTEMC
-int main    (int argc, char * argv[])
-#else
-int sc_main (int argc, char * argv[])
 #endif
-{
-  if (argc != 2+NB_PARAMS)
-    usage (argv[0]);
-
-  cout << "<test0> : Classic usage" << endl;
-  cout << "<test0> : Typical parameters" << endl;
-  const string   name      = argv[1];
-  const uint32_t size_data = atoi(argv[2]);
-  const uint32_t nb_port   = atoi(argv[3]);
-
-  morpheo::behavioural::generic::counter::Parameters param (size_data,
-							    nb_port  );
-
-  test (name,param);
-
-  return (EXIT_SUCCESS);
-}
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/test.cpp	(revision 112)
+++ 	(revision )
@@ -1,162 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test
- */
-
-#define NB_ITERATION 1024
-#define CYCLE_MAX    1024*NB_ITERATION
-
-#include "Behavioural/Generic/Counter/SelfTest/include/test.h"
-#include "Common/include/Test.h"
-
-void test (string name,
-	   morpheo::behavioural::generic::counter::Parameters param)
-{
-  cout << "<" << name << "> : Simulation SystemC" << endl;
-
-  try 
-    {
-      cout << param.print(1);
-      param.test();
-    }
-  catch (morpheo::ErrorMorpheo & error)
-    {
-      cout << "<" << name << "> : " <<  error.what ();
-      return;
-    }
-  catch (...)
-    {
-      cerr << "<" << name << "> : This test must generate a error" << endl;
-      exit (EXIT_FAILURE);
-    }
-#ifdef STATISTICS
-  morpheo::behavioural::Parameters_Statistics * param_stat = new morpheo::behavioural::Parameters_Statistics (5,50);
-#endif
-
-  Tusage_t _usage = USE_ALL;
-
-//   _usage = usage_unset(_usage,USE_SYSTEMC              );
-//   _usage = usage_unset(_usage,USE_VHDL                 );
-//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
-//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
-//   _usage = usage_unset(_usage,USE_POSITION             );
-//   _usage = usage_unset(_usage,USE_STATISTICS           );
-//   _usage = usage_unset(_usage,USE_INFORMATION          );
-
-  Counter * _Counter = new Counter (name.c_str(),
-#ifdef STATISTICS
-				    param_stat,
-#endif
-				    param,
-				    _usage);
-  
-#ifdef SYSTEMC
-  /*********************************************************************
-   * Déclarations des signaux
-   *********************************************************************/
-  sc_clock                                 CLOCK ("clock", 1.0, 0.5);
-  sc_signal<Tcontrol_t>                    RESET;
-  sc_signal<Tdata_t>                       DATA_IN  [param._nb_port];
-  sc_signal<Tcontrol_t>                    ADDSUB   [param._nb_port];
-  sc_signal<Tdata_t>                       DATA_OUT [param._nb_port];
-
-  /********************************************************
-   * Instanciation
-   ********************************************************/
-  
-  cout << "<" << name << "> Instanciation of _Counter" << endl;
- 
-  (*(_Counter->in_CLOCK))        (CLOCK);
-  (*(_Counter->in_NRESET))       (RESET);
-
-  for (uint32_t i=0; i<param._nb_port; i++)
-    {
-      (*(_Counter-> in_COUNTER_DATA  [i]))        (DATA_IN  [i]);
-      (*(_Counter-> in_COUNTER_ADDSUB[i]))        (ADDSUB   [i]);
-      (*(_Counter->out_COUNTER_DATA  [i]))        (DATA_OUT [i]);
-    }
-
-  Time * _time = new Time();
-
-  /********************************************************
-   * Simulation - Begin
-   ********************************************************/
-
-  cout << "<" << name << "> Start Simulation ............" << endl;
-  // Initialisation
-
-  srand(0);
-  //srand(TIME(NULL));
-
-  Tdata_t    data_in  [param._nb_port];
-  Tdata_t    data_out [param._nb_port];
-  Tcontrol_t addsub   [param._nb_port];
-
-  sc_start(0);
-
-  RESET.write(1);
-
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
-
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl;
-
-  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
-    {
-      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Itération " << iteration << endl;
-      for (uint32_t i=0; i<param._nb_port; i++)
-	{
-	  Tdata_t data = rand()%param._data_max;
-	  data_in  [i] = data;
-	  addsub   [i] = (rand()%2)==1; 
-	  
-	  DATA_IN  [i].write(data      );
-	  ADDSUB   [i].write(addsub [i]);
-
-	  data_out [i] = (addsub[i]==1)?((data<param._data_max)?data+1:data):((data>0)?data-1:data);
-	}
-
-      sc_start(0);
-      
-      for (uint32_t i=0; i<param._nb_port; i++)
-	{
-	  cout << hex 
-	       << "    [" << i << "] "
-	       << data_in [i];
-
-	  if (addsub[i] == 1)
-	    cout << " ++";
-	  else
-	    cout << " --";
-
-	  cout << " = " 
-	       << DATA_OUT [i].read();
-
-	  TEST(Tdata_t,DATA_OUT [i].read(),data_out [i]);
-	   
-	  cout << std::dec << endl;
-	}
-      
-      sc_start(1);
-    }
-
-  sc_start(1);
-
-  /********************************************************
-   * Simulation - End
-   ********************************************************/
-
-  delete _time;
-
-  cout << "<" << name << "> ............ Stop Simulation" << endl;
-
-#endif
-
-  delete _Counter;
-#ifdef STATISTICS
-  delete param_stat;
-#endif
-
-}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top.cpp	(revision 113)
@@ -0,0 +1,58 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Counter/SelfTest/include/top.h"
+
+#define NB_PARAMS 2
+
+#ifdef MTI_SYSTEMC
+SC_MODULE_EXPORT(top);
+#endif
+
+#ifdef MTI_SYSTEMC
+SC_CTOR(top::top)
+#else
+top::top (sc_module_name module_name,int argc, char * argv[])
+#endif
+{
+#ifdef MTI_SYSTEMC
+  // accessing command-line arguments with modelsim
+  int argc;
+  const char * const * argv;
+
+  argc = sc_argc ();
+  argv = sc_argv ();
+#endif
+
+  if (argc != 2+NB_PARAMS)
+    usage (argv[0]);
+
+           name      = argv[1];
+  uint32_t size_data = fromString<uint32_t>(argv[2]);
+  uint32_t nb_port   = fromString<uint32_t>(argv[3]);
+
+  param = new morpheo::behavioural::generic::counter::Parameters
+    (size_data,
+     nb_port  );
+  
+  // msg(_("%s"),param.print(0).c_str());
+  
+  // Allocation component
+  allocation ();
+  
+#ifdef MTI_SYSTEMC
+  SC_THREAD(test);
+#endif
+}
+
+top::~top (void)
+{
+  cout << "<" << name << "> : destructior" << endl;
+
+  deallocation ();
+  delete param;
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_allocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_allocation.cpp	(revision 113)
@@ -0,0 +1,79 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Generic/Counter/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::allocation (void)
+{
+  cout << "<" << name << "> : Construction of component" << endl;
+  
+  try 
+    {
+      param->test();
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      cout << "<" << name << "> : " <<  error.what ();
+      return;
+    }
+  catch (...)
+    {
+      cerr << "<" << name << "> : This test must generate a error" << endl;
+      exit (EXIT_FAILURE);
+    }
+#ifdef STATISTICS
+  param_stat = new morpheo::behavioural::Parameters_Statistics (5,50);
+#endif
+
+  Tusage_t _usage = USE_ALL;
+
+//_usage = usage_unset(_usage,USE_SYSTEMC              );
+//_usage = usage_unset(_usage,USE_VHDL                 );
+//_usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//_usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//_usage = usage_unset(_usage,USE_POSITION             );
+//_usage = usage_unset(_usage,USE_STATISTICS           );
+//_usage = usage_unset(_usage,USE_INFORMATION          );
+
+  cout << "<" << name << "> Create component" << endl;
+
+  component = new Counter 
+    (name.c_str(),
+#ifdef STATISTICS
+     param_stat,
+#endif
+     param,
+     _usage);
+
+#ifdef SYSTEMC
+  /*********************************************************************
+   * Déclarations des signaux
+   *********************************************************************/
+  cout << "<" << name << "> Create signal" << endl;
+
+  in_CLOCK  = new sc_clock ("clock", TIME_PERIOD, TIME_UNIT, 0.5); //name,period,time_unit,duty_cycle
+
+  ALLOC0_SC_SIGNAL( in_NRESET        ," in_NRESET        ",Tcontrol_t);
+  ALLOC1_SC_SIGNAL( in_COUNTER_DATA  ," in_COUNTER_DATA  ",Tdata_t   ,param->_nb_port);
+  ALLOC1_SC_SIGNAL( in_COUNTER_ADDSUB," in_COUNTER_ADDSUB",Tcontrol_t,param->_nb_port);
+  ALLOC1_SC_SIGNAL(out_COUNTER_DATA  ,"out_COUNTER_DATA  ",Tdata_t   ,param->_nb_port);
+
+  /********************************************************
+   * Instanciation
+   ********************************************************/
+  
+  cout << "<" << name << "> Instanciation of component" << endl;
+ 
+  INSTANCE0_SC_SIGNAL(component, in_CLOCK         );
+  INSTANCE0_SC_SIGNAL(component, in_NRESET        );
+  INSTANCE1_SC_SIGNAL(component, in_COUNTER_DATA  ,param->_nb_port);
+  INSTANCE1_SC_SIGNAL(component, in_COUNTER_ADDSUB,param->_nb_port);
+  INSTANCE1_SC_SIGNAL(component,out_COUNTER_DATA  ,param->_nb_port);
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_deallocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_deallocation.cpp	(revision 113)
@@ -0,0 +1,28 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Generic/Counter/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::deallocation (void)
+{
+  cout << "<" << name << "> : Destruction of component" << endl;
+
+#ifdef SYSTEMC
+  delete             in_CLOCK;
+  DELETE0_SC_SIGNAL( in_NRESET);
+  DELETE1_SC_SIGNAL( in_COUNTER_DATA  ,param->_nb_port);
+  DELETE1_SC_SIGNAL( in_COUNTER_ADDSUB,param->_nb_port);
+  DELETE1_SC_SIGNAL(out_COUNTER_DATA  ,param->_nb_port);
+#endif
+
+  delete component;
+#ifdef STATISTICS
+  delete param_stat;
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_test.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_test.cpp	(revision 113)
@@ -0,0 +1,82 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Generic/Counter/SelfTest/include/top.h"
+
+void top::test (void)
+{
+#ifdef SYSTEMC
+  Time * _time = new Time();
+
+  /********************************************************
+   * Simulation - Begin
+   ********************************************************/
+
+  cout << "<" << name << "> Start Simulation ............" << endl;
+  // Initialisation
+
+  srand(0);
+  //srand(TIME(NULL));
+
+  Tdata_t    data_in  [param->_nb_port];
+  Tdata_t    data_out [param->_nb_port];
+  Tcontrol_t addsub   [param->_nb_port];
+
+  SC_CYCLE(0);
+
+  in_NRESET->write(1);
+
+  LABEL("Initialisation");
+
+  LABEL("Loop of Test");
+
+  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
+    {
+      LABEL("Iteration %d",iteration);
+
+      for (uint32_t i=0; i<param->_nb_port; i++)
+	{
+	  Tdata_t data = rand()%param->_data_max;
+	  data_in  [i] = data;
+	  addsub   [i] = (rand()%2)==1; 
+	  
+          LABEL("in_COUNTER_DATA   [%d] = %d",i,data      );
+          LABEL("in_COUNTER_ADDSUB [%d] = %d"  ,i,addsub [i]);
+
+	  in_COUNTER_DATA   [i]->write(data      );
+	  in_COUNTER_ADDSUB [i]->write(addsub [i]);
+
+	  data_out [i] = (addsub[i]==1)?((data<param->_data_max)?data+1:data):((data>0)?data-1:data);
+	}
+
+      SC_CYCLE(0);
+
+      for (uint32_t i=0; i<param->_nb_port; i++)
+	{
+          string op = (addsub[i] == 1)?"++":"--";
+          LABEL("0x%d %s = 0x%d",i,op.c_str(),out_COUNTER_DATA [i]->read());
+
+	  TEST(Tdata_t,out_COUNTER_DATA [i]->read(),data_out [i]);
+	}
+      
+      SC_CYCLE(1);
+    }
+
+  SC_CYCLE(1);
+
+  /********************************************************
+   * Simulation - End
+   ********************************************************/
+
+  sc_stop();
+
+  delete _time;
+
+  cout << "<" << name << "> ............ Stop Simulation" << endl;
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_usage.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_usage.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/top_usage.cpp	(revision 113)
@@ -0,0 +1,18 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Counter/SelfTest/include/top.h"
+
+void top::usage (string exec)
+{
+  cerr << "<Usage> " << exec << " name_instance list_params" << endl
+       << "list_params is :" << endl
+       << " - size_data     (unsigned int)" << endl
+       << " - nb_port       (unsigned int)" << endl;
+
+  exit (1);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h	(revision 113)
@@ -40,7 +40,7 @@
     // -----[ fields ]----------------------------------------------------
     // Parameters
-  protected : const std::string _name;
-  protected : const Parameters  _param;
-  private   : const Tusage_t    _usage;
+  protected : const std::string   _name;
+  protected : const Parameters  * _param;
+  private   : const Tusage_t      _usage;
 
 #ifdef STATISTICS
@@ -79,8 +79,8 @@
 					   morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-					   Parameters param,
-					   Tusage_t   usage);
+					   Parameters * param,
+					   Tusage_t     usage);
 					       
-  public  :          Counter              (Parameters param );
+// public  :          Counter              (Parameters param );
   public  :          ~Counter             (void);
 					       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp	(revision 113)
@@ -13,5 +13,6 @@
 namespace counter {
 
-
+#undef FUNCTION
+#define FUNCTION "Counter::Counter"
   Counter::Counter 
   (
@@ -24,5 +25,5 @@
   morpheo::behavioural::Parameters_Statistics * param_statistics,
 #endif
-  morpheo::behavioural::generic::counter::Parameters param,
+  morpheo::behavioural::generic::counter::Parameters * param,
    Tusage_t usage):
     _name  (name),
@@ -30,11 +31,11 @@
     _usage (usage)
   {
-    log_printf(FUNC,Counter,"Counter","Begin");
+    log_begin(Counter,FUNCTION);
 
-#if DEBUG_Counter == true
-    log_printf(INFO,Counter,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Counter == true
+//     log_printf(INFO,Counter,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Core,FUNCTION,_("<%s> Allocation"),_name.c_str());
@@ -76,5 +77,5 @@
         SC_METHOD (genMealy);
         dont_initialize ();
-        for (uint32_t i=0; i<_param._nb_port; i++)
+        for (uint32_t i=0; i<_param->_nb_port; i++)
           sensitive << *(in_COUNTER_DATA   [i])
                     << *(in_COUNTER_ADDSUB [i]);
@@ -82,5 +83,5 @@
 #ifdef SYSTEMCASS_SPECIFIC
         // List dependency information
-        for (uint32_t i=0; i<_param._nb_port; i++)
+        for (uint32_t i=0; i<_param->_nb_port; i++)
           {
             (*(out_COUNTER_DATA [i])) (*(in_COUNTER_DATA   [i]));
@@ -91,10 +92,12 @@
 
 #endif
-    log_printf(FUNC,Counter,"Counter","End");
+    log_end(Counter,FUNCTION);
   };
   
+#undef FUNCTION
+#define FUNCTION "Counter::~Counter"
   Counter::~Counter (void)
   {
-    log_printf(FUNC,Counter,"~Counter","Begin");
+    log_begin(Counter,FUNCTION);
 
 #ifdef STATISTICS
@@ -108,5 +111,5 @@
     deallocation ();
 
-    log_printf(FUNC,Counter,"~Counter","End");
+    log_end(Counter,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp	(revision 113)
@@ -21,5 +21,5 @@
 
     Entity * entity = _component->set_entity (_name     
-					     ,"Counter"  
+					     ,_param->_type
 #ifdef POSITION
 					     ,COMBINATORY
@@ -45,11 +45,11 @@
     // ~~~~~[ Interface : "counter" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC1_INTERFACE_BEGIN("counter", IN, SOUTH, _("Counter interface"), _param._nb_port);
+      ALLOC1_INTERFACE_BEGIN("counter", IN, SOUTH, _("Counter interface"), _param->_nb_port);
 	   
-      ALLOC1_SIGNAL_IN ( in_COUNTER_DATA  ,"data"  ,Tdata_t   ,_param._size_data);
+      ALLOC1_SIGNAL_IN ( in_COUNTER_DATA  ,"data"  ,Tdata_t   ,_param->_size_data);
       ALLOC1_SIGNAL_IN ( in_COUNTER_ADDSUB,"addsub",Tcontrol_t,1                );
-      ALLOC1_SIGNAL_OUT(out_COUNTER_DATA  ,"data"  ,Tdata_t   ,_param._size_data);
+      ALLOC1_SIGNAL_OUT(out_COUNTER_DATA  ,"data"  ,Tdata_t   ,_param->_size_data);
 
-      ALLOC1_INTERFACE_END(_param._nb_port);
+      ALLOC1_INTERFACE_END(_param->_nb_port);
     }
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_deallocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_deallocation.cpp	(revision 113)
@@ -24,7 +24,7 @@
         delete     in_NRESET;
         
-        DELETE1_SIGNAL( in_COUNTER_DATA  , _param._nb_port,_param._size_data);
-        DELETE1_SIGNAL( in_COUNTER_ADDSUB, _param._nb_port,1                );
-        DELETE1_SIGNAL(out_COUNTER_DATA  , _param._nb_port,_param._size_data);
+        DELETE1_SIGNAL( in_COUNTER_DATA  , _param->_nb_port,_param->_size_data);
+        DELETE1_SIGNAL( in_COUNTER_ADDSUB, _param->_nb_port,1                );
+        DELETE1_SIGNAL(out_COUNTER_DATA  , _param->_nb_port,_param->_size_data);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_genMealy.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_genMealy.cpp	(revision 113)
@@ -18,5 +18,5 @@
     log_printf(FUNC,Counter,"genMealy","Begin");
 
-    for (uint32_t i=0; i<_param._nb_port; i++)
+    for (uint32_t i=0; i<_param->_nb_port; i++)
       {
 	Tcontrol_t addsub  = PORT_READ(in_COUNTER_ADDSUB [i]);
@@ -28,5 +28,5 @@
 	if (addsub == 1)
 	  {
-	    if (data_out < _param._data_max)
+	    if (data_out < _param->_data_max)
 	      data_out++;
 	  }
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 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_statistics_declaration.cpp	(revision 113)
@@ -21,5 +21,5 @@
 
     _stat = new Stat (static_cast<std::string>(_name),
-		      "Counter",
+		      _param->_type,
 		      param_statistics);
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_body.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_body.cpp	(revision 113)
@@ -19,9 +19,9 @@
     vhdl->set_body ("");
     
-    for (uint32_t i=0; i<_param._nb_port; i++)
+    for (uint32_t i=0; i<_param->_nb_port; i++)
       {
 	std::string counter_inc, counter_dec;
 
-	if (_param._size_data > 1)
+	if (_param->_size_data > 1)
 	  {
 	    counter_inc = "in_COUNTER_"+toString(i)+"_DATA+1";
@@ -35,5 +35,5 @@
 
 	vhdl->set_body ("out_COUNTER_"+toString(i)+"_DATA <=");
-	if (_param._size_data > 1)
+	if (_param->_size_data > 1)
 	  {
 	    vhdl->set_body ("\tin_COUNTER_"+toString(i)+"_DATA+1 when in_COUNTER_"+toString(i)+"_ADDSUB = '1' and in_COUNTER_"+toString(i)+"_DATA < cst_max else");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_declaration.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_vhdl_declaration.cpp	(revision 113)
@@ -19,8 +19,8 @@
     log_printf(FUNC,Counter,"vhdl_declaration","Begin");
     
-    if (_param._size_data > 1)
+    if (_param->_size_data > 1)
       {
-	vhdl->set_constant ("cst_min",_param._size_data,std_logic_others(_param._size_data,0));
-	vhdl->set_constant ("cst_max",_param._size_data,std_logic_others(_param._size_data,1));
+	vhdl->set_constant ("cst_min",_param->_size_data,std_logic_others(_param->_size_data,0));
+	vhdl->set_constant ("cst_max",_param->_size_data,std_logic_others(_param->_size_data,1));
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp	(revision 113)
@@ -16,4 +16,5 @@
   Parameters::Parameters (uint32_t size_data,
 			  uint32_t nb_port  ):
+    behavioural::Parameters("Counter"),
     _size_data(size_data),
     _nb_port  (nb_port  ),
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Divider
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Multiplier
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Priority
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY				= Queue
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/include/test.h	(revision 112)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test "RegisterFile"
- */
-
-#ifdef SYSTEMC
-#include "systemc.h"
-#endif
-
-#include <string>
-#include <iostream>
-#include <sys/time.h>
-
-#include "Behavioural/Generic/Queue/include/Queue.h"
-#include "Common/include/Time.h"
-
-using namespace std;
-using namespace morpheo;
-using namespace morpheo::behavioural;
-using namespace morpheo::behavioural::generic;
-
-using namespace morpheo::behavioural::generic::queue;
-
-void test    (string name,
-	      morpheo::behavioural::generic::queue::Parameters * param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/include/top.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/include/top.h	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/include/top.h	(revision 113)
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test "Queue"
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#define NB_ITERATION  1
+#define CYCLE_MAX     (2048*NB_ITERATION)
+
+#include "Common/include/Test.h"
+#include "Common/include/Time.h"
+#include "Behavioural/Generic/Queue/include/Queue.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::generic;
+
+using namespace morpheo::behavioural::generic::queue;
+
+void test    (string name,
+	      morpheo::behavioural::generic::queue::Parameters * param);
+
+SC_MODULE(top)
+{
+#ifdef SYSTEMC
+ private: sc_clock               *  in_CLOCK ;
+ private: sc_signal<Tcontrol_t>  *  in_NRESET;
+
+ private: sc_signal<Tcontrol_t>  *  in_INSERT_VAL;
+ private: sc_signal<Tcontrol_t>  * out_INSERT_ACK;
+ private: sc_signal<Tdata_t   >  *  in_INSERT_DATA;
+
+ private: sc_signal<Tcontrol_t>  * out_RETIRE_VAL;
+ private: sc_signal<Tcontrol_t>  *  in_RETIRE_ACK;
+ private: sc_signal<Tdata_t   >  * out_RETIRE_DATA;
+
+ private: sc_signal<Tcontrol_t> ** out_SLOT_VAL ; //[nb_port_slot]
+ private: sc_signal<Tdata_t   > ** out_SLOT_DATA; //[nb_port_slot]
+
+ private: sc_signal<Tptr_t    >  * out_PTR_WRITE;
+ private: sc_signal<Tptr_t    >  * out_PTR_READ ;
+#endif
+
+ private: std::string name;
+ private: Tusage_t _usage;
+ private: morpheo::behavioural::generic::queue::Parameters * _param;
+#ifdef STATISTICS
+ private: morpheo::behavioural::Parameters_Statistics * _param_stat;
+#endif
+ private: Queue * component;
+
+ private: void usage
+    (
+#ifdef MTI_SYSTEMC
+     int argc, const char * const * argv
+#else
+     int argc, char * argv[]
+#endif
+     );
+ private: void allocation   (void);
+ private: void deallocation (void);
+ public : void test         (void);
+
+#ifdef MTI_SYSTEMC
+  SC_CTOR(top::top);
+#else
+ public : top (sc_module_name module_name,int argc, char * argv[]);
+#endif
+ public : ~top(void);
+};
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/main.cpp	(revision 113)
@@ -2,73 +2,47 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
-#include "Behavioural/Generic/Queue/SelfTest/include/test.h"
+#include "Behavioural/Generic/Queue/SelfTest/include/top.h"
 
-#define NB_PARAMS 5
+#ifndef MTI_SYSTEMC
+# ifndef SYSTEMC
+int main    (int argc, char * argv[])
+# else
+int sc_main (int argc, char * argv[])
+# endif
+{
+  int _return = EXIT_SUCCESS;
 
-void usage (int argc, char * argv[])
-{
-  cerr << "<Usage> " << argv[0] << " name_instance list_params" << endl
-       << "list_params is :" << endl
-       << " - size_queue      (uint32_t)" << endl
-       << " - size_data       (uint32_t)" << endl
-       << " - nb_port_slot    (uint32_t)" << endl
-       << " - have_port_write (bool    )" << endl
-       << " - have_port_read  (bool    )" << endl
-       << "" << endl;
-
-  for (int i=0; i<argc; i++)
-    cerr << argv[i] << " ";
-  cerr << endl;
-
-  exit (1);
-}
-
-#ifndef SYSTEMC
-int main    (int argc, char * argv[])
-#else
-int sc_main (int argc, char * argv[])
-#endif
-{
-  if (argc != 2+NB_PARAMS)
-    usage (argc, argv);
-
-  uint32_t       x = 1;
-  
-  const string   name            =      argv[x++];
-  const uint32_t size_queue      = fromString<uint32_t>(argv[x++]);
-  const uint32_t size_data       = fromString<uint32_t>(argv[x++]);
-  const uint32_t nb_port_slot    = fromString<uint32_t>(argv[x++]);
-  const bool     have_port_write = fromString<bool>(argv[x++]);
-  const bool     have_port_read  = fromString<bool>(argv[x++]);
   try 
     {
-      morpheo::behavioural::generic::queue::Parameters * param = new morpheo::behavioural::generic::queue::Parameters
-	(size_queue,
-	 size_data ,
-         nb_port_slot,
-         have_port_write,
-         have_port_read 
-        );
-      
-      cout << param->print(1);
-      
-      test (name,param);
+      top * my_top = new top ("my_top",argc,argv);
+
+      my_top->test();
+
+      delete my_top;
     }
   catch (morpheo::ErrorMorpheo & error)
     {
-      cout << "<" << name << "> : " <<  error.what ();
-      exit (EXIT_FAILURE);
+      msgError(_("%s\n"),error.what ());
+      _return = EXIT_FAILURE;
     }
-  catch (...)
+  
+  try 
     {
-      cerr << "<" << name << "> : This test must generate a error" << endl;
-      exit (EXIT_FAILURE);
+      if (_return == EXIT_SUCCESS)
+	TEST_OK("Queue : no error");
+      else
+	TEST_KO("Queue : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//    msgError(_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
     }
 
-  return (EXIT_SUCCESS);
+  return _return;
 }
-
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/test.cpp	(revision 112)
+++ 	(revision )
@@ -1,184 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test
- */
-
-#define NB_ITERATION  1
-#define CYCLE_MAX     (2048*NB_ITERATION)
-
-#include "Behavioural/Generic/Queue/SelfTest/include/test.h"
-#include "Behavioural/include/Allocation.h"
-#include "Common/include/Test.h"
-
-void test (string name,
-	   morpheo::behavioural::generic::queue::Parameters * _param)
-{
-  cout << "<" << name << "> : Simulation SystemC" << endl;
-
-#ifdef STATISTICS
-  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
-#endif
-
-  Tusage_t _usage = USE_ALL;
-
-//   _usage = usage_unset(_usage,USE_SYSTEMC              );
-//   _usage = usage_unset(_usage,USE_VHDL                 );
-//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
-//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
-//   _usage = usage_unset(_usage,USE_POSITION             );
-//   _usage = usage_unset(_usage,USE_STATISTICS           );
-//   _usage = usage_unset(_usage,USE_INFORMATION          );
-
-  Queue * _Queue = new Queue 
-    (name.c_str(),
-#ifdef STATISTICS
-     _parameters_statistics,
-#endif
-     _param,
-     _usage);
-  
-#ifdef SYSTEMC
-  /*********************************************************************
-   * Déclarations des signaux
-   *********************************************************************/
-  string rename;
-
-  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
-  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
-
-  ALLOC0_SC_SIGNAL( in_INSERT_VAL , "in_INSERT_VAL" ,Tcontrol_t);
-  ALLOC0_SC_SIGNAL(out_INSERT_ACK ,"out_INSERT_ACK" ,Tcontrol_t);
-  ALLOC0_SC_SIGNAL( in_INSERT_DATA, "in_INSERT_DATA",Tdata_t   );
-  ALLOC0_SC_SIGNAL(out_RETIRE_VAL ,"out_RETIRE_VAL" ,Tcontrol_t);
-  ALLOC0_SC_SIGNAL( in_RETIRE_ACK , "in_RETIRE_ACK" ,Tcontrol_t);
-  ALLOC0_SC_SIGNAL(out_RETIRE_DATA,"out_RETIRE_DATA",Tdata_t   );
-  ALLOC1_SC_SIGNAL(out_SLOT_VAL   ,"out_SLOT_VAL"   ,Tcontrol_t,_param->_nb_port_slot);
-  ALLOC1_SC_SIGNAL(out_SLOT_DATA  ,"out_SLOT_DATA"  ,Tdata_t   ,_param->_nb_port_slot);
-  ALLOC0_SC_SIGNAL(out_PTR_WRITE  ,"out_PTR_WRITE"  ,Tptr_t    );
-  ALLOC0_SC_SIGNAL(out_PTR_READ   ,"out_PTR_READ"   ,Tptr_t    );
-  
-  /********************************************************
-   * Instanciation
-   ********************************************************/
-  
-  cout << "<" << name << "> Instanciation of _Queue" << endl;
-  
-  (*(_Queue->in_CLOCK))        (*(in_CLOCK));
-  (*(_Queue->in_NRESET))       (*(in_NRESET));
-
-  INSTANCE0_SC_SIGNAL(_Queue, in_INSERT_VAL );
-  INSTANCE0_SC_SIGNAL(_Queue,out_INSERT_ACK );
-  INSTANCE0_SC_SIGNAL(_Queue, in_INSERT_DATA);
-  INSTANCE0_SC_SIGNAL(_Queue,out_RETIRE_VAL );
-  INSTANCE0_SC_SIGNAL(_Queue, in_RETIRE_ACK );
-  INSTANCE0_SC_SIGNAL(_Queue,out_RETIRE_DATA);
-  INSTANCE1_SC_SIGNAL(_Queue,out_SLOT_VAL   ,_param->_nb_port_slot);
-  INSTANCE1_SC_SIGNAL(_Queue,out_SLOT_DATA  ,_param->_nb_port_slot);
-  if (_param->_have_port_ptr_write)
-  INSTANCE0_SC_SIGNAL(_Queue,out_PTR_WRITE  );
-  if (_param->_have_port_ptr_read )
-  INSTANCE0_SC_SIGNAL(_Queue,out_PTR_READ   );
-
-  cout << "<" << name << "> Start Simulation ............" << endl;
-  Time * _time = new Time();
-
-  /********************************************************
-   * Simulation - Begin
-   ********************************************************/
-
-  // Initialisation
-  const  int32_t percent_insert_transaction = 75;
-  const  int32_t percent_retire_transaction = 75;
-  const uint32_t nb_request = 3*_param->_size_queue;
-
-  const uint32_t seed = 0;
-//const uint32_t seed = static_cast<uint32_t>(time(NULL));
-
-  srand(seed);
-
-  SC_START(0);
-  LABEL("Initialisation");
-
-  in_INSERT_VAL -> write(0);
-  in_RETIRE_ACK -> write(0);
-
-  LABEL("Reset");
-  in_NRESET->write(0);
-  SC_START(5);
-  in_NRESET->write(1);  
-
-  LABEL("Loop of Test");
-
-  uint32_t data_in  = 0;
-  uint32_t data_out = 0;
-  uint32_t nb_elt   = 0;
-
-  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
-    {
-      LABEL("Iteration %d",iteration);
-
-      while (data_out <= nb_request)
-	{
-	  in_INSERT_VAL  -> write((rand()%100)<percent_insert_transaction);
-	  in_INSERT_DATA -> write(data_in);
-	  in_RETIRE_ACK  -> write((rand()%100)<percent_retire_transaction);
-
-	  SC_START(0); // genMoore
-
-          for (uint32_t i=0; i<_param->_nb_port_slot; ++i)
-            {
-              TEST(Tcontrol_t, out_SLOT_VAL [i]->read(), (i<nb_elt));
-              if (i<nb_elt)
-              TEST(Tdata_t   , out_SLOT_DATA[i]->read(), data_out+i);
-                
-            }
-
-	  if ( in_INSERT_VAL->read() and out_INSERT_ACK->read())
-	    {
-	      LABEL ("Transaction with interface : INSERT");
-	      data_in ++;
-              nb_elt ++;
-	    }
-	  if (out_RETIRE_VAL->read() and  in_RETIRE_ACK->read())
-	    {
-	      LABEL ("Transaction with interface : RETIRE");
-	      TEST(Tdata_t, out_RETIRE_DATA->read(), data_out);
-	      data_out++;
-              nb_elt --;
-	    }
-
-	  SC_START(1);
-	}
-    }
-
-  /********************************************************
-   * Simulation - End
-   ********************************************************/
-
-  TEST_OK ("End of Simulation");
-  delete _time;
-  cout << "<" << name << "> ............ Stop Simulation" << endl;
-
-  delete in_CLOCK;
-  delete in_NRESET;
-
-  DELETE0_SC_SIGNAL( in_INSERT_VAL );
-  DELETE0_SC_SIGNAL(out_INSERT_ACK );
-  DELETE0_SC_SIGNAL( in_INSERT_DATA);
-  DELETE0_SC_SIGNAL(out_RETIRE_VAL );
-  DELETE0_SC_SIGNAL( in_RETIRE_ACK );
-  DELETE0_SC_SIGNAL(out_RETIRE_DATA);
-  DELETE1_SC_SIGNAL(out_SLOT_VAL   ,_param->_nb_port_slot);
-  DELETE1_SC_SIGNAL(out_SLOT_DATA  ,_param->_nb_port_slot);
-  DELETE0_SC_SIGNAL(out_PTR_WRITE  );
-  DELETE0_SC_SIGNAL(out_PTR_READ   );
-#endif
-
-  delete _Queue;
-#ifdef STATISTICS
-  delete _parameters_statistics;
-#endif
-}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top.cpp	(revision 113)
@@ -0,0 +1,74 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Queue/SelfTest/include/top.h"
+#include "Behavioural/include/Selftest.h"
+
+#define NB_PARAMS 5
+
+#ifdef MTI_SYSTEMC
+SC_MODULE_EXPORT(top);
+#endif
+
+#ifdef MTI_SYSTEMC
+SC_CTOR(top::top)
+#else
+top::top (sc_module_name module_name, int argc, char * argv[])
+#endif
+{
+#ifdef MTI_SYSTEMC
+  // accessing command-line arguments with modelsim
+  int argc;
+  const char * const * argv;
+
+  argc = sc_argc ();
+  argv = sc_argv ();
+#endif
+
+  if (argc != 2+NB_PARAMS)
+    usage (argc, argv);
+
+  uint32_t size_queue     ;
+  uint32_t size_data      ;
+  uint32_t nb_port_slot   ;
+  bool     have_port_write;
+  bool     have_port_read ;
+
+  uint32_t x=1;
+
+  SELFTEST0(name           ,string  ,argv,x);
+  SELFTEST0(size_queue     ,uint32_t,argv,x);
+  SELFTEST0(size_data      ,uint32_t,argv,x);
+  SELFTEST0(nb_port_slot   ,uint32_t,argv,x);
+  SELFTEST0(have_port_write,bool    ,argv,x);
+  SELFTEST0(have_port_read ,bool    ,argv,x);
+
+  _param = new morpheo::behavioural::generic::queue::Parameters
+    (
+      size_queue
+     ,size_data 
+     ,nb_port_slot
+     ,have_port_write
+     ,have_port_read
+//   ,true
+     );
+  
+  // msg(_("%s"),_param.print(0).c_str());
+  
+  // Allocation component
+  allocation ();
+  
+#ifdef MTI_SYSTEMC
+  SC_THREAD(test);
+#endif
+}
+
+top::~top (void)
+{
+  deallocation ();
+  delete _param;
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_allocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_allocation.cpp	(revision 113)
@@ -0,0 +1,101 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Generic/Queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::allocation (void)
+{
+  if (setlocale (LC_ALL, "") == NULL)
+    msgWarning(_("setlocale ko.\n"));
+
+  try 
+    {
+      _param->test();
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msgError(_("<%s> : %s"),name.c_str(),error.what());
+      return;
+    }
+  catch (...)
+    {
+      msgError(_("<%s> : This test must generate a error"),name.c_str());
+      exit (EXIT_FAILURE);
+    }
+
+  _usage = USE_ALL;
+//   _usage = usage_unset(_usage,USE_SYSTEMC              );
+//   _usage = usage_unset(_usage,USE_VHDL                 );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//   _usage = usage_unset(_usage,USE_POSITION             );
+//   _usage = usage_unset(_usage,USE_STATISTICS           );
+//   _usage = usage_unset(_usage,USE_INFORMATION          );
+
+#ifdef STATISTICS
+  if (usage_is_set(_usage,USE_STATISTICS))
+  _param_stat = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
+#endif
+
+  component = new Queue 
+    (name.c_str(),
+#ifdef STATISTICS
+     _param_stat,
+#endif
+     _param,
+     _usage
+     );
+  
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+  /*********************************************************************
+   * Déclarations des signaux
+   *********************************************************************/
+  msgInformation(_("<%s> : Create signal.\n"),name.c_str());
+
+  in_CLOCK  = new sc_clock ("clock", TIME_PERIOD, TIME_UNIT, 0.5); //name,period,time_unit,duty_cycle
+
+  ALLOC0_SC_SIGNAL( in_NRESET     ," in_NRESET"     ,Tcontrol_t);
+
+  ALLOC0_SC_SIGNAL( in_INSERT_VAL , "in_INSERT_VAL" ,Tcontrol_t);
+  ALLOC0_SC_SIGNAL(out_INSERT_ACK ,"out_INSERT_ACK" ,Tcontrol_t);
+  ALLOC0_SC_SIGNAL( in_INSERT_DATA, "in_INSERT_DATA",Tdata_t   );
+  ALLOC0_SC_SIGNAL(out_RETIRE_VAL ,"out_RETIRE_VAL" ,Tcontrol_t);
+  ALLOC0_SC_SIGNAL( in_RETIRE_ACK , "in_RETIRE_ACK" ,Tcontrol_t);
+  ALLOC0_SC_SIGNAL(out_RETIRE_DATA,"out_RETIRE_DATA",Tdata_t   );
+  ALLOC1_SC_SIGNAL(out_SLOT_VAL   ,"out_SLOT_VAL"   ,Tcontrol_t,_param->_nb_port_slot);
+  ALLOC1_SC_SIGNAL(out_SLOT_DATA  ,"out_SLOT_DATA"  ,Tdata_t   ,_param->_nb_port_slot);
+  ALLOC0_SC_SIGNAL(out_PTR_WRITE  ,"out_PTR_WRITE"  ,Tptr_t    );
+  ALLOC0_SC_SIGNAL(out_PTR_READ   ,"out_PTR_READ"   ,Tptr_t    );
+  
+  /********************************************************
+   * Instanciation
+   ********************************************************/
+  
+  msgInformation(_("<%s> : Instanciation of _Queue.\n"),name.c_str());
+
+  INSTANCE0_SC_SIGNAL(component, in_CLOCK);
+  INSTANCE0_SC_SIGNAL(component, in_NRESET);
+
+  INSTANCE0_SC_SIGNAL(component, in_INSERT_VAL );
+  INSTANCE0_SC_SIGNAL(component,out_INSERT_ACK );
+  INSTANCE0_SC_SIGNAL(component, in_INSERT_DATA);
+  INSTANCE0_SC_SIGNAL(component,out_RETIRE_VAL );
+  INSTANCE0_SC_SIGNAL(component, in_RETIRE_ACK );
+  INSTANCE0_SC_SIGNAL(component,out_RETIRE_DATA);
+  INSTANCE1_SC_SIGNAL(component,out_SLOT_VAL   ,_param->_nb_port_slot);
+  INSTANCE1_SC_SIGNAL(component,out_SLOT_DATA  ,_param->_nb_port_slot);
+  if (_param->_have_port_ptr_write)
+  INSTANCE0_SC_SIGNAL(component,out_PTR_WRITE  );
+  if (_param->_have_port_ptr_read )
+  INSTANCE0_SC_SIGNAL(component,out_PTR_READ   );
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_deallocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_deallocation.cpp	(revision 113)
@@ -0,0 +1,33 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+#include "Behavioural/Generic/Queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::deallocation (void)
+{
+#ifdef SYSTEMC
+  delete             in_CLOCK;
+  DELETE0_SC_SIGNAL( in_NRESET);
+
+  DELETE0_SC_SIGNAL( in_INSERT_VAL );
+  DELETE0_SC_SIGNAL(out_INSERT_ACK );
+  DELETE0_SC_SIGNAL( in_INSERT_DATA);
+  DELETE0_SC_SIGNAL(out_RETIRE_VAL );
+  DELETE0_SC_SIGNAL( in_RETIRE_ACK );
+  DELETE0_SC_SIGNAL(out_RETIRE_DATA);
+  DELETE1_SC_SIGNAL(out_SLOT_VAL   ,_param->_nb_port_slot);
+  DELETE1_SC_SIGNAL(out_SLOT_DATA  ,_param->_nb_port_slot);
+  DELETE0_SC_SIGNAL(out_PTR_WRITE  );
+  DELETE0_SC_SIGNAL(out_PTR_READ   );
+#endif
+
+  delete component;
+#ifdef STATISTICS
+  delete _param_stat;
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_test.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_test.cpp	(revision 113)
@@ -0,0 +1,102 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Generic/Queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::test (void)
+{
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+      msgInformation(_("<%s> : Start Simulation ............\n"),name.c_str());
+      
+      Time * _time = new Time();
+      
+      /********************************************************
+       * Simulation - Begin
+       ********************************************************/
+      
+      // Initialisation
+      const  int32_t percent_insert_transaction = 75;
+      const  int32_t percent_retire_transaction = 75;
+      const uint32_t nb_request = 3*_param->_size_queue;
+      
+      const uint32_t seed = 0;
+      //const uint32_t seed = static_cast<uint32_t>(time(NULL));
+      
+      srand(seed);
+      
+      SC_CYCLE(0);
+      LABEL("Initialisation");
+      
+      in_INSERT_VAL -> write(0);
+      in_RETIRE_ACK -> write(0);
+      
+      LABEL("Reset");
+      in_NRESET->write(0);
+      SC_CYCLE(5);
+      in_NRESET->write(1);  
+      
+      LABEL("Loop of Test");
+      
+      uint32_t data_in  = 0;
+      uint32_t data_out = 0;
+      uint32_t nb_elt   = 0;
+      
+      for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
+        {
+          LABEL("Iteration %d",iteration);
+          
+          while (data_out <= nb_request)
+            {
+              in_INSERT_VAL  -> write((rand()%100)<percent_insert_transaction);
+              in_INSERT_DATA -> write(data_in);
+              in_RETIRE_ACK  -> write((rand()%100)<percent_retire_transaction);
+              
+              SC_CYCLE(0); // genMoore
+              
+              for (uint32_t i=0; i<_param->_nb_port_slot; ++i)
+                {
+                  TEST(Tcontrol_t, out_SLOT_VAL [i]->read(), (i<nb_elt));
+                  if (i<nb_elt)
+                    TEST(Tdata_t   , out_SLOT_DATA[i]->read(), data_out+i);
+                  
+                }
+              
+              if ( in_INSERT_VAL->read() and out_INSERT_ACK->read())
+                {
+                  LABEL ("Transaction with interface : INSERT");
+                  data_in ++;
+                  nb_elt ++;
+                }
+              if (out_RETIRE_VAL->read() and  in_RETIRE_ACK->read())
+                {
+                  LABEL ("Transaction with interface : RETIRE");
+                  TEST(Tdata_t, out_RETIRE_DATA->read(), data_out);
+                  data_out++;
+                  nb_elt --;
+                }
+              
+              SC_CYCLE(1);
+            }
+        }
+      
+      /********************************************************
+       * Simulation - End
+       ********************************************************/
+      
+      TEST_OK ("");
+      
+      sc_stop();
+      delete _time;
+      
+      msgInformation(_("<%s> : ............ Stop Simulation\n"),name.c_str());
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_usage.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_usage.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_usage.cpp	(revision 113)
@@ -0,0 +1,28 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Queue/SelfTest/include/top.h"
+
+void top::usage 
+(
+#ifdef MTI_SYSTEMC
+ int argc, const char * const * argv
+#else
+ int argc, char * argv[]
+#endif
+ )
+{
+  msgError (_("<Usage> %s name_instance list_params.\n"),argv[0]);
+  msgError (_("list_params is :\n"));
+  msgError (_(" * size_queue      (uint32_t)\n"));
+  msgError (_(" * size_data       (uint32_t)\n"));
+  msgError (_(" * nb_port_slot    (uint32_t)\n"));
+  msgError (_(" * have_port_write (bool    )\n"));
+  msgError (_(" * have_port_read  (bool    )\n"));
+
+  exit (1);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp	(revision 113)
@@ -21,4 +21,5 @@
                           bool     have_port_ptr_write,
                           bool     have_port_ptr_read ):
+    behavioural::Parameters("Queue"),
     _size_queue          (size_queue),
     _size_data           (size_data ),
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 113)
@@ -33,13 +33,13 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
+    log_begin(Queue,FUNCTION);
+    
+// #if DEBUG_Core == true
+//     log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-#if DEBUG_Core == true
-    log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str());
+//     std::cout << *param << std::endl;
+// #endif    
 
-    std::cout << *param << std::endl;
-#endif    
-
-    log_printf(INFO,Queue,FUNCTION,"Allocation");
+    log_printf(INFO,Queue,FUNCTION,_("<%s> Allocation"),_name.c_str());
     allocation ();
 
@@ -47,5 +47,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Queue,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Queue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 	
 	statistics_declaration(param_statistics);
@@ -57,5 +57,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Queue,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -66,5 +66,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Queue,FUNCTION,"Method - transition");
+	log_printf(INFO,Queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 	
 	SC_METHOD (transition);
@@ -76,5 +76,5 @@
 # endif    
 	
-	log_printf(INFO,Queue,FUNCTION,"Method - genMoore");
+	log_printf(INFO,Queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
 	
 	SC_METHOD (genMoore);
@@ -88,5 +88,5 @@
 #endif
       }
-    log_printf(FUNC,Queue,FUNCTION,"End");
+    log_end(Queue,FUNCTION);
   };
   
@@ -95,10 +95,10 @@
   Queue::~Queue (void)
   {
-    log_printf(FUNC,Queue,FUNCTION,"Begin");
+    log_begin(Queue,FUNCTION);
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Queue,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -106,8 +106,8 @@
 #endif
 
-    log_printf(INFO,Queue,FUNCTION,"Deallocation");
+    log_printf(INFO,Queue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Queue,FUNCTION,"End");
+    log_end(Queue,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 113)
@@ -9,10 +9,8 @@
 #include "Behavioural/include/Allocation.h"
 
-namespace morpheo                    {
+namespace morpheo {
 namespace behavioural {
 namespace generic {
 namespace queue {
-
-
 
 #undef  FUNCTION
@@ -25,5 +23,5 @@
 
     Entity * entity = _component->set_entity (_name       
-					      ,"Queue"
+					      ,_param->_type
 #ifdef POSITION
 					      ,COMBINATORY 
@@ -111,5 +109,4 @@
 }; // end namespace queue
 }; // end namespace generic
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp	(revision 113)
@@ -21,8 +21,8 @@
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
-    if (usage_is_set(_usage,USE_SYSTEMC))
+//     if (usage_is_set(_usage,USE_SYSTEMC))
       { 
-	delete    in_CLOCK ;
-	delete    in_NRESET;
+        DELETE0_SIGNAL( in_CLOCK ,1);
+        DELETE0_SIGNAL( in_NRESET,1);
 
         DELETE0_SIGNAL( in_INSERT_VAL                        ,1);
@@ -41,6 +41,9 @@
         if (_param->_have_port_ptr_read )
         DELETE0_SIGNAL(out_PTR_READ    ,_param->_size_ptr);
+      }
 	
-        // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+      if (usage_is_set(_usage,USE_SYSTEMC))
+      { 
+        // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
         delete _queue_control;
         delete _queue_data;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics_declaration.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_statistics_declaration.cpp	(revision 113)
@@ -21,5 +21,5 @@
 
     _stat = new Stat (static_cast<std::string>(_name),
-                      "Queue",
+                      _param->_type,
                       param_statistics);
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile	(revision 113)
@@ -8,12 +8,14 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../..
+DIR_COMPONENT			= ./
+include				$(DIR_COMPONENT)/Makefile.defs
 
 #-----[ Library ]------------------------------------------
 LIBRARY				= $(DIR_LIB)/libQueue_Control.a
 
+
 #-----[ include ]------------------------------------------
 
-all				: $(LIBRARY_NEED)
+all				:
 				@$(MAKE) all_component
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile.defs	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile.defs	(revision 113)
@@ -0,0 +1,13 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+ENTITY				= Queue_Control
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT_MORPHEO		= ../../..
+DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile.deps	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue_Control/Makefile.deps	(revision 113)
@@ -2,5 +2,5 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
@@ -8,18 +8,28 @@
 # DIR_MORPHEO must be defined
 
-Queue_Control			= yes
+Queue_Control  	   		= yes
 
-#-----[ Library ]------------------------------------------
-Queue_Control_LIBRARY		= -lQueue_Control
+ifndef Behavioural
+include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
+endif
 
-Queue_Control_DIR_LIBRARY	= -L$(DIR_MORPHEO)/Behavioural/Generic/Queue_Control/lib
+#-----[ Library ]------------------------------------------
+Queue_Control_LIBRARY		= 	-lQueue_Control	\
+				$(Behavioural_LIBRARY)	
 
-#-----[ Rules ]--------------------------------------------
+Queue_Control_DIR_LIBRARY	=	-L$(DIR_MORPHEO)/Behavioural/Generic/Queue_Control/lib	\
+				$(Behavioural_DIR_LIBRARY)
+
+#-----[ Rules ]--------------------------------------------
+
+#.NOTPARALLEL			: Queue_Control_library Queue_Control_library_clean
 
 Queue_Control_library		:
 				@\
-				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Queue_Control --makefile=Makefile ;
-	
+				$(MAKE) Behavioural_library;\
+				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Queue_Control --makefile=Makefile;
+
 Queue_Control_library_clean	:
 				@\
+				$(MAKE) Behavioural_library_clean;\
 				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Queue_Control --makefile=Makefile clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = RegisterFile
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = RegisterFile_Monolithic
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp	(revision 113)
@@ -159,5 +159,5 @@
       while (nb_ack < _param->_nb_word)
 	{
-	  cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl;
+	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 
 	  for (uint32_t num_port=0; num_port < _param->_nb_port_write; num_port ++)
@@ -232,5 +232,5 @@
       while (nb_ack < _param->_nb_word)
 	{
-	  cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl;
+	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 	  
 	  for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = RegisterFile_Multi_Banked
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 113)
@@ -136,5 +136,5 @@
       while (nb_ack < nb_request)
 	{
-	  cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl;
+	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 
 	  for (uint32_t num_port=0; num_port < _param->_nb_port_write; num_port ++)
@@ -183,5 +183,5 @@
 	while (nb_ack < nb_request)
 	  {
-	    cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl;
+	    cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 	    
 	    for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp	(revision 113)
@@ -136,5 +136,5 @@
       while (nb_ack < nb_request)
 	{
-	  cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl;
+	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 
 	  for (uint32_t num_port=0; num_port < _param->_nb_port_write; num_port ++)
@@ -184,5 +184,5 @@
 	  while (nb_ack < nb_request)
 	    {
-	      cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl;
+	      cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 	      
 	      for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Select_Priority_Fixed
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp	(revision 113)
@@ -108,7 +108,7 @@
  
   sc_start(0);
-//cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
+//cout << "{"+toString(static_cast<uint32_t>(simulation_cycle()))+"} Initialisation" << endl;
 
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl;
+  cout << "{"+toString(static_cast<uint32_t>(simulation_cycle()))+"} Loop of Test" << endl;
 
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Shifter
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration.cfg	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration.cfg	(revision 113)
@@ -0,0 +1,7 @@
+Shifter
+16	16	*4	# size_data  
+1	2	+1	# nb_port    
+0	2	+1	# shift_value
+0	0	+1	# rotate     
+0	2	+1	# direction  
+0	2	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp	(revision 113)
@@ -147,5 +147,5 @@
 	  if (param._have_shift_logic_left)
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Test    Shift   Left  Logic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} Test    Shift   Left  Logic" << endl;
 	      direction = _left ;
 	      type      = _shift;
@@ -156,5 +156,5 @@
 	  else
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} No Test Shift   Left  Logic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} No Test Shift   Left  Logic" << endl;
 	      continue;
 	    }
@@ -162,5 +162,5 @@
 	  if (param._have_shift_logic_right)
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Test    Shift   Right Logic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} Test    Shift   Right Logic" << endl;
 	      direction = _right;
 	      type      = _shift;
@@ -171,5 +171,5 @@
 	  else
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} No Test Shift   Right Logic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} No Test Shift   Right Logic" << endl;
 	      continue;
 	    }
@@ -177,5 +177,5 @@
 	  if (param._have_shift_arithmetic_left)
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Test    Shift   Left  Arithmetic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} Test    Shift   Left  Arithmetic" << endl;
 	      direction = _left      ;
 	      type      = _shift     ;
@@ -186,5 +186,5 @@
 	  else
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} No Test Shift   Left  Arithmetic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} No Test Shift   Left  Arithmetic" << endl;
 	      continue;
 	    }
@@ -192,5 +192,5 @@
 	  if (param._have_shift_arithmetic_right)
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Test    Shift   Right Arithmetic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} Test    Shift   Right Arithmetic" << endl;
 	      direction = _right;
 	      type      = _shift;
@@ -201,5 +201,5 @@
 	  else
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} No Test Shift   Right Arithmetic" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} No Test Shift   Right Arithmetic" << endl;
 	      continue;
 	    }
@@ -207,5 +207,5 @@
 	  if ( param._have_rotate_left)
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Test    Rotate  Left" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} Test    Rotate  Left" << endl;
 	      direction = _left  ;
 	      type      = _rotate;
@@ -216,5 +216,5 @@
 	  else
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} No Test Rotate  Left" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} No Test Rotate  Left" << endl;
 	      continue;
 	    }
@@ -222,5 +222,5 @@
 	  if (param._have_rotate_right)
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} Test    Rotate  Right" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} Test    Rotate  Right" << endl;
 	      direction = _right;
 	      type      = _rotate;
@@ -231,5 +231,5 @@
 	  else
 	    {
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "} No Test Rotate  Right" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "} No Test Rotate  Right" << endl;
 	      continue;
 	    }
@@ -283,5 +283,5 @@
 	      sc_start(0);
 	      
-	      cout << "{" << static_cast<uint32_t>(sc_simulation_time()) << "}" << endl;
+	      cout << "{" << static_cast<uint32_t>(simulation_cycle()) << "}" << endl;
 	      
 	      for (uint32_t i=0; i<param._nb_port; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Sort
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Victim
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Victim_Pseudo_LRU
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp	(revision 113)
@@ -119,5 +119,5 @@
     for (uint32_t k=0; k<param._nb_entity; k++)
       {
-	cout << "time : " << static_cast<uint32_t>(sc_simulation_time()) << endl;
+	cout << "time : " << static_cast<uint32_t>(simulation_cycle()) << endl;
 	for (uint32_t i=0; i<param._nb_access; i++)
 	  {
@@ -165,5 +165,5 @@
 	{
 	  
-	  cout << "time : " << static_cast<uint32_t>(sc_simulation_time()) << endl;
+	  cout << "time : " << static_cast<uint32_t>(simulation_cycle()) << endl;
 	  for (uint32_t i=0; i<param._nb_access; i++)
 	    {
