Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile	(revision 15)
@@ -8,8 +8,8 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../..
+DIR_MORPHEO			= ../../../..
 
 #-----[ Library ]------------------------------------------
-LIBRARY				= $(DIR_LIB)/libRegisterFile.a
+LIBRARY				= $(DIR_LIB)/libRegisterFile_Monolithic.a
 
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps	(revision 15)
@@ -15,11 +15,11 @@
 endif
 
-RegisterFile			= yes
+RegisterFile_Monolithic			= yes
 #-----[ Library ]------------------------------------------
-RegisterFile_LIBRARY		= 	-lRegisterFile		\
+RegisterFile_Monolithic_LIBRARY		= 	-lRegisterFile_Monolithic		\
 					$(Group_LIBRARY)	\
 					$(Behavioural_LIBRARY)	
 
-RegisterFile_DIR_LIBRARY	=	-L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/lib	\
+RegisterFile_Monolithic_DIR_LIBRARY	=	-L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/lib	\
 					$(Group_DIR_LIBRARY)					\
 					$(Behavioural_DIR_LIBRARY)	
@@ -27,11 +27,11 @@
 #-----[ Rules ]--------------------------------------------
 
-RegisterFile_library		:
+RegisterFile_Monolithic_library		:
 				@$(MAKE)  Behavioural_library
 				@$(MAKE)  Group_library
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile --makefile=Makefile 
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic --makefile=Makefile 
 	
-RegisterFile_library_clean	:
+RegisterFile_Monolithic_library_clean	:
 				@$(MAKE)  Behavioural_library_clean
 				@$(MAKE)  Group_library_clean
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile --makefile=Makefile clean
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic --makefile=Makefile clean
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile	(revision 15)
@@ -8,9 +8,9 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../../..
+DIR_MORPHEO			= ../../../../..
 
-LIBRARY				= $(RegisterFile_LIBRARY)
+LIBRARY				= $(RegisterFile_Monolithic_LIBRARY)
 
-DIR_LIBRARY			= $(RegisterFile_DIR_LIBRARY)
+DIR_LIBRARY			= $(RegisterFile_Monolithic_DIR_LIBRARY)
 
 #-----[ include ]------------------------------------------
@@ -19,7 +19,7 @@
 				@$(MAKE) all_selftest
 
-library				: RegisterFile_library
+library				: RegisterFile_Monolithic_library
 
-library_clean			: RegisterFile_library_clean
+library_clean			: RegisterFile_Monolithic_library_clean
 
 include                         ../Makefile.deps
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration.cfg	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration.cfg	(revision 15)
@@ -1,3 +1,3 @@
-RegisterFile
+RegisterFile_Monolithic
 1	8 	*2	# nb_port_read
 1	4	*2	# nb_port_write
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h	(revision 15)
@@ -4,5 +4,4 @@
  * [ Description ]
  * 
- * Test "RegisterFile"
  */
 
@@ -14,5 +13,5 @@
 #include <iostream>
 
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
 
 using namespace std;
@@ -21,5 +20,6 @@
 using namespace morpheo::behavioural::generic;
 using namespace morpheo::behavioural::generic::registerfile;
+using namespace morpheo::behavioural::generic::registerfile::registerfile_monolithic;
 
 void test   (string name,
-	     morpheo::behavioural::generic::registerfile::Parameters param);
+	     morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/main.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/main.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/SelfTest/include/test.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h"
 
 #define NB_PARAMS 4
@@ -36,6 +36,6 @@
   const uint32_t size_word     = atoi(argv[5]);
   
-  morpheo::behavioural::generic::registerfile::Parameters param (nb_port_read ,
-								 nb_port_write,
+  morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param (nb_port_read ,
+											  nb_port_write,
 								 nb_word      ,
 								 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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp	(revision 15)
@@ -7,9 +7,9 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/SelfTest/include/test.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h"
 #include "Include/Test.h"
 
 void test (string name,
-	   morpheo::behavioural::generic::registerfile::Parameters param)
+	   morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
@@ -31,9 +31,9 @@
     }
 
-  RegisterFile * registerfile = new RegisterFile (name.c_str(),
+  RegisterFile_Monolithic * registerfile = new RegisterFile_Monolithic (name.c_str(),
 #ifdef STATISTICS
-						  morpheo::behavioural::Parameters_Statistics(5,50),
+									morpheo::behavioural::Parameters_Statistics(5,50),
 #endif
-						  param);
+									param);
   
 #ifdef SYSTEMC
@@ -58,5 +58,5 @@
    ********************************************************/
   
-  cout << "<" << name << "> Instanciation of registerFile" << endl;
+  cout << "<" << name << "> Instanciation of registerfile" << endl;
   
   (*(registerfile->in_CLOCK))        (CLOCK);
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_Parameters_h
-#define morpheo_behavioural_generic_registerfile_Parameters_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_Parameters_h
+#define morpheo_behavioural_generic_registerfile_registerfile_monolithic_Parameters_h
 
 /*
@@ -17,4 +17,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   class Parameters : public morpheo::behavioural::Parameters
@@ -36,7 +37,8 @@
   public :        string   print      (uint32_t depth);
   public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::registerfile::Parameters & x);
+				       morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters & x);
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile.h	(revision 11)
+++ 	(revision )
@@ -1,137 +1,0 @@
-#ifndef morpheo_behavioural_generic_registerfile_RegisterFile
-#define morpheo_behavioural_generic_registerfile_RegisterFile
-
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#ifdef SYSTEMC
-#include "systemc.h"
-#endif
-
-#include "Include/Debug.h"
-#include "Include/ToString.h"
-#include <iostream>
-using namespace std;
-
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile/include/Types.h"
-#ifdef STATISTICS
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
-#endif
-#ifdef VHDL
-#include "Behavioural/include/Vhdl.h"
-#endif
-#ifdef VHDL_TESTBENCH
-#include "Behavioural/include/Vhdl_Testbench.h"
-#endif
-
-using namespace std;
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  class RegisterFile 
-#if SYSTEMC
-    : public sc_module
-#endif
-  {
-    // -----[ fields ]----------------------------------------------------
-    // Parameters
-  protected : const string     _name;
-
-  protected : const Parameters _param;
-#ifdef STATISTICS
-  private   : Statistics                     * _stat;
-    
-  private   : uint32_t                         _stat_nb_read;
-  private   : uint32_t                         _stat_nb_write;
-#endif
-
-#ifdef VHDL_TESTBENCH
-  private   : Vhdl_Testbench                 * _vhdl_testbench;
-#endif
-
-#ifdef SYSTEMC
-    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    // Interface
-  public    : SC_CLOCK                      *  in_CLOCK        ;
-  public    : SC_CLOCK                      *  in_NRESET       ;
-
-    // ----- Interface Read
-  public    : SC_IN       (Tcontrol_t)     **  in_READ_VAL     ;
-  public    : SC_OUT      (Tcontrol_t)     ** out_READ_ACK     ;
-  public    : SC_IN       (Taddress_t)     **  in_READ_ADDRESS ;
-  public    : SC_OUT      (Tdata_t)        ** out_READ_DATA    ;
-
-    // ----- Interface Write
-  public    : SC_IN       (Tcontrol_t)     **  in_WRITE_VAL    ;
-  public    : SC_OUT      (Tcontrol_t)     ** out_WRITE_ACK    ;
-  public    : SC_IN       (Taddress_t)     **  in_WRITE_ADDRESS;
-  public    : SC_IN       (Tdata_t)        **  in_WRITE_DATA   ;
-
-    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-  private   : SC_REGISTER (Tdata_t)        ** reg_DATA         ;
-
-    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#endif
-
-    // -----[ methods ]---------------------------------------------------
-
-#ifdef SYSTEMC
-    SC_HAS_PROCESS (RegisterFile);
-#endif					       
-
-  public  :          RegisterFile              (
-#ifdef SYSTEMC
-						sc_module_name                              name,
-#else					       
-						string                                      name,
-#endif					       
-#ifdef STATISTICS
-						morpheo::behavioural::Parameters_Statistics param_statistics,
-#endif
-					        Parameters                                  param );
-					       
-  public  :          RegisterFile              (Parameters param );
-  public  :          ~RegisterFile             (void);
-					       
-#ifdef SYSTEMC				       
-  private : void     allocation                (void);
-  private : void     deallocation              (void);
-					       
-  public  : void     transition                (void);
-//public  : void     genMoore                  (void) {/* empty */};
-  public  : void     genMealy_read             (void);
-#endif					       
-
-#ifdef STATISTICS
-  public  : string  statistics                 (uint32_t depth);
-#endif					       
-#if VHDL				       
-  private : void     vhdl                      (void);
-  private : void     vhdl_port                 (Vhdl & vhdl);
-  private : void     vhdl_type                 (Vhdl & vhdl);
-  private : void     vhdl_signal               (Vhdl & vhdl);
-  private : void     vhdl_body                 (Vhdl & vhdl);
-#endif					       
-					       
-#ifdef VHDL_TESTBENCH			       
-  private : void     vhdl_testbench            (Vhdl_Testbench & vhdl_testbench);
-  private : void     vhdl_testbench_port       (Vhdl_Testbench & vhdl_testbench);
-  private : void     vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench);
-#endif
-
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 15)
@@ -0,0 +1,139 @@
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_RegisterFile_Monolithic
+#define morpheo_behavioural_generic_registerfile_registerfile_monolithic_RegisterFile_Monolithic
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#include "Include/Debug.h"
+#include "Include/ToString.h"
+#include <iostream>
+using namespace std;
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h"
+#ifdef STATISTICS
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
+#endif
+#ifdef VHDL
+#include "Behavioural/include/Vhdl.h"
+#endif
+#ifdef VHDL_TESTBENCH
+#include "Behavioural/include/Vhdl_Testbench.h"
+#endif
+
+using namespace std;
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  class RegisterFile_Monolithic 
+#if SYSTEMC
+    : public sc_module
+#endif
+  {
+    // -----[ fields ]----------------------------------------------------
+    // Parameters
+  protected : const string     _name;
+
+  protected : const Parameters _param;
+#ifdef STATISTICS
+  private   : Statistics                     * _stat;
+    
+  private   : uint32_t                         _stat_nb_read;
+  private   : uint32_t                         _stat_nb_write;
+#endif
+
+#ifdef VHDL_TESTBENCH
+  private   : Vhdl_Testbench                 * _vhdl_testbench;
+#endif
+
+#ifdef SYSTEMC
+    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // Interface
+  public    : SC_CLOCK                      *  in_CLOCK        ;
+  public    : SC_CLOCK                      *  in_NRESET       ;
+
+    // ----- Interface Read
+  public    : SC_IN       (Tcontrol_t)     **  in_READ_VAL     ;
+  public    : SC_OUT      (Tcontrol_t)     ** out_READ_ACK     ;
+  public    : SC_IN       (Taddress_t)     **  in_READ_ADDRESS ;
+  public    : SC_OUT      (Tdata_t)        ** out_READ_DATA    ;
+
+    // ----- Interface Write
+  public    : SC_IN       (Tcontrol_t)     **  in_WRITE_VAL    ;
+  public    : SC_OUT      (Tcontrol_t)     ** out_WRITE_ACK    ;
+  public    : SC_IN       (Taddress_t)     **  in_WRITE_ADDRESS;
+  public    : SC_IN       (Tdata_t)        **  in_WRITE_DATA   ;
+
+    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+  private   : SC_REGISTER (Tdata_t)        ** reg_DATA         ;
+
+    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#endif
+
+    // -----[ methods ]---------------------------------------------------
+
+#ifdef SYSTEMC
+    SC_HAS_PROCESS (RegisterFile_Monolithic);
+#endif					       
+
+  public  :          RegisterFile_Monolithic   (
+#ifdef SYSTEMC
+						sc_module_name                              name,
+#else					       
+						string                                      name,
+#endif					       
+#ifdef STATISTICS
+						morpheo::behavioural::Parameters_Statistics param_statistics,
+#endif
+					        Parameters                                  param );
+					       
+  public  :          RegisterFile_Monolithic   (Parameters param );
+  public  :          ~RegisterFile_Monolithic  (void);
+					       
+#ifdef SYSTEMC				       
+  private : void     allocation                (void);
+  private : void     deallocation              (void);
+					       
+  public  : void     transition                (void);
+//public  : void     genMoore                  (void) {/* empty */};
+  public  : void     genMealy_read             (void);
+#endif					       
+
+#ifdef STATISTICS
+  public  : string  statistics                 (uint32_t depth);
+#endif					       
+#if VHDL				       
+  private : void     vhdl                      (void);
+  private : void     vhdl_port                 (Vhdl & vhdl);
+  private : void     vhdl_type                 (Vhdl & vhdl);
+  private : void     vhdl_signal               (Vhdl & vhdl);
+  private : void     vhdl_body                 (Vhdl & vhdl);
+#endif					       
+					       
+#ifdef VHDL_TESTBENCH			       
+  private : void     vhdl_testbench            (Vhdl_Testbench & vhdl_testbench);
+  private : void     vhdl_testbench_port       (Vhdl_Testbench & vhdl_testbench);
+  private : void     vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench);
+#endif
+
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h	(revision 15)
@@ -1,5 +1,5 @@
 #ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_registerfile_Statistics_h
