Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: Counter_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/src/test.cpp	(revision 88)
@@ -37,4 +37,14 @@
 #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
@@ -42,5 +52,5 @@
 #endif
 				    param,
-				    USE_ALL);
+				    _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Counter.h	(revision 88)
@@ -85,8 +85,8 @@
   public  :          ~Counter             (void);
 					       
-#ifdef SYSTEMC				       
   private : void     allocation                (void);
   private : void     deallocation              (void);
 					       
+#ifdef SYSTEMC				       
 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void     transition                (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h	(revision 88)
@@ -29,6 +29,8 @@
   public : Parameters  (uint32_t size_data,
 			uint32_t nb_port  );
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
+
+  public :        void             copy       (void);
 
   public :        Parameters_test  msg_error  (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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter.cpp	(revision 88)
@@ -32,40 +32,61 @@
     log_printf(FUNC,Counter,"Counter","Begin");
 
-#ifdef SYSTEMC
+#if DEBUG_Counter == true
+    log_printf(INFO,Counter,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << param << std::endl;
+#endif    
+
+    log_printf(INFO,Core,FUNCTION,_("<%s> Allocation"),_name.c_str());
     allocation ();
-#endif
 
 #ifdef STATISTICS
-    // Allocation of statistics
-    statistics_declaration(param_statistics);
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {	
+	log_printf(INFO,Core,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
+
+        // Allocation of statistics
+        statistics_declaration(param_statistics);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    vhdl();
+    if (usage_is_set(_usage,USE_VHDL))
+      {
+	// generate the vhdl
+	log_printf(INFO,Core,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
+	
+        vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
 
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    SC_METHOD (transition);
-    dont_initialize ();
-    sensitive << (*(in_CLOCK)).pos();
+	log_printf(INFO,Core,FUNCTION,_("<%s> Method - transition"),_name.c_str());
+
+        SC_METHOD (transition);
+        dont_initialize ();
+        sensitive << (*(in_CLOCK)).pos();
 #endif
 
-    SC_METHOD (genMealy);
-    dont_initialize ();
-    for (uint32_t i=0; i<_param._nb_port; i++)
-      sensitive << *(in_COUNTER_DATA   [i])
-		<< *(in_COUNTER_ADDSUB [i]);
-
+	log_printf(INFO,Core,FUNCTION,_("<%s> Method - genMealy"),_name.c_str());
+        SC_METHOD (genMealy);
+        dont_initialize ();
+        for (uint32_t i=0; i<_param._nb_port; i++)
+          sensitive << *(in_COUNTER_DATA   [i])
+                    << *(in_COUNTER_ADDSUB [i]);
+        
 #ifdef SYSTEMCASS_SPECIFIC
-    // List dependency information
-    for (uint32_t i=0; i<_param._nb_port; i++)
-      {
-	(*(out_COUNTER_DATA [i])) (*(in_COUNTER_DATA   [i]));
-	(*(out_COUNTER_DATA [i])) (*(in_COUNTER_ADDSUB [i]));
+        // List dependency information
+        for (uint32_t i=0; i<_param._nb_port; i++)
+          {
+            (*(out_COUNTER_DATA [i])) (*(in_COUNTER_DATA   [i]));
+            (*(out_COUNTER_DATA [i])) (*(in_COUNTER_ADDSUB [i]));
+          }
+#endif    
       }
-#endif    
 
 #endif
@@ -76,11 +97,15 @@
   {
     log_printf(FUNC,Counter,"~Counter","Begin");
-#ifdef SYSTEMC
-    deallocation ();
+
+#ifdef STATISTICS
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {
+        delete _stat;
+      }
 #endif
 
-#ifdef STATISTICS
-    delete _stat;
-#endif
+    log_printf(INFO,Core,FUNCTION,_("<%s> Deallocation"),_name.c_str());
+    deallocation ();
+
     log_printf(FUNC,Counter,"~Counter","End");
   };
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_allocation.cpp	(revision 88)
@@ -1,7 +1,6 @@
-#ifdef SYSTEMC
 /*
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -29,5 +28,5 @@
     _interfaces = entity->set_interfaces();
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
       Interface * interface = _interfaces->set_interface(""
@@ -43,5 +42,5 @@
     }
 
-    // ~~~~~[ Interface : "counter" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "counter" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      {
         in_COUNTER_DATA  = new SC_IN (Tdata_t)    * [_param._nb_port];
@@ -64,9 +63,11 @@
 	 }
      }
+
 #ifdef POSITION
-    _component->generate_file();
+     if (usage_is_set(_usage,USE_POSITION))
+       _component->generate_file();
 #endif
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
     log_printf(FUNC,Counter,"allocation","End");
   };
@@ -77,3 +78,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_deallocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -19,11 +18,14 @@
     log_printf(FUNC,Counter,"deallocation","Begin");
 
-    delete     in_CLOCK;
-    delete     in_NRESET;
-    
-    delete []  in_COUNTER_DATA  ;
-    delete []  in_COUNTER_ADDSUB;
-    delete [] out_COUNTER_DATA  ;
-    
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
+        delete     in_CLOCK;
+        delete     in_NRESET;
+        
+        delete []  in_COUNTER_DATA  ;
+        delete []  in_COUNTER_ADDSUB;
+        delete [] out_COUNTER_DATA  ;
+      }
+
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
@@ -38,3 +40,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_end_cycle.cpp	(revision 88)
@@ -20,5 +20,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -26,5 +27,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp	(revision 88)
@@ -25,13 +25,13 @@
   };
   
-  Parameters::Parameters (Parameters & param):
-    _size_data(param._size_data),
-    _nb_port  (param._nb_port  ),
-    _data_max (param._data_max )
-  {
-    log_printf(FUNC,Counter,"Parameters","Begin");
-    test();
-    log_printf(FUNC,Counter,"Parameters","End");
-  };
+//   Parameters::Parameters (Parameters & param):
+//     _size_data(param._size_data),
+//     _nb_port  (param._nb_port  ),
+//     _data_max (param._data_max )
+//   {
+//     log_printf(FUNC,Counter,"Parameters","Begin");
+//     test();
+//     log_printf(FUNC,Counter,"Parameters","End");
+//   };
 
   Parameters::~Parameters () 
@@ -41,7 +41,12 @@
   };
 
+  void Parameters::copy (void) 
+  {
+    log_printf(FUNC,Counter,"copy","Begin");
+    log_printf(FUNC,Counter,"copy","End");
+  };
+
 }; // end namespace counter
 }; // end namespace generic
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile	(revision 88)
@@ -0,0 +1,24 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT			= ./
+include				$(DIR_COMPONENT)/Makefile.defs
+
+#-----[ Library ]------------------------------------------
+LIBRARY				= $(DIR_LIB)/libPriority.a
+
+
+#-----[ include ]------------------------------------------
+
+all				:
+				@$(MAKE) all_component
+
+include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Common
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Component
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.defs	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.defs	(revision 88)
@@ -0,0 +1,11 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT_MORPHEO		= ../../..
+DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.deps	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/Makefile.deps	(revision 88)
@@ -0,0 +1,37 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+# DIR_MORPHEO must be defined
+
+Priority			= yes
+ifndef Common
+include 			$(DIR_MORPHEO)/Common/Makefile.deps
+endif
+
+#-----[ Directory ]----------------------------------------
+
+Priority_DIR			=	$(DIR_MORPHEO)/Behavioural/Generic/Priority
+
+#-----[ Library ]------------------------------------------
+
+Priority_LIBRARY		= 	-lPriority\
+					$(Common_LIBRARY)	
+
+Priority_DIR_LIBRARY		=	-L$(Priority_DIR)/lib\
+					$(Common_DIR_LIBRARY)
+
+#-----[ Rules ]--------------------------------------------
+
+Priority_library		:
+				@\
+				$(MAKE) --directory=$(Priority_DIR) --makefile=Makefile;\
+				$(MAKE) Common_library;
+
+Priority_library_clean	:
+				@\
+				$(MAKE) --directory=$(Priority_DIR) --makefile=Makefile clean;\
+				$(MAKE) Common_library_clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/Makefile	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/Makefile	(revision 88)
@@ -0,0 +1,32 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT			= ../
+include				$(DIR_COMPONENT)/Makefile.defs
+
+LIBRARY				= $(Priority_LIBRARY)
+
+DIR_LIBRARY			= $(Priority_DIR_LIBRARY)
+
+#-----[ include ]------------------------------------------
+
+all				:
+				@$(MAKE) all_selftest
+
+library				: Priority_library
+
+library_clean			: Priority_library_clean
+
+local_clean			:
+
+include                         $(DIR_COMPONENT)/Makefile.deps
+include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Common
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Selftest
+include 			$(DIR_MORPHEO)/Behavioural/Makefile.Synthesis
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_mono_gpr.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_mono_gpr.cfg	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_mono_gpr.cfg	(revision 88)
@@ -0,0 +1,6 @@
+Priority
+0	1	+1	# priority      
+0	1	+1	# load_balancing
+1	1	+1	# nb_grp                 
+1	16	*4	# nb_elt         [0] [nb_grp]
+1	1	+1	# nb_grp_select          
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_multi_gpr.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_multi_gpr.cfg	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_multi_gpr.cfg	(revision 88)
@@ -0,0 +1,9 @@
+Priority
+0	1	+1	# priority      
+0	1	+1	# load_balancing
+4	4	+1	# nb_grp                 
+4	4	*4	# nb_elt         [0] [nb_grp]
+1	1	*4	# nb_elt         [1] [nb_grp]
+16	16	*4	# nb_elt         [2] [nb_grp]
+2	2	*4	# nb_elt         [3] [nb_grp]
+1	4	+1	# nb_grp_select          
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/include/test.h	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/include/test.h	(revision 88)
@@ -0,0 +1,24 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test "RegisterFile"
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#define NB_ITERATION  1
+#define CYCLE_MAX     (1024*NB_ITERATION)
+
+#include "Common/include/Test.h"
+#include "Common/include/Time.h"
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::generic;
+using namespace morpheo::behavioural::generic::priority;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/src/main.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/src/main.cpp	(revision 88)
@@ -0,0 +1,102 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/SelfTest/include/test.h"
+
+#define NB_PARAMS 4
+
+void usage (int argc, char * argv[])
+{
+  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
+  err (_("list_params is :\n"));
+  err (_(" * priority                (Tpriority_t      )\n"));
+  err (_(" * load_balancing          (Tload_balancing_t)\n"));
+  err (_(" * nb_grp                  (uint32_t         )\n"));
+  err (_(" * nb_elt         [nb_grp] (uint32_t         )\n"));
+  err (_(" * nb_grp_select           (uint32_t         )\n"));
+
+  exit (1);
+}
+
+#ifndef SYSTEMC
+int main    (int argc, char * argv[])
+#else
+int sc_main (int argc, char * argv[])
+#endif
+{
+  if (argc <= static_cast<int>(2+NB_PARAMS))
+    usage (argc, argv);
+
+  uint32_t x = 1;
+
+  string name = argv[x++];
+  Tpriority_t       _priority       = fromString<Tpriority_t      >(argv[x++]);
+  Tload_balancing_t _load_balancing = fromString<Tload_balancing_t>(argv[x++]);
+
+  uint32_t          _nb_grp         = fromString<uint32_t         >(argv[x++]);
+
+  if (argc != static_cast<int>(2+NB_PARAMS+_nb_grp))
+    usage (argc, argv);
+
+  uint32_t        * _nb_elt = new uint32_t [_nb_grp];
+  for (uint32_t i=0; i<_nb_grp; i++)
+    _nb_elt [i] = fromString<uint32_t>(argv[x++]);
+
+  uint32_t          _nb_grp_select  = fromString<uint32_t         >(argv[x++]);
+
+  int _return = EXIT_SUCCESS;
+  try 
+    {
+      Priority * _Priority = new Priority 
+	(name.c_str(),
+	 _priority,
+	 _load_balancing,
+	 _nb_grp       ,
+	 _nb_elt       ,
+	 _nb_grp_select);
+      
+      _Priority->reset();
+
+
+      std::list<select_t> * select;
+
+      for (uint32_t i=0; i<32; i++)
+	{
+	  msg("Iteration [%d]\n",i);
+	  _Priority->transition();
+	  select = _Priority->select();
+	  for (std::list<select_t>::iterator it = select->begin();
+	       it != select->end();
+	       it ++)
+	    {
+	      msg("  - [%d] %d\n",(*it).grp, (*it).elt);
+	    }
+	}
+
+      delete _Priority;
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
+    }
+  
+  try 
+    {
+      if (_return == EXIT_SUCCESS)
+	TEST_OK("Priority : no error");
+      else
+	TEST_KO("Priority : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
+    }
+
+  return (_return);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/Makefile	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/Makefile	(revision 88)
@@ -0,0 +1,19 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT			= ../
+include				$(DIR_COMPONENT)/Makefile.defs
+
+#-----[ include ]------------------------------------------
+
+all				:
+				$(MAKE) all_documentation
+
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Common
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Documentation
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/Priority.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/Priority.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/Priority.tex	(revision 88)
@@ -0,0 +1,42 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\documentclass[10pt,a4paper,twocolumn]{article}
+
+\def\dirdoc{tex}
+\def\dirschema{eps}
+
+% Package de variables d'environnement : Titre, command etc ...
+\usepackage{../../../../Behavioural/doc/sty/doc-style}
+\usepackage{sty/header}
+
+
+%------------------------------------------------------------------------------
+% Début document
+%------------------------------------------------------------------------------
+
+\pagestyle{empty}
+
+\begin{document}
+
+% Créez une page de titre
+\maketitle
+\thispagestyle{empty}
+
+%Table des matières et des figures
+%\tableofcontents
+%\newpage
+%\listoffigures
+
+%------------------------------------------------------------------------------
+% Ajout du corps du documents
+%------------------------------------------------------------------------------
+
+\input{tex/root}
+
+%------------------------------------------------------------------------------
+% Fin d'ajout du corps du document
+%------------------------------------------------------------------------------
+
+\end{document}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/sty/header.sty
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/sty/header.sty	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/sty/header.sty	(revision 88)
@@ -0,0 +1,16 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\def\review{YYYY/MM/DD}
+%\def\review{\number\day/\number\month/\number\year\xspace}
+
+\title{Priority}
+ 
+\author{}
+
+\affiliation{}
+
+\email{}
+
+\date{\review}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/01_introduction.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/01_introduction.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/01_introduction.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Introduction}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/02_features.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/02_features.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/02_features.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Features}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/03_description.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/03_description.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/03_description.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Functional Description}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/04_pinout.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/04_pinout.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/04_pinout.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Pin out}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/05_parameters.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/05_parameters.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/05_parameters.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Parameters}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/06_performance.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/06_performance.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/06_performance.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Performance}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/07_details.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/07_details.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/07_details.tex	(revision 88)
@@ -0,0 +1,5 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Details}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/08_history.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/08_history.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/08_history.tex	(revision 88)
@@ -0,0 +1,14 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\Section{Revision History}
+
+\begin{tabular}{|c|c|c|}
+\hline
+Revision Date & By  & Modifications\\
+\hline
+\hline
+yyyy/mm/dd    & xxx & Initial document \\
+\hline
+\end{tabular}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/root.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/root.tex	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/doc/tex/root.tex	(revision 88)
@@ -0,0 +1,12 @@
+%------------------------------------------------------------------------------
+% $Id$
+%------------------------------------------------------------------------------
+
+\input{\dirdoc/01_introduction}
+\input{\dirdoc/02_features}
+\input{\dirdoc/03_description}
+\input{\dirdoc/04_pinout}
+\input{\dirdoc/05_parameters}
+\input{\dirdoc/06_performance}
+\input{\dirdoc/07_details}
+\input{\dirdoc/08_history}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Priority.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Priority.h	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Priority.h	(revision 88)
@@ -0,0 +1,98 @@
+#ifndef morpheo_behavioural_generic_priority_Priority_h
+#define morpheo_behavioural_generic_priority_Priority_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Types.h"
+#include "Common/include/ToString.h"
+#include "Common/include/Debug.h"
+#include <list>
+#include <iostream>
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace priority {
+
+
+  class Priority 
+  {
+    // -----[ fields ]----------------------------------------------------
+    // Parameters
+  protected: const std::string   _name          ;
+  private  : Tpriority_t         _priority      ;
+  private  : Tload_balancing_t   _load_balancing;
+  private  : uint32_t            _nb_grp        ;
+  private  : uint32_t          * _nb_elt        ;//[nb_grp]
+  private  : uint32_t            _nb_grp_select ;
+  private  : uint32_t            _max_nb_elt    ;
+
+  private  : void (morpheo::behavioural::generic::priority::Priority::*reset_priority           ) (void);
+  private  : void (morpheo::behavioural::generic::priority::Priority::*reset_load_balancing     ) (void);
+
+  private  : void (morpheo::behavioural::generic::priority::Priority::*transition_priority      ) (void);
+  private  : void (morpheo::behavioural::generic::priority::Priority::*transition_load_balancing) (void);
+
+  private  : uint32_t            reg_GRP_PRIORITY;
+  private  : std::list<select_t> _select;
+
+    // -----[ method ]----------------------------------------------------
+  public  :           Priority (std::string       name,
+				Tpriority_t       priority      ,
+				Tload_balancing_t load_balancing,
+				uint32_t          nb_grp        ,
+				uint32_t        * nb_elt        ,//[nb_grp]
+				uint32_t          nb_grp_select
+				);
+  public  :           Priority (std::string       name,
+				Tpriority_t       priority      ,
+				uint32_t          nb_grp        ,
+				uint32_t          nb_grp_select
+				);
+
+  public  :           Priority (std::string       name,
+				Tpriority_t       priority      ,
+				uint32_t          nb_grp        
+				);
+
+  public  :          ~Priority (void);
+
+  public  : void     allocation                                     (void);
+  public  : void     deallocation                                   (void);
+					       
+  public  : void     reset                                          (void);
+  public  : void     transition                                     (void);
+
+  public  : void     reset_priority_none                            (void);
+  public  : void     reset_priority_static                          (void);
+  public  : void     reset_priority_round_robin                     (void);
+
+  public  : void     reset_load_balancing_none                      (void);
+  public  : void     reset_load_balancing_priority_only             (void);
+  public  : void     reset_load_balancing_balance                   (void);
+  public  : void     reset_load_balancing_maximum_for_priority      (void);
+
+  public  : void     transition_priority_none                       (void);
+  public  : void     transition_priority_static                     (void);
+  public  : void     transition_priority_round_robin                (void);
+
+  public  : void     transition_load_balancing_none                 (void);
+  public  : void     transition_load_balancing_priority_only        (void);
+  public  : void     transition_load_balancing_balance              (void);
+  public  : void     transition_load_balancing_maximum_for_priority (void);
+
+  public  : std::list<select_t> * select (void);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Types.h	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/include/Types.h	(revision 88)
@@ -0,0 +1,36 @@
+#ifndef morpheo_behavioural_generic_priority_Types_h
+#define morpheo_behavioural_generic_priority_Types_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Types.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace priority {
+
+  class select_t
+  {
+  public : uint32_t grp ;
+  public : uint32_t elt;
+    
+  public : select_t (uint32_t grp,
+		     uint32_t elt)
+    {
+      this->grp = grp;
+      this->elt = elt;
+    }
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority.cpp	(revision 88)
@@ -0,0 +1,101 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+#include "Common/include/Max.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::Priority"
+  Priority::Priority (std::string       name,
+		      Tpriority_t       priority      ,
+		      Tload_balancing_t load_balancing,
+		      uint32_t          nb_grp        ,
+		      uint32_t        * nb_elt        ,//[nb_grp]
+		      uint32_t          nb_grp_select
+		      ):
+    _name              (name)
+  {
+    log_begin(Priority,FUNCTION);
+
+    _priority       = priority      ;
+    _load_balancing = load_balancing;
+    _nb_grp         = nb_grp        ;
+    _nb_elt         = nb_elt     ;
+    _nb_grp_select  = nb_grp_select ;
+    _max_nb_elt     = max<uint32_t>(_nb_elt,_nb_grp);
+
+    allocation();
+
+    log_end(Priority,FUNCTION);
+  };
+
+#undef  FUNCTION
+#define FUNCTION "Priority::Priority"
+  Priority::Priority (std::string       name,
+		      Tpriority_t       priority      ,
+		      uint32_t          nb_grp        ,
+		      uint32_t          nb_grp_select
+		      ):
+    _name              (name)
+  {
+    log_begin(Priority,FUNCTION);
+
+    _priority       = priority   ;
+    _load_balancing = LOAD_BALANCING_MAXIMUM_FOR_PRIORITY;
+    _nb_grp         = nb_grp     ;
+//  _nb_elt         = nb_elt     ;
+    _nb_grp_select  = nb_grp_select ;
+    _max_nb_elt     = 1;
+
+    allocation();
+
+    log_end(Priority,FUNCTION);
+  };
+
+#undef  FUNCTION
+#define FUNCTION "Priority::Priority"
+  Priority::Priority (std::string       name,
+		      Tpriority_t       priority      ,
+		      uint32_t          nb_grp        
+		      ):
+    _name              (name)
+  {
+    log_begin(Priority,FUNCTION);
+
+    _priority       = priority   ;
+    _load_balancing = LOAD_BALANCING_MAXIMUM_FOR_PRIORITY;
+    _nb_grp         = nb_grp     ;
+//  _nb_elt         = nb_elt     ;
+    _nb_grp_select  = nb_grp     ;
+    _max_nb_elt     = 1;
+
+    allocation();
+
+    log_end(Priority,FUNCTION);
+  };
+    
+#undef  FUNCTION
+#define FUNCTION "Priority::~Priority"
+  Priority::~Priority (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    deallocation ();
+
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_allocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_allocation.cpp	(revision 88)
@@ -0,0 +1,70 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::allocation"
+  void Priority::allocation (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    if (_nb_grp == 1)
+      {
+	reset_priority      = &morpheo::behavioural::generic::priority::Priority::reset_priority_none     ;
+	transition_priority = &morpheo::behavioural::generic::priority::Priority::transition_priority_none;
+      }
+    else
+      switch (_priority)
+	{
+	case PRIORITY_STATIC      : {reset_priority      = &morpheo::behavioural::generic::priority::Priority::reset_priority_static          ;
+	                             transition_priority = &morpheo::behavioural::generic::priority::Priority::transition_priority_static     ;
+				     break;}
+	case PRIORITY_ROUND_ROBIN : {reset_priority      = &morpheo::behavioural::generic::priority::Priority::reset_priority_round_robin     ;
+	                             transition_priority = &morpheo::behavioural::generic::priority::Priority::transition_priority_round_robin;
+				     break;}
+	default: {throw ERRORMORPHEO(FUNCTION,_("Unknow Priority scheme.\n"));}
+	}
+
+    if ((_max_nb_elt == 1) and (_nb_grp_select == 1))
+      {
+	reset_load_balancing      = &morpheo::behavioural::generic::priority::Priority::reset_load_balancing_none;
+	transition_load_balancing = &morpheo::behavioural::generic::priority::Priority::transition_load_balancing_none;
+      }
+    else
+      {
+	if (_max_nb_elt == 1)
+	  {
+	    reset_load_balancing      = &morpheo::behavioural::generic::priority::Priority::reset_load_balancing_priority_only;
+	    transition_load_balancing = &morpheo::behavioural::generic::priority::Priority::transition_load_balancing_priority_only;
+	  }
+	else
+	  switch (_load_balancing)
+	    {
+	    case LOAD_BALANCING_BALANCE              : {reset_load_balancing      = &morpheo::behavioural::generic::priority::Priority::reset_load_balancing_balance                  ;
+                                                        transition_load_balancing = &morpheo::behavioural::generic::priority::Priority::transition_load_balancing_balance             ;
+							break;}
+	    case LOAD_BALANCING_MAXIMUM_FOR_PRIORITY : {reset_load_balancing      = &morpheo::behavioural::generic::priority::Priority::reset_load_balancing_maximum_for_priority     ;
+                                                        transition_load_balancing = &morpheo::behavioural::generic::priority::Priority::transition_load_balancing_maximum_for_priority;
+							break;}
+	    default: {throw ERRORMORPHEO(FUNCTION,_("Unknow Load Balancing scheme.\n"));}
+	    }
+      }
+    
+
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_deallocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_deallocation.cpp	(revision 88)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::deallocation"
+  void Priority::deallocation (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset.cpp	(revision 88)
@@ -0,0 +1,30 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset"
+  void Priority::reset (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    (this->*reset_priority      ) ();
+    (this->*reset_load_balancing) ();
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_balance.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_balance.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_balance.cpp	(revision 88)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_load_balancing_balance"
+  void Priority::reset_load_balancing_balance (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_maximum_for_priority.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_maximum_for_priority.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_maximum_for_priority.cpp	(revision 88)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_load_balancing_maximum_for_priority"
+  void Priority::reset_load_balancing_maximum_for_priority (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_none.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_none.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_none.cpp	(revision 88)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_load_balancing_none"
+  void Priority::reset_load_balancing_none (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_priority_only.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_priority_only.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_load_balancing_priority_only.cpp	(revision 88)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_load_balancing_priority_only"
+  void Priority::reset_load_balancing_priority_only (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_none.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_none.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_none.cpp	(revision 88)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_priority_none"
+  void Priority::reset_priority_none (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    reg_GRP_PRIORITY = 0;
+
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_round_robin.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_round_robin.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_round_robin.cpp	(revision 88)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_priority_round_robin"
+  void Priority::reset_priority_round_robin (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    reg_GRP_PRIORITY = 0;
+	
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_static.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_static.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_reset_priority_static.cpp	(revision 88)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::reset_priority_static"
+  void Priority::reset_priority_static (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    reg_GRP_PRIORITY = 0;
+
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_select.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_select.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_select.cpp	(revision 88)
@@ -0,0 +1,31 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::select"
+  std::list<select_t> * Priority::select (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    std::list<select_t> * _return = &_select;
+
+    log_end(Priority,FUNCTION);
+
+    return _return;
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition.cpp	(revision 88)
@@ -0,0 +1,31 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition"
+  void Priority::transition (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    (this->*transition_priority      ) ();
+    _select.clear(); // flush list
+    (this->*transition_load_balancing) ();
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_balance.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_balance.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_balance.cpp	(revision 88)
@@ -0,0 +1,37 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_load_balancing_balance"
+  void Priority::transition_load_balancing_balance (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    for (uint32_t j=0; j<_max_nb_elt; j++)
+      for (uint32_t i=0; i<_nb_grp_select; i++)
+	{
+	  uint32_t x=(reg_GRP_PRIORITY+i)%_nb_grp;
+	  
+	  // Test valid elt
+	  if (j < _nb_elt[x])
+	    _select.push_back(select_t(x,j));
+	}
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_maximum_for_priority.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_maximum_for_priority.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_maximum_for_priority.cpp	(revision 88)
@@ -0,0 +1,35 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_load_balancing_maximum_for_priority"
+  void Priority::transition_load_balancing_maximum_for_priority (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    for (uint32_t i=0; i<_nb_grp_select; i++)
+      {
+	uint32_t x=(reg_GRP_PRIORITY+i)%_nb_grp;
+	
+	for (uint32_t j=0; j<_nb_elt[x]; j++)
+	  _select.push_back(select_t(x,j));
+      }
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_none.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_none.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_none.cpp	(revision 88)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_load_balancing_none"
+  void Priority::transition_load_balancing_none (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    _select.push_back(select_t(reg_GRP_PRIORITY,0));
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_priority_only.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_priority_only.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_load_balancing_priority_only.cpp	(revision 88)
@@ -0,0 +1,34 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_load_balancing_priority_only"
+  void Priority::transition_load_balancing_priority_only (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    for (uint32_t i=0; i<_nb_grp_select; i++)
+      {
+	uint32_t x=(reg_GRP_PRIORITY+i)%_nb_grp;
+	
+	_select.push_back(select_t(x,0));
+      }
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_none.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_none.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_none.cpp	(revision 88)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_priority_none"
+  void Priority::transition_priority_none (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_round_robin.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_round_robin.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_round_robin.cpp	(revision 88)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_priority_round_robin"
+  void Priority::transition_priority_round_robin (void)
+  {
+    log_begin(Priority,FUNCTION);
+
+    reg_GRP_PRIORITY = (reg_GRP_PRIORITY+1)%_nb_grp;
+    
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_static.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_static.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/src/Priority_transition_priority_static.cpp	(revision 88)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Priority/include/Priority.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace priority {
+  
+#undef  FUNCTION
+#define FUNCTION "Priority::transition_priority_static"
+  void Priority::transition_priority_static (void)
+  {
+    log_begin(Priority,FUNCTION);
+    
+    reg_GRP_PRIORITY = (reg_GRP_PRIORITY+_nb_grp_select)%_nb_grp;
+
+    log_end(Priority,FUNCTION);
+  };
+
+}; // end namespace priority
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: Queue_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/test.cpp	(revision 88)
@@ -22,4 +22,14 @@
 #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(),
@@ -28,5 +38,5 @@
 #endif
      _param,
-     USE_ALL);
+     _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Parameters.h	(revision 88)
@@ -29,6 +29,8 @@
   public : Parameters  (uint32_t size_queue,
 			uint32_t size_data );
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
+
+  public :        void            copy       (void);
 
   public :        Parameters_test msg_error  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp	(revision 88)
@@ -26,18 +26,26 @@
   };
   
+// #undef  FUNCTION
+// #define FUNCTION "Queue::Parameters (copy)"
+//   Parameters::Parameters (Parameters & param):
+//     _size_queue (param._size_queue),
+//     _size_data  (param._size_data )
+//   {
+//     log_printf(FUNC,Queue,FUNCTION,"Begin");
+//     test();
+//     log_printf(FUNC,Queue,FUNCTION,"End");
+//   };
+
 #undef  FUNCTION
-#define FUNCTION "Queue::Parameters (copy)"
-  Parameters::Parameters (Parameters & param):
-    _size_queue (param._size_queue),
-    _size_data  (param._size_data )
+#define FUNCTION "Queue::~Parameters"
+  Parameters::~Parameters () 
   {
     log_printf(FUNC,Queue,FUNCTION,"Begin");
-    test();
     log_printf(FUNC,Queue,FUNCTION,"End");
   };
 
 #undef  FUNCTION
-#define FUNCTION "Queue::~Parameters"
-  Parameters::~Parameters () 
+#define FUNCTION "Queue::copy"
+  void Parameters::copy (void) 
   {
     log_printf(FUNC,Queue,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 88)
@@ -35,9 +35,15 @@
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
+#if DEBUG_Core == true
+    log_printf(INFO,Core,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,Queue,FUNCTION,"Allocation");
     allocation ();
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {	
 	log_printf(INFO,Queue,FUNCTION,"Allocation of statistics");
@@ -48,5 +54,5 @@
 
 #ifdef VHDL
-    if (_usage & USE_VHDL)
+    if (usage_is_set(_usage,USE_VHDL))
       {
 	// generate the vhdl
@@ -58,5 +64,5 @@
 
 #ifdef SYSTEMC
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	log_printf(INFO,Queue,FUNCTION,"Method - transition");
@@ -92,5 +98,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {
 	log_printf(INFO,Queue,FUNCTION,"Generate Statistics file");
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 88)
@@ -75,12 +75,16 @@
     }
      
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
     _queue_control = new morpheo::behavioural::generic::queue_control::Queue_Control::Queue_Control(_param->_size_queue);
     _queue_data    = new Tdata_t [_param->_size_queue];
+      }
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
 
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp	(revision 88)
@@ -20,5 +20,5 @@
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       { 
 	delete    in_CLOCK ;
@@ -33,8 +33,9 @@
 	delete   out_RETIRE_DATA;
 	
+        // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+        delete _queue_control;
+        delete _queue_data;
       }
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-    delete _queue_control;
-    delete _queue_data;
+
     delete _component;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_end_cycle.cpp	(revision 88)
@@ -21,5 +21,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -27,5 +28,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile	(revision 88)
@@ -23,4 +23,6 @@
 library_clean			: RegisterFile_Monolithic_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/debug.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/debug.cfg	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/debug.cfg	(revision 88)
@@ -0,0 +1,6 @@
+RegisterFile_Monolithic
+1	1 	*2	# nb_port_read
+1	1	*2	# nb_port_write
+0	0	*2	# nb_port_read_write
+128 	128	*2	# nb_word
+32	32	*2	# size_word
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp	(revision 88)
@@ -32,4 +32,14 @@
       exit (EXIT_FAILURE);
     }
+
+  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          );
 
 #ifdef STATISTICS
@@ -42,5 +52,5 @@
 #endif
      ,_param
-     ,USE_ALL);
+     ,_usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h	(revision 88)
@@ -34,8 +34,11 @@
 		       uint32_t nb_word      ,
 		       uint32_t size_word    );
-  public : Parameters (Parameters & param) ;
+//   public : Parameters (Parameters & param) ;
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
+
   public :        std::string   print      (uint32_t depth);
   public : friend std::ostream& operator<< (std::ostream& output_stream,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp	(revision 88)
@@ -32,18 +32,23 @@
   };
   
-  Parameters::Parameters (Parameters & param) :
-    _nb_port_read      (param._nb_port_read ),
-    _nb_port_write     (param._nb_port_write),
-    _nb_port_read_write(param._nb_port_read_write),
-    _nb_word           (param._nb_word      ),
-    _size_word         (param._size_word    ),
-    _size_address      (param._size_address ),
-    _have_port_address (param._have_port_address)
+//   Parameters::Parameters (Parameters & param) :
+//     _nb_port_read      (param._nb_port_read ),
+//     _nb_port_write     (param._nb_port_write),
+//     _nb_port_read_write(param._nb_port_read_write),
+//     _nb_word           (param._nb_word      ),
+//     _size_word         (param._size_word    ),
+//     _size_address      (param._size_address ),
+//     _have_port_address (param._have_port_address)
+//   {
+//     test();
+//   };
+
+  Parameters::~Parameters () 
   {
-    test();
   };
 
-  Parameters::~Parameters () 
-  { };
+  void Parameters::copy (void) 
+  { 
+  };
 
 }; // end namespace registerfile_monolithic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 88)
@@ -33,9 +33,15 @@
     log_printf(FUNC,RegisterFile_Monolithic,"RegisterFile_Monolithic","Begin");
 
+#if DEBUG_RegisterFile_Monolithic == true
+    log_printf(INFO,RegisterFile_Monolithic,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,RegisterFile_Monolithic,"RegisterFile_Monolithic","Allocation");
     allocation ();
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       statistics_declaration(param_statistics);
 #endif
@@ -47,5 +53,5 @@
 
 #ifdef SYSTEMC
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	SC_METHOD (transition);
@@ -102,5 +108,5 @@
   {
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       delete _stat;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp	(revision 88)
@@ -120,8 +120,10 @@
 
     // ----- Register
-    reg_DATA = new Tdata_t [_param->_nb_word];
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      reg_DATA = new Tdata_t [_param->_nb_word];
     
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp	(revision 88)
@@ -18,5 +18,5 @@
     delete _component;
 
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	delete    in_CLOCK;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp	(revision 88)
@@ -20,5 +20,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -27,5 +28,6 @@
     
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 88)
@@ -24,5 +24,6 @@
  	  {
 #ifdef STATISTICS
-	    (*_stat_nb_write) ++;
+	    if (usage_is_set(_usage,USE_STATISTICS))
+              (*_stat_nb_write) ++;
 #endif    
 
@@ -49,5 +50,6 @@
 	      {
 #ifdef STATISTICS
-		(*_stat_nb_write) ++;
+		if (usage_is_set(_usage,USE_STATISTICS))
+                  (*_stat_nb_write) ++;
 #endif    
 		
@@ -67,5 +69,6 @@
 	    else
 	      {
-		(*_stat_nb_read) ++;
+		if (usage_is_set(_usage,USE_STATISTICS))
+                  (*_stat_nb_read) ++;
 	      }
 #endif    
@@ -74,7 +77,8 @@
 
 #ifdef STATISTICS
-    for (uint32_t i=0; i<_param->_nb_port_read; i++)
-      if ( PORT_READ(in_READ_VAL [i]) == 1)
-	(*_stat_nb_read) ++;
+    if (usage_is_set(_usage,USE_STATISTICS))
+      for (uint32_t i=0; i<_param->_nb_port_read; i++)
+        if ( PORT_READ(in_READ_VAL [i]) == 1)
+          (*_stat_nb_read) ++;
 #endif    
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: RegisterFile_Multi_Banked_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 88)
@@ -23,4 +23,14 @@
 #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          );
+
   RegisterFile_Multi_Banked * _RegisterFile_Multi_Banked = new RegisterFile_Multi_Banked 
     (name.c_str(),
@@ -29,5 +39,5 @@
 #endif
      _param,
-     USE_ALL);
+     _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 88)
@@ -61,11 +61,14 @@
 			uint32_t    nb_port_write_by_bank,
 			Tcrossbar_t crossbar             );
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
-  public :        std::string   print      (uint32_t depth);
-  public : friend std::ostream& operator<< (std::ostream& output_stream,
-					    morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x);
+
+  public :        std::string     print      (uint32_t depth);
+  public : friend std::ostream&   operator<< (std::ostream& output_stream,
+                                              morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h	(revision 88)
@@ -106,8 +106,8 @@
   public  :          ~RegisterFile_Multi_Banked             (void);
 					       
-#ifdef SYSTEMC				       
   private : void     allocation                (void);
   private : void     deallocation              (void);
 					       
+#ifdef SYSTEMC				       
   private : Taddress_t address_bank                 (Taddress_t address);
   private : Taddress_t address_num_reg              (Taddress_t address);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp	(revision 88)
@@ -87,49 +87,49 @@
   };
   
-  Parameters::Parameters (Parameters & param):
-    _nb_port_read          (param._nb_port_read         ),
-    _nb_port_write         (param._nb_port_write        ),
-    _nb_word               (param._nb_word              ),
-    _size_word             (param._size_word            ),
-    _nb_bank               (param._nb_bank              ),
-    _nb_port_read_by_bank  (param._nb_port_read_by_bank ),
-    _nb_port_write_by_bank (param._nb_port_write_by_bank),
-    _crossbar              (param._crossbar             ),
-    _size_address          (param._size_address         ),
-    _size_address_by_bank  (param._size_address_by_bank ),
-    _bank_shift            (param._bank_shift           ),
-    _bank_mask             (param._bank_mask            ),
-    _num_reg_shift         (param._num_reg_shift        ),
-    _num_reg_mask          (param._num_reg_mask         ),
-    _nb_word_by_bank       (param._nb_word_by_bank      ),
-    _have_port_address     (param._have_port_address     ),
-    _have_bank_port_address(param._have_bank_port_address)
-  {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","Begin");
+//   Parameters::Parameters (Parameters & param):
+//     _nb_port_read          (param._nb_port_read         ),
+//     _nb_port_write         (param._nb_port_write        ),
+//     _nb_word               (param._nb_word              ),
+//     _size_word             (param._size_word            ),
+//     _nb_bank               (param._nb_bank              ),
+//     _nb_port_read_by_bank  (param._nb_port_read_by_bank ),
+//     _nb_port_write_by_bank (param._nb_port_write_by_bank),
+//     _crossbar              (param._crossbar             ),
+//     _size_address          (param._size_address         ),
+//     _size_address_by_bank  (param._size_address_by_bank ),
+//     _bank_shift            (param._bank_shift           ),
+//     _bank_mask             (param._bank_mask            ),
+//     _num_reg_shift         (param._num_reg_shift        ),
+//     _num_reg_mask          (param._num_reg_mask         ),
+//     _nb_word_by_bank       (param._nb_word_by_bank      ),
+//     _have_port_address     (param._have_port_address     ),
+//     _have_bank_port_address(param._have_bank_port_address)
+//   {
+//     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","Begin");
 
-    if (_crossbar == PARTIAL_CROSSBAR)
-      {
-	// All port_src is connected with one port_dest on each bank
+//     if (_crossbar == PARTIAL_CROSSBAR)
+//       {
+// 	// All port_src is connected with one port_dest on each bank
 	
-	_link_port_read_to_bank_read     = new uint32_t [_nb_port_read ];
-// 	_link_port_read_to_num_bank         = new uint32_t [_nb_port_read ];
-	_link_port_write_to_bank_write   = new uint32_t [_nb_port_write];
-// 	_link_port_write_to_num_bank        = new uint32_t [_nb_port_write];
+// 	_link_port_read_to_bank_read     = new uint32_t [_nb_port_read ];
+// // 	_link_port_read_to_num_bank         = new uint32_t [_nb_port_read ];
+// 	_link_port_write_to_bank_write   = new uint32_t [_nb_port_write];
+// // 	_link_port_write_to_num_bank        = new uint32_t [_nb_port_write];
 
-	for (uint32_t i=0; i<_nb_port_read         ;i++)
-	  {
-	    _link_port_read_to_bank_read   [i] = param._link_port_read_to_bank_read     [i];
-// 	    _link_port_read_to_num_bank       [i] = param._link_port_read_to_num_bank    [i];
-	  }
-	for (uint32_t i=0; i<_nb_port_write        ;i++)
-	  {
-	    _link_port_write_to_bank_write [i] = param._link_port_write_to_bank_write    [i];
-// 	    _link_port_write_to_num_bank      [i] = param._link_port_write_to_num_bank   [i];
-	  }
-      }
+// 	for (uint32_t i=0; i<_nb_port_read         ;i++)
+// 	  {
+// 	    _link_port_read_to_bank_read   [i] = param._link_port_read_to_bank_read     [i];
+// // 	    _link_port_read_to_num_bank       [i] = param._link_port_read_to_num_bank    [i];
+// 	  }
+// 	for (uint32_t i=0; i<_nb_port_write        ;i++)
+// 	  {
+// 	    _link_port_write_to_bank_write [i] = param._link_port_write_to_bank_write    [i];
+// // 	    _link_port_write_to_num_bank      [i] = param._link_port_write_to_num_bank   [i];
+// 	  }
+//       }
 
-    test();
-    log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","End");
-  };
+//     test();
+//     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","End");
+//   };
 
   Parameters::~Parameters () 
@@ -147,4 +147,10 @@
   };
 
+  void Parameters::copy (void) 
+  {
+    log_printf(FUNC,RegisterFile_Multi_Banked,"copy","Begin");
+    log_printf(FUNC,RegisterFile_Multi_Banked,"copy","End");
+  };
+
 }; // end namespace registerfile_multi_banked
 }; // end namespace registerfile
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 88)
@@ -14,4 +14,6 @@
 namespace registerfile_multi_banked {
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::RegisterFile_Multi_Banked"
   RegisterFile_Multi_Banked::RegisterFile_Multi_Banked 
   (
@@ -30,27 +32,39 @@
     ,_usage (usage)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Begin");
+    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"Begin");
 
-#ifdef SYSTEMC
-    log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Allocation");
+#if DEBUG_RegisterFile_Multi_Banked == true
+    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
+    std::cout << *param << std::endl;
+#endif    
+
+    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Allocation");
+    
     allocation ();
-#endif
 
 #ifdef STATISTICS
-    log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Allocation of statistics");
-
-    // Allocation of statistics
-    statistics_declaration(param_statistics);
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {	
+        log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Allocation of statistics");
+        
+        // Allocation of statistics
+        statistics_declaration(param_statistics);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Generate the vhdl");
-
-    vhdl();
+    if (usage_is_set(_usage,USE_VHDL))
+      {	
+        // generate the vhdl
+        log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Generate the vhdl");
+        
+        vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {	
     // Function pointer
     if (_param->_crossbar == FULL_CROSSBAR)                             
@@ -67,5 +81,5 @@
       }
 
-    log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Method - transition");
+    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Method - transition");
 
     SC_METHOD (transition);
@@ -77,5 +91,5 @@
 #endif    
 
-    log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Method - genMealy_write");
+    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Method - genMealy_write");
 
     SC_METHOD (genMealy_read);
@@ -129,26 +143,27 @@
       }
 #endif    
-
+      }
 #endif
-    log_printf(FUNC,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","End");
+    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"End");
   };
   
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::~RegisterFile_Multi_Banked"
   RegisterFile_Multi_Banked::~RegisterFile_Multi_Banked (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Begin");
+    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"Begin");
 
 #ifdef STATISTICS
-    log_printf(INFO,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Generate Statistics file");
-    
-    delete _stat;
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {	
+        log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Generate Statistics file");
+        delete _stat;
+      }
 #endif
 
-#ifdef SYSTEMC
-    log_printf(INFO,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Deallocation");
+    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Deallocation");
+    deallocation ();
 
-    deallocation ();
-#endif
-
-    log_printf(FUNC,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","End");
+    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"End");
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 88)
@@ -1,7 +1,6 @@
-#ifdef SYSTEMC
 /*
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -31,5 +30,5 @@
     _interfaces = entity->set_interfaces();
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
       Interface * interface = _interfaces->set_interface(""
@@ -44,5 +43,5 @@
      in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
 
-    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
      in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
@@ -69,5 +68,5 @@
       }
 
-    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
      in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
@@ -94,5 +93,7 @@
       }
 
-    // ~~~~~[ Registers ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
+    // ~~~~~[ Registers ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     reg_DATA = new Tdata_t * [_param->_nb_bank];
@@ -103,13 +104,15 @@
       }
 
-    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     internal_WRITE_VAL     = new bool       [_param->_nb_port_write];
     internal_WRITE_BANK    = new Taddress_t [_param->_nb_port_write];
     internal_WRITE_NUM_REG = new Taddress_t [_param->_nb_port_write];
+      }
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
 
@@ -123,3 +126,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -20,28 +19,31 @@
     log_printf(FUNC,RegisterFile_Multi_Banked,"deallocation","Begin");
 
-    delete in_CLOCK;
-    delete in_NRESET;
-
-    // ----- Interface Read
-    delete []  in_READ_VAL    ;
-    delete [] out_READ_ACK    ;
-    if (_param->_have_port_address == true)
-    delete []  in_READ_ADDRESS;
-    delete [] out_READ_DATA   ;
-
-    // ----- Interface Write
-    delete []  in_WRITE_VAL    ;
-    delete [] out_WRITE_ACK    ;
-    if (_param->_have_port_address == true)
-    delete []  in_WRITE_ADDRESS;
-    delete []  in_WRITE_DATA   ;
-
-    // ----- Register
-    delete [] reg_DATA;
-
-    // ----- Internal
-    delete [] internal_WRITE_VAL;
-    delete [] internal_WRITE_BANK;
-    delete [] internal_WRITE_NUM_REG;
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
+        delete in_CLOCK;
+        delete in_NRESET;
+        
+        // ----- Interface Read
+        delete []  in_READ_VAL    ;
+        delete [] out_READ_ACK    ;
+        if (_param->_have_port_address == true)
+        delete []  in_READ_ADDRESS;
+        delete [] out_READ_DATA   ;
+        
+        // ----- Interface Write
+        delete []  in_WRITE_VAL    ;
+        delete [] out_WRITE_ACK    ;
+        if (_param->_have_port_address == true)
+        delete []  in_WRITE_ADDRESS;
+        delete []  in_WRITE_DATA   ;
+        
+        // ----- Register
+        delete [] reg_DATA;
+        
+        // ----- Internal
+        delete [] internal_WRITE_VAL;
+        delete [] internal_WRITE_BANK;
+        delete [] internal_WRITE_NUM_REG;
+      }       
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
@@ -58,3 +60,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp	(revision 88)
@@ -23,5 +23,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -29,5 +30,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: RegisterFile_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/main.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/main.cpp	(revision 88)
@@ -58,9 +58,11 @@
       if (instance == instance_RegisterFile_Monolithic)
 	{
-	  morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters * param1 = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters (nb_port_read         ,
-																								nb_port_write        ,
-																								0                    ,
-																								nb_word              ,
-																								size_word            );
+	  morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters * param1 = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters 
+            (nb_port_read         ,
+             nb_port_write        ,
+             0                    ,
+             nb_word              ,
+             size_word            
+             );
 	  
 	  param = new morpheo::behavioural::generic::registerfile::Parameters(param1);
@@ -68,12 +70,14 @@
       else
 	{
-	  morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters * param2 = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters (nb_port_read         ,
-																								nb_port_write        ,
-																								nb_word              ,
-																								size_word            ,
-																								nb_bank              ,
-																								nb_port_read_by_bank ,
-																								nb_port_write_by_bank,
-																								crossbar             );
+	  morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters * param2 = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters 
+            (nb_port_read         ,
+             nb_port_write        ,
+             nb_word              ,
+             size_word            ,
+             nb_bank              ,
+             nb_port_read_by_bank ,
+             nb_port_write_by_bank,
+             crossbar             
+             );
 	  
 	  param = new morpheo::behavioural::generic::registerfile::Parameters(param2);
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp	(revision 88)
@@ -22,4 +22,14 @@
 #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          );
+
   RegisterFile * _RegisterFile = new RegisterFile (name.c_str(),
 #ifdef STATISTICS     
@@ -27,5 +37,5 @@
 #endif
 						   _param,
-						   USE_ALL);
+						   _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h	(revision 88)
@@ -40,8 +40,11 @@
   public : Parameters  (morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters * param);
   public : Parameters  (morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters * param);
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
 
+  public :        void             copy       (void);
+
   public :        Parameters_test  msg_error  (void);
+
   public :        std::string   print      (uint32_t depth);
   public : friend std::ostream& operator<< (std::ostream& output_stream,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters.cpp	(revision 88)
@@ -26,5 +26,6 @@
 
     _param_registerfile_monolithic   = param;
-    
+    _param_registerfile_multi_banked = NULL;
+
     test();
 
@@ -43,4 +44,5 @@
     log_printf(FUNC,RegisterFile,"Parameters","Begin");
 
+    _param_registerfile_monolithic   = NULL;
     _param_registerfile_multi_banked = param;
 
@@ -50,20 +52,20 @@
   };
   
-  Parameters::Parameters (Parameters & param):
-    _instance          (param._instance     ),
-    _nb_port_read      (param._nb_port_read ),
-    _nb_port_write     (param._nb_port_write),
-    _nb_word           (param._nb_word      ), 
-    _size_word         (param._size_word    ), 
-    _size_address      (param._size_address ),
-    _have_port_address (param._have_port_address)
-  {
-    log_printf(FUNC,RegisterFile,"Parameters (copy)","Begin");
+//   Parameters::Parameters (Parameters & param):
+//     _instance          (param._instance     ),
+//     _nb_port_read      (param._nb_port_read ),
+//     _nb_port_write     (param._nb_port_write),
+//     _nb_word           (param._nb_word      ), 
+//     _size_word         (param._size_word    ), 
+//     _size_address      (param._size_address ),
+//     _have_port_address (param._have_port_address)
+//   {
+//     log_printf(FUNC,RegisterFile,"Parameters (copy)","Begin");
 
-    _param_registerfile_multi_banked = param._param_registerfile_multi_banked;
-    _param_registerfile_monolithic   = param._param_registerfile_monolithic;
-    test();
-    log_printf(FUNC,RegisterFile,"Parameters (copy)","End");
-  };
+//     _param_registerfile_multi_banked = param._param_registerfile_multi_banked;
+//     _param_registerfile_monolithic   = param._param_registerfile_monolithic;
+//     test();
+//     log_printf(FUNC,RegisterFile,"Parameters (copy)","End");
+//   };
 
   Parameters::~Parameters () 
@@ -73,4 +75,18 @@
   };
 
+  void Parameters::copy (void) 
+  {
+    log_printf(FUNC,RegisterFile,"copy","Begin");
+
+    throw ERRORMORPHEO("RegisterFile::copy",_("Invalid copy"));
+
+//     if (_instance == instance_RegisterFile_Monolithic)
+//       COPY(_param_registerfile_monolithic);
+//     if (_instance == instance_RegisterFile_Multi_Banked)
+//       COPY(_param_registerfile_multi_banked);
+    
+    log_printf(FUNC,RegisterFile,"copy","End");
+  };
+
 }; // end namespace registerfile
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/Makefile	(revision 88)
@@ -23,4 +23,6 @@
 library_clean			: Select_Priority_Fixed_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp	(revision 88)
@@ -18,8 +18,18 @@
   cout << "<" << name << "> : Simulation SystemC" << endl;
 
-
 #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          );
+
   Select_Priority_Fixed * _Select_Priority_Fixed = new Select_Priority_Fixed 
     (name.c_str(),
@@ -28,5 +38,5 @@
 #endif
      _param,
-     USE_ALL);
+     _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h	(revision 88)
@@ -31,8 +31,11 @@
 			bool     encoding_one_hot,
 			bool     encoding_compact);
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
+
   public :        std::string   print      (uint32_t depth);
   public : friend std::ostream& operator<< (std::ostream& output_stream,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h	(revision 88)
@@ -95,8 +95,8 @@
   public  :          ~Select_Priority_Fixed             (void);
 					       
-#ifdef SYSTEMC				       
   private : void     allocation                (void);
   private : void     deallocation              (void);
 					       
+#ifdef SYSTEMC				       
 # if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void     transition                (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters.cpp	(revision 88)
@@ -28,14 +28,14 @@
   };
   
-  Parameters::Parameters (Parameters & param):
-    _nb_entity        (param._nb_entity       ),
-    _encoding_one_hot (param._encoding_one_hot),
-    _encoding_compact (param._encoding_compact),
-    _size_entity      (param._size_entity     )
-  {
-    log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin");
-    test();
-    log_printf(FUNC,Select_Priority_Fixed,"Parameters","End");
-  };
+//   Parameters::Parameters (Parameters & param):
+//     _nb_entity        (param._nb_entity       ),
+//     _encoding_one_hot (param._encoding_one_hot),
+//     _encoding_compact (param._encoding_compact),
+//     _size_entity      (param._size_entity     )
+//   {
+//     log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin");
+//     test();
+//     log_printf(FUNC,Select_Priority_Fixed,"Parameters","End");
+//   };
 
   Parameters::~Parameters () 
@@ -43,4 +43,10 @@
     log_printf(FUNC,Select_Priority_Fixed,"~Parameters","Begin");
     log_printf(FUNC,Select_Priority_Fixed,"~Parameters","End");
+  };
+
+  void Parameters::copy (void) 
+  {
+    log_printf(FUNC,Select_Priority_Fixed,"copy","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"copy","End");
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 88)
@@ -2,5 +2,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -33,9 +33,15 @@
     log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","Begin");
 
+#if DEBUG_Select_Priority_Fixed == true
+    log_printf(INFO,Select_Priority_Fixed,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation");
     allocation ();
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {
 	log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation of statistics");
@@ -46,13 +52,16 @@
 
 #ifdef VHDL
-    // generate the vhdl
-    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Generate the vhdl");
-
-    vhdl();
+    if (usage_is_set(_usage,USE_VHDL)
+      {
+        // generate the vhdl
+        log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Generate the vhdl");
+        
+        vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
-    if (_usage & USE_SYSTEMC)
-      {
+      if (usage_is_set(_usage,USE_SYSTEMC))
+        {
 #  if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 	log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - transition");
@@ -96,5 +105,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {
 	log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Generate Statistics file");
@@ -104,9 +113,6 @@
 #endif
 
-#ifdef SYSTEMC
     log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Deallocation");
-
     deallocation ();
-#endif
 
     log_printf(FUNC,Select_Priority_Fixed,"~Select_Priority_Fixed","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -30,5 +29,5 @@
     _interfaces = entity->set_interfaces();
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     Interface_fifo * interface = _interfaces->set_interface(""
@@ -63,5 +62,6 @@
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
 
@@ -74,3 +74,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_deallocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -20,5 +19,5 @@
     log_printf(FUNC,Select_Priority_Fixed,"deallocation","Begin");
 
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	delete     in_CLOCK;
@@ -48,3 +47,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_end_cycle.cpp	(revision 88)
@@ -22,5 +22,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -28,5 +29,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/Makefile	(revision 88)
@@ -23,4 +23,6 @@
 library_clean			: Shifter_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp	(revision 88)
@@ -38,4 +38,15 @@
   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          );
+
   Shifter * _Shifter = new Shifter (name.c_str(),
 #ifdef STATISTICS
@@ -43,5 +54,5 @@
 #endif
 				    &param,
-				    USE_ALL);
+				    _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h	(revision 88)
@@ -56,8 +56,11 @@
 			carry_t     carry               ,
 			bool        type_completion_bool = false);
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
+
   public :        std::string     print      (uint32_t depth);
   public : friend std::ostream&   operator<< (std::ostream& output_stream,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Shifter.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Shifter.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Shifter.h	(revision 88)
@@ -5,5 +5,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -38,5 +38,5 @@
 #endif
   {
-    // -----[ fields ]----------------------------------------------------
+    // -----[ fields ]----------------------------------------------------
     // Parameters
   protected : const std::string  _name;
@@ -52,5 +52,5 @@
 
 #ifdef SYSTEMC
-    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   public    : SC_CLOCK                      *  in_CLOCK             ;
   public    : SC_IN (Tcontrol_t)            *  in_NRESET            ;
@@ -66,10 +66,10 @@
   public    : SC_OUT(Tdata_t)              ** out_SHIFTER_DATA      ;
     
-    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
-    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 #endif
 
-    // -----[ methods ]---------------------------------------------------
+    // -----[ methods ]---------------------------------------------------
 
 #ifdef SYSTEMC
@@ -93,8 +93,8 @@
   public  :          ~Shifter             (void);
 					       
-#ifdef SYSTEMC				       
   private : void     allocation                (void);
   private : void     deallocation              (void);
 					       
+#ifdef SYSTEMC				       
 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
   public  : void     transition                (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters.cpp	(revision 88)
@@ -80,38 +80,43 @@
   };
   
-  Parameters::Parameters (Parameters & param):
-    _size_data                   (param._size_data                   ),
-    _nb_port                     (param._nb_port                     ),
-    _shift_value                 (param._shift_value                 ),
-    _rotate                      (param._rotate                      ),
-    _direction                   (param._direction                   ),
-    _carry                       (param._carry                       ),
-    _size_data_completion        (param._size_data_completion        ),
-    _type_completion_bool        (param._type_completion_bool        ),
+//   Parameters::Parameters (Parameters & param):
+//     _size_data                   (param._size_data                   ),
+//     _nb_port                     (param._nb_port                     ),
+//     _shift_value                 (param._shift_value                 ),
+//     _rotate                      (param._rotate                      ),
+//     _direction                   (param._direction                   ),
+//     _carry                       (param._carry                       ),
+//     _size_data_completion        (param._size_data_completion        ),
+//     _type_completion_bool        (param._type_completion_bool        ),
 
-    _internal_direction          (param._internal_direction          ),
-    _internal_type               (param._internal_type               ),
-    _internal_carry              (param._internal_carry              ),
+//     _internal_direction          (param._internal_direction          ),
+//     _internal_type               (param._internal_type               ),
+//     _internal_carry              (param._internal_carry              ),
     
-    _have_shift_logic_left       (param._have_shift_logic_left       ),
-    _have_shift_logic_right      (param._have_shift_logic_right      ),
-    _have_shift_logic            (param._have_shift_logic            ),
-    _have_shift_arithmetic_left  (param._have_shift_arithmetic_left  ),
-    _have_shift_arithmetic_right (param._have_shift_arithmetic_right ),
-    _have_shift_arithmetic       (param._have_shift_arithmetic       ),
-    _have_shift                  (param._have_shift                  ),
-    _have_rotate_left            (param._have_rotate_left            ),
-    _have_rotate_right           (param._have_rotate_right           ),
-    _have_rotate                 (param._have_rotate                 ),
+//     _have_shift_logic_left       (param._have_shift_logic_left       ),
+//     _have_shift_logic_right      (param._have_shift_logic_right      ),
+//     _have_shift_logic            (param._have_shift_logic            ),
+//     _have_shift_arithmetic_left  (param._have_shift_arithmetic_left  ),
+//     _have_shift_arithmetic_right (param._have_shift_arithmetic_right ),
+//     _have_shift_arithmetic       (param._have_shift_arithmetic       ),
+//     _have_shift                  (param._have_shift                  ),
+//     _have_rotate_left            (param._have_rotate_left            ),
+//     _have_rotate_right           (param._have_rotate_right           ),
+//     _have_rotate                 (param._have_rotate                 ),
 
-    _have_direction_left         (param._have_direction_left         ),
-    _have_direction_right        (param._have_direction_right        )
+//     _have_direction_left         (param._have_direction_left         ),
+//     _have_direction_right        (param._have_direction_right        )
 
+//   {
+//     test();
+//   };
+
+  Parameters::~Parameters () 
   {
-    test();
   };
 
-  Parameters::~Parameters () 
-  { };
+  void Parameters::copy (void) 
+  {
+  };
 
 }; // end namespace shifter
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter.cpp	(revision 88)
@@ -14,4 +14,6 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "Shifter::Shifter"
   Shifter::Shifter (
 #ifdef SYSTEMC
@@ -29,19 +31,32 @@
     ,_usage (usage)
   {
-#ifdef SYSTEMC
+
+#if DEBUG_Shifter == true
+    log_printf(INFO,Shifter,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     allocation ();
-#endif
 
 #ifdef STATISTICS
-    // Allocation of statistics
-    statistics_declaration(param_statistics);
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {
+        // Allocation of statistics
+        statistics_declaration(param_statistics);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    vhdl();
+    if (usage_is_set(_usage,USE_VHDL))
+      {
+        // generate the vhdl
+        vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
     SC_METHOD (transition);
@@ -91,17 +106,18 @@
       }
 #endif    
-
+      }
 #endif
   };
   
+#undef  FUNCTION
+#define FUNCTION "Shifter::~Shifter"
   Shifter::~Shifter (void)
   {
-#ifdef SYSTEMC
-    deallocation ();
+#ifdef STATISTICS
+    if (usage_is_set(_usage,USE_STATISTICS))
+      delete _stat;
 #endif
 
-#ifdef STATISTICS
-    delete _stat;
-#endif
+    deallocation ();
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -86,9 +85,10 @@
 	   in_SHIFTER_COMPLETION [i] = interface->set_signal_in  <Tdata_t     > ("completion",_param->_size_data_completion);
 	  out_SHIFTER_DATA       [i] = interface->set_signal_out <Tdata_t     > ("data"      ,_param->_size_data);
-	}										                                         
+	}
     }
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
 
@@ -99,3 +99,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_deallocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -17,4 +16,6 @@
   void Shifter::deallocation (void)
   {
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {	
 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
     delete     in_CLOCK;
@@ -36,4 +37,5 @@
     delete []  in_SHIFTER_COMPLETION;
     delete [] out_SHIFTER_DATA      ;
+      }
 
     delete _component;
@@ -46,3 +48,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_end_cycle.cpp	(revision 88)
@@ -21,5 +21,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -27,5 +28,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: Sort_library_clean
 
+local_clean			:
+
 include                         $(DIR_COMPONENT)/Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/src/test.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/src/test.cpp	(revision 88)
@@ -31,4 +31,14 @@
 #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          );
+
   Sort * _Sort = new Sort (name.c_str(),
 #ifdef STATISTICS
@@ -36,5 +46,5 @@
 #endif
 			   _param,
-			   USE_ALL);
+			   _usage);
   
 #ifdef SYSTEMC
@@ -154,5 +164,5 @@
 	      tab [ptr]._val = false;
 
-	      LABEL("OUTPUT [%d] %d - %d",i, out_OUTPUT_VAL [i]->read(), out_OUTPUT_DATA [i]->read(), out_OUTPUT_INDEX [i]->read());
+	      LABEL("OUTPUT [%d] %d %d - %d",i, out_OUTPUT_VAL [i]->read(), out_OUTPUT_DATA [i]->read(), out_OUTPUT_INDEX [i]->read());
 
 	      TEST(Tcontrol_t,out_OUTPUT_VAL   [i]->read(),find);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/include/Parameters.h	(revision 88)
@@ -42,4 +42,6 @@
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Parameters.cpp	(revision 88)
@@ -55,4 +55,12 @@
   };
 
+#undef  FUNCTION
+#define FUNCTION "Sort::copy"
+  void Parameters::copy (void) 
+  {
+    log_printf(FUNC,Sort,FUNCTION,"Begin");
+    log_printf(FUNC,Sort,FUNCTION,"End");
+  };
+
 }; // end namespace sort
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort.cpp	(revision 88)
@@ -35,4 +35,10 @@
     log_printf(FUNC,Sort,FUNCTION,"Begin");
 
+#if DEBUG_Sort == true
+    log_printf(INFO,Sort,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,Sort,FUNCTION,"Allocation");
 
@@ -44,5 +50,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {	
 	log_printf(INFO,Sort,FUNCTION,"Allocation of statistics");
@@ -53,5 +59,5 @@
 
 #ifdef VHDL
-    if (_usage & USE_VHDL)
+    if (usage_is_set(_usage,USE_VHDL))
       {
 	// generate the vhdl
@@ -63,5 +69,5 @@
 
 #ifdef SYSTEMC
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	log_printf(INFO,Sort,FUNCTION,"Method - transition");
@@ -117,5 +123,5 @@
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
+    if (usage_is_set(_usage,USE_STATISTICS))
       {
 	statistics_deallocation();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_allocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_allocation.cpp	(revision 88)
@@ -13,6 +13,4 @@
 namespace generic {
 namespace sort {
-
-
 
 #undef  FUNCTION
@@ -75,5 +73,6 @@
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSTION))
+      _component->generate_file();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_deallocation.cpp	(revision 88)
@@ -20,5 +20,5 @@
     log_printf(FUNC,Sort,FUNCTION,"Begin");
 
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	delete     in_CLOCK ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/src/Sort_end_cycle.cpp	(revision 88)
@@ -22,5 +22,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -28,5 +29,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/Makefile	(revision 88)
@@ -24,4 +24,6 @@
 library_clean			: Victim_library_clean
 
+local_clean			:
+
 include                         $(DIR_COMPONENT)/Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/src/test.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/src/test.cpp	(revision 88)
@@ -23,4 +23,14 @@
 #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          );
+
   Victim * _Victim = new Victim (name.c_str(),
 #ifdef STATISTICS
@@ -28,5 +38,5 @@
 #endif
 				 _param,
-				 USE_ALL);
+				 _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/Makefile	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/Makefile	(revision 88)
@@ -23,4 +23,6 @@
 library_clean			: Victim_Pseudo_LRU_library_clean
 
+local_clean			:
+
 include                         ../Makefile.deps
 include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
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 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp	(revision 88)
@@ -38,10 +38,21 @@
 #endif
 
-  Victim_Pseudo_LRU * _Victim_Pseudo_LRU = new Victim_Pseudo_LRU (name.c_str(),
+  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          );
+
+  Victim_Pseudo_LRU * _Victim_Pseudo_LRU = new Victim_Pseudo_LRU 
+    (name.c_str(),
 #ifdef STATISTICS
-								  param_stat,
-#endif
-								  &param,
-								  USE_ALL);
+     param_stat,
+#endif
+     &param,
+     _usage);
   
 #ifdef SYSTEMC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h	(revision 88)
@@ -35,8 +35,11 @@
 			uint32_t size_table,
 			bool     table_global);
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
+
   public :        std::string     print      (uint32_t depth);
   public : friend std::ostream&   operator<< (std::ostream& output_stream,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 88)
@@ -112,10 +112,10 @@
   public  :          ~Victim_Pseudo_LRU             (void);
 					       
-#ifdef SYSTEMC				       
   private : void     allocation                (void);
   private : void     deallocation              (void);
 					       
+#ifdef SYSTEMC				       
   public  : void     transition                (void);
-  public  : void     genMoore                  (void);
+  public  : void     genMealy                  (void);
 #endif
 					       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters.cpp	(revision 88)
@@ -30,17 +30,22 @@
   };
   
-  Parameters::Parameters (Parameters & param):
-    _nb_entity  (param._nb_entity ),
-    _nb_access  (param._nb_access ),
-//     _nb_update  (param._nb_update ),
-    _size_table (param._size_table),
-    _table_global(param._table_global),
-    _size_address(param._size_address)
-  { 
-    test();
+//   Parameters::Parameters (Parameters & param):
+//     _nb_entity  (param._nb_entity ),
+//     _nb_access  (param._nb_access ),
+// //     _nb_update  (param._nb_update ),
+//     _size_table (param._size_table),
+//     _table_global(param._table_global),
+//     _size_address(param._size_address)
+//   { 
+//     test();
+//   };
+
+  Parameters::~Parameters () 
+  {
   };
 
-  Parameters::~Parameters () 
-  { };
+  void Parameters::copy (void) 
+  {
+  };
 
 }; // end namespace victim_pseudo_lru
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 88)
@@ -32,35 +32,35 @@
     log_printf(FUNC,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Begin");
 
-#ifdef SYSTEMC
+#if DEBUG_Victim_Pseudo_LRU == true
+    log_printf(INFO,Victim_Pseudo_LRU,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation");
     allocation ();
-#endif
 
 #ifdef STATISTICS
-    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation of statistics");
-    
-    // Allocation of statistics
-    statistics_declaration(param_statistics);
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {	
+        log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation of statistics");
+        
+        // Allocation of statistics
+        statistics_declaration(param_statistics);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Generation of VHDL");
-    vhdl();
+    if (usage_is_set(_usage,USE_VHDL))
+      {	
+        // generate the vhdl
+        log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Generation of VHDL");
+        vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
-    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
-    SC_METHOD (transition);
-    dont_initialize ();
-    sensitive << (*(in_CLOCK)).pos();
-
-    SC_METHOD (genMoore);
-    dont_initialize ();
-    sensitive << (*(in_CLOCK)).neg();
-
-#ifdef SYSTEMCASS_SPECIFIC
-#endif    
-
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {	
     // Constant - ack is always at one
     for (uint32_t i=0; i<_param->_nb_access; i++)
@@ -70,4 +70,22 @@
       }
 
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
+    SC_METHOD (transition);
+    dont_initialize ();
+    sensitive << (*(in_CLOCK)).pos();
+
+    SC_METHOD (genMealy);
+    dont_initialize ();
+    sensitive << (*(in_CLOCK)).neg();
+    for (uint32_t i=0; i<_param->_nb_access; i++)
+      if (_param->_size_table>1)
+        sensitive << (*(in_ACCESS_ADDRESS[i]));
+
+#ifdef SYSTEMCASS_SPECIFIC
+    if (_param->_size_table>1)
+      for (uint32_t i=0; i<_param->_nb_access; i++)
+	(*(out_ACCESS_VICTIM[i])) (*(in_ACCESS_ADDRESS[i]));
+#endif    
+      }
 #endif
     log_printf(FUNC,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","End");
@@ -77,10 +95,11 @@
   {
     log_printf(FUNC,Victim_Pseudo_LRU,"~Victim_Pseudo_LRU","Begin");
-#ifdef SYSTEMC
+
     deallocation ();
-#endif
+
 
 #ifdef STATISTICS
-    delete _stat;
+    if (usage_is_set(_usage,USE_STATISTICS))
+      delete _stat;
 #endif
     log_printf(FUNC,Victim_Pseudo_LRU,"~Victim_Pseudo_LRU","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -53,4 +52,6 @@
     }
 
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
     // -----[ Register ]---------------------------------------------------
     reg_TABLE = new entry_t *  [_param->_size_table];
@@ -62,7 +63,9 @@
     internal_ACCESS_ACK    = new Tcontrol_t [_param->_nb_access];
     internal_ACCESS_VICTIM = new Tentity_t  [_param->_nb_access];
+      }
 
 #ifdef POSITION
-    _component->generate_file();
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
   };
@@ -74,3 +77,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_deallocation.cpp	(revision 88)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 /*
  * $Id$
@@ -17,4 +16,6 @@
   void Victim_Pseudo_LRU::deallocation (void)
   {
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
     delete     in_CLOCK;
     delete     in_NRESET;
@@ -34,4 +35,5 @@
     delete [] internal_ACCESS_ACK   ;
     delete [] internal_ACCESS_VICTIM;
+      }
 
     delete _component;
@@ -43,3 +45,2 @@
 }; // end namespace behavioural
 }; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_end_cycle.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_end_cycle.cpp	(revision 88)
@@ -22,5 +22,6 @@
 
 #ifdef STATISTICS
-    _stat->end_cycle();
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
 #endif    
 
@@ -28,5 +29,6 @@
     // Evaluation before read the ouput signal
 //  sc_start(0);
-    _interfaces->testbench();
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy.cpp	(revision 88)
@@ -0,0 +1,34 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace victim {
+namespace victim_pseudo_lru {
+
+  void Victim_Pseudo_LRU::genMealy (void)
+  {
+    for (uint32_t i=0; i<_param->_nb_access; i++)
+      {
+	Taddress_t address = (_param->_size_table>1)?PORT_READ(in_ACCESS_ADDRESS[i]):0;
+
+	internal_ACCESS_VICTIM[i] = reg_TABLE[address]->access();
+
+	PORT_WRITE(out_ACCESS_VICTIM[i], internal_ACCESS_VICTIM[i]);
+      }//end for i
+  };
+
+}; // end namespace victim_pseudo_lru
+}; // end namespace victim
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMoore.cpp	(revision 84)
+++ 	(revision )
@@ -1,34 +1,0 @@
-#ifdef SYSTEMC
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
-
-namespace morpheo {
-namespace behavioural {
-namespace generic {
-namespace victim {
-namespace victim_pseudo_lru {
-
-  void Victim_Pseudo_LRU::genMoore (void)
-  {
-    for (uint32_t i=0; i<_param->_nb_access; i++)
-      {
-	Taddress_t address = (_param->_size_table>1)?PORT_READ(in_ACCESS_ADDRESS[i]):0;
-
-	internal_ACCESS_VICTIM[i] = reg_TABLE[address]->access();
-
-	PORT_WRITE(out_ACCESS_VICTIM[i], internal_ACCESS_VICTIM[i]);
-      }//end for i
-  };
-
-}; // end namespace victim_pseudo_lru
-}; // end namespace victim
-}; // end namespace generic
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/include/Parameters.h	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/include/Parameters.h	(revision 88)
@@ -24,5 +24,4 @@
 namespace generic {
 namespace victim {
-
 
   class Parameters : public morpheo::behavioural::Parameters
@@ -57,4 +56,6 @@
   public : ~Parameters () ;
 
+  public :        void            copy       (void);
+
   public :        Parameters_test msg_error  (void);
 
@@ -66,5 +67,4 @@
 }; // end namespace victim
 }; // end namespace generic
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters.cpp	(revision 88)
@@ -69,10 +69,30 @@
     switch (_victim_scheme)
       {
-//    case VICTIM_RANDOM      : delete _param_victim_random     ;
-//    case VICTIM_ROUND_ROBIN : delete _param_victim_round_robin;
-//    case VICTIM_NLU         : delete _param_victim_nlu        ;
-      case VICTIM_PSEUDO_LRU  : delete _param_victim_pseudo_lru ;
-//    case VICTIM_LRU         : delete _param_victim_lru        ;
-//    case VICTIM_FIFO        : delete _param_victim_fifo       ;
+//    case VICTIM_RANDOM      : delete _param_victim_random     ; break;
+//    case VICTIM_ROUND_ROBIN : delete _param_victim_round_robin; break;
+//    case VICTIM_NLU         : delete _param_victim_nlu        ; break;
+      case VICTIM_PSEUDO_LRU  : delete _param_victim_pseudo_lru ; break;
+//    case VICTIM_LRU         : delete _param_victim_lru        ; break;
+//    case VICTIM_FIFO        : delete _param_victim_fifo       ; break;
+      default : break;
+      }
+
+    log_printf(FUNC,Victim,FUNCTION,"End");
+  };
+
+#undef  FUNCTION
+#define FUNCTION "Victim::copy"
+  void morpheo::behavioural::generic::victim::Parameters::copy (void) 
+  {
+    log_printf(FUNC,Victim,FUNCTION,"Begin");
+
+    switch (_victim_scheme)
+      {
+//    case VICTIM_RANDOM      : COPY(_param_victim_random     ); break;
+//    case VICTIM_ROUND_ROBIN : COPY(_param_victim_round_robin); break;
+//    case VICTIM_NLU         : COPY(_param_victim_nlu        ); break;
+      case VICTIM_PSEUDO_LRU  : COPY(_param_victim_pseudo_lru ); break;
+//    case VICTIM_LRU         : COPY(_param_victim_lru        ); break;
+//    case VICTIM_FIFO        : COPY(_param_victim_fifo       ); break;
       default : break;
       }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters_msg_error.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters_msg_error.cpp	(revision 88)
@@ -26,10 +26,10 @@
     switch (_victim_scheme)
       {
-      case VICTIM_RANDOM      : test.error("Victim scheme '"+toString(_victim_scheme)+"' is not supported. (Coming Soon)"); break;
-      case VICTIM_ROUND_ROBIN : test.error("Victim scheme '"+toString(_victim_scheme)+"' is not supported. (Coming Soon)"); break;
-      case VICTIM_NLU         : test.error("Victim scheme '"+toString(_victim_scheme)+"' is not supported. (Coming Soon)"); break;
-//    case VICTIM_PSEUDO_LRU  : test.error("Victim scheme '"+toString(_victim_scheme)+"' is not supported. (Coming Soon)"); break;
-      case VICTIM_LRU         : test.error("Victim scheme '"+toString(_victim_scheme)+"' is not supported. (Coming Soon)"); break;
-      case VICTIM_FIFO        : test.error("Victim scheme '"+toString(_victim_scheme)+"' is not supported. (Coming Soon)"); break;
+      case VICTIM_RANDOM      : test.error(toString(_("Victim scheme \"%s\" is not supported. (Coming Soon)\n"),toString(_victim_scheme).c_str())); break;
+      case VICTIM_ROUND_ROBIN : test.error(toString(_("Victim scheme \"%s\" is not supported. (Coming Soon)\n"),toString(_victim_scheme).c_str())); break;
+      case VICTIM_NLU         : test.error(toString(_("Victim scheme \"%s\" is not supported. (Coming Soon)\n"),toString(_victim_scheme).c_str())); break;
+//    case VICTIM_PSEUDO_LRU  : test.error(toString(_("Victim scheme \"%s\" is not supported. (Coming Soon)\n"),toString(_victim_scheme).c_str())); break;
+      case VICTIM_LRU         : test.error(toString(_("Victim scheme \"%s\" is not supported. (Coming Soon)\n"),toString(_victim_scheme).c_str())); break;
+      case VICTIM_FIFO        : test.error(toString(_("Victim scheme \"%s\" is not supported. (Coming Soon)\n"),toString(_victim_scheme).c_str())); break;
       default : break;
       }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim.cpp	(revision 88)
@@ -39,21 +39,18 @@
     allocation (
 #ifdef STATISTICS
-		param_statistics
+                param_statistics
 #endif
-		);
+                );
 
 #ifdef STATISTICS
-    if (_usage & USE_STATISTICS)
-      {	
-	switch (_param->_victim_scheme)
-	  {
-// 	  case VICTIM_RANDOM      : _stat = _component_victim_random      ->_stat; break;
-// 	  case VICTIM_ROUND_ROBIN : _stat = _component_victim_round_robin ->_stat; break;
-// 	  case VICTIM_NLU         : _stat = _component_victim_nlu         ->_stat; break;
-	  case VICTIM_PSEUDO_LRU  : _stat = _component_victim_pseudo_lru  ->_stat; break;
-// 	  case VICTIM_LRU         : _stat = _component_victim_lru         ->_stat; break;
-// 	  case VICTIM_FIFO        : _stat = _component_victim_fifo        ->_stat; break;
-	  default : break;
-	  }
+    switch (_param->_victim_scheme)
+      {
+//    case VICTIM_RANDOM      : _stat = _component_victim_random      ->_stat; break;
+//    case VICTIM_ROUND_ROBIN : _stat = _component_victim_round_robin ->_stat; break;
+//    case VICTIM_NLU         : _stat = _component_victim_nlu         ->_stat; break;
+      case VICTIM_PSEUDO_LRU  : _stat = _component_victim_pseudo_lru  ->_stat; break;
+//    case VICTIM_LRU         : _stat = _component_victim_lru         ->_stat; break;
+//    case VICTIM_FIFO        : _stat = _component_victim_fifo        ->_stat; break;
+      default : break;
       }
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp	(revision 84)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp	(revision 88)
@@ -32,5 +32,5 @@
       }
     
-    if (_usage & USE_SYSTEMC)
+    if (usage_is_set(_usage,USE_SYSTEMC))
       {
 	delete    in_CLOCK ;