-#define morpheo_behavioural_generic_registerfile_Statistics_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_Statistics_h
+#define morpheo_behavioural_generic_registerfile_registerfile_monolithic_Statistics_h
 
 /*
@@ -14,5 +14,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 #include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
 
 using namespace morpheo::behavioural::generic::group;
@@ -22,4 +22,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   class Statistics : public morpheo::behavioural::Statistics
@@ -48,4 +49,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_Type_h
-#define morpheo_behavioural_generic_registerfile_Type_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_Type_h
+#define morpheo_behavioural_generic_registerfile_registerfile_monolithic_Type_h
 
 /*
@@ -15,8 +15,10 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   typedef uint32_t Taddress_t;
   typedef uint32_t Tdata_t;
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
 
 namespace morpheo                    {
@@ -12,4 +12,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   Parameters::Parameters (uint32_t nb_port_read ,
@@ -38,4 +39,5 @@
   { };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp	(revision 15)
@@ -7,6 +7,6 @@
 
 #include <stdint.h>
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile/include/Types.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h"
 #include <sstream>
 using namespace std;
@@ -16,4 +16,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   string Parameters::msg_error(void)
@@ -45,4 +46,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp	(revision 15)
@@ -7,5 +7,5 @@
 
 #include <stdint.h>
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
 #include <sstream>
 using namespace std;
@@ -15,4 +15,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   string Parameters::print (uint32_t depth)
@@ -20,10 +21,10 @@
     string tab = string(depth,'\t');
     ostringstream msg;
-    msg << tab << "<registerfile>" << endl
+    msg << tab << "<registerfile_monolithic>" << endl
 	<< tab << "\t<nb_port_read  value=\"" << _nb_port_read  << "\" />" << endl
 	<< tab << "\t<nb_port_write value=\"" << _nb_port_write << "\" />" << endl
 	<< tab << "\t<nb_word       value=\"" << _nb_word       << "\" />" << endl
 	<< tab << "\t<size_word     value=\"" << _size_word     << "\" />" << endl
-	<< tab << "</registerfile>" << endl;
+	<< tab << "</registerfile_monolithic>" << endl;
     
     return msg.str();
@@ -31,5 +32,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile::Parameters & x)
+		       morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters & x)
   {
     output_stream << x.print(0);
@@ -38,4 +39,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
 
 namespace morpheo                    {
@@ -12,16 +12,18 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
+  RegisterFile_Monolithic::RegisterFile_Monolithic (
 #ifdef SYSTEMC
-  RegisterFile::RegisterFile (sc_module_name name,
+						    sc_module_name name,
 #else
-  RegisterFile::RegisterFile (string name        ,
+						    string name        ,
 #endif
 #ifdef STATISTICS
-			      morpheo::behavioural::Parameters_Statistics             param_statistics,
+						    morpheo::behavioural::Parameters_Statistics             param_statistics,
 #endif
-			      morpheo::behavioural::generic::registerfile::Parameters param ):
-			      _name   (name)
-			      ,_param (param)
+						    morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param ):
+    _name   (name),
+    _param (param)
   {
 #ifdef STATISTICS
@@ -72,5 +74,5 @@
   };
   
-  RegisterFile::~RegisterFile (void)
+  RegisterFile_Monolithic::~RegisterFile_Monolithic (void)
   {
 #ifdef SYSTEMC
@@ -90,4 +92,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile 
 }; // end namespace generic
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 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp	(revision 15)
@@ -0,0 +1,83 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::allocation (void)
+  {
+    in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
+    in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
+
+    // ----- Interface Read
+     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param._nb_port_read];
+    out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param._nb_port_read];
+     in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param._nb_port_read];
+    out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param._nb_port_read];
+
+    for (uint32_t i=0; i<_param._nb_port_read; i++)
+      {
+	string rename;
+
+	rename = "in_READ_VAL["     + toString(i) + "]";
+	in_READ_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());
+
+	rename = "out_READ_ACK["     + toString(i) + "]";
+	out_READ_ACK    [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
+
+	rename = "in_READ_ADDRESS[" + toString(i) + "]";
+	in_READ_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
+
+	rename = "out_READ_DATA["    + toString(i) + "]";
+	out_READ_DATA   [i]  = new SC_OUT(Tdata_t)    (rename.c_str());
+      }
+
+    // ----- Interface Write
+     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param._nb_port_write];
+    out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param._nb_port_write];
+     in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param._nb_port_write];
+     in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param._nb_port_write];
+    
+    for (uint32_t i=0; i<_param._nb_port_write; i++)
+      {
+	string rename;
+
+	rename = "in_WRITE_VAL["  + toString(i) + "]";
+	in_WRITE_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());
+
+	rename = "out_WRITE_VAL["  + toString(i) + "]";
+	out_WRITE_ACK    [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
+
+	rename = "in_WRITE_ADDRESS[" + toString(i) + "]";
+	in_WRITE_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
+
+	rename = "in_WRITE_DATA["    + toString(i) + "]";
+	in_WRITE_DATA    [i]  = new SC_IN (Tdata_t)    (rename.c_str());
+      }
+
+    // ----- Register
+    reg_DATA = new SC_REGISTER (Tdata_t) * [_param._nb_word];
+    
+    for (uint32_t i=0; i<_param._nb_word; i++)
+      {
+	string rename = "reg_DATA["  + toString(i) + "]";
+	reg_DATA [i]  = new SC_REGISTER (Tdata_t) (rename.c_str());
+      }    
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#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 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp	(revision 15)
@@ -0,0 +1,63 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::deallocation (void)
+  {
+    delete in_CLOCK;
+    delete in_NRESET;
+    // ----- Interface Read
+    for (uint32_t i=0; i<_param._nb_port_read; i++)
+      {
+	delete  in_READ_VAL     [i];
+	delete out_READ_ACK     [i];
+	delete  in_READ_ADDRESS [i];
+	delete out_READ_DATA    [i];
+      }
+
+    delete  in_READ_VAL    ;
+    delete out_READ_ACK    ;
+    delete  in_READ_ADDRESS;
+    delete out_READ_DATA   ;
+
+    // ----- Interface Write
+    for (uint32_t i=0; i<_param._nb_port_write; i++)
+      {
+	delete  in_WRITE_VAL     [i];
+	delete out_WRITE_ACK     [i];
+	delete  in_WRITE_ADDRESS [i];
+	delete  in_WRITE_DATA    [i];
+      }
+
+    delete  in_WRITE_VAL    ;
+    delete out_WRITE_ACK    ;
+    delete  in_WRITE_ADDRESS;
+    delete  in_WRITE_DATA   ;
+
+    // ----- Register
+    for (uint32_t i=0; i<_param._nb_word; i++)
+      {
+	delete reg_DATA [i];
+      }    
+
+    delete reg_DATA;
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_genMealy_read.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_genMealy_read.cpp	(revision 15)
@@ -0,0 +1,56 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::genMealy_read (void)
+  {
+    log_printf(FUNC,Register_File,"genMealy_read","Begin");
+
+#ifdef STATISTICS
+    _stat_nb_read = 0;
+#endif    
+
+    for (uint32_t i=0; i<_param._nb_port_read; i++)
+      {
+	// Have a write?
+ 	if ( PORT_READ(in_READ_VAL [i]) == 1)
+ 	  {
+	    Taddress_t address = PORT_READ(in_READ_ADDRESS[i]);
+	    Tdata_t    data    = REGISTER_READ(reg_DATA[address]);
+
+	    log_printf(TRACE,Register_File,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
+
+#ifdef STATISTICS
+	    _stat_nb_read ++;
+#endif    
+	    // Write in registerFile
+	    PORT_WRITE(out_READ_DATA[i],data);
+ 	  }
+	else
+	  {
+	    //log_printf(TRACE,Register_File,"genMealy_read","Read  [%d] : No   transaction",i);
+	    PORT_WRITE(out_READ_DATA[i],0);
+	  }
+      }
+    log_printf(FUNC,Register_File,"genMealy_read","End");
+	
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics.cpp	(revision 15)
@@ -0,0 +1,27 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  string RegisterFile_Monolithic::statistics (uint32_t depth)
+  {
+    return _stat->print(depth);
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#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 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 15)
@@ -0,0 +1,57 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+  void RegisterFile_Monolithic::transition (void)
+  {
+    log_printf(FUNC,Register_File,"transition","Begin");
+#ifdef STATISTICS
+    _stat_nb_write = 0;
+#endif    
+
+    for (uint32_t i=0; i<_param._nb_port_write; i++)
+      {
+	// Have a write?
+ 	if ( PORT_READ(in_WRITE_VAL[i]) == true)
+ 	  {
+#ifdef STATISTICS
+	    _stat_nb_write ++;
+#endif    
+
+	    Taddress_t address = PORT_READ(in_WRITE_ADDRESS[i]);
+	    Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
+	    
+	    log_printf(TRACE,Register_File,"transition","[%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
+
+	    // Write in registerFile
+	    REGISTER_WRITE(reg_DATA[address],data);
+ 	  }
+      }
+
+#ifdef STATISTICS
+    _stat->add(_stat_nb_read,_stat_nb_write);
+#endif    
+
+#ifdef VHDL_TESTBENCH
+    vhdl_testbench_transition (*_vhdl_testbench);
+#endif
+    log_printf(FUNC,Register_File,"transition","End");
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl.cpp	(revision 15)
@@ -0,0 +1,37 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+#include "Behavioural/include/Vhdl.h"
+#include "Include/ToString.h"
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl (void)
+  {
+    Vhdl vhdl (_name);
+
+    vhdl.set_library_work (_name + "_Pack");
+
+    vhdl_port   (vhdl);
+    vhdl_type   (vhdl);
+    vhdl_signal (vhdl);
+    vhdl_body   (vhdl);
+
+    vhdl.generate_file();
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp	(revision 15)
@@ -0,0 +1,59 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl_body (Vhdl & vhdl)
+  {
+    vhdl.set_body ("");
+    vhdl.set_body ("-----------------------------------------------------------------------------");
+    vhdl.set_body ("-- Read RegisterFile");
+    vhdl.set_body ("-----------------------------------------------------------------------------");
+    vhdl.set_body ("");
+    
+    for (uint32_t i = 0; i < _param._nb_port_read; i++)
+      {
+	vhdl.set_body ("out_READ_ACK_"+toString(i)+"  <= '1';");
+	vhdl.set_body ("out_READ_DATA_"+toString(i)+" <= reg_DATA (conv_integer(in_READ_ADDRESS_"+toString(i)+")) when in_READ_VAL_"+toString(i)+" = '1' else "+std_logic_others(_param._size_word,0)+";");
+      }
+    vhdl.set_body ("");
+    vhdl.set_body ("-----------------------------------------------------------------------------");
+    vhdl.set_body ("-- Write RegisterFile");
+    vhdl.set_body ("-----------------------------------------------------------------------------");
+    vhdl.set_body ("");
+
+    vhdl.set_body ("RegisterFile_write: process (in_CLOCK)");
+    vhdl.set_body ("begin  -- process RegisterFile_write");
+    vhdl.set_body ("\tif in_CLOCK'event and in_CLOCK = '1' then");
+    
+    for (uint32_t i = 0; i < _param._nb_port_write; i++)
+      {
+      vhdl.set_body ("\t\tif (in_WRITE_VAL_"+toString(i)+" = '1') then");
+      vhdl.set_body ("\t\t\treg_DATA(conv_integer(in_WRITE_ADDRESS_"+toString(i)+")) <= in_WRITE_DATA_"+toString(i)+";");
+      vhdl.set_body ("\t\tend if;");
+      }
+
+    vhdl.set_body ("\tend if;");
+    vhdl.set_body ("end process RegisterFile_write;");
+
+    for (uint32_t i = 0; i < _param._nb_port_write; i++)
+      vhdl.set_body ("out_WRITE_ACK_"+toString(i)+"<= '1';");
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_port.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_port.cpp	(revision 15)
@@ -0,0 +1,44 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl_port (Vhdl & vhdl)
+  {
+    vhdl.set_port ("in_CLOCK" , IN, 1);
+    vhdl.set_port ("in_NRESET", IN, 1);
+
+    for (uint32_t i = 0; i < _param._nb_port_read; i ++)
+      {
+	vhdl.set_port (" in_READ_VAL_"+toString(i)+"    ",IN ,std_logic(1)                    );
+	vhdl.set_port ("out_READ_ACK_"+toString(i)+"    ",OUT,std_logic(1)                    );
+	vhdl.set_port (" in_READ_ADDRESS_"+toString(i)+"",IN ,std_logic(static_cast<uint32_t>(log2(_param._nb_word))));
+	vhdl.set_port ("out_READ_DATA_"+toString(i)+"   ",OUT,std_logic(_param._size_word    ));
+      }
+
+    for (uint32_t i = 0; i < _param._nb_port_write; i ++)
+      {
+	vhdl.set_port (" in_WRITE_VAL_"+toString(i)+"    ",IN ,std_logic(1)                    );
+	vhdl.set_port ("out_WRITE_ACK_"+toString(i)+"    ",OUT,std_logic(1)                    );
+	vhdl.set_port (" in_WRITE_ADDRESS_"+toString(i)+"",IN ,std_logic(static_cast<uint32_t>(log2(_param._nb_word))));
+	vhdl.set_port (" in_WRITE_DATA_"+toString(i)+"   ",IN ,std_logic(_param._size_word    ));
+      }
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_signal.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_signal.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_signal.cpp	(revision 15)
@@ -0,0 +1,27 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl_signal (Vhdl & vhdl)
+  {
+    vhdl.set_signal ("reg_DATA", "Tregfile");
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_port.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_port.cpp	(revision 15)
@@ -0,0 +1,43 @@
+#ifdef VHDL_TESTBENCH
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench)
+  {
+    vhdl_testbench.set_port (" in_NRESET",IN ,1);
+
+    for (uint32_t i = 0; i < _param._nb_port_read; i ++)
+      {
+	vhdl_testbench.set_port (" in_READ_VAL_"+toString(i)+"    ",IN ,1);
+	vhdl_testbench.set_port ("out_READ_ACK_"+toString(i)+"    ",OUT,1);
+	vhdl_testbench.set_port (" in_READ_ADDRESS_"+toString(i)+"",IN ,static_cast<uint32_t>(log2(_param._nb_word)));
+	vhdl_testbench.set_port ("out_READ_DATA_"+toString(i)+"   ",OUT,_param._size_word);
+      }
+
+    for (uint32_t i = 0; i < _param._nb_port_write; i ++)
+      {
+	vhdl_testbench.set_port (" in_WRITE_VAL_"+toString(i)+"    ",IN ,1);
+	vhdl_testbench.set_port ("out_WRITE_ACK_"+toString(i)+"    ",OUT,1);
+	vhdl_testbench.set_port (" in_WRITE_ADDRESS_"+toString(i)+"",IN ,static_cast<uint32_t>(log2(_param._nb_word)));
+	vhdl_testbench.set_port (" in_WRITE_DATA_"+toString(i)+"   ",IN ,_param._size_word    );
+      }
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_transition.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_transition.cpp	(revision 15)
@@ -0,0 +1,49 @@
+#ifdef VHDL_TESTBENCH
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench)
+  {
+#ifndef SYSTEMCASS_SPECIFIC
+    sc_cycle(0);
+#endif
+    vhdl_testbench.add_input (PORT_READ( in_NRESET));
+
+    for (uint32_t i = 0; i < _param._nb_port_read ; i ++)
+      {
+	vhdl_testbench.add_input (PORT_READ( in_READ_VAL     [i]));
+	vhdl_testbench.add_output(PORT_READ(out_READ_ACK     [i]));
+	vhdl_testbench.add_input (PORT_READ( in_READ_ADDRESS [i]));
+	vhdl_testbench.add_output(PORT_READ(out_READ_DATA    [i]));
+      }
+    for (uint32_t i = 0; i < _param._nb_port_write; i ++)
+      {
+	vhdl_testbench.add_input (PORT_READ( in_WRITE_VAL    [i]));
+	vhdl_testbench.add_output(PORT_READ(out_WRITE_ACK    [i]));
+	vhdl_testbench.add_input (PORT_READ( in_WRITE_ADDRESS[i]));
+	vhdl_testbench.add_input (PORT_READ( in_WRITE_DATA   [i]));
+      }
+
+    vhdl_testbench.add_test(true);
+
+    vhdl_testbench.new_cycle (); // always at the end
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_type.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_type.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_type.cpp	(revision 15)
@@ -0,0 +1,27 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+  void RegisterFile_Monolithic::vhdl_type (Vhdl & vhdl)
+  {
+    vhdl.set_type ("Tregfile", "array (" + toString(_param._nb_word-1) + " downto 0) of " + std_logic(_param._size_word));
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_allocation_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_allocation_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,81 +1,0 @@
-#ifdef SYSTEMC
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::allocation (void)
-  {
-    in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
-    in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
-
-    // ----- Interface Read
-     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param._nb_port_read];
-    out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param._nb_port_read];
-     in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param._nb_port_read];
-    out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param._nb_port_read];
-
-    for (uint32_t i=0; i<_param._nb_port_read; i++)
-      {
-	string rename;
-
-	rename = "in_READ_VAL["     + toString(i) + "]";
-	in_READ_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());
-
-	rename = "out_READ_ACK["     + toString(i) + "]";
-	out_READ_ACK    [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
-
-	rename = "in_READ_ADDRESS[" + toString(i) + "]";
-	in_READ_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
-
-	rename = "out_READ_DATA["    + toString(i) + "]";
-	out_READ_DATA   [i]  = new SC_OUT(Tdata_t)    (rename.c_str());
-      }
-
-    // ----- Interface Write
-     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param._nb_port_write];
-    out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param._nb_port_write];
-     in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param._nb_port_write];
-     in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param._nb_port_write];
-    
-    for (uint32_t i=0; i<_param._nb_port_write; i++)
-      {
-	string rename;
-
-	rename = "in_WRITE_VAL["  + toString(i) + "]";
-	in_WRITE_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());
-
-	rename = "out_WRITE_VAL["  + toString(i) + "]";
-	out_WRITE_ACK    [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
-
-	rename = "in_WRITE_ADDRESS[" + toString(i) + "]";
-	in_WRITE_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
-
-	rename = "in_WRITE_DATA["    + toString(i) + "]";
-	in_WRITE_DATA    [i]  = new SC_IN (Tdata_t)    (rename.c_str());
-      }
-
-    // ----- Register
-    reg_DATA = new SC_REGISTER (Tdata_t) * [_param._nb_word];
-    
-    for (uint32_t i=0; i<_param._nb_word; i++)
-      {
-	string rename = "reg_DATA["  + toString(i) + "]";
-	reg_DATA [i]  = new SC_REGISTER (Tdata_t) (rename.c_str());
-      }    
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_deallocation_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_deallocation_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,61 +1,0 @@
-#ifdef SYSTEMC
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::deallocation (void)
-  {
-    delete in_CLOCK;
-    delete in_NRESET;
-    // ----- Interface Read
-    for (uint32_t i=0; i<_param._nb_port_read; i++)
-      {
-	delete  in_READ_VAL     [i];
-	delete out_READ_ACK     [i];
-	delete  in_READ_ADDRESS [i];
-	delete out_READ_DATA    [i];
-      }
-
-    delete  in_READ_VAL    ;
-    delete out_READ_ACK    ;
-    delete  in_READ_ADDRESS;
-    delete out_READ_DATA   ;
-
-    // ----- Interface Write
-    for (uint32_t i=0; i<_param._nb_port_write; i++)
-      {
-	delete  in_WRITE_VAL     [i];
-	delete out_WRITE_ACK     [i];
-	delete  in_WRITE_ADDRESS [i];
-	delete  in_WRITE_DATA    [i];
-      }
-
-    delete  in_WRITE_VAL    ;
-    delete out_WRITE_ACK    ;
-    delete  in_WRITE_ADDRESS;
-    delete  in_WRITE_DATA   ;
-
-    // ----- Register
-    for (uint32_t i=0; i<_param._nb_word; i++)
-      {
-	delete reg_DATA [i];
-      }    
-
-    delete reg_DATA;
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_genMealy_read_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_genMealy_read_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,54 +1,0 @@
-#ifdef SYSTEMC
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::genMealy_read (void)
-  {
-    log_printf(FUNC,Register_File,"genMealy_read","Begin");
-
-#ifdef STATISTICS
-    _stat_nb_read = 0;
-#endif    
-
-    for (uint32_t i=0; i<_param._nb_port_read; i++)
-      {
-	// Have a write?
- 	if ( PORT_READ(in_READ_VAL [i]) == 1)
- 	  {
-	    Taddress_t address = PORT_READ(in_READ_ADDRESS[i]);
-	    Tdata_t    data    = REGISTER_READ(reg_DATA[address]);
-
-	    log_printf(TRACE,Register_File,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
-
-#ifdef STATISTICS
-	    _stat_nb_read ++;
-#endif    
-	    // Write in registerFile
-	    PORT_WRITE(out_READ_DATA[i],data);
- 	  }
-	else
-	  {
-	    //log_printf(TRACE,Register_File,"genMealy_read","Read  [%d] : No   transaction",i);
-	    PORT_WRITE(out_READ_DATA[i],0);
-	  }
-      }
-    log_printf(FUNC,Register_File,"genMealy_read","End");
-	
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_statistics_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_statistics_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#ifdef STATISTICS
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  string RegisterFile::statistics (uint32_t depth)
-  {
-    return _stat->print(depth);
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_transition_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_transition_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,56 +1,0 @@
-#ifdef SYSTEMC
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::transition (void)
-  {
-    log_printf(FUNC,Register_File,"transition","Begin");
-#ifdef STATISTICS
-    _stat_nb_write = 0;
-#endif    
-
-    for (uint32_t i=0; i<_param._nb_port_write; i++)
-      {
-	// Have a write?
- 	if ( PORT_READ(in_WRITE_VAL[i]) == true)
- 	  {
-#ifdef STATISTICS
-	    _stat_nb_write ++;
-#endif    
-
-	    Taddress_t address = PORT_READ(in_WRITE_ADDRESS[i]);
-	    Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
-	    
-	    log_printf(TRACE,Register_File,"transition","[%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
-
-	    // Write in registerFile
-	    REGISTER_WRITE(reg_DATA[address],data);
- 	  }
-      }
-
-#ifdef STATISTICS
-    _stat->add(_stat_nb_read,_stat_nb_write);
-#endif    
-
-#ifdef VHDL_TESTBENCH
-    vhdl_testbench_transition (*_vhdl_testbench);
-#endif
-    log_printf(FUNC,Register_File,"transition","End");
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,35 +1,0 @@
-#ifdef VHDL
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-#include "Behavioural/include/Vhdl.h"
-#include "Include/ToString.h"
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl (void)
-  {
-    Vhdl vhdl (_name);
-
-    vhdl.set_library_work (_name + "_Pack");
-
-    vhdl_port   (vhdl);
-    vhdl_type   (vhdl);
-    vhdl_signal (vhdl);
-    vhdl_body   (vhdl);
-
-    vhdl.generate_file();
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_body_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_body_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,57 +1,0 @@
-#ifdef VHDL
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl_body (Vhdl & vhdl)
-  {
-    vhdl.set_body ("");
-    vhdl.set_body ("-----------------------------------------------------------------------------");
-    vhdl.set_body ("-- Read RegisterFile");
-    vhdl.set_body ("-----------------------------------------------------------------------------");
-    vhdl.set_body ("");
-    
-    for (uint32_t i = 0; i < _param._nb_port_read; i++)
-      {
-	vhdl.set_body ("out_READ_ACK_"+toString(i)+"  <= '1';");
-	vhdl.set_body ("out_READ_DATA_"+toString(i)+" <= reg_DATA (conv_integer(in_READ_ADDRESS_"+toString(i)+")) when in_READ_VAL_"+toString(i)+" = '1' else "+std_logic_others(_param._size_word,0)+";");
-      }
-    vhdl.set_body ("");
-    vhdl.set_body ("-----------------------------------------------------------------------------");
-    vhdl.set_body ("-- Write RegisterFile");
-    vhdl.set_body ("-----------------------------------------------------------------------------");
-    vhdl.set_body ("");
-
-    vhdl.set_body ("RegisterFile_write: process (in_CLOCK)");
-    vhdl.set_body ("begin  -- process RegisterFile_write");
-    vhdl.set_body ("\tif in_CLOCK'event and in_CLOCK = '1' then");
-    
-    for (uint32_t i = 0; i < _param._nb_port_write; i++)
-      {
-      vhdl.set_body ("\t\tif (in_WRITE_VAL_"+toString(i)+" = '1') then");
-      vhdl.set_body ("\t\t\treg_DATA(conv_integer(in_WRITE_ADDRESS_"+toString(i)+")) <= in_WRITE_DATA_"+toString(i)+";");
-      vhdl.set_body ("\t\tend if;");
-      }
-
-    vhdl.set_body ("\tend if;");
-    vhdl.set_body ("end process RegisterFile_write;");
-
-    for (uint32_t i = 0; i < _param._nb_port_write; i++)
-      vhdl.set_body ("out_WRITE_ACK_"+toString(i)+"<= '1';");
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_port_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_port_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,42 +1,0 @@
-#ifdef VHDL
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl_port (Vhdl & vhdl)
-  {
-    vhdl.set_port ("in_CLOCK" , IN, 1);
-    vhdl.set_port ("in_NRESET", IN, 1);
-
-    for (uint32_t i = 0; i < _param._nb_port_read; i ++)
-      {
-	vhdl.set_port (" in_READ_VAL_"+toString(i)+"    ",IN ,std_logic(1)                    );
-	vhdl.set_port ("out_READ_ACK_"+toString(i)+"    ",OUT,std_logic(1)                    );
-	vhdl.set_port (" in_READ_ADDRESS_"+toString(i)+"",IN ,std_logic(static_cast<uint32_t>(log2(_param._nb_word))));
-	vhdl.set_port ("out_READ_DATA_"+toString(i)+"   ",OUT,std_logic(_param._size_word    ));
-      }
-
-    for (uint32_t i = 0; i < _param._nb_port_write; i ++)
-      {
-	vhdl.set_port (" in_WRITE_VAL_"+toString(i)+"    ",IN ,std_logic(1)                    );
-	vhdl.set_port ("out_WRITE_ACK_"+toString(i)+"    ",OUT,std_logic(1)                    );
-	vhdl.set_port (" in_WRITE_ADDRESS_"+toString(i)+"",IN ,std_logic(static_cast<uint32_t>(log2(_param._nb_word))));
-	vhdl.set_port (" in_WRITE_DATA_"+toString(i)+"   ",IN ,std_logic(_param._size_word    ));
-      }
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_signal_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_signal_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#ifdef VHDL
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl_signal (Vhdl & vhdl)
-  {
-    vhdl.set_signal ("reg_DATA", "Tregfile");
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_testbench_port_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_testbench_port_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,41 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench)
-  {
-    vhdl_testbench.set_port (" in_NRESET",IN ,1);
-
-    for (uint32_t i = 0; i < _param._nb_port_read; i ++)
-      {
-	vhdl_testbench.set_port (" in_READ_VAL_"+toString(i)+"    ",IN ,1);
-	vhdl_testbench.set_port ("out_READ_ACK_"+toString(i)+"    ",OUT,1);
-	vhdl_testbench.set_port (" in_READ_ADDRESS_"+toString(i)+"",IN ,static_cast<uint32_t>(log2(_param._nb_word)));
-	vhdl_testbench.set_port ("out_READ_DATA_"+toString(i)+"   ",OUT,_param._size_word);
-      }
-
-    for (uint32_t i = 0; i < _param._nb_port_write; i ++)
-      {
-	vhdl_testbench.set_port (" in_WRITE_VAL_"+toString(i)+"    ",IN ,1);
-	vhdl_testbench.set_port ("out_WRITE_ACK_"+toString(i)+"    ",OUT,1);
-	vhdl_testbench.set_port (" in_WRITE_ADDRESS_"+toString(i)+"",IN ,static_cast<uint32_t>(log2(_param._nb_word)));
-	vhdl_testbench.set_port (" in_WRITE_DATA_"+toString(i)+"   ",IN ,_param._size_word    );
-      }
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_testbench_transition_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_testbench_transition_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,47 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench)
-  {
-#ifndef SYSTEMCASS_SPECIFIC
-    sc_cycle(0);
-#endif
-    vhdl_testbench.add_input (PORT_READ( in_NRESET));
-
-    for (uint32_t i = 0; i < _param._nb_port_read ; i ++)
-      {
-	vhdl_testbench.add_input (PORT_READ( in_READ_VAL     [i]));
-	vhdl_testbench.add_output(PORT_READ(out_READ_ACK     [i]));
-	vhdl_testbench.add_input (PORT_READ( in_READ_ADDRESS [i]));
-	vhdl_testbench.add_output(PORT_READ(out_READ_DATA    [i]));
-      }
-    for (uint32_t i = 0; i < _param._nb_port_write; i ++)
-      {
-	vhdl_testbench.add_input (PORT_READ( in_WRITE_VAL    [i]));
-	vhdl_testbench.add_output(PORT_READ(out_WRITE_ACK    [i]));
-	vhdl_testbench.add_input (PORT_READ( in_WRITE_ADDRESS[i]));
-	vhdl_testbench.add_input (PORT_READ( in_WRITE_DATA   [i]));
-      }
-
-    vhdl_testbench.add_test(true);
-
-    vhdl_testbench.new_cycle (); // always at the end
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_type_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_vhdl_type_Monolithic.cpp	(revision 11)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#ifdef VHDL
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
-namespace morpheo                    {
-namespace behavioural                {
-namespace generic                    {
-namespace registerfile               {
-
-  void RegisterFile::vhdl_type (Vhdl & vhdl)
-  {
-    vhdl.set_type ("Tregfile", "array (" + toString(_param._nb_word-1) + " downto 0) of " + std_logic(_param._size_word));
-  };
-
-}; // end namespace registerfile 
-}; // end namespace generic
-}; // end namespace behavioural          
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
 
 namespace morpheo                    {
@@ -13,4 +13,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   Statistics::Statistics (string                                      name                       ,
@@ -43,4 +44,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_add.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_add.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
 
 #include <sstream>
@@ -16,4 +16,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   void Statistics::add (uint32_t nb_read,
@@ -24,4 +25,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
 
 #include <sstream>
@@ -16,4 +16,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   string Statistics::print (uint32_t depth)
@@ -22,7 +23,7 @@
     ostringstream msg;
 
-    msg << tab << "<registerfile name=\"" << _name << "\" >" << endl
+    msg << tab << "<registerfile_monolithic name=\"" << _name << "\" >" << endl
 	<< print_body(depth+1)
-	<< tab << "</registerfile>" << endl;
+	<< tab << "</RegisterFile_Monolithic>" << endl;
     
     return msg.str();
@@ -30,5 +31,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile::Statistics & x)
+		       morpheo::behavioural::generic::registerfile::registerfile_monolithic::Statistics & x)
   {
     output_stream << x.print(0);
@@ -37,4 +38,5 @@
   };
 
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
 
 #include <sstream>
@@ -16,4 +16,5 @@
 namespace generic                    {
 namespace registerfile               {
+namespace registerfile_monolithic    {
 
   string Statistics::print_body (uint32_t depth)
@@ -27,4 +28,6 @@
     return msg.str();
   };
+
+}; // end namespace registerfile_monolithic
 }; // end namespace registerfile
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile	(revision 15)
@@ -8,5 +8,5 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../..
+DIR_MORPHEO			= ../../../..
 
 #-----[ Library ]------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.deps	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.deps	(revision 15)
@@ -18,5 +18,5 @@
 					$(Behavioural_LIBRARY)	
 
-RegisterFile_Multi_Banked_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile_Multi_Banked/lib	\
+RegisterFile_Multi_Banked_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/lib	\
 					$(Behavioural_DIR_LIBRARY)
 
@@ -25,7 +25,7 @@
 RegisterFile_Multi_Banked_library		: 
 				@$(MAKE) Behavioural_library
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile_Multi_Banked --makefile=Makefile 
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked --makefile=Makefile 
 	
 RegisterFile_Multi_Banked_library_clean	: 
 				@$(MAKE) Behavioural_library_clean
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile_Multi_Banked --makefile=Makefile clean
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked --makefile=Makefile clean
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile	(revision 15)
@@ -8,5 +8,5 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../../..
+DIR_MORPHEO			= ../../../../..
 
 #-----[ Library ]------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile.deps	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile.deps	(revision 15)
@@ -18,5 +18,5 @@
 					$(Behavioural_LIBRARY)	
 
-RegisterFile_Multi_Banked_Glue_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/lib	\
+RegisterFile_Multi_Banked_Glue_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/lib	\
 					$(Behavioural_DIR_LIBRARY)
 
@@ -25,7 +25,7 @@
 RegisterFile_Multi_Banked_Glue_library		: 
 				@$(MAKE) Behavioural_library
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile 
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile 
 	
 RegisterFile_Multi_Banked_Glue_library_clean	: 
 				@$(MAKE) Behavioural_library_clean
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile clean
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile clean
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/Makefile	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/Makefile	(revision 15)
@@ -8,5 +8,5 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../../../..
+DIR_MORPHEO			= ../../../../../..
 
 LIBRARY				= $(RegisterFile_Multi_Banked_Glue_LIBRARY)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/configuration.cfg	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/configuration.cfg	(revision 15)
@@ -1,6 +1,9 @@
 RegisterFile_Multi_Banked_Glue
-2	8 	*2	# nb_port_read
-2	4	*2	# nb_port_write
-6  	8    	+1	# size_address
+4	4 	*2	# nb_port_read
+4	4	*2	# nb_port_write
+8  	8    	+1	# size_address
 32	32	*2	# size_word
 2	2	*2	# nb_bank
+2	2 	*2	# nb_port_read_by_bank
+2	2	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h	(revision 15)
@@ -14,5 +14,5 @@
 #include <iostream>
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 using namespace std;
@@ -20,8 +20,9 @@
 using namespace morpheo::behavioural;
 using namespace morpheo::behavioural::generic;
-using namespace morpheo::behavioural::generic::registerfile_multi_banked;
+using namespace morpheo::behavioural::generic::registerfile;
+using namespace morpheo::behavioural::generic::registerfile::registerfile_multi_banked;
 
-using namespace morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue;
+using namespace morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue;
 
 void test    (string name,
-	      morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param);
+	      morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/main.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/main.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h"
 
 #define NB_PARAMS 5
@@ -14,9 +14,12 @@
   cerr << "<Usage> " << argv[0] << " name_instance list_params" << endl
        << "list_params is :" << endl
-       << " - nb_port_read  (unsigned int)" << endl
-       << " - nb_port_write (unsigned int)" << endl
-       << " - size_address  (unsigned int)" << endl
-       << " - size_word     (unsigned int)" << endl
-       << " - nb_bank       (unsigned int)" << endl
+       << " - nb_port_read          (uint32_t   )" << endl
+       << " - nb_port_write         (uint32_t   )" << endl
+       << " - size_address          (uint32_t   )" << endl
+       << " - size_word             (uint32_t   )" << endl
+       << " - nb_bank               (uint32_t   )" << endl
+       << " - nb_port_read_by_bank  (uint32_t   )" << endl
+       << " - nb_port_write_by_bank (uint32_t   )" << endl
+       << " - crossbar              (Tcrossbar_t)" << endl
        << "" << endl;
 
@@ -37,19 +40,25 @@
     usage (argc, argv);
 
-  const string   name          = argv[1];
-  const uint32_t nb_port_read  = atoi(argv[2]);
-  const uint32_t nb_port_write = atoi(argv[3]);
-  const uint32_t size_address  = atoi(argv[4]);
-  const uint32_t size_word     = atoi(argv[5]);
-  const uint32_t nb_bank       = atoi(argv[6]);
+  const string      name                  =      argv[1];
+  const uint32_t    nb_port_read          = atoi(argv[2]);
+  const uint32_t    nb_port_write         = atoi(argv[3]);
+  const uint32_t    size_address          = atoi(argv[4]);
+  const uint32_t    size_word             = atoi(argv[5]);
+  const uint32_t    nb_bank               = atoi(argv[6]);
+  const uint32_t    nb_port_read_by_bank  = atoi(argv[7]);
+  const uint32_t    nb_port_write_by_bank = atoi(argv[8]);
+  const Tcrossbar_t crossbar              = fromString<Tcrossbar_t>(argv[9]);
 
   try 
     {
-      morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param (nb_port_read ,
-														  nb_port_write,
-														  size_address ,
-														  size_word    ,
-														  nb_bank      );
-      
+      morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param (nb_port_read         ,
+																nb_port_write        ,
+																size_address         ,
+																size_word            ,
+																nb_bank              ,
+																nb_port_read_by_bank ,
+																nb_port_write_by_bank,
+																crossbar             );
+
       cout << param.print(1);
       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/test.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/test.cpp	(revision 15)
@@ -7,11 +7,14 @@
  */
 
-#define NB_ITERATION 1
-
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h"
+#define NB_ITERATION 16
+
+#define LABEL(str) do {cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label(str);} while (0)
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h"
 #include "Include/Test.h"
+#include "Include/BitManipulation.h"
 
 void test (string name,
-	   morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters _param)
+	   morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters _param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
@@ -19,7 +22,7 @@
   RegisterFile_Multi_Banked_Glue * _RegisterFile_Multi_Banked_Glue = new RegisterFile_Multi_Banked_Glue (name.c_str(),
 #ifdef STATISTICS
-					     morpheo::behavioural::Parameters_Statistics(5,50),
+													 morpheo::behavioural::Parameters_Statistics(5,50),
 #endif
-					     _param);
+													 _param);
   
 #ifdef SYSTEMC
@@ -33,6 +36,6 @@
   sc_signal<Taddress_t>                 ** READ_IN_ADDRESS   ;
   sc_signal<Tdata_t   >                 ** READ_IN_DATA      ;
-  sc_signal<Tcontrol_t>                 ** READ_SELECT_VAL   ;
-  sc_signal<Tcontrol_t>                 ** READ_SELECT_ACK   ;
+  sc_signal<Tcontrol_t>               **** READ_SELECT_VAL   ;
+  sc_signal<Tcontrol_t>               **** READ_SELECT_ACK   ;
   sc_signal<Tcontrol_t>                *** READ_OUT_VAL      ;
   sc_signal<Tcontrol_t>                *** READ_OUT_ACK      ;
@@ -41,8 +44,8 @@
   sc_signal<Tcontrol_t>                 ** WRITE_IN_VAL      ;
   sc_signal<Tcontrol_t>                 ** WRITE_IN_ACK      ;
-  sc_signal<Tcontrol_t>                 ** WRITE_SELECT_VAL  ;
-  sc_signal<Tcontrol_t>                 ** WRITE_SELECT_ACK  ;
   sc_signal<Taddress_t>                 ** WRITE_IN_ADDRESS  ;
   sc_signal<Tdata_t   >                 ** WRITE_IN_DATA     ;
+  sc_signal<Tcontrol_t>               **** WRITE_SELECT_VAL  ;
+  sc_signal<Tcontrol_t>               **** WRITE_SELECT_ACK  ;
   sc_signal<Tcontrol_t>                *** WRITE_OUT_VAL     ;
   sc_signal<Tcontrol_t>                *** WRITE_OUT_ACK     ;
@@ -58,6 +61,4 @@
   READ_IN_ADDRESS   = new sc_signal<Taddress_t>           * [_param._nb_port_read];
   READ_IN_DATA      = new sc_signal<Tdata_t   >           * [_param._nb_port_read];
-  READ_SELECT_VAL   = new sc_signal<Tcontrol_t>           * [_param._nb_port_read];
-  READ_SELECT_ACK   = new sc_signal<Tcontrol_t>           * [_param._nb_port_read];
 
   for (uint32_t i=0; i<_param._nb_port_read; i++)
@@ -71,9 +72,29 @@
       rename = "READ_IN_DATA_"+toString(i)+"     ";
       READ_IN_DATA      [i] = new sc_signal<Tdata_t   > (rename.c_str());
-      rename = "READ_SELECT_VAL_"+toString(i)+"  ";
-      READ_SELECT_VAL       [i] = new sc_signal<Tcontrol_t> (rename.c_str());
-      rename = "READ_SELECT_ACK_"+toString(i)+"  ";
-      READ_SELECT_ACK       [i] = new sc_signal<Tcontrol_t> (rename.c_str());
-    }
+    }
+
+   READ_SELECT_VAL  = new sc_signal<Tcontrol_t> *** [_param._nb_bank];
+   READ_SELECT_ACK  = new sc_signal<Tcontrol_t> *** [_param._nb_bank];
+
+    for (uint32_t i=0; i<_param._nb_bank; i++)
+      {
+	READ_SELECT_VAL [i] = new sc_signal<Tcontrol_t>  ** [_param._nb_port_read_by_bank];
+	READ_SELECT_ACK [i] = new sc_signal<Tcontrol_t>  ** [_param._nb_port_read_by_bank];
+
+	 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	   {
+	     READ_SELECT_VAL [i][j] = new sc_signal<Tcontrol_t>   * [_param._nb_port_select_by_bank_read_port [j]];
+	     READ_SELECT_ACK [i][j] = new sc_signal<Tcontrol_t>   * [_param._nb_port_select_by_bank_read_port [j]];
+	     
+	     for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++)
+	       {
+		 rename="READ_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ";
+		 READ_SELECT_VAL [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str());
+		 
+		 rename="READ_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ";
+		 READ_SELECT_ACK [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str());
+	       }
+	   }
+      }
    						      
    READ_OUT_VAL      = new sc_signal<Tcontrol_t>          ** [_param._nb_bank];
@@ -106,7 +127,4 @@
    WRITE_IN_ADDRESS  = new sc_signal<Taddress_t>           * [_param._nb_port_write];
    WRITE_IN_DATA     = new sc_signal<Tdata_t   >           * [_param._nb_port_write];
-   WRITE_SELECT_VAL  = new sc_signal<Tcontrol_t>           * [_param._nb_port_write];
-   WRITE_SELECT_ACK  = new sc_signal<Tcontrol_t>           * [_param._nb_port_write];
-
    for (uint32_t i=0; i<_param._nb_port_write; i++)
      {
@@ -119,10 +137,29 @@
        rename = "WRITE_IN_DATA_"+toString(i)+"    ";
        WRITE_IN_DATA     [i] = new sc_signal<Tdata_t   > (rename.c_str());
-
-       rename = "WRITE_SELECT_VAL_"+toString(i)+" ";
-       WRITE_SELECT_VAL  [i] = new sc_signal<Tcontrol_t> (rename.c_str());
-       rename = "WRITE_SELECT_ACK_"+toString(i)+" ";
-       WRITE_SELECT_ACK  [i] = new sc_signal<Tcontrol_t> (rename.c_str());
-     }
+     }
+
+   WRITE_SELECT_VAL  = new sc_signal<Tcontrol_t> *** [_param._nb_bank];
+   WRITE_SELECT_ACK  = new sc_signal<Tcontrol_t> *** [_param._nb_bank];
+
+    for (uint32_t i=0; i<_param._nb_bank; i++)
+      {
+	WRITE_SELECT_VAL [i] = new sc_signal<Tcontrol_t>  ** [_param._nb_port_write_by_bank];
+	WRITE_SELECT_ACK [i] = new sc_signal<Tcontrol_t>  ** [_param._nb_port_write_by_bank];
+
+	 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+	   {
+	     WRITE_SELECT_VAL [i][j] = new sc_signal<Tcontrol_t>   * [_param._nb_port_select_by_bank_write_port [j]];
+	     WRITE_SELECT_ACK [i][j] = new sc_signal<Tcontrol_t>   * [_param._nb_port_select_by_bank_write_port [j]];
+	     
+	     for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++)
+	       {
+		 rename="WRITE_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ";
+		 WRITE_SELECT_VAL [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str());
+		 
+		 rename="WRITE_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ";
+		 WRITE_SELECT_ACK [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str());
+	       }
+	   }
+      }
       
    WRITE_OUT_VAL     = new sc_signal<Tcontrol_t>          ** [_param._nb_bank];
@@ -165,7 +202,14 @@
        (*(_RegisterFile_Multi_Banked_Glue-> in_READ_IN_ADDRESS   [i]))       (*(READ_IN_ADDRESS   [i]));
        (*(_RegisterFile_Multi_Banked_Glue->out_READ_IN_DATA      [i]))       (*(READ_IN_DATA      [i]));
-       (*(_RegisterFile_Multi_Banked_Glue-> in_READ_SELECT_VAL   [i]))       (*(READ_SELECT_VAL   [i]));
-       (*(_RegisterFile_Multi_Banked_Glue->out_READ_SELECT_ACK   [i]))       (*(READ_SELECT_ACK   [i]));
-     }
+     }
+
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+       for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+	 {
+	   (*(_RegisterFile_Multi_Banked_Glue->out_READ_SELECT_VAL [i][j][k])) (*(READ_SELECT_VAL [i][j][k]));
+	   (*(_RegisterFile_Multi_Banked_Glue-> in_READ_SELECT_ACK [i][j][k])) (*(READ_SELECT_ACK [i][j][k]));
+	 }
+
    for (uint32_t i=0; i<_param._nb_bank; i++)
        for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
@@ -183,7 +227,13 @@
        (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_IN_ADDRESS  [i]))       (*(WRITE_IN_ADDRESS  [i]));
        (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_IN_DATA     [i]))       (*(WRITE_IN_DATA     [i]));
-       (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_SELECT_VAL  [i]))       (*(WRITE_SELECT_VAL  [i]));
-       (*(_RegisterFile_Multi_Banked_Glue->out_WRITE_SELECT_ACK  [i]))       (*(WRITE_SELECT_ACK  [i]));
-     }
+     }
+
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+       for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port[j]; k++)
+	 {
+	   (*(_RegisterFile_Multi_Banked_Glue->out_WRITE_SELECT_VAL [i][j][k])) (*(WRITE_SELECT_VAL [i][j][k]));
+	   (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_SELECT_ACK [i][j][k])) (*(WRITE_SELECT_ACK [i][j][k]));
+	 }
 
    for (uint32_t i=0; i<_param._nb_bank; i++)
@@ -197,9 +247,10 @@
 
 
+  cout << "<" << name << "> Start Simulation ............" << endl;
+  
   /********************************************************
    * Simulation - Begin
    ********************************************************/
 
-  cout << "<" << name << "> Start Simulation ............" << endl;
   // Initialisation
 
@@ -210,16 +261,104 @@
 
   sc_start(0);
-  _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label("Initialisation");
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
-
-
-  _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label("Loop of Test");
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl;
+
+  LABEL("Initialisation");
+
+  uint32_t   read_in_num_bank [_param._nb_port_read]; // Number of bank
+//Tcontrol_t read_in_valid    [_param._nb_port_read];
+  Tcontrol_t read_in_ack      [_param._nb_port_read]; // to test
+  Tdata_t    read_in_data     [_param._nb_port_read]; // to test
+  Tcontrol_t read_out_val     [_param._nb_bank][_param._nb_port_read_by_bank];  
+  Tcontrol_t read_out_ack     [_param._nb_bank][_param._nb_port_read_by_bank];  
+  Taddress_t read_out_address [_param._nb_bank][_param._nb_port_read_by_bank];  
+  Tcontrol_t read_is_busy     [_param._nb_port_read];
+  Tcontrol_t read_select_val  [_param._nb_bank][_param._nb_port_read        ];
+  Tcontrol_t read_select_ack  [_param._nb_bank][_param._nb_port_read        ];
+
+  LABEL("Loop of Test");
 
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label("Iteration "+toString(iteration));
-
+      LABEL("Iteration "+toString(iteration));
+      
+      LABEL("Test read_in");
+      
+      // Write in interface "read_in"
+      for (uint32_t i=0; i<_param._nb_port_read; i++)
+	{
+	  read_in_num_bank  [i] =  rand() % _param._nb_bank;
+	  Tcontrol_t read_in_valid = (rand() % 2) != 0;
+
+	  Taddress_t address    = (read_in_num_bank[i] << _param._shift_address) | (gen_mask<Taddress_t>(_param._size_address-_param._shift_address) & i);
+
+	  read_is_busy      [i] = (read_in_valid == 0);
+	  read_in_ack       [i] = 0;
+	  read_in_data      [i] = 0;
+	  READ_IN_VAL       [i]->write(read_in_valid);
+	  READ_IN_ADDRESS   [i]->write(address);
+
+	  for (uint32_t j=0; j<_param._nb_bank; j++)
+	    read_select_ack [j][i] = 0;
+	}
+
+      for (uint32_t i=0; i<_param._nb_bank; i++)
+	for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	  {
+	    read_out_ack      [i][j] = (rand() % 2) != 0;
+	    READ_OUT_ACK      [i][j]->write(read_out_ack      [i][j]);
+	    READ_OUT_DATA     [i][j]->write((j<<1)|1); // (j<<1)|1 afin de n'avoir jamais 0
+	  }
+      
+      // compute the good read_select
+      for (uint32_t i=0; i<_param._nb_bank; i++)
+	for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	  {
+	    bool find = false; // have find a port_in to link with this port_out
+	    for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+	      {
+
+		uint32_t num_port; // number of port
+		
+		// compute the good number of port
+		if (_param._crossbar == FULL_CROSSBAR)
+		  num_port = k;
+		else
+		  num_port = _param._link_port_read [i];
+
+		read_select_val [i][num_port] = read_out_ack [i][j] && not read_is_busy [num_port];
+		
+		if ((read_out_ack [i][j] == 0) || find)
+		  read_select_ack [i][num_port] = 0; // read_out is busy or already find
+		else
+		  {
+		    // find a busy port?
+		    find = not read_is_busy [num_port];
+		    read_is_busy       [num_port]|= find;
+		    read_select_ack [i][num_port] = find;
+
+		    if (find)
+		      {
+			read_in_ack      [num_port] = 1;
+			read_in_data     [num_port] = ((j<<1)|1);
+			read_out_val     [i][j]     = 1;
+			read_out_address [i][j]     = (read_in_num_bank[i] << _param._shift_address) | (gen_mask<Taddress_t>(_param._size_address-_param._shift_address) & i);
+		      }
+		  }
+		
+		READ_SELECT_ACK [i][j][k]->write(read_select_ack [i][num_port]);
+	      }
+	  }
+
+      // next cycle
       sc_start(1);
+
+//       // lot of test
+//   public    : SC_OUT(Tcontrol_t)           ** out_READ_IN_ACK       ;
+//   public    : SC_OUT(Tdata_t   )           ** out_READ_IN_DATA      ;
+
+//   public    : SC_OUT(Tcontrol_t)         **** out_READ_SELECT_VAL   ;
+
+//   public    : SC_OUT(Tcontrol_t)          *** out_READ_OUT_VAL      ;
+//   public    : SC_OUT(Taddress_t)          *** out_READ_OUT_ADDRESS  ;
+
     }
 
@@ -238,6 +377,4 @@
       delete READ_IN_ADDRESS   [i];
       delete READ_IN_DATA      [i];
-      delete READ_SELECT_VAL   [i];
-      delete READ_SELECT_ACK   [i];
     }
   						      
@@ -246,6 +383,22 @@
   delete READ_IN_ADDRESS;
   delete READ_IN_DATA   ;
-  delete READ_SELECT_VAL;
-  delete READ_SELECT_ACK;
+
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     {
+       for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	 {
+	   for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+	     {
+	       delete READ_SELECT_VAL [i][j][k];
+	       delete READ_SELECT_ACK [i][j][k];
+	     }
+	   delete READ_SELECT_VAL [i][j];
+	   delete READ_SELECT_ACK [i][j];
+	 }
+       delete READ_SELECT_VAL [i];
+       delete READ_SELECT_ACK [i];
+     }
+   delete READ_SELECT_VAL;
+   delete READ_SELECT_ACK;
 
    for (uint32_t i=0; i<_param._nb_bank; i++)
@@ -276,6 +429,4 @@
       delete WRITE_IN_ADDRESS  [i];
       delete WRITE_IN_DATA     [i];
-      delete WRITE_SELECT_VAL  [i];
-      delete WRITE_SELECT_ACK  [i];
     }
 
@@ -284,4 +435,20 @@
   delete WRITE_IN_ADDRESS;
   delete WRITE_IN_DATA   ;
+
+  for (uint32_t i=0; i<_param._nb_bank; i++)
+    {
+      for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+	{
+	  for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port[j]; k++)
+	    {
+	      delete WRITE_SELECT_VAL [i][j][k];
+	      delete WRITE_SELECT_ACK [i][j][k];
+	    }
+	  delete WRITE_SELECT_VAL [i][j];
+	  delete WRITE_SELECT_ACK [i][j];
+	}
+      delete WRITE_SELECT_VAL [i];
+      delete WRITE_SELECT_ACK [i];
+    }
   delete WRITE_SELECT_VAL;
   delete WRITE_SELECT_ACK;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_Parameters_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_Parameters_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Parameters_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Parameters_h
 
 /*
@@ -10,32 +10,73 @@
 
 #include "Include/Debug.h"
+#include "Include/FromString.h"
 #include "Behavioural/include/Parameters.h"
 #include <math.h>
 
 namespace morpheo {
+
+  typedef enum {PARTIAL_CROSSBAR,
+		FULL_CROSSBAR   } Tcrossbar_t;
+
+  template<> inline Tcrossbar_t fromString<Tcrossbar_t> (const std::string& x)
+  {
+    if ( (x.compare("0")                == 0) or
+	 (x.compare("PARTIAL_CROSSBAR") == 0))
+      return PARTIAL_CROSSBAR;
+    if ( (x.compare("1")                == 0) or
+	 (x.compare("FULL_CROSSBAR"   ) == 0))
+      return FULL_CROSSBAR;
+
+    throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
+  }
+  
+  template<> inline std::string toString<Tcrossbar_t>   (const Tcrossbar_t& x)
+  {
+    ostringstream out;
+
+    if (x == PARTIAL_CROSSBAR)
+      out << "PARTIAL_CROSSBAR";
+    if (x == FULL_CROSSBAR)
+      out << "FULL_CROSSBAR";
+
+    return out.str();
+  }
+
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
-
-
+      
   class Parameters : public morpheo::behavioural::Parameters
   {
     //-----[ fields ]------------------------------------------------------------
-  public : const uint32_t _nb_port_read         ;
-  public : const uint32_t _nb_port_write        ;
-  public : const uint32_t _size_address         ;
-  public : const uint32_t _size_word            ;
-  public : const uint32_t _nb_bank              ;
+  public : const uint32_t    _nb_port_read         ;
+  public : const uint32_t    _nb_port_write        ;
+  public : const uint32_t    _size_address         ;
+  public : const uint32_t    _size_word            ;
+  public : const uint32_t    _nb_bank              ;
+  public : const uint32_t    _nb_port_read_by_bank ;
+  public : const uint32_t    _nb_port_write_by_bank;
+  public : const Tcrossbar_t _crossbar             ;
 
-  public : const uint32_t _nb_port_read_by_bank ;
-  public : const uint32_t _nb_port_write_by_bank;
+  public : const uint32_t    _shift_address        ;
+
+  public :       uint32_t  * _link_port_read       ; 
+  public :       uint32_t  * _link_port_write      ;
+
+  public :       uint32_t  * _nb_port_select_by_bank_read_port ;
+  public :       uint32_t  * _nb_port_select_by_bank_write_port;
 
     //-----[ methods ]-----------------------------------------------------------
-  public : Parameters  (uint32_t nb_port_read ,
-			uint32_t nb_port_write,
-			uint32_t size_address ,
-			uint32_t size_word    ,
-			uint32_t nb_bank      );
+  public : Parameters  (uint32_t    nb_port_read         ,
+			uint32_t    nb_port_write        ,
+			uint32_t    size_address         ,
+			uint32_t    size_word            ,
+			uint32_t    nb_bank              ,
+			uint32_t    nb_port_read_by_bank ,
+			uint32_t    nb_port_write_by_bank,
+			Tcrossbar_t crossbar             );
+
   public : Parameters  (Parameters & param) ;
   public : ~Parameters () ;
@@ -45,9 +86,10 @@
   public :        string   print      (uint32_t depth);
   public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters & x);
+				       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters & x);
   };
 
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h
 
 /*
@@ -17,8 +17,8 @@
 #include "Include/Debug.h"
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h"
-#ifdef STATISTICS
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h"
+#ifdef STATISTICS	     			  
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
 #endif
 #ifdef VHDL
@@ -34,4 +34,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -70,6 +71,6 @@
   public    : SC_OUT(Tdata_t   )           ** out_READ_IN_DATA      ;
 
-  public    : SC_IN (Tcontrol_t)           **  in_READ_SELECT_VAL   ;
-  public    : SC_OUT(Tcontrol_t)           ** out_READ_SELECT_ACK   ;
+  public    : SC_OUT(Tcontrol_t)         **** out_READ_SELECT_VAL   ;
+  public    : SC_IN (Tcontrol_t)         ****  in_READ_SELECT_ACK   ;
 
   public    : SC_OUT(Tcontrol_t)          *** out_READ_OUT_VAL      ;
@@ -83,6 +84,6 @@
   public    : SC_IN (Tdata_t   )           **  in_WRITE_IN_DATA     ;
 
-  public    : SC_IN (Tcontrol_t)           **  in_WRITE_SELECT_VAL  ;
-  public    : SC_OUT(Tcontrol_t)           ** out_WRITE_SELECT_ACK  ;
+  public    : SC_OUT(Tcontrol_t)         **** out_WRITE_SELECT_VAL  ;
+  public    : SC_IN (Tcontrol_t)         ****  in_WRITE_SELECT_ACK  ;
 
   public    : SC_OUT(Tcontrol_t)          *** out_WRITE_OUT_VAL     ;
@@ -124,4 +125,7 @@
   public  : void     transition                (void);
 #endif
+  public  : void     genMealy_read_in          (void);
+  public  : void     genMealy_read_out         (void);
+  public  : void     genMealy_read_select      (void);
 
 #endif					       
@@ -145,4 +149,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h	(revision 15)
@@ -1,5 +1,5 @@
 #ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_Statistics_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_Statistics_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Statistics_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Statistics_h
 
 /*
@@ -14,5 +14,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 //#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
 
 //using namespace morpheo::behavioural::generic::group;
@@ -21,4 +21,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -49,4 +50,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_Type_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_registerfile_multi_banked_glue_Type_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Type_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Type_h
 
 /*
@@ -14,4 +14,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -22,4 +23,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters.cpp	(revision 15)
@@ -6,17 +6,21 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
 
-  Parameters::Parameters (uint32_t nb_port_read ,
-			  uint32_t nb_port_write,
-			  uint32_t size_address ,
-			  uint32_t size_word    ,
-			  uint32_t nb_bank      ):
+  Parameters::Parameters (uint32_t    nb_port_read         ,
+			  uint32_t    nb_port_write        ,
+			  uint32_t    size_address         ,
+			  uint32_t    size_word            ,
+			  uint32_t    nb_bank              ,
+			  uint32_t    nb_port_read_by_bank ,
+			  uint32_t    nb_port_write_by_bank,
+			  Tcrossbar_t crossbar             ):
     _nb_port_read          (nb_port_read         ),
     _nb_port_write         (nb_port_write        ),
@@ -24,8 +28,57 @@
     _size_word             (size_word            ),
     _nb_bank               (nb_bank              ),
-    _nb_port_read_by_bank  (nb_port_read /nb_bank),
-    _nb_port_write_by_bank (nb_port_write/nb_bank)
+    _nb_port_read_by_bank  (nb_port_read_by_bank ),
+    _nb_port_write_by_bank (nb_port_write_by_bank),
+    _crossbar              (crossbar             ),
+    _shift_address         (static_cast<uint32_t>(ceil(log2(_nb_bank))))
   {
     log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","Begin");
+
+    if (_crossbar == PARTIAL_CROSSBAR)
+      {
+	// All port_src is connected with one port_dest on each bank
+	
+	_link_port_read  = new uint32_t [_nb_port_read ];
+	for (uint32_t i=0; i<_nb_port_read ; i++)
+	  _link_port_read  [i] = i%_nb_port_read_by_bank;
+
+	_link_port_write = new uint32_t [_nb_port_write];
+	for (uint32_t i=0; i<_nb_port_write; i++)
+	  _link_port_write [i] = i%_nb_port_write_by_bank;
+      }
+    // else : don't allocate
+
+    _nb_port_select_by_bank_read_port  = new uint32_t [_nb_port_read_by_bank ];
+    
+    if (_crossbar == FULL_CROSSBAR)
+      // All port_src is connected with all port_dest on each bank
+      for (uint32_t i=0; i<_nb_port_read_by_bank ;i++)
+	_nb_port_select_by_bank_read_port [i] = _nb_port_read;
+    else
+      // All port_src is connected with one port_dest on each bank
+      {
+	for (uint32_t i=0; i<_nb_port_read_by_bank ;i++)
+	  _nb_port_select_by_bank_read_port [i] = 0;
+
+	for (uint32_t i=0; i<_nb_port_read         ;i++)
+	  _nb_port_select_by_bank_read_port [_link_port_read [i]] ++;
+      }
+    
+    _nb_port_select_by_bank_write_port = new uint32_t [_nb_port_write_by_bank];
+
+    if (_crossbar == FULL_CROSSBAR)
+      // All port_src is connected with all port_dest on each bank
+      for (uint32_t i=0; i<_nb_port_write_by_bank ;i++)
+	_nb_port_select_by_bank_write_port [i] = _nb_port_write;
+    else
+      // All port_src is connected with one port_dest on each bank
+      {
+	for (uint32_t i=0; i<_nb_port_write_by_bank ;i++)
+	  _nb_port_select_by_bank_write_port [i] = 0;
+
+	for (uint32_t i=0; i<_nb_port_write         ;i++)
+	  _nb_port_select_by_bank_write_port [_link_port_write[i]] ++;
+      }
+    
     test();
     log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","End");
@@ -33,15 +86,26 @@
   
   Parameters::Parameters (Parameters & param):
-   _nb_port_read          (param._nb_port_read ),
-   _nb_port_write         (param._nb_port_write),
-   _size_address          (param._size_address ),
-   _size_word             (param._size_word    ),
-   _nb_bank               (param._nb_bank      ),
-   _nb_port_read_by_bank  (param._nb_port_read ),
-   _nb_port_write_by_bank (param._nb_port_write)
+    _nb_port_read          (param._nb_port_read         ),
+    _nb_port_write         (param._nb_port_write        ),
+    _size_address          (param._size_address         ),
+    _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             ),
+    _shift_address         (param._shift_address        )
    {
-    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","Begin");
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters (copy)","Begin");
+
+    _nb_port_select_by_bank_read_port  = new uint32_t [_nb_port_read_by_bank ];
+    for (uint32_t i=0; i<_nb_port_read_by_bank; i++)
+      _nb_port_select_by_bank_read_port [i] = param._nb_port_select_by_bank_read_port [i];
+    
+    _nb_port_select_by_bank_write_port = new uint32_t [_nb_port_write_by_bank ];
+    for (uint32_t i=0; i<_nb_port_write_by_bank; i++)
+      _nb_port_select_by_bank_write_port[i] = param._nb_port_select_by_bank_write_port [i];
+    
     test();
-    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","End");
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters (copy)","End");
   };
 
@@ -54,4 +118,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 }; // end namespace behavioural
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_msg_error.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_msg_error.cpp	(revision 15)
@@ -6,15 +6,15 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h"
 #include <sstream>
 using namespace std;
 
-namespace morpheo                    {
+namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
-
 
   string Parameters::msg_error(void)
@@ -24,4 +24,24 @@
     string msg = "";
 
+    if (_nb_port_read < _nb_port_read_by_bank)
+      {
+        msg += "  - Each bank read's port must be higher at number of read port\n";
+        msg += "    * nb_port_read                    : " + toString(_nb_port_read        ) + "\n";
+        msg += "    * nb_port_read_by_bank            : " + toString(_nb_port_read_by_bank) + "\n";
+      }
+
+    if (_nb_port_write < _nb_port_write_by_bank)
+      {
+        msg += "  - Each bank write's port must be higher at number of write port\n";
+        msg += "    * nb_port_write                   : " + toString(_nb_port_write        ) + "\n";
+        msg += "    * nb_port_write_by_bank           : " + toString(_nb_port_write_by_bank) + "\n";
+      }
+    
+    if (_nb_bank < 1)
+      {
+        msg += "  - nb_bank must be higher at 1\n";
+        msg += "    * nb_bank                         : " + toString(_nb_bank             ) + "\n";
+      }
+      
     return msg;
 
@@ -31,6 +51,6 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_print.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"
 #include "Behavioural/include/XML.h"
 using namespace std;
@@ -13,4 +13,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -24,9 +25,12 @@
 
     xml.balise_open("registerfile_multi_banked_glue");
-    xml.singleton_begin("nb_port_read "); xml.attribut("value",toString(_nb_port_read )); xml.singleton_end();
-    xml.singleton_begin("nb_port_write"); xml.attribut("value",toString(_nb_port_write)); xml.singleton_end();
-    xml.singleton_begin("size_address "); xml.attribut("value",toString(_size_address )); xml.singleton_end();
-    xml.singleton_begin("size_word    "); xml.attribut("value",toString(_size_word    )); xml.singleton_end();
-    xml.singleton_begin("nb_bank      "); xml.attribut("value",toString(_nb_bank      )); xml.singleton_end();
+    xml.singleton_begin("nb_port_read         "); xml.attribut("value",toString(_nb_port_read         )); xml.singleton_end();
+    xml.singleton_begin("nb_port_write        "); xml.attribut("value",toString(_nb_port_write        )); xml.singleton_end();
+    xml.singleton_begin("size_address         "); xml.attribut("value",toString(_size_address         )); xml.singleton_end();
+    xml.singleton_begin("size_word            "); xml.attribut("value",toString(_size_word            )); xml.singleton_end();
+    xml.singleton_begin("nb_bank              "); xml.attribut("value",toString(_nb_bank              )); xml.singleton_end();
+    xml.singleton_begin("nb_port_read_by_bank "); xml.attribut("value",toString(_nb_port_read_by_bank )); xml.singleton_end();
+    xml.singleton_begin("nb_port_write_by_bank"); xml.attribut("value",toString(_nb_port_write_by_bank)); xml.singleton_end();
+    xml.singleton_begin("crossbar             "); xml.attribut("value",toString(_crossbar             )); xml.singleton_end();
     xml.balise_close();
 
@@ -37,5 +41,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters & x)
+		       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters & x)
   {
     output_stream << x.print(0);
@@ -46,4 +50,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue.cpp	(revision 15)
@@ -6,9 +6,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -23,5 +24,5 @@
 			      morpheo::behavioural::Parameters_Statistics             param_statistics,
 #endif
-			      morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param ):
+			      morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param ):
 			      _name              (name)
 			      ,_param            (param)
@@ -66,5 +67,5 @@
     allocation ();
 
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     log_printf(INFO,RegisterFile_Multi_Banked_Glue,"RegisterFile_Multi_Banked_Glue","Method - transition");
 
@@ -72,8 +73,40 @@
     dont_initialize ();
     sensitive_pos << *(in_CLOCK);
-//#endif
+#endif
+
+    log_printf(INFO,RegisterFile_Multi_Banked_Glue,"RegisterFile_Multi_Banked_Glue","Method - transition");
+
+    SC_METHOD (genMealy_read_in);
+    dont_initialize ();
+    for (uint32_t l=0; l<_param._nb_port_read; l++)
+      sensitive << (*(in_READ_IN_ADDRESS [l]));
+    for (uint32_t i=0; i<_param._nb_bank; i++)
+       for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	 {
+	   sensitive << (*(in_READ_OUT_ACK      [i][j]))
+		     << (*(in_READ_OUT_DATA     [i][j]));
+	   for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+	     sensitive << (*(in_READ_SELECT_ACK [i][j][k]));
+	 }
 
 #ifdef SYSTEMCASS_SPECIFIC
     // List dependency information
+    for (uint32_t l=0; l<_param._nb_port_read; l++)
+      {
+	(*(out_READ_IN_ACK  [l])) (*(in_READ_IN_ADDRESS [l]));
+	(*(out_READ_IN_DATA [l])) (*(in_READ_IN_ADDRESS [l]));
+
+	for (uint32_t i=0; i<_param._nb_bank; i++)
+	  for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	    {
+	      (*(out_READ_IN_ACK  [l])) (*(in_READ_OUT_ACK      [i][j]));
+	      (*(out_READ_IN_DATA [l])) (*(in_READ_OUT_DATA     [i][j]));
+	      for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+		{
+		  (*(out_READ_IN_ACK  [l])) (*(in_READ_SELECT_ACK [i][j][k]));
+		  (*(out_READ_IN_DATA [l])) (*(in_READ_SELECT_ACK [i][j][k]));
+		}
+	    }
+      }
 #endif    
 
@@ -113,4 +146,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_allocation.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_allocation.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -30,6 +31,4 @@
     in_READ_IN_ADDRESS   = new SC_IN (Taddress_t)           * [_param._nb_port_read];
    out_READ_IN_DATA      = new SC_OUT(Tdata_t   )           * [_param._nb_port_read];
-    in_READ_SELECT_VAL   = new SC_IN (Tcontrol_t)           * [_param._nb_port_read];
-   out_READ_SELECT_ACK   = new SC_OUT(Tcontrol_t)           * [_param._nb_port_read];
 
    for (uint32_t i=0; i<_param._nb_port_read; i++)
@@ -46,16 +45,34 @@
        rename = "out_READ_IN_DATA_"+toString(i)+"     ";
        out_READ_IN_DATA      [i] = new SC_OUT(Tdata_t   ) (rename.c_str());
-
-       rename = " in_READ_SELECT_VAL_"+toString(i)+"  ";
-        in_READ_SELECT_VAL   [i] = new SC_IN (Tcontrol_t) (rename.c_str());
-
-       rename = "out_READ_SELECT_ACK_"+toString(i)+"  ";
-       out_READ_SELECT_ACK   [i] = new SC_OUT(Tcontrol_t) (rename.c_str());
      }
    						      
-   out_READ_OUT_VAL      = new SC_OUT(Tcontrol_t)          ** [_param._nb_bank];
-    in_READ_OUT_ACK      = new SC_IN (Tcontrol_t)          ** [_param._nb_bank];
-   out_READ_OUT_ADDRESS  = new SC_OUT(Taddress_t)          ** [_param._nb_bank];
-    in_READ_OUT_DATA     = new SC_IN (Tdata_t   )          ** [_param._nb_bank];
+   out_READ_SELECT_VAL  = new SC_OUT(Tcontrol_t) *** [_param._nb_bank];
+    in_READ_SELECT_ACK  = new SC_IN (Tcontrol_t) *** [_param._nb_bank];
+
+    for (uint32_t i=0; i<_param._nb_bank; i++)
+      {
+	out_READ_SELECT_VAL [i] = new SC_OUT(Tcontrol_t)  ** [_param._nb_port_read_by_bank];
+	 in_READ_SELECT_ACK [i] = new SC_IN (Tcontrol_t)  ** [_param._nb_port_read_by_bank];
+
+	 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	   {
+	     out_READ_SELECT_VAL [i][j] = new SC_OUT(Tcontrol_t)   * [_param._nb_port_select_by_bank_read_port [j]];
+	      in_READ_SELECT_ACK [i][j] = new SC_IN (Tcontrol_t)   * [_param._nb_port_select_by_bank_read_port [j]];
+	     
+	     for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++)
+	       {
+		 rename="out_READ_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ";
+		 out_READ_SELECT_VAL [i][j][k] = new SC_OUT(Tcontrol_t) (rename.c_str());
+		 
+		 rename=" in_READ_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ";
+		  in_READ_SELECT_ACK [i][j][k] = new SC_IN (Tcontrol_t) (rename.c_str());
+	       }
+	   }
+      }
+
+   out_READ_OUT_VAL         = new SC_OUT(Tcontrol_t)          ** [_param._nb_bank];
+    in_READ_OUT_ACK         = new SC_IN (Tcontrol_t)          ** [_param._nb_bank];
+   out_READ_OUT_ADDRESS     = new SC_OUT(Taddress_t)          ** [_param._nb_bank];
+    in_READ_OUT_DATA        = new SC_IN (Tdata_t   )          ** [_param._nb_bank];
 
     for (uint32_t i=0; i<_param._nb_bank; i++)
@@ -87,6 +104,4 @@
     in_WRITE_IN_ADDRESS  = new SC_IN (Taddress_t)           * [_param._nb_port_write];
     in_WRITE_IN_DATA     = new SC_IN (Tdata_t   )           * [_param._nb_port_write];
-    in_WRITE_SELECT_VAL  = new SC_IN (Tcontrol_t)           * [_param._nb_port_write];
-   out_WRITE_SELECT_ACK  = new SC_OUT(Tcontrol_t)           * [_param._nb_port_write];
 
    for (uint32_t i=0; i<_param._nb_port_write; i++)
@@ -103,12 +118,29 @@
        rename = " in_WRITE_IN_DATA_"+toString(i)+"    ";
         in_WRITE_IN_DATA     [i] = new SC_IN (Tdata_t   ) (rename.c_str());
-
-       rename = " in_WRITE_SELECT_VAL_"+toString(i)+" ";
-        in_WRITE_SELECT_VAL   [i] = new SC_IN (Tcontrol_t) (rename.c_str());
-
-       rename = "out_WRITE_SELECT_ACK_"+toString(i)+" ";
-       out_WRITE_SELECT_ACK   [i] = new SC_OUT(Tcontrol_t) (rename.c_str());
      }
    
+   out_WRITE_SELECT_VAL  = new SC_OUT(Tcontrol_t) *** [_param._nb_bank];
+    in_WRITE_SELECT_ACK  = new SC_IN (Tcontrol_t) *** [_param._nb_bank];
+
+    for (uint32_t i=0; i<_param._nb_bank; i++)
+      {
+	out_WRITE_SELECT_VAL [i] = new SC_OUT(Tcontrol_t)  ** [_param._nb_port_write_by_bank];
+	 in_WRITE_SELECT_ACK [i] = new SC_IN (Tcontrol_t)  ** [_param._nb_port_write_by_bank];
+
+	 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+	   {
+	     out_WRITE_SELECT_VAL [i][j] = new SC_OUT(Tcontrol_t)   * [_param._nb_port_select_by_bank_write_port [j]];
+	      in_WRITE_SELECT_ACK [i][j] = new SC_IN (Tcontrol_t)   * [_param._nb_port_select_by_bank_write_port [j]];
+	     
+	     for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++)
+	       {
+		 rename="out_WRITE_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"";
+		 out_WRITE_SELECT_VAL [i][j][k] = new SC_OUT(Tcontrol_t) (rename.c_str());
+		 
+		 rename=" in_WRITE_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+"";
+		  in_WRITE_SELECT_ACK [i][j][k] = new SC_IN (Tcontrol_t) (rename.c_str());
+	       }
+	   }
+      }
    
    out_WRITE_OUT_VAL     = new SC_OUT(Tcontrol_t)          ** [_param._nb_bank];
@@ -147,4 +179,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_deallocation.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_deallocation.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -29,6 +30,4 @@
        delete  in_READ_IN_ADDRESS   [i];
        delete out_READ_IN_DATA      [i];
-       delete  in_READ_SELECT_VAL   [i];
-       delete out_READ_SELECT_ACK   [i];
      }
    						      
@@ -37,8 +36,24 @@
    delete  in_READ_IN_ADDRESS;
    delete out_READ_IN_DATA   ;
-   delete  in_READ_SELECT_VAL;
-   delete out_READ_SELECT_ACK;
-
-    for (uint32_t i=0; i<_param._nb_bank; i++)
+   
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     {
+       for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	 {
+	   for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+	     {
+	       delete out_READ_SELECT_VAL [i][j][k];
+	       delete  in_READ_SELECT_ACK [i][j][k];
+	     }
+	   delete out_READ_SELECT_VAL [i][j];
+	   delete  in_READ_SELECT_ACK [i][j];
+	 }
+       delete out_READ_SELECT_VAL [i];
+       delete  in_READ_SELECT_ACK [i];
+     }
+   delete out_READ_SELECT_VAL;
+   delete  in_READ_SELECT_ACK;
+   
+   for (uint32_t i=0; i<_param._nb_bank; i++)
       {
 	for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
@@ -67,6 +82,4 @@
        delete  in_WRITE_IN_ADDRESS  [i];
        delete  in_WRITE_IN_DATA     [i];
-       delete  in_WRITE_SELECT_VAL  [i];
-       delete out_WRITE_SELECT_ACK  [i];
      }
 
@@ -75,6 +88,22 @@
    delete  in_WRITE_IN_ADDRESS;
    delete  in_WRITE_IN_DATA   ;
-   delete  in_WRITE_SELECT_VAL;
-   delete out_WRITE_SELECT_ACK;
+
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     {
+       for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+	 {
+	   for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port[j]; k++)
+	     {
+	       delete out_WRITE_SELECT_VAL [i][j][k];
+	       delete  in_WRITE_SELECT_ACK [i][j][k];
+	     }
+	   delete out_WRITE_SELECT_VAL [i][j];
+	   delete  in_WRITE_SELECT_ACK [i][j];
+	 }
+       delete out_WRITE_SELECT_VAL [i];
+       delete  in_WRITE_SELECT_ACK [i];
+     }
+   delete out_WRITE_SELECT_VAL;
+   delete  in_WRITE_SELECT_ACK;
    
    for (uint32_t i=0; i<_param._nb_bank; i++)
@@ -106,4 +135,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 }; // end namespace behavioural
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_in.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_in.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_in.cpp	(revision 15)
@@ -0,0 +1,53 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace registerfile{
+namespace registerfile_multi_banked {
+namespace registerfile_multi_banked_glue {
+
+  
+  void RegisterFile_Multi_Banked_Glue::genMealy_read_in (void)
+  {
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","Begin");
+    
+    for (uint32_t l=0; l<_param._nb_port_read; l++)
+      {
+	uint32_t num_bank = PORT_READ(in_READ_IN_ADDRESS [l])>>_param._shift_address;
+
+// 	(*(out_READ_IN_ACK  [l])) (*(in_READ_IN_ADDRESS [i][j]));
+// 	(*(out_READ_IN_DATA [l])) (*(in_READ_IN_ADDRESS [i][j]));
+
+// 	for (uint32_t i=0; i<_param._nb_bank; i++)
+// 	  for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+// 	    {
+// 	      (*(out_READ_IN_ACK  [l])) (*(in_READ_OUT_ACK      [i][j]));
+// 	      (*(out_READ_IN_DATA [l])) (*(in_READ_OUT_DATA     [i][j]));
+// 	      for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
+// 		{
+// 		  (*(out_READ_IN_ACK  [l])) (*(in_READ_SELECT_ACK [i][j][k]));
+// 		  (*(out_READ_IN_DATA [l])) (*(in_READ_SELECT_ACK [i][j][k]));
+// 		}
+// 	    }
+      }
+
+
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","End");
+  };
+
+}; // end namespace registerfile_multi_banked_glue
+}; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_out.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_out.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_out.cpp	(revision 15)
@@ -0,0 +1,32 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace registerfile{
+namespace registerfile_multi_banked {
+namespace registerfile_multi_banked_glue {
+
+
+  void RegisterFile_Multi_Banked_Glue::genMealy_read_out (void)
+  {
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_out","Begin");
+
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_out","End");
+  };
+
+}; // end namespace registerfile_multi_banked_glue
+}; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_select.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_select.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_select.cpp	(revision 15)
@@ -0,0 +1,32 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace generic {
+namespace registerfile{
+namespace registerfile_multi_banked {
+namespace registerfile_multi_banked_glue {
+
+
+  void RegisterFile_Multi_Banked_Glue::genMealy_read_select (void)
+  {
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_select","Begin");
+
+    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_select","End");
+  };
+
+}; // end namespace registerfile_multi_banked_glue
+}; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
+}; // end namespace generic
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_statistics.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -29,4 +30,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_transition.cpp	(revision 15)
@@ -1,4 +1,4 @@
 #ifdef SYSTEMC
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 /*
  * $Id$
@@ -8,9 +8,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -34,8 +35,8 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
 #endif
-//#endif
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 #include "Behavioural/include/Vhdl.h"
 
@@ -13,4 +13,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -35,4 +36,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_body.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -25,4 +26,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_declaration.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_declaration.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -24,4 +25,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_port.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_port.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 #ifdef VHDL_TESTBENCH
@@ -18,4 +18,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -26,4 +27,5 @@
     log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"vhdl_port","Begin");
 
+    log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface READ_IN");
    for (uint32_t i=0; i<_param._nb_port_read; i++)
      {
@@ -32,19 +34,35 @@
        VHDL_SET_PORT(" in_READ_IN_ADDRESS_"+toString(i)+"  ", IN, _param._size_address);
        VHDL_SET_PORT("out_READ_IN_DATA_"+toString(i)+"     ",OUT, _param._size_word   );
-       VHDL_SET_PORT(" in_READ_SELECT_VAL_"+toString(i)+"  ", IN, 1);
-       VHDL_SET_PORT("out_READ_SELECT_ACK_"+toString(i)+"  ",OUT, 1);
      }
-   						      
+
+   log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface READ_SELECT");
+   	
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     {
+       log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","READ_SELECT[%d]",i);
+       for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	 {
+	   log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","READ_SELECT[%d][%d]",i,j);
+	   for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++)
+	     {
+	       log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","READ_SELECT[%d][%d][%d]",i,j,k);
+	       VHDL_SET_PORT("out_READ_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ",OUT, 1);
+	       VHDL_SET_PORT(" in_READ_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ", IN, 1);
+	     }
+	 }
+     }
+   log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface READ_OUT");
+    
     for (uint32_t i=0; i<_param._nb_bank; i++)
-      {
-	for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
-	  {
-	    VHDL_SET_PORT("out_READ_OUT_VAL_"+toString(i)+"_"+toString(j)+"      ",OUT, 1);
-	    VHDL_SET_PORT(" in_READ_OUT_ACK_"+toString(i)+"_"+toString(j)+"      ", IN, 1);
-	    VHDL_SET_PORT("out_READ_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+"  ",OUT, _param._size_address);
-	    VHDL_SET_PORT(" in_READ_OUT_DATA_"+toString(i)+"_"+toString(j)+"     ", IN, _param._size_word   );
-	  }
-      }
+      for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+	{
+	  VHDL_SET_PORT("out_READ_OUT_VAL_"+toString(i)+"_"+toString(j)+"      ",OUT, 1);
+	  VHDL_SET_PORT(" in_READ_OUT_ACK_"+toString(i)+"_"+toString(j)+"      ", IN, 1);
+	  VHDL_SET_PORT("out_READ_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+"  ",OUT, _param._size_address);
+	  VHDL_SET_PORT(" in_READ_OUT_DATA_"+toString(i)+"_"+toString(j)+"     ", IN, _param._size_word   );
+	}
 
+    log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface WRITE_IN");
+    
    for (uint32_t i=0; i<_param._nb_port_write; i++)
      {
@@ -53,18 +71,26 @@
        VHDL_SET_PORT(" in_WRITE_IN_ADDRESS_"+toString(i)+" ", IN, _param._size_address);
        VHDL_SET_PORT(" in_WRITE_IN_DATA_"+toString(i)+"    ", IN, _param._size_word   );
-       VHDL_SET_PORT(" in_WRITE_SELECT_VAL_"+toString(i)+" ", IN, 1);
-       VHDL_SET_PORT("out_WRITE_SELECT_ACK_"+toString(i)+" ",OUT, 1);
      }
    
-    for (uint32_t i=0; i<_param._nb_bank; i++)
-      {
-	for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
-	  {
-	    VHDL_SET_PORT("out_WRITE_OUT_VAL_"+toString(i)+"_"+toString(j)+"     ",OUT, 1);
-	    VHDL_SET_PORT(" in_WRITE_OUT_ACK_"+toString(i)+"_"+toString(j)+"     ", IN, 1);
-	    VHDL_SET_PORT("out_WRITE_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_address);
-	    VHDL_SET_PORT("out_WRITE_OUT_DATA_"+toString(i)+"_"+toString(j)+"    ",OUT, _param._size_word   );
-	  }
-      }
+   log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface WRITE_SELECT");
+
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+       for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++)
+	 {
+	   VHDL_SET_PORT("out_WRITE_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ",OUT, 1);
+	   VHDL_SET_PORT(" in_WRITE_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ", IN, 1);
+	 }
+   
+   log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface WRITE_OUT");
+    
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+       {
+	 VHDL_SET_PORT("out_WRITE_OUT_VAL_"+toString(i)+"_"+toString(j)+"     ",OUT, 1);
+	 VHDL_SET_PORT(" in_WRITE_OUT_ACK_"+toString(i)+"_"+toString(j)+"     ", IN, 1);
+	 VHDL_SET_PORT("out_WRITE_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_address);
+	 VHDL_SET_PORT("out_WRITE_OUT_DATA_"+toString(i)+"_"+toString(j)+"    ",OUT, _param._size_word   );
+       }
 
     log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"vhdl_port","End");
@@ -73,4 +99,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_label.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_label.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_label.cpp	(revision 15)
@@ -6,9 +6,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -28,4 +29,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_transition.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -35,8 +36,14 @@
        _vhdl_testbench->add_input (PORT_READ( in_READ_IN_ADDRESS   [i]));
        _vhdl_testbench->add_input (PORT_READ(out_READ_IN_DATA      [i]));
-       _vhdl_testbench->add_input (PORT_READ( in_READ_SELECT_VAL   [i]));
-       _vhdl_testbench->add_output(PORT_READ(out_READ_SELECT_ACK   [i]));
      }
-   						      
+
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
+       for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++)
+	 {
+	   _vhdl_testbench->add_output(PORT_READ(out_READ_SELECT_VAL [i][j][k]));
+	   _vhdl_testbench->add_input (PORT_READ( in_READ_SELECT_ACK [i][j][k]));
+	 }
+   
     for (uint32_t i=0; i<_param._nb_bank; i++)
       for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
@@ -54,7 +61,13 @@
        _vhdl_testbench->add_input (PORT_READ( in_WRITE_IN_ADDRESS  [i]));
        _vhdl_testbench->add_input (PORT_READ( in_WRITE_IN_DATA     [i]));
-       _vhdl_testbench->add_input (PORT_READ( in_WRITE_SELECT_VAL  [i]));
-       _vhdl_testbench->add_output(PORT_READ(out_WRITE_SELECT_ACK  [i]));
      }
+   
+   for (uint32_t i=0; i<_param._nb_bank; i++)
+     for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++)
+       for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++)
+	 {
+	   _vhdl_testbench->add_output(PORT_READ(out_WRITE_SELECT_VAL [i][j][k]));
+	   _vhdl_testbench->add_input (PORT_READ( in_WRITE_SELECT_ACK [i][j][k]));
+	 }
    
     for (uint32_t i=0; i<_param._nb_bank; i++)
@@ -80,4 +93,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -36,4 +37,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_add.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_add.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
 
 #include <sstream>
@@ -15,4 +15,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -27,4 +28,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
 
 #include <sstream>
@@ -15,4 +15,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -36,5 +37,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Statistics & x)
+		       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Statistics & x)
   {
     output_stream << x.print(0);
@@ -45,4 +46,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"
 
 #include <sstream>
@@ -15,4 +15,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 namespace registerfile_multi_banked_glue {
@@ -35,4 +36,5 @@
 }; // end namespace registerfile_multi_banked_glue
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile	(revision 15)
@@ -8,5 +8,5 @@
 
 #-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../../..
+DIR_MORPHEO			= ../../../../..
 
 LIBRARY				= $(RegisterFile_Multi_Banked_LIBRARY)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h	(revision 15)
@@ -14,5 +14,5 @@
 #include <iostream>
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 using namespace std;
@@ -20,7 +20,7 @@
 using namespace morpheo::behavioural;
 using namespace morpheo::behavioural::generic;
-
-using namespace morpheo::behavioural::generic::registerfile_multi_banked;
+using namespace morpheo::behavioural::generic::registerfile;
+using namespace morpheo::behavioural::generic::registerfile::registerfile_multi_banked;
 
 void test    (string name,
-	      morpheo::behavioural::generic::registerfile_multi_banked::Parameters param);
+	      morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/main.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/main.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/SelfTest/include/test.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h"
 
 #define NB_PARAMS 5
@@ -46,9 +46,9 @@
   try 
     {
-      morpheo::behavioural::generic::registerfile_multi_banked::Parameters param (nb_port_read ,
-										  nb_port_write,
-										  nb_word      ,
-										  size_word    ,
-										  nb_bank      );
+      morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters param (nb_port_read ,
+												nb_port_write,
+												nb_word      ,
+												size_word    ,
+												nb_bank      );
       
       cout << param.print(1);
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 15)
@@ -9,9 +9,9 @@
 #define NB_ITERATION 1
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/SelfTest/include/test.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h"
 #include "Include/Test.h"
 
 void test (string name,
-	   morpheo::behavioural::generic::registerfile_multi_banked::Parameters _param)
+	   morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters _param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_Parameters_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_Parameters_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Parameters_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Parameters_h
 
 /*
@@ -16,4 +16,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -43,8 +44,9 @@
   public :        string   print      (uint32_t depth);
   public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::registerfile_multi_banked::Parameters & x);
+				       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x);
   };
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_RegisterFile_Multi_Banked_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_RegisterFile_Multi_Banked_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_RegisterFile_Multi_Banked_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_RegisterFile_Multi_Banked_h
 
 /*
@@ -17,8 +17,8 @@
 #include "Include/Debug.h"
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Types.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
 #endif
 #ifdef VHDL
@@ -34,4 +34,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -129,4 +130,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 }; // end namespace behavioural
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h	(revision 15)
@@ -1,5 +1,5 @@
 #ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_Statistics_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_Statistics_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Statistics_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Statistics_h
 
 /*
@@ -14,5 +14,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 //#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
 
 //using namespace morpheo::behavioural::generic::group;
@@ -21,4 +21,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -47,4 +48,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_registerfile_multi_banked_Type_h
-#define morpheo_behavioural_generic_registerfile_multi_banked_Type_h
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Type_h
+#define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Type_h
 
 /*
@@ -14,4 +14,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -20,4 +21,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp	(revision 15)
@@ -6,9 +6,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -51,4 +52,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp	(revision 15)
@@ -6,6 +6,6 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Types.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h"
 #include <sstream>
 using namespace std;
@@ -14,4 +14,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -81,4 +82,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
 #include "Behavioural/include/XML.h"
 using namespace std;
@@ -13,4 +13,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -36,5 +37,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile_multi_banked::Parameters & x)
+		       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x)
   {
     output_stream << x.print(0);
@@ -44,4 +45,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 15)
@@ -6,9 +6,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -22,5 +23,5 @@
 			      morpheo::behavioural::Parameters_Statistics             param_statistics,
 #endif
-			      morpheo::behavioural::generic::registerfile_multi_banked::Parameters param ):
+			      morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters param ):
 			      _name              (name)
 			      ,_param            (param)
@@ -109,4 +110,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -74,4 +75,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -58,4 +59,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -27,4 +28,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp	(revision 15)
@@ -8,9 +8,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -32,4 +33,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 #include "Behavioural/include/Vhdl.h"
 
@@ -13,4 +13,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -33,4 +34,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -23,4 +24,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -22,4 +23,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_port.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_port.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile {
 namespace registerfile_multi_banked {
 
@@ -49,4 +50,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_label.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_label.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_label.cpp	(revision 15)
@@ -6,11 +6,11 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
-
 
   void RegisterFile_Multi_Banked::vhdl_testbench_label (string label)
@@ -26,4 +26,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_transition.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -58,4 +59,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics.cpp	(revision 15)
@@ -7,9 +7,10 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
 
 namespace morpheo                    {
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -33,4 +34,5 @@
   };
 
+}; // end namespace registerfile
 }; // end namespace registerfile_multi_banked
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_add.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_add.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
 
 #include <sstream>
@@ -15,4 +15,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -25,4 +26,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
 
 #include <sstream>
@@ -15,4 +15,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -35,5 +36,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::registerfile_multi_banked::Statistics & x)
+		       morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Statistics & x)
   {
     output_stream << x.print(0);
@@ -43,4 +44,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/RegisterFile_Multi_Banked/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h"
 
 #include <sstream>
@@ -15,4 +15,5 @@
 namespace behavioural {
 namespace generic {
+namespace registerfile{
 namespace registerfile_multi_banked {
 
@@ -33,4 +34,5 @@
 
 }; // end namespace registerfile_multi_banked
+}; // end namespace registerfile
 }; // end namespace generic
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile	(revision 15)
@@ -11,5 +11,5 @@
 
 #-----[ Library ]------------------------------------------
-LIBRARY				= $(DIR_LIB)/libPriority_Fixed.a
+LIBRARY				= $(DIR_LIB)/libSelect_Priority_Fixed.a
 
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.deps	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.deps	(revision 15)
@@ -12,20 +12,20 @@
 endif
 
-Priority_Fixed			= yes
+Select_Priority_Fixed			= yes
 
 #-----[ Library ]------------------------------------------
-Priority_Fixed_LIBRARY		= 	-lPriority_Fixed	\
+Select_Priority_Fixed_LIBRARY		= 	-lSelect_Priority_Fixed	\
 					$(Behavioural_LIBRARY)	
 
-Priority_Fixed_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/Select/Priority_Fixed/lib	\
+Select_Priority_Fixed_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed/lib	\
 					$(Behavioural_DIR_LIBRARY)
 
 #-----[ Rules ]--------------------------------------------
 
-Priority_Fixed_library		: 
+Select_Priority_Fixed_library		: 
 				@$(MAKE) Behavioural_library
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/Priority_Fixed --makefile=Makefile 
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed --makefile=Makefile 
 	
-Priority_Fixed_library_clean	: 
+Select_Priority_Fixed_library_clean	: 
 				@$(MAKE) Behavioural_library_clean
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/Priority_Fixed --makefile=Makefile clean
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed --makefile=Makefile clean
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/Makefile	(revision 15)
@@ -10,7 +10,7 @@
 DIR_MORPHEO			= ../../../../..
 
-LIBRARY				= $(Priority_Fixed_LIBRARY)
+LIBRARY				= $(Select_Priority_Fixed_LIBRARY)
 
-DIR_LIBRARY			= $(Priority_Fixed_DIR_LIBRARY)
+DIR_LIBRARY			= $(Select_Priority_Fixed_DIR_LIBRARY)
 
 #-----[ include ]------------------------------------------
@@ -19,7 +19,7 @@
 				@$(MAKE) all_selftest
 
-library				: Priority_Fixed_library
+library				: Select_Priority_Fixed_library
 
-library_clean			: Priority_Fixed_library_clean
+library_clean			: Select_Priority_Fixed_library_clean
 
 include                         ../Makefile.deps
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration.cfg	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration.cfg	(revision 15)
@@ -1,3 +1,3 @@
-Priority_Fixed
+Select_Priority_Fixed
 2	16	*2	# nb_entity
 0	1	+1	# encoding_one_hot
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h	(revision 15)
@@ -14,5 +14,5 @@
 #include <iostream>
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 using namespace std;
@@ -22,6 +22,6 @@
 using namespace morpheo::behavioural::generic::select;
 
-using namespace morpheo::behavioural::generic::select::priority_fixed;
+using namespace morpheo::behavioural::generic::select::select_priority_fixed;
 
 void test    (string name,
-	      morpheo::behavioural::generic::select::priority_fixed::Parameters param);
+	      morpheo::behavioural::generic::select::select_priority_fixed::Parameters param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/mkf.info	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/mkf.info	(revision 15)
@@ -1,41 +1,41 @@
 
-# Priority_Fixed_0
-target_dep	all	Priority_Fixed_0.ngc
-target_dep	Priority_Fixed_0.ngc	Priority_Fixed_0.prj
-target_dep	Priority_Fixed_0.prj	Priority_Fixed_0_Pack.vhdl Priority_Fixed_0.vhdl
+# Select_Priority_Fixed_0
+target_dep	all	Select_Priority_Fixed_0.ngc
+target_dep	Select_Priority_Fixed_0.ngc	Select_Priority_Fixed_0.prj
+target_dep	Select_Priority_Fixed_0.prj	Select_Priority_Fixed_0_Pack.vhdl Select_Priority_Fixed_0.vhdl
 
-# Priority_Fixed_1
-target_dep	all	Priority_Fixed_1.ngc
-target_dep	Priority_Fixed_1.ngc	Priority_Fixed_1.prj
-target_dep	Priority_Fixed_1.prj	Priority_Fixed_1_Pack.vhdl Priority_Fixed_1.vhdl
+# Select_Priority_Fixed_1
+target_dep	all	Select_Priority_Fixed_1.ngc
+target_dep	Select_Priority_Fixed_1.ngc	Select_Priority_Fixed_1.prj
+target_dep	Select_Priority_Fixed_1.prj	Select_Priority_Fixed_1_Pack.vhdl Select_Priority_Fixed_1.vhdl
 
-# Priority_Fixed_2
-target_dep	all	Priority_Fixed_2.ngc
-target_dep	Priority_Fixed_2.ngc	Priority_Fixed_2.prj
-target_dep	Priority_Fixed_2.prj	Priority_Fixed_2_Pack.vhdl Priority_Fixed_2.vhdl
+# Select_Priority_Fixed_2
+target_dep	all	Select_Priority_Fixed_2.ngc
+target_dep	Select_Priority_Fixed_2.ngc	Select_Priority_Fixed_2.prj
+target_dep	Select_Priority_Fixed_2.prj	Select_Priority_Fixed_2_Pack.vhdl Select_Priority_Fixed_2.vhdl
 
-# Priority_Fixed_3
-target_dep	all	Priority_Fixed_3.ngc
-target_dep	Priority_Fixed_3.ngc	Priority_Fixed_3.prj
-target_dep	Priority_Fixed_3.prj	Priority_Fixed_3_Pack.vhdl Priority_Fixed_3.vhdl
+# Select_Priority_Fixed_3
+target_dep	all	Select_Priority_Fixed_3.ngc
+target_dep	Select_Priority_Fixed_3.ngc	Select_Priority_Fixed_3.prj
+target_dep	Select_Priority_Fixed_3.prj	Select_Priority_Fixed_3_Pack.vhdl Select_Priority_Fixed_3.vhdl
 
-# Priority_Fixed_4
-target_dep	all	Priority_Fixed_4.ngc
-target_dep	Priority_Fixed_4.ngc	Priority_Fixed_4.prj
-target_dep	Priority_Fixed_4.prj	Priority_Fixed_4_Pack.vhdl Priority_Fixed_4.vhdl
+# Select_Priority_Fixed_4
+target_dep	all	Select_Priority_Fixed_4.ngc
+target_dep	Select_Priority_Fixed_4.ngc	Select_Priority_Fixed_4.prj
+target_dep	Select_Priority_Fixed_4.prj	Select_Priority_Fixed_4_Pack.vhdl Select_Priority_Fixed_4.vhdl
 
-# Priority_Fixed_5
-target_dep	all	Priority_Fixed_5.ngc
-target_dep	Priority_Fixed_5.ngc	Priority_Fixed_5.prj
-target_dep	Priority_Fixed_5.prj	Priority_Fixed_5_Pack.vhdl Priority_Fixed_5.vhdl
+# Select_Priority_Fixed_5
+target_dep	all	Select_Priority_Fixed_5.ngc
+target_dep	Select_Priority_Fixed_5.ngc	Select_Priority_Fixed_5.prj
+target_dep	Select_Priority_Fixed_5.prj	Select_Priority_Fixed_5_Pack.vhdl Select_Priority_Fixed_5.vhdl
 
-# Priority_Fixed_6
-target_dep	all	Priority_Fixed_6.ngc
-target_dep	Priority_Fixed_6.ngc	Priority_Fixed_6.prj
-target_dep	Priority_Fixed_6.prj	Priority_Fixed_6_Pack.vhdl Priority_Fixed_6.vhdl
+# Select_Priority_Fixed_6
+target_dep	all	Select_Priority_Fixed_6.ngc
+target_dep	Select_Priority_Fixed_6.ngc	Select_Priority_Fixed_6.prj
+target_dep	Select_Priority_Fixed_6.prj	Select_Priority_Fixed_6_Pack.vhdl Select_Priority_Fixed_6.vhdl
 
-# Priority_Fixed_7
-target_dep	all	Priority_Fixed_7.ngc
-target_dep	Priority_Fixed_7.ngc	Priority_Fixed_7.prj
-target_dep	Priority_Fixed_7.prj	Priority_Fixed_7_Pack.vhdl Priority_Fixed_7.vhdl
+# Select_Priority_Fixed_7
+target_dep	all	Select_Priority_Fixed_7.ngc
+target_dep	Select_Priority_Fixed_7.ngc	Select_Priority_Fixed_7.prj
+target_dep	Select_Priority_Fixed_7.prj	Select_Priority_Fixed_7_Pack.vhdl Select_Priority_Fixed_7.vhdl
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/main.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/main.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/SelfTest/include/test.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h"
 
 #define NB_PARAMS 3
@@ -42,5 +42,5 @@
   try 
     {
-      morpheo::behavioural::generic::select::priority_fixed::Parameters param (nb_entity       ,
+      morpheo::behavioural::generic::select::select_priority_fixed::Parameters param (nb_entity       ,
 									       encoding_one_hot,
 									       encoding_compact);
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp	(revision 15)
@@ -9,13 +9,13 @@
 #define NB_ITERATION 512
 
-#include "Behavioural/Generic/Select/Priority_Fixed/SelfTest/include/test.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h"
 #include "Include/Test.h"
 
 void test (string name,
-	   morpheo::behavioural::generic::select::priority_fixed::Parameters _param)
+	   morpheo::behavioural::generic::select::select_priority_fixed::Parameters _param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
 
-  Priority_Fixed * _Priority_Fixed = new Priority_Fixed (name.c_str(),
+  Select_Priority_Fixed * _Select_Priority_Fixed = new Select_Priority_Fixed (name.c_str(),
 #ifdef STATISTICS
 					     morpheo::behavioural::Parameters_Statistics(5,50),
@@ -28,4 +28,5 @@
    *********************************************************************/
   sc_clock                         * CLOCK ;
+  sc_signal<Tcontrol_t>            * NRESET;
   sc_signal<Tcontrol_t>           ** VAL   ;
   sc_signal<Tcontrol_t>           ** ACK   ;
@@ -36,4 +37,5 @@
 
   CLOCK        = new sc_clock ("clock", 1.0, 0.5);
+  NRESET       = new sc_signal<Tcontrol_t> ("NRESET");
   VAL          = new sc_signal<Tcontrol_t> * [_param._nb_entity];
   ACK          = new sc_signal<Tcontrol_t> * [_param._nb_entity];
@@ -54,17 +56,19 @@
    ********************************************************/
   
-  cout << "<" << name << "> Instanciation of _Priority_Fixed" << endl;
+  cout << "<" << name << "> Instanciation of _Select_Priority_Fixed" << endl;
   
-  (*(_Priority_Fixed->in_CLOCK))        (*(CLOCK));
+  (*(_Select_Priority_Fixed->in_CLOCK ))       (*(CLOCK ));
+  (*(_Select_Priority_Fixed->in_NRESET))       (*(NRESET));
+
     for (uint32_t i=0; i<_param._nb_entity; i++)
       {
-	(*(_Priority_Fixed-> in_VAL [i]))        (*(VAL [i]));
+	(*(_Select_Priority_Fixed-> in_VAL [i]))        (*(VAL [i]));
 	if (_param._encoding_one_hot)
-	(*(_Priority_Fixed->out_ACK [i]))        (*(ACK [i]));
+	(*(_Select_Priority_Fixed->out_ACK [i]))        (*(ACK [i]));
       }
     if (_param._encoding_compact)
       {
-    (*(_Priority_Fixed->out_ENTITY    ))        (*(ENTITY    ));
-    (*(_Priority_Fixed->out_ENTITY_ACK))        (*(ENTITY_ACK));
+    (*(_Select_Priority_Fixed->out_ENTITY    ))        (*(ENTITY    ));
+    (*(_Select_Priority_Fixed->out_ENTITY_ACK))        (*(ENTITY_ACK));
       }
   /********************************************************
@@ -86,13 +90,13 @@
  
   sc_start(0);
-//_Priority_Fixed->vhdl_testbench_label("Initialisation");
+//_Select_Priority_Fixed->vhdl_testbench_label("Initialisation");
 //cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
 
-  _Priority_Fixed->vhdl_testbench_label("Loop of Test");
+  _Select_Priority_Fixed->vhdl_testbench_label("Loop of Test");
   cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl;
 
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      _Priority_Fixed->vhdl_testbench_label("Iteration "+toString(iteration));
+      _Select_Priority_Fixed->vhdl_testbench_label("Iteration "+toString(iteration));
 
       entity    = 0;
@@ -133,10 +137,19 @@
   cout << "<" << name << "> ............ Stop Simulation" << endl;
 
+  delete CLOCK;
+  delete NRESET;
 
-
-  delete CLOCK;
-
+  for (uint32_t i=0; i<_param._nb_entity; i++)
+    {
+      delete VAL [i];
+      delete ACK [i];
+    }
+  
+  delete VAL       ;
+  delete ACK       ;
+  delete ENTITY    ;
+  delete ENTITY_ACK;
 #endif
 
-  delete _Priority_Fixed;
+  delete _Select_Priority_Fixed;
 }
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_select_priority_fixed_Parameters_h
-#define morpheo_behavioural_generic_select_priority_fixed_Parameters_h
+#ifndef morpheo_behavioural_generic_select_select_priority_fixed_Parameters_h
+#define morpheo_behavioural_generic_select_select_priority_fixed_Parameters_h
 
 /*
@@ -17,5 +17,5 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
   class Parameters : public morpheo::behavioural::Parameters
@@ -38,8 +38,8 @@
   public :        string   print      (uint32_t depth);
   public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::select::priority_fixed::Parameters & x);
+				       morpheo::behavioural::generic::select::select_priority_fixed::Parameters & x);
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_select_priority_fixed_Priority_Fixed_h
-#define morpheo_behavioural_generic_select_priority_fixed_Priority_Fixed_h
+#ifndef morpheo_behavioural_generic_select_select_priority_fixed_Select_Priority_Fixed_h
+#define morpheo_behavioural_generic_select_select_priority_fixed_Select_Priority_Fixed_h
 
 /*
@@ -17,8 +17,8 @@
 #include "Include/Debug.h"
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Parameters.h"
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Types.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h"
 #ifdef STATISTICS
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Statistics.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
 #endif
 #ifdef VHDL
@@ -35,8 +35,8 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  class Priority_Fixed 
+  class Select_Priority_Fixed 
 #if SYSTEMC
     : public sc_module
@@ -65,4 +65,6 @@
 
   public    : SC_CLOCK                      *  in_CLOCK        ;
+  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
+
   public    : SC_IN (Tcontrol_t)           **  in_VAL          ;
   public    : SC_OUT(Tcontrol_t)           ** out_ACK          ;
@@ -80,7 +82,7 @@
 
 #ifdef SYSTEMC
-    SC_HAS_PROCESS (Priority_Fixed);
+    SC_HAS_PROCESS (Select_Priority_Fixed);
 #endif
-  public  :          Priority_Fixed              (
+  public  :          Select_Priority_Fixed              (
 #ifdef SYSTEMC
 					      sc_module_name                              name,
@@ -93,6 +95,6 @@
 					      Parameters                                  param );
 					       
-  public  :          Priority_Fixed              (Parameters param );
-  public  :          ~Priority_Fixed             (void);
+  public  :          Select_Priority_Fixed              (Parameters param );
+  public  :          ~Select_Priority_Fixed             (void);
 					       
 #ifdef SYSTEMC				       
@@ -122,5 +124,5 @@
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h	(revision 15)
@@ -1,5 +1,5 @@
 #ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_select_priority_fixed_Statistics_h
-#define morpheo_behavioural_generic_select_priority_fixed_Statistics_h
+#ifndef morpheo_behavioural_generic_select_select_priority_fixed_Statistics_h
+#define morpheo_behavioural_generic_select_select_priority_fixed_Statistics_h
 
 /*
@@ -14,5 +14,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 //#include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Parameters.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
 
 //using namespace morpheo::behavioural::generic::group;
@@ -22,5 +22,5 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
@@ -47,5 +47,5 @@
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_select_priority_fixed_Type_h
-#define morpheo_behavioural_generic_select_priority_fixed_Type_h
+#ifndef morpheo_behavioural_generic_select_select_priority_fixed_Type_h
+#define morpheo_behavioural_generic_select_select_priority_fixed_Type_h
 
 /*
@@ -15,9 +15,9 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
   typedef uint32_t Tentity_t;
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Parameters.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
 
 namespace morpheo {
@@ -12,5 +12,5 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
@@ -23,7 +23,7 @@
     _size_entity (static_cast<uint32_t> (ceil(log2(nb_entity))))
   {
-    log_printf(FUNC,Priority_Fixed,"Parameters","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin");
     test();
-    log_printf(FUNC,Priority_Fixed,"Parameters","End");
+    log_printf(FUNC,Select_Priority_Fixed,"Parameters","End");
   };
   
@@ -34,16 +34,16 @@
     _size_entity      (param._size_entity     )
   {
-    log_printf(FUNC,Priority_Fixed,"Parameters","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin");
     test();
-    log_printf(FUNC,Priority_Fixed,"Parameters","End");
+    log_printf(FUNC,Select_Priority_Fixed,"Parameters","End");
   };
 
   Parameters::~Parameters () 
   {
-    log_printf(FUNC,Priority_Fixed,"~Parameters","Begin");
-    log_printf(FUNC,Priority_Fixed,"~Parameters","End");
+    log_printf(FUNC,Select_Priority_Fixed,"~Parameters","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"~Parameters","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp	(revision 15)
@@ -6,6 +6,6 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Parameters.h"
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Types.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h"
 #include <sstream>
 using namespace std;
@@ -15,10 +15,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
   string Parameters::msg_error(void)
   {
-    log_printf(FUNC,Priority_Fixed,"msg_error","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"msg_error","Begin");
 
     string msg = "";
@@ -33,8 +33,8 @@
     return msg;
 
-    log_printf(FUNC,Priority_Fixed,"msg_error","End");
+    log_printf(FUNC,Select_Priority_Fixed,"msg_error","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Parameters.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
 #include "Behavioural/include/XML.h"
 using namespace std;
@@ -14,13 +14,13 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
   string Parameters::print (uint32_t depth)
   {
-    log_printf(FUNC,Priority_Fixed,"print","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"print","Begin");
 
-    XML xml ("priority_fixed");
+    XML xml ("select_priority_fixed");
 
-    xml.balise_open("priority_fixed");
+    xml.balise_open("select_priority_fixed");
     xml.singleton_begin("nb_entity       "); xml.attribut("value",toString(_nb_entity       )); xml.singleton_end();
     xml.singleton_begin("encoding_one_hot"); xml.attribut("value",toString(_encoding_one_hot)); xml.singleton_end();
@@ -28,5 +28,5 @@
     xml.balise_close();
 
-    log_printf(FUNC,Priority_Fixed,"print","End");
+    log_printf(FUNC,Select_Priority_Fixed,"print","End");
     
     return xml.get_body(depth);
@@ -34,5 +34,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::select::priority_fixed::Parameters & x)
+		       morpheo::behavioural::generic::select::select_priority_fixed::Parameters & x)
   {
     output_stream << x.print(0);
@@ -41,5 +41,5 @@
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -12,16 +12,16 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
 #ifdef SYSTEMC
-  Priority_Fixed::Priority_Fixed (sc_module_name name,
+  Select_Priority_Fixed::Select_Priority_Fixed (sc_module_name name,
 #else
-  Priority_Fixed::Priority_Fixed (string name,
+  Select_Priority_Fixed::Select_Priority_Fixed (string name,
 #endif
 #ifdef STATISTICS
 			      morpheo::behavioural::Parameters_Statistics             param_statistics,
 #endif
-			      morpheo::behavioural::generic::select::priority_fixed::Parameters param ):
+			      morpheo::behavioural::generic::select::select_priority_fixed::Parameters param ):
 			      _name              (name)
 			      ,_param            (param)
@@ -30,8 +30,8 @@
 // #endif
   {
-    log_printf(FUNC,Priority_Fixed,"Priority_Fixed","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","Begin");
 
 #ifdef STATISTICS
-    log_printf(INFO,Priority_Fixed,"Priority_Fixed","Allocation of statistics");
+    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation of statistics");
 
     // Allocation of statistics
@@ -42,5 +42,5 @@
 
 #ifdef VHDL_TESTBENCH
-    log_printf(INFO,Priority_Fixed,"Priority_Fixed","Creation of a testbench");
+    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Creation of a testbench");
 
     // Creation of a testbench
@@ -53,5 +53,5 @@
 #ifdef VHDL
     // generate the vhdl
-    log_printf(INFO,Priority_Fixed,"Priority_Fixed","Generate the vhdl");
+    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Generate the vhdl");
 
     vhdl();
@@ -59,14 +59,14 @@
 
 #ifdef VHDL_TESTBENCH
-    _vhdl_testbench->set_clock    ("in_CLOCK",false);
+    _vhdl_testbench->set_clock    ("in_CLOCK",true);
 #endif
 
 #ifdef SYSTEMC
-    log_printf(INFO,Priority_Fixed,"Priority_Fixed","Allocation");
+    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation");
 
     allocation ();
 
 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    log_printf(INFO,Priority_Fixed,"Priority_Fixed","Method - transition");
+    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - transition");
 
     SC_METHOD (transition);
@@ -75,5 +75,5 @@
 #endif
 
-    log_printf(INFO,Priority_Fixed,"Priority_Fixed","Method - genMealy_entity");
+    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - genMealy_entity");
 
     SC_METHOD (genMealy_entity);
@@ -100,13 +100,13 @@
 
 #endif
-    log_printf(FUNC,Priority_Fixed,"Priority_Fixed","End");
+    log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","End");
   };
   
-  Priority_Fixed::~Priority_Fixed (void)
+  Select_Priority_Fixed::~Select_Priority_Fixed (void)
   {
-    log_printf(FUNC,Priority_Fixed,"~Priority_Fixed","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"~Select_Priority_Fixed","Begin");
 
 #ifdef VHDL_TESTBENCH
-    log_printf(INFO,Priority_Fixed,"~Priority_Fixed","Generate Testbench  file");
+    log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Generate Testbench  file");
 
     // generate the test bench
@@ -116,5 +116,5 @@
 
 #ifdef STATISTICS
-    log_printf(INFO,Priority_Fixed,"~Priority_Fixed","Generate Statistics file");
+    log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Generate Statistics file");
 
     _stat->generate_file(statistics(0));
@@ -124,13 +124,13 @@
 
 #ifdef SYSTEMC
-    log_printf(INFO,Priority_Fixed,"~Priority_Fixed","Deallocation");
+    log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Deallocation");
 
     deallocation ();
 #endif
 
-    log_printf(FUNC,Priority_Fixed,"~Priority_Fixed","End");
+    log_printf(FUNC,Select_Priority_Fixed,"~Select_Priority_Fixed","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -13,17 +13,16 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::allocation (void)
+  void Select_Priority_Fixed::allocation (void)
   {
     string rename;
 
-    log_printf(FUNC,Priority_Fixed,"allocation","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"allocation","Begin");
 
-#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-     in_CLOCK        = new SC_CLOCK           ("in_CLOCK");
-#endif
-    
+     in_CLOCK        = new SC_CLOCK           ("in_CLOCK ");
+     in_NRESET       = new SC_IN (Tcontrol_t) ("in_NRESET");
+
      in_VAL          = new SC_IN (Tcontrol_t)           * [_param._nb_entity];
     if (_param._encoding_one_hot)
@@ -49,8 +48,8 @@
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
-    log_printf(FUNC,Priority_Fixed,"allocation","End");
+    log_printf(FUNC,Select_Priority_Fixed,"allocation","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_deallocation.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -13,14 +13,13 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::deallocation (void)
+  void Select_Priority_Fixed::deallocation (void)
   {
-    log_printf(FUNC,Priority_Fixed,"deallocation","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"deallocation","Begin");
 
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     delete in_CLOCK;
-//#endif
+    delete in_NRESET;
 
     for (uint32_t i=0; i<_param._nb_entity; i++)
@@ -41,8 +40,8 @@
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
-    log_printf(FUNC,Priority_Fixed,"deallocation","End");
+    log_printf(FUNC,Select_Priority_Fixed,"deallocation","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_genMealy_entity.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_genMealy_entity.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_genMealy_entity.cpp	(revision 15)
@@ -8,5 +8,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -14,10 +14,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::genMealy_entity (void)
+  void Select_Priority_Fixed::genMealy_entity (void)
   {
-    log_printf(FUNC,Priority_Fixed,"genMealy_entity","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"genMealy_entity","Begin");
 
     // init 
@@ -31,10 +31,10 @@
       ack [i] = 0;
 
-    log_printf(TRACE,Priority_Fixed,"genMealy_entity","Scearch...");
+    log_printf(TRACE,Select_Priority_Fixed,"genMealy_entity","Scearch...");
     for (entity=0; entity<_param._nb_entity; entity++)
       {
 	if (PORT_READ(in_VAL [entity]) == 1)
 	  {
-	    log_printf(TRACE,Priority_Fixed,"genMealy_entity","Find! entity %d",entity);
+	    log_printf(TRACE,Select_Priority_Fixed,"genMealy_entity","Find! entity %d",entity);
 	    if (_param._encoding_one_hot)
 	      ack [entity] = 1;
@@ -54,8 +54,8 @@
 	PORT_WRITE(out_ENTITY_ACK,  find                );
       }
-    log_printf(FUNC,Priority_Fixed,"genMealy_entity","End");
+    log_printf(FUNC,Select_Priority_Fixed,"genMealy_entity","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo {
@@ -13,19 +13,19 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  string Priority_Fixed::statistics (uint32_t depth)
+  string Select_Priority_Fixed::statistics (uint32_t depth)
   {
-    log_printf(FUNC,Priority_Fixed,"statistics","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"statistics","Begin");
 
     string txt = _stat->print(depth);
     
-    log_printf(FUNC,Priority_Fixed,"statistics","End");
+    log_printf(FUNC,Select_Priority_Fixed,"statistics","End");
 
     return txt;
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp	(revision 15)
@@ -8,5 +8,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -14,10 +14,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::transition (void)
+  void Select_Priority_Fixed::transition (void)
   {
-    log_printf(FUNC,Priority_Fixed,"transition","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"transition","Begin");
 
 #ifdef STATISTICS
@@ -29,8 +29,8 @@
 #endif
 
-    log_printf(FUNC,Priority_Fixed,"transition","End");
+    log_printf(FUNC,Select_Priority_Fixed,"transition","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 #include "Behavioural/include/Vhdl.h"
 
@@ -14,10 +14,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::vhdl (void)
+  void Select_Priority_Fixed::vhdl (void)
   {
-    log_printf(FUNC,Priority_Fixed,"vhdl","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl","Begin");
     Vhdl vhdl (_name);
 
@@ -29,9 +29,9 @@
 
     vhdl.generate_file();
-    log_printf(FUNC,Priority_Fixed,"vhdl","End");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl","End");
 
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -13,10 +13,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::vhdl_body (Vhdl & vhdl)
+  void Select_Priority_Fixed::vhdl_body (Vhdl & vhdl)
   {
-    log_printf(FUNC,Priority_Fixed,"vhdl_body","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_body","Begin");
     vhdl.set_body ("");
 
@@ -42,8 +42,8 @@
       }	   
     
-    log_printf(FUNC,Priority_Fixed,"vhdl_body","End");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_body","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_declaration.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_declaration.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo {
@@ -13,17 +13,17 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::vhdl_declaration (Vhdl & vhdl)
+  void Select_Priority_Fixed::vhdl_declaration (Vhdl & vhdl)
   {
-    log_printf(FUNC,Priority_Fixed,"vhdl_declaration","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_declaration","Begin");
 
     vhdl.set_signal("internal_entity",_param._size_entity+1);
 
-    log_printf(FUNC,Priority_Fixed,"vhdl_declaration","End");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_declaration","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_port.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_port.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 #ifdef VHDL_TESTBENCH
@@ -19,11 +19,14 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::vhdl_port (Vhdl & vhdl)
+  void Select_Priority_Fixed::vhdl_port (Vhdl & vhdl)
   {
-    log_printf(FUNC,Priority_Fixed,"vhdl_port","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_port","Begin");
 
+    vhdl.set_port (" in_CLOCK ", IN, 1);
+    VHDL_SET_PORT (" in_NRESET", IN, 1);
+	
     for (uint32_t i=0; i<_param._nb_entity; i++)
       {
@@ -37,8 +40,8 @@
     VHDL_SET_PORT ("out_ENTITY_ACK",OUT,1);
       }
-    log_printf(FUNC,Priority_Fixed,"vhdl_port","End");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_port","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_label.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_label.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_label.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -12,10 +12,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::vhdl_testbench_label (string label)
+  void Select_Priority_Fixed::vhdl_testbench_label (string label)
   {
-    log_printf(FUNC,Priority_Fixed,"vhdl_testbench_label","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_label","Begin");
 
 #ifdef VHDL_TESTBENCH
@@ -23,8 +23,8 @@
 #endif
     
-    log_printf(FUNC,Priority_Fixed,"vhdl_testbench_label","End");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_label","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_transition.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Priority_Fixed.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
 
 namespace morpheo                    {
@@ -13,18 +13,20 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
-  void Priority_Fixed::vhdl_testbench_transition ()
+  void Select_Priority_Fixed::vhdl_testbench_transition ()
   {
-    log_printf(FUNC,Priority_Fixed,"vhdl_testbench_transition","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_transition","Begin");
 
     // Evaluation before read the ouput signal
     sc_start(0);
 
-    // In order with file Priority_Fixed_vhdl_testbench_port.cpp
+    // In order with file Select_Priority_Fixed_vhdl_testbench_port.cpp
     // Warning : if a output depend of a subcomponent, take directly the port of subcomponent
     // (because we have no control on the ordonnancer's policy)
 
+    _vhdl_testbench->add_input (PORT_READ( in_NRESET));
+    
     for (uint32_t i=0; i<_param._nb_entity; i++)
       {
@@ -46,8 +48,8 @@
     _vhdl_testbench->new_cycle (); // always at the end
 
-    log_printf(FUNC,Priority_Fixed,"vhdl_testbench_transition","End");
+    log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_transition","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Statistics.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
 
 namespace morpheo                    {
@@ -13,5 +13,5 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
@@ -24,15 +24,15 @@
     _parameters(parameters)
   {
-    log_printf(FUNC,Priority_Fixed,"Statistics","Begin");
-    log_printf(FUNC,Priority_Fixed,"Statistics","End");
+    log_printf(FUNC,Select_Priority_Fixed,"Statistics","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"Statistics","End");
   };
   
   Statistics::~Statistics () 
   { 
-    log_printf(FUNC,Priority_Fixed,"~Statistics","Begin");
-    log_printf(FUNC,Priority_Fixed,"~Statistics","End");
+    log_printf(FUNC,Select_Priority_Fixed,"~Statistics","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"~Statistics","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_add.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_add.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Statistics.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
 
 #include <sstream>
@@ -16,14 +16,14 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
   void Statistics::add ()
   {
-    log_printf(FUNC,Priority_Fixed,"add","Begin");
-    log_printf(FUNC,Priority_Fixed,"add","End");
+    log_printf(FUNC,Select_Priority_Fixed,"add","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"add","End");
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Statistics.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
 
 #include <sstream>
@@ -16,19 +16,19 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
   string Statistics::print (uint32_t depth)
   {
-    log_printf(FUNC,Priority_Fixed,"print","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"print","Begin");
 
     string        tab = string(depth,'\t');
     ostringstream msg;
 
-    msg << tab << "<priority_fixed name=\"" << _name << "\" >" << endl
+    msg << tab << "<select_priority_fixed name=\"" << _name << "\" >" << endl
         << print_body(depth+1) << endl
-	<< tab << "</priority_fixed>" << endl;
+	<< tab << "</select_priority_fixed>" << endl;
     
-    log_printf(FUNC,Priority_Fixed,"print","End");
+    log_printf(FUNC,Select_Priority_Fixed,"print","End");
 
     return msg.str();
@@ -36,5 +36,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::select::priority_fixed::Statistics & x)
+		       morpheo::behavioural::generic::select::select_priority_fixed::Statistics & x)
   {
     output_stream << x.print(0);
@@ -43,5 +43,5 @@
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Select/Priority_Fixed/include/Statistics.h"
+#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
 
 #include <sstream>
@@ -16,10 +16,10 @@
 namespace generic {
 namespace select {
-namespace priority_fixed {
+namespace select_priority_fixed {
 
 
   string Statistics::print_body (uint32_t depth)
   {
-    log_printf(FUNC,Priority_Fixed,"print_body","Begin");
+    log_printf(FUNC,Select_Priority_Fixed,"print_body","Begin");
 
     string        tab = string(depth,'\t');
@@ -28,10 +28,10 @@
     msg << tab << "";
     
-    log_printf(FUNC,Priority_Fixed,"print_body","End");
+    log_printf(FUNC,Select_Priority_Fixed,"print_body","End");
 
     return msg.str();
   };
 
-}; // end namespace priority_fixed
+}; // end namespace select_priority_fixed
 }; // end namespace select
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile	(revision 15)
@@ -11,6 +11,5 @@
 
 #-----[ Library ]------------------------------------------
-LIBRARY				= $(DIR_LIB)/libPseudo_LRU.a
-
+LIBRARY				= $(DIR_LIB)/libVictim_Pseudo_LRU.a
 
 #-----[ include ]------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps	(revision 15)
@@ -15,23 +15,23 @@
 endif
 
-Pseudo_LRU			= yes
+Victim_Pseudo_LRU			= yes
 #-----[ Library ]------------------------------------------
-Pseudo_LRU_LIBRARY		= 	-lPseudo_LRU		\
-					$(Group_LIBRARY)	\
-					$(Behavioural_LIBRARY)	
+Victim_Pseudo_LRU_LIBRARY		= 	-lVictim_Pseudo_LRU		\
+						$(Group_LIBRARY)		\
+						$(Behavioural_LIBRARY)	
 
-Pseudo_LRU_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/Victim/Pseudo_LRU/lib	\
-					$(Group_DIR_LIBRARY)						\
-					$(Behavioural_DIR_LIBRARY)	
+Victim_Pseudo_LRU_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU/lib	\
+						$(Group_DIR_LIBRARY)							\
+						$(Behavioural_DIR_LIBRARY)	
 
 #-----[ Rules ]--------------------------------------------
 
-Pseudo_LRU_library		:
+Victim_Pseudo_LRU_library		:
 				@$(MAKE)  Behavioural_library
 				@$(MAKE)  Group_library
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Pseudo_LRU --makefile=Makefile 
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU --makefile=Makefile 
 				
-Pseudo_LRU_library_clean	:
+Victim_Pseudo_LRU_library_clean	:
 				@$(MAKE)  Behavioural_library_clean
 				@$(MAKE)  Group_library_clean
-				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Pseudo_LRU --makefile=Makefile clean
+				@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU --makefile=Makefile clean
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/Makefile	(revision 15)
@@ -10,7 +10,7 @@
 DIR_MORPHEO			= ../../../../..
 
-LIBRARY				= $(Pseudo_LRU_LIBRARY)
+LIBRARY				= $(Victim_Pseudo_LRU_LIBRARY)
 
-DIR_LIBRARY			= $(Pseudo_LRU_DIR_LIBRARY)
+DIR_LIBRARY			= $(Victim_Pseudo_LRU_DIR_LIBRARY)
 
 #-----[ include ]------------------------------------------
@@ -19,7 +19,7 @@
 				@$(MAKE) all_selftest
 
-library				: Pseudo_LRU_library
+library				: Victim_Pseudo_LRU_library
 
-library_clean			: Pseudo_LRU_library_clean
+library_clean			: Victim_Pseudo_LRU_library_clean
 
 include                         ../Makefile.deps
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration.cfg	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration.cfg	(revision 15)
@@ -1,3 +1,3 @@
-Pseudo_LRU
+Victim_Pseudo_LRU
 4	4 	*2	# nb_entity 
 1	1	+2	# nb_access 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration.cfg.save
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration.cfg.save	(revision 11)
+++ 	(revision )
@@ -1,5 +1,0 @@
-Pseudo_LRU
-4	16	*2	# nb_entity 
-1	4	+2	# nb_access 
-1	4	+2	# nb_update 
-1	16	*2	# size_table
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h	(revision 15)
@@ -4,5 +4,4 @@
  * [ Description ]
  * 
- * Test "RegisterFile"
  */
 
@@ -14,5 +13,5 @@
 #include <iostream>
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 using namespace std;
@@ -22,6 +21,6 @@
 using namespace morpheo::behavioural::generic::victim;
 
-using namespace morpheo::behavioural::generic::victim::pseudo_lru;
+using namespace morpheo::behavioural::generic::victim::victim_pseudo_lru;
 
 void test   (string name,
-	     morpheo::behavioural::generic::victim::pseudo_lru::Parameters param);
+	     morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/main.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/main.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/SelfTest/include/test.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h"
 
 #define NB_PARAMS 4
@@ -36,5 +36,5 @@
   const uint32_t size_table = atoi(argv[5]);
   
-  morpheo::behavioural::generic::victim::pseudo_lru::Parameters param (nb_entity ,
+  morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param (nb_entity ,
 								       nb_access ,
 								       nb_update ,
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp	(revision 15)
@@ -7,9 +7,9 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/SelfTest/include/test.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h"
 #include "Include/Test.h"
 
 void test (string name,
-	   morpheo::behavioural::generic::victim::pseudo_lru::Parameters param)
+	   morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
@@ -36,5 +36,5 @@
       exit (EXIT_FAILURE);
     }
-  Pseudo_LRU * _Pseudo_LRU = new Pseudo_LRU (name.c_str(),
+  Victim_Pseudo_LRU * _Victim_Pseudo_LRU = new Victim_Pseudo_LRU (name.c_str(),
 #ifdef STATISTICS
 					     morpheo::behavioural::Parameters_Statistics(5,50),
@@ -46,5 +46,6 @@
    * Déclarations des signaux
    *********************************************************************/
-  sc_clock                                 CLOCK ("clock", 1.0, 0.5);
+  sc_clock                                 CLOCK  ("clock", 1.0, 0.5);
+  sc_signal<Tcontrol_t>                    NRESET ("NRESET");
 
   sc_signal<Tcontrol_t>                    ACCESS_VAL     [param._nb_access];
@@ -62,24 +63,25 @@
    ********************************************************/
   
-  cout << "<" << name << "> Instanciation of _Pseudo_LRU" << endl;
-  
-  (*(_Pseudo_LRU->in_CLOCK))        (CLOCK);
+  cout << "<" << name << "> Instanciation of _Victim_Pseudo_LRU" << endl;
+  
+  (*(_Victim_Pseudo_LRU->in_CLOCK))        (CLOCK);
+  (*(_Victim_Pseudo_LRU->in_NRESET))       (NRESET);
 
     for (uint32_t i=0; i<param._nb_access; i++)
       {
-	(*(_Pseudo_LRU-> in_ACCESS_VAL     [i])) (ACCESS_VAL     [i]);
-	(*(_Pseudo_LRU->out_ACCESS_ACK     [i])) (ACCESS_ACK     [i]);
+	(*(_Victim_Pseudo_LRU-> in_ACCESS_VAL     [i])) (ACCESS_VAL     [i]);
+	(*(_Victim_Pseudo_LRU->out_ACCESS_ACK     [i])) (ACCESS_ACK     [i]);
 	if (param._size_table>1)
-	(*(_Pseudo_LRU-> in_ACCESS_ADDRESS [i])) (ACCESS_ADDRESS [i]);
-	(*(_Pseudo_LRU->out_ACCESS_ENTITY  [i])) (ACCESS_ENTITY  [i]);
+	(*(_Victim_Pseudo_LRU-> in_ACCESS_ADDRESS [i])) (ACCESS_ADDRESS [i]);
+	(*(_Victim_Pseudo_LRU->out_ACCESS_ENTITY  [i])) (ACCESS_ENTITY  [i]);
       }
 
     for (uint32_t i=0; i<param._nb_update; i++)
       {
-	(*(_Pseudo_LRU-> in_UPDATE_VAL     [i])) (UPDATE_VAL     [i]);
-	(*(_Pseudo_LRU->out_UPDATE_ACK     [i])) (UPDATE_ACK     [i]);
+	(*(_Victim_Pseudo_LRU-> in_UPDATE_VAL     [i])) (UPDATE_VAL     [i]);
+	(*(_Victim_Pseudo_LRU->out_UPDATE_ACK     [i])) (UPDATE_ACK     [i]);
 	if (param._size_table>1)
-	(*(_Pseudo_LRU-> in_UPDATE_ADDRESS [i])) (UPDATE_ADDRESS [i]);
-	(*(_Pseudo_LRU-> in_UPDATE_ENTITY  [i])) (UPDATE_ENTITY  [i]);
+	(*(_Victim_Pseudo_LRU-> in_UPDATE_ADDRESS [i])) (UPDATE_ADDRESS [i]);
+	(*(_Victim_Pseudo_LRU-> in_UPDATE_ENTITY  [i])) (UPDATE_ENTITY  [i]);
       }
   /********************************************************
@@ -204,4 +206,4 @@
 #endif
 
-  delete _Pseudo_LRU;
+  delete _Victim_Pseudo_LRU;
 }
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_victim_pseudo_lru_Parameters_h
-#define morpheo_behavioural_generic_victim_pseudo_lru_Parameters_h
+#ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Parameters_h
+#define morpheo_behavioural_generic_victim_victim_pseudo_lru_Parameters_h
 
 /*
@@ -16,5 +16,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
@@ -25,5 +25,5 @@
   public : const uint32_t _nb_access ; // number of port to select an entity
   public : const uint32_t _nb_update ; // number of port to update the internal entity
-  public : const uint32_t _size_table; // Size of pseudo_LRU's table
+  public : const uint32_t _size_table; // Size of victim_pseudo_lru's table
 
     //-----[ methods ]-----------------------------------------------------------
@@ -39,8 +39,8 @@
   public :        string   print      (uint32_t depth);
   public : friend ostream& operator<< (ostream& output_stream,
-				       morpheo::behavioural::generic::victim::pseudo_lru::Parameters & x);
+				       morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters & x);
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h	(revision 15)
@@ -1,5 +1,5 @@
 #ifdef STATISTICS
-#ifndef morpheo_behavioural_generic_victim_pseudo_lru_Statistics_h
-#define morpheo_behavioural_generic_victim_pseudo_lru_Statistics_h
+#ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Statistics_h
+#define morpheo_behavioural_generic_victim_victim_pseudo_lru_Statistics_h
 
 /*
@@ -13,5 +13,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 #include "Behavioural/Generic/Group/include/Statistics.h"
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Parameters.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
 
 using namespace morpheo::behavioural::generic::group;
@@ -21,5 +21,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
@@ -49,5 +49,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_victim_pseudo_lru_Type_h
-#define morpheo_behavioural_generic_victim_pseudo_lru_Type_h
+#ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Type_h
+#define morpheo_behavioural_generic_victim_victim_pseudo_lru_Type_h
 
 /*
@@ -15,10 +15,10 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
   typedef uint32_t Taddress_t;
   typedef uint32_t Tentity_t;
 
-}; // end namespace pseudo._lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_behavioural_generic_victim_pseudo_lru_Pseudo_LRU_h
-#define morpheo_behavioural_generic_victim_pseudo_lru_Pseudo_LRU_h
+#ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Victim_Pseudo_LRU_h
+#define morpheo_behavioural_generic_victim_victim_pseudo_lru_Victim_Pseudo_LRU_h
 
 /*
@@ -32,8 +32,8 @@
 #include "Include/Debug.h"
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Parameters.h"
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Types.h"
-#ifdef STATISTICS
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Statistics.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h"
+#ifdef STATISTICS
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
 #endif
 #ifdef VHDL
@@ -50,7 +50,7 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
-
-  class Pseudo_LRU 
+namespace victim_pseudo_lru {
+
+  class Victim_Pseudo_LRU 
 #if SYSTEMC
     : public sc_module
@@ -60,5 +60,5 @@
   protected : class entry_t
   {
-    // Numerotation of pseudo_LRU's tree
+    // Numerotation of victim_pseudo_lru's tree
     // Tree of Pseudo-LRU
     //
@@ -183,4 +183,5 @@
     // Interface
   public    : SC_CLOCK                      *  in_CLOCK         ;
+  public    : SC_IN (Tcontrol_t)            *  in_NRESET        ;
 
     // Interface access
@@ -206,8 +207,8 @@
 
 #ifdef SYSTEMC
-    SC_HAS_PROCESS (Pseudo_LRU);
-#endif
-
-  public  :          Pseudo_LRU              (
+    SC_HAS_PROCESS (Victim_Pseudo_LRU);
+#endif
+
+  public  :          Victim_Pseudo_LRU              (
 #ifdef SYSTEMC
 					      sc_module_name                              name,
@@ -220,6 +221,6 @@
 					      Parameters                                  param );
 					       
-  public  :          Pseudo_LRU              (Parameters param );
-  public  :          ~Pseudo_LRU             (void);
+  public  :          Victim_Pseudo_LRU              (Parameters param );
+  public  :          ~Victim_Pseudo_LRU             (void);
 					       
 #ifdef SYSTEMC				       
@@ -249,5 +250,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Parameters.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
 
 namespace morpheo {
@@ -12,5 +12,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
@@ -39,5 +39,5 @@
   { };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp	(revision 15)
@@ -6,6 +6,6 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Parameters.h"
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Types.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h"
 #include <sstream>
 using namespace std;
@@ -15,5 +15,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
   string Parameters::msg_error(void)
@@ -65,5 +65,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Parameters.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h"
 #include <sstream>
 using namespace std;
@@ -14,5 +14,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
   string Parameters::print (uint32_t depth)
@@ -20,10 +20,10 @@
     string tab = string(depth,'\t');
     ostringstream msg;
-    msg << tab << "<pseudo_lru>" << endl
+    msg << tab << "<victim_pseudo_lru>" << endl
 	<< tab << "\t<nb_entity  value=\"" << _nb_entity  << "\" />" << endl
 	<< tab << "\t<nb_access  value=\"" << _nb_access  << "\" />" << endl
 	<< tab << "\t<nb_update  value=\"" << _nb_update  << "\" />" << endl
 	<< tab << "\t<size_table value=\"" << _size_table << "\" />" << endl
-	<< tab << "</pseudo_lru>" << endl;
+	<< tab << "</victim_pseudo_lru>" << endl;
     
     return msg.str();
@@ -31,5 +31,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::victim::pseudo_lru::Parameters & x)
+		       morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters & x)
   {
     output_stream << x.print(0);
@@ -38,5 +38,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Statistics.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
 
 namespace morpheo                    {
@@ -13,5 +13,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
@@ -38,5 +38,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_add.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_add.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_add.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Statistics.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
 
 #include <sstream>
@@ -16,5 +16,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
   void Statistics::add (uint32_t nb_access,
@@ -25,5 +25,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Statistics.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
 
 #include <sstream>
@@ -16,5 +16,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
@@ -24,7 +24,7 @@
     ostringstream msg;
 
-    msg << tab << "<pseudo_lru name=\"" << _name << "\" >" << endl
+    msg << tab << "<victim_pseudo_lru name=\"" << _name << "\" >" << endl
 	<< print_body (depth+1)
-	<< tab << "</pseudo_lru>" << endl;
+	<< tab << "</victim_pseudo_lru>" << endl;
     
     return msg.str();
@@ -32,5 +32,5 @@
 
   ostream& operator<< (ostream& output_stream ,
-		       morpheo::behavioural::generic::victim::pseudo_lru::Statistics & x)
+		       morpheo::behavioural::generic::victim::victim_pseudo_lru::Statistics & x)
   {
     output_stream << x.print(0);
@@ -39,5 +39,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Statistics.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h"
 
 #include <sstream>
@@ -16,5 +16,5 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
@@ -30,5 +30,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 15)
@@ -6,5 +6,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -12,22 +12,22 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 #ifdef SYSTEMC
-  Pseudo_LRU::Pseudo_LRU (sc_module_name name,
+  Victim_Pseudo_LRU::Victim_Pseudo_LRU (sc_module_name name,
 #else
-  Pseudo_LRU::Pseudo_LRU (string name,
+  Victim_Pseudo_LRU::Victim_Pseudo_LRU (string name,
 #endif
 #ifdef STATISTICS
 			  morpheo::behavioural::Parameters_Statistics             param_statistics,
 #endif
-			  morpheo::behavioural::generic::victim::pseudo_lru::Parameters param ):
+			  morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param ):
 			  _name   (name)
 			  ,_param (param)
   {
-    log_printf(FUNC,Pseudo_LRU,"Pseudo_LRU","Begin");
+    log_printf(FUNC,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Begin");
 
 #ifdef STATISTICS
-    log_printf(TRACE,Pseudo_LRU,"Pseudo_LRU","Allocation of statistics");
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation of statistics");
     
     // Allocation of statistics
@@ -41,5 +41,5 @@
     //  -> port
     //  -> clock's signals
-    log_printf(TRACE,Pseudo_LRU,"Pseudo_LRU","Creation of Testbench");
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Creation of Testbench");
     _vhdl_testbench = new Vhdl_Testbench (_name);
     vhdl_testbench_port           (*_vhdl_testbench);
@@ -49,13 +49,13 @@
 #ifdef VHDL
     // generate the vhdl
-    log_printf(TRACE,Pseudo_LRU,"Pseudo_LRU","Generation of VHDL");
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Generation of VHDL");
     vhdl();
 #endif
 
 #ifdef SYSTEMC
-    log_printf(TRACE,Pseudo_LRU,"Pseudo_LRU","Allocation");
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation");
     allocation ();
 
-    log_printf(TRACE,Pseudo_LRU,"Pseudo_LRU","Definition of sc_method");
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
     SC_METHOD (transition);
     dont_initialize ();
@@ -73,5 +73,5 @@
 
 #ifdef SYSTEMCASS_SPECIFIC
-    log_printf(TRACE,Pseudo_LRU,"Pseudo_LRU","List dependency information");
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","List dependency information");
     // List dependency information
     for (uint32_t i=0; i<_param._nb_access; i++)
@@ -90,10 +90,10 @@
 
 #endif
-    log_printf(FUNC,Pseudo_LRU,"Pseudo_LRU","End");
+    log_printf(FUNC,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","End");
   };
   
-  Pseudo_LRU::~Pseudo_LRU (void)
+  Victim_Pseudo_LRU::~Victim_Pseudo_LRU (void)
   {
-    log_printf(FUNC,Pseudo_LRU,"~Pseudo_LRU","Begin");
+    log_printf(FUNC,Victim_Pseudo_LRU,"~Victim_Pseudo_LRU","Begin");
 #ifdef SYSTEMC
     deallocation ();
@@ -111,8 +111,8 @@
     delete _stat;
 #endif
-    log_printf(FUNC,Pseudo_LRU,"~Pseudo_LRU","End");
+    log_printf(FUNC,Victim_Pseudo_LRU,"~Victim_Pseudo_LRU","End");
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -13,9 +13,10 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
-  void Pseudo_LRU::allocation (void)
+  void Victim_Pseudo_LRU::allocation (void)
   {
     in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
+    in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
 
     // -----[ Interface access ]-------------------------------------------
@@ -82,5 +83,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
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 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_deallocation.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo                    {
@@ -13,10 +13,10 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
-  void Pseudo_LRU::deallocation (void)
+  void Victim_Pseudo_LRU::deallocation (void)
   {
     delete in_CLOCK;
-
+    delete in_NRESET;
     // -----[ Interface access ]-------------------------------------------
     for (uint32_t i=0; i<_param._nb_access; i++)
@@ -61,5 +61,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy_access.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy_access.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy_access.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -13,7 +13,7 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
-  void Pseudo_LRU::genMealy_access (void)
+  void Victim_Pseudo_LRU::genMealy_access (void)
   {
     for (uint32_t i=0; i<_param._nb_access; i++)
@@ -39,5 +39,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo                    {
@@ -13,13 +13,13 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
   
-  string Pseudo_LRU::statistics (uint32_t depth)
+  string Victim_Pseudo_LRU::statistics (uint32_t depth)
   {
     return _stat->print(depth);
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -13,7 +13,7 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
-  void Pseudo_LRU::transition (void)
+  void Victim_Pseudo_LRU::transition (void)
   {
 #ifdef STATISTICS
@@ -71,5 +71,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 #include "Behavioural/include/Vhdl.h"
 
@@ -14,29 +14,29 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
-  void Pseudo_LRU::vhdl (void)
+  void Victim_Pseudo_LRU::vhdl (void)
   {
-    log_printf(FUNC,Pseudo_LRU,"vhdl","Begin");
+    log_printf(FUNC,Victim_Pseudo_LRU,"vhdl","Begin");
 
-    log_printf(TRACE,Pseudo_LRU,"vhdl","Construction of vhdl");
+    log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Construction of vhdl");
     Vhdl vhdl (_name);
 
-    log_printf(TRACE,Pseudo_LRU,"vhdl","Set library");
+    log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set library");
     vhdl.set_library_work (_name + "_Pack");
 
-    log_printf(TRACE,Pseudo_LRU,"vhdl","Set port");
+    log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set port");
     vhdl_port        (vhdl);
-    log_printf(TRACE,Pseudo_LRU,"vhdl","Set declaration");
+    log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set declaration");
     vhdl_declaration (vhdl);
-    log_printf(TRACE,Pseudo_LRU,"vhdl","Set body");
+    log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set body");
     vhdl_body        (vhdl);
-    log_printf(TRACE,Pseudo_LRU,"vhdl","Generate File");
+    log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Generate File");
     vhdl.generate_file();
-    log_printf(FUNC,Pseudo_LRU,"vhdl","End");
+    log_printf(FUNC,Victim_Pseudo_LRU,"vhdl","End");
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -13,7 +13,7 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
-
-  void Pseudo_LRU::vhdl_body (Vhdl & vhdl)
+namespace victim_pseudo_lru {
+
+  void Victim_Pseudo_LRU::vhdl_body (Vhdl & vhdl)
   {
     vhdl.set_body ("");
@@ -219,5 +219,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_declaration.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_declaration.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -13,8 +13,8 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
-  void Pseudo_LRU::vhdl_declaration (Vhdl & vhdl)
+  void Victim_Pseudo_LRU::vhdl_declaration (Vhdl & vhdl)
   {
     vhdl.set_type ("Ttable", "array (" + toString(_param._size_table-1) + " downto 0) of "+std_logic(_param._nb_entity-1));
@@ -35,5 +35,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_port.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_port.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo                    {
@@ -13,10 +13,11 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
-  void Pseudo_LRU::vhdl_port (Vhdl & vhdl)
+  void Victim_Pseudo_LRU::vhdl_port (Vhdl & vhdl)
   {
-    vhdl.set_port ("in_CLOCK" , IN, "std_logic");
+    vhdl.set_port ("in_CLOCK ", IN, 1);
+    vhdl.set_port ("in_NRESET", IN, 1);
 
     for (uint32_t i = 0; i < _param._nb_access; i ++)
@@ -39,5 +40,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_port.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_port.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo                    {
@@ -13,9 +13,10 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
-  void Pseudo_LRU::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench)
+  void Victim_Pseudo_LRU::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench)
   {
+    vhdl_testbench.set_port (" in_NRESET",IN ,1);
     for (uint32_t i = 0; i < _param._nb_access; i ++)
       {
@@ -37,5 +38,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_transition.cpp	(revision 11)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_transition.cpp	(revision 15)
@@ -7,5 +7,5 @@
  */
 
-#include "Behavioural/Generic/Victim/Pseudo_LRU/include/Pseudo_LRU.h"
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
 
 namespace morpheo {
@@ -13,12 +13,13 @@
 namespace generic {
 namespace victim {
-namespace pseudo_lru {
+namespace victim_pseudo_lru {
 
 
-  void Pseudo_LRU::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench)
+  void Victim_Pseudo_LRU::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench)
   {
 #ifndef SYSTEMCASS_SPECIFIC
     sc_cycle(0);
 #endif
+    vhdl_testbench.add_input  (PORT_READ(in_NRESET));
 
     for (uint32_t i = 0; i < _param._nb_access; i ++)
@@ -45,5 +46,5 @@
   };
 
-}; // end namespace pseudo_lru
+}; // end namespace victim_pseudo_lru
 }; // end namespace victim
 }; // end namespace generic
