Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Constant/Constant_OpenRISC.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Constant/Constant_OpenRISC.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Constant/Constant_OpenRISC.h	(revision 15)
@@ -13,25 +13,100 @@
 namespace behavioural {
 namespace constant {
+#define                 _size_instruction             32
+#define                 _size_instruction_log2        5
 
   //------------------------------------------------------[ Control ]-----
-  typedef bool    Tcontrol_t;
+  typedef bool          Tcontrol_t;
 
+  //----------------------------------------------------[ Operation ]-----
+  typedef uint8_t       Toperation_t;
+#define                 _nb_operation                 32
+#define                 _size_operation               5
+
+#define                 _operation_none               0x0
+#define                 _operation_l_adds             0x1
+#define                 _operation_l_addu             0x2
+#define                 _operation_l_subs             0x3
+#define                 _operation_l_and              0x4
+#define                 _operation_l_or               0x5
+#define                 _operation_l_xor              0x6
+#define                 _operation_l_cmove            0x7
+#define                 _operation_l_read_imm         0x8
+#define                 _operation_l_movhi            0x9
+#define                 _operation_l_muls             0xa
+#define                 _operation_l_mulu             0xb
+#define                 _operation_l_divs             0xc
+#define                 _operation_l_divu             0xd
+#define                 _operation_l_exts             0xe
+#define                 _operation_l_extz             0xf
+#define                 _operation_l_ff1              0x10
+#define                 _operation_l_fl1              0x11
+#define                 _operation_l_sll              0x12
+#define                 _operation_l_sla              0x13
+#define                 _operation_l_srl              0x14
+#define                 _operation_l_ror              0x15
+#define                 _operation_l_cmp_eq           0x16
+#define                 _operation_l_cmp_ne           0x17
+#define                 _operation_l_cmp_ges          0x18
+#define                 _operation_l_cmp_geu          0x19
+#define                 _operation_l_cmp_gts          0x1a
+#define                 _operation_l_cmp_gtu          0x1b
+#define                 _operation_l_cmp_les          0x1c
+#define                 _operation_l_cmp_leu          0x1d
+#define                 _operation_l_cmp_lts          0x1e
+#define                 _operation_l_cmp_ltu          0x1f
+
+  //--------------------------------------------------[ destination ]-----
+  typedef uint8_t       Tdestination1_t;
+#define                 _size_destination1            4
+
+#define                  cst_DESTINATION1_NONE        0x0
+#define                 mask_DESTINATION1_GPR         0x1
+#define                 mask_DESTINATION1_MEMORY      0x2
+#define                 mask_DESTINATION1_SPR         0x4
+#define                 mask_DESTINATION1_MAC_UNIT    0x8
+  
+  typedef uint8_t       Tdestination2_t;
+#define                 _size_destination2  3
+
+#define                  cst_DESTINATION2_NONE        0x0
+#define                 mask_DESTINATION2_COMMIT      0x1
+#define                 mask_DESTINATION2_MEMORY      0x2
+#define                 mask_DESTINATION2_SPR         0x4
+  
+  //----------------------------------------------------[ exec_flag ]-----
+  typedef uint8_t       Texec_flag_t;
+#define                 _size_exec_flag               2
+
+#define                 mask_EXEC_FLAG_NONE           0x1
+#define                 mask_EXEC_FLAG_CARRY          0x1
+#define                 mask_EXEC_FLAG_FLAG           0x1
+#define                 mask_EXEC_FLAG_OVERFLOW       0x2
+
+  //---------------------------------------------------[ exec_excep ]-----
+  typedef bool          Texec_excep_t;
+#define                  _size_exec_excep             1
+
+#define                 mask_EXEC_EXCEP_NONE          0x0
+#define                 mask_EXEC_EXCEP_RANGE         0x1
+  
   //----------------------------------------------------[ Condition ]-----
-  typedef uint8_t Tcondition_t;
+  typedef uint8_t       Tcondition_t;
+#define                 _size_condition               3
     
-  const Tcondition_t    cst_CONDITION_NONE            = 0x0;           // None condition (jump)
-  const Tcondition_t    cst_CONDITION_F               = 0x2;           // Branch if Flag is set
-  const Tcondition_t    cst_CONDITION_NF              = 0x3;           // Branch if Flag is clear
-  const Tcondition_t    cst_CONDITION_REG             = 0x4;           // Branch if a register is read
-  const Tcondition_t    cst_CONDITION_STACK           = 0x8;           // Branch with pop  in stack pointer
+#define                  cst_CONDITION_UNCONDITIONAL  0x0           // None condition (jump)
+#define                 mask_CONDITION_CONDITIONAL    0x2           
+#define                 mask_CONDITION_CONDITIONAL_NF 0x0           // Branch if Flag is clear 
+#define                 mask_CONDITION_CONDITIONAL_F  0x1           // Branch if Flag is set   
+#define                 mask_CONDITION_REG            0x4           // Branch if a register is read
+#define                 mask_CONDITION_STACK          0x8           // Branch with pop  in stack pointer
 
   //-------------------------------------------------[ branch_state ]-----
-  typedef uint8_t Tbranch_state_t;
+  typedef uint8_t       Tbranch_state_t;
 
-  const Tbranch_state_t cst_BRANCH_STATE_NONE         = 0x0;           // 0 0
-  const Tbranch_state_t cst_BRANCH_STATE_NSPEC_TAKE   = 0x1;           // 0 1  -> incondionnal
-  const Tbranch_state_t cst_BRANCH_STATE_SPEC_NTAKE   = 0x2;           // 1 0
-  const Tbranch_state_t cst_BRANCH_STATE_SPEC_TAKE    = 0x3;           // 1 1
-
+#define                 cst_BRANCH_STATE_NONE         0x0           // 0 0
+#define                 cst_BRANCH_STATE_NSPEC_TAKE   0x1           // 0 1  -> incondionnal
+#define                 cst_BRANCH_STATE_SPEC_NTAKE   0x2           // 1 0
+#define                 cst_BRANCH_STATE_SPEC_TAKE    0x3           // 1 1
 
 }; // end namespace constant
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile	(revision 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 	(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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 	(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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 	(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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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 14)
+++ 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
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Common
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Common	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Common	(revision 15)
@@ -7,72 +7,29 @@
 # 
 
+include                         $(MORPHEO_TOPLEVEL)/Makefile.tools
+
 #-----[ Directory ]----------------------------------------
 DIR_INC				= include
 DIR_SRC				= src
 DIR_OBJ				= obj
-DIR_SCRIPT			= $(DIR_MORPHEO)/Script
-
-#-----[ Commands ]-----------------------------------------
-ECHO				= echo
-EXPORT				= export
-MKDIR				= mkdir -p
-TEST				= test
-READ				= read
-DATE				= date +%Y%m%d-%H%M%S
-CD				= cd
-CP				= cp
-CAT				= cat
-LS				= ls
-RM				= rm -fr
-PWD				= `pwd`
-MAKE				= make -s
-AR				= ar -v
-RANLIB				= ranlib
-BASENAME			= basename
-GREP				= grep
-GREP_NOT			= egrep -v
-TR				= tr
-UPPERtoLOWER			= $(TR) [:lower:] [:upper:]
+DIR_SCRIPT			= $(MORPHEO_SCRIPT)
 
 #-----[ Compilation ]--------------------------------------
-
-SYSTEMC_systemc			= $(TOOLS)/systemc
-SYSTEMC_systemcass 		= $(TOOLS)/systemcass
-SYSTEMC_systemcass_deps 	= $(SYSTEMC_systemcass)
-
-SYSTEMC				= $(SYSTEMC_$(SIMULATOR))
-
-INCDIR 				= -I$(SYSTEMC)/include 	\
+INCDIR 				= $(SYSTEMC_INCDIR_$(SIMULATOR)) 	\
 				  -I$(DIR_MORPHEO) 
 
-DIRLIB_systemc			= lib-$(TARGET_ARCH) 	
-DIRLIB_systemcass 		= lib
-DIRLIB_systemcass_deps         	= $(DIRLIB_systemcass)
+LIBDIR 				= $(DIR_LIBRARY)			\
+				  $(SYSTEMC_LIBDIR_$(SIMULATOR)) 	\
+				  $(SOCLIB_LIBDIR)   			\
+				  $(OR1K_LIBDIR) 				
 
-LIBDIR 				= $(DIR_LIBRARY)			\
-		 		  -L$(SYSTEMC)/$(DIRLIB_$(SIMULATOR))  	\
-				  -L$(TOOLS)/soclib/lib 		\
-				  -L$(TOOLS)/or1k/lib 				
+LIBS		   		= $(LIBRARY) -lm $(SYSTEMC_LIBNAME_$(SIMULATOR)) $(SOCLIB_LIBNAME) $(OR1K_LIBNAME) -lbfd  -ldl
 
-LIBS		   		= $(LIBRARY) -lm -lsystemc -lsoclib -lbfd -liberty -ldl
-# target architecture
-TARGET_ARCH	 		= linux
-
-XX_systemc			=
-XX_systemcass			= -rdynamic				\
-				  -ansi                       		\
-   	                	  -Wno-long-long
-
-XX_systemcass_deps		= $(XX_systemcass)
-
-EXEC_PARAMS_systemc		= 
-EXEC_PARAMS_systemcass 		= --nobanner 
-EXEC_PARAMS_systemcass_deps     = --nobanner --p
-
-
-XX_COMMON			= -O3					\
+FLAGS_COMMON			= $(SYSTEMC_CFLAGS_$(SIMULATOR))	\
+				  -O3					\
 				  -g3   				\
 				  -Wall					\
 				  -Wunused
+
 #				  -Wno-deprecated 			\
 #				  -Wno-non-template-friend		\
@@ -82,11 +39,6 @@
 # 				  -Werror				\
 
-XX_OPT    			= $(XX_COMMON) $(XX_$(SIMULATOR))
-
-CXX				= export LANG=C; g++
-CXX_OPT				= $(XX_OPT) $(FLAGS) $(INCDIR)
-LXX_OPT				= $(XX_OPT) $(FLAGS) $(LIBDIR)
-
-EXEC_PARAMS 			= $(EXEC_PARAMS_$(SIMULATOR))
+CFLAGS				= $(FLAGS) $(FLAGS_COMMON) $(INCDIR)
+LFLAGS				= $(FLAGS) $(FLAGS_COMMON) $(LIBDIR)
 
 #-----[ Variable ]-----------------------------------------
@@ -103,14 +55,17 @@
 test_env			:
 				@$(ECHO) "-------------------[ $(ENTITY) ]"
-ifeq ($(origin TOOLS), undefined)
-				$(error "variable TOOLS       is undefined");
+ifeq ($(origin MORPHEO_TOPLEVEL), undefined)
+				$(error "variable MORPHEO_TOPLEVEL is undefined");
+endif
+ifeq ($(origin MORPHEO_SCRIPT), undefined)
+				$(error "variable MORPHEO_SCRIPT   is undefined");
 endif
 ifeq ($(origin DIR_MORPHEO), undefined)
-				$(error "variable DIR_MORPHEO is undefined");
+				$(error "variable DIR_MORPHEO      is undefined");
 endif
 
 $(DIR_OBJ)/%.o			: $(DIR_SRC)/%.cpp $(HEADERS)
 				@$(ECHO) "Compilation        : $*"
-				@$(CXX) $(CXX_OPT) -c -o $@ $<
+				$(CXX) $(CFLAGS) -c -o $@ $<
 
 $(DIR_OBJ)			:
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest	(revision 15)
@@ -7,15 +7,19 @@
 # 
 
-#-----[ Variables ]----------------------------------------
+#-----[ Directory ]----------------------------------------
 DIR_BIN				= bin
 DIR_LIB				= ../lib
-DIR_CFG				= configuration
+DIR_CFG_GEN				= configuration_generated
+DIR_CFG_USER			= configuration
 DIR_LOG				= log
 
+#-----[ Variables ]----------------------------------------
 CFG_FILE			= configuration.cfg
 
 OBJECTS      			= $(OBJECTS_COMMON)
 
-EXEC_LOG			= $(patsubst $(DIR_CFG)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG)/*.cfg))
+EXEC_PARAMS 			= $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR))
+EXEC_LOG			= $(patsubst $(DIR_CFG_GEN)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_GEN)/*.cfg))	\
+				  $(patsubst $(DIR_CFG_USER)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_USER)/*.cfg))
 EXEC				= soft
 
@@ -36,31 +40,7 @@
 
 config_clean			:
-				@													\
-				declare     NAME;											\
-				declare -i  CPT=0;											\
-				declare -ai PERIOD;											\
-				declare -a  RANGE_LOCAL;										\
-				PERIOD[0]=1;												\
-																	\
-				while $(READ) line; do											\
-				        LINE=($$line);											\
-																	\
-					if $(TEST) $$CPT -eq 0; then 									\
-						NAME=$${LINE[0]};									\
-					else												\
-						RANGE_LOCAL=($$($(DIR_SCRIPT)/range.sh $${LINE[0]} $${LINE[1]} $${LINE[2]}));		\
-						PERIOD[$$CPT]=$$(($${PERIOD[$$(($$CPT-1))]}*$${#RANGE_LOCAL[*]}));			\
-					fi;												\
-																	\
-					CPT=$$(($$CPT+1));										\
-				done < $(CFG_FILE);											\
-																	\
-				declare -i NB_CONFIG=$${PERIOD[$$(($$CPT-1))]};								\
-																	\
-				for i in $$($(DIR_SCRIPT)/range.sh 0 $$(($$NB_CONFIG-1))); do						\
-					$(RM) "$(DIR_CFG)/$${NAME}_$${i}.cfg";								\
-				done;
+				@$(RM) $(DIR_CFG_GEN)
 
-config        			:
+config        			: $(DIR_CFG_GEN)
 				@$(ECHO) "Generate configuration"
 				@													\
@@ -110,11 +90,11 @@
 						x=$$(($$x/$${SIZE[$$j]})); 								\
 					done;												\
-					$(ECHO) $${DATA[*]} > "$(DIR_CFG)/$${NAME}_$${i}.cfg";						\
+					$(ECHO) $${DATA[*]} > "$(DIR_CFG_GEN)/$${NAME}_$${i}.cfg";						\
 					$(ECHO) "  - {$$i} $${DATA[*]}";								\
 				done;
 
-$(DIR_LOG)/%.exec.log		: $(DIR_CFG)/%.cfg $(DIR_BIN)/$(EXEC).x
+$(DIR_LOG)/%.exec.log		: $(DIR_CFG_GEN)/%.cfg $(DIR_BIN)/$(EXEC).x
 				@$(ECHO) "Execute            : $*"
-				@$(EXPORT) SYSTEMC=$(SYSTEMC) ; ./$(DIR_BIN)/$(EXEC).x $(EXEC_PARAMS) $* `$(CAT) $<` > $@
+				@$(EXPORT) SYSTEMC=$(SYSTEMC_$(SIMULATOR)) ; ./$(DIR_BIN)/$(EXEC).x $(EXEC_PARAMS) $* `$(CAT) $<` > $@
 				declare -i count=`$(GREP) -ch "Test KO" $@`;		\
 				if $(TEST) $$count -eq 0;       			\
@@ -125,5 +105,5 @@
 $(DIR_BIN)/%.x			: $(OBJECTS) $(HEADERS) $(DIR_LIB)
 				@$(ECHO) "Linkage            : $*"
-				@$(CXX) $(LXX_OPT) -o $@ $(OBJECTS) $(LIBS)
+				$(CXX) $(LFLAGS) -o $@ $(OBJECTS) $(LIBS)
 
 $(DIR_BIN)			:
@@ -135,9 +115,13 @@
 				@$(MKDIR) $@
 
+$(DIR_CFG_GEN)			:
+				@$(ECHO) "Create directory   : $@"
+				@$(MKDIR) $@
+
 selftest_clean_all		: library_clean config_clean
 				
 selftest_clean			: 
 				@$(RM) 	$(DIR_LOG)		\
-					$(DIR_CFG)/*~		\
+					$(DIR_CFG_USER)/*~	\
 					*.vhdl			\
 					*.stat			\
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Synthesis
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Synthesis	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Synthesis	(revision 15)
@@ -16,29 +16,26 @@
 FPGA_CFG_FILE_GLOBAL   		= configure.mkf 
 
-#-----[ Tools ]--------------------------------------------
-VLIB				= vlib
-VCOM				= vcom
-VSIM				= vsim -c -do "run -all; quit"
-
-ENV_XILINX			= source $(TOOLS)/xilinx/settings.sh
-
 #-----[ Rules ]--------------------------------------------
 .PRECIOUS			: $(DIR_LOG)/%.vhdl.log $(DIR_LOG)/%.vhdl_sim.log
 
 vhdl				: execute $(DIR_WORK)
-				@declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Pack.vhdl));						\
+				@													\
+				declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Pack.vhdl));						\
 				declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});						\
-				$(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
-				@declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));					\
+				if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi		
+				@													\
+				declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));					\
 				declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});						\
-				$(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
-				@declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*.vhdl|$(GREP_NOT) "(_Pack\.|_Testbench\.)"));		\
+				if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi		
+				@													\
+				declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*.vhdl|$(GREP_NOT) "(_Pack\.|_Testbench\.)"));		\
 				declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});						\
-				$(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
+				if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi		
 
 vhdl_sim			: vhdl
-				@declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));					\
+				@													\
+				declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));						\
 				declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl_sim.log});						\
-				$(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
+				if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi
 
 fpga				: vhdl_sim
@@ -52,18 +49,18 @@
 					$(ECHO) -e ""                                     >> $(FPGA_CFG_FILE_LOCAL);			\
 				done
-				@($(ENV_XILINX); $(CD) $(FPGA_CFG_FILE_GLOBAL_DIR); ./$(FPGA_CFG_FILE_GLOBAL))	
+				@($(XILINX_ENV); $(CD) $(FPGA_CFG_FILE_GLOBAL_DIR); ./$(FPGA_CFG_FILE_GLOBAL))	
 				@$(MAKE) $(patsubst $(DIR_CFG)/%.cfg,$(DIR_LOG)/%.fpga.log,$(wildcard $(DIR_CFG)/*.cfg))
 
 $(DIR_LOG)/%.fpga.log     	: 
 				@$(ECHO) "Synthetis on FPGA  : $*"
-				@$(ENV_XILINX); $(MAKE) -f Makefile.mkf $*.ngc > $@
+				@$(XILINX_ENV); $(MAKE) -f Makefile.mkf $*.ngc > $@
 
 $(DIR_WORK)			:
 				@$(ECHO) "Create work-space  : $@"
-				@$(VLIB) $@
+				@$(MODELTECH_VLIB) $@
 
 $(DIR_LOG)/%.vhdl_sim.log	: $(DIR_VHDL)/%.vhdl $(DIR_LOG)/%.vhdl.log
 				@$(ECHO) "VHDL's Simulation: $*"
-				@$(VSIM) "$(DIR_WORK).`$(BASENAME) $* |$(UPPERtoLOWER)`" > $@
+				@$(MODELTECH_VSIM) "$(DIR_WORK).`$(BASENAME) $* |$(UPPERtoLOWER)`" > $@
 				declare -i count=`$(GREP) -ch "Test KO" $@`;		\
 				if $(TEST) $$count -eq 0;       			\
@@ -74,5 +71,5 @@
 $(DIR_LOG)/%.vhdl.log		: $(DIR_VHDL)/%.vhdl
 				@$(ECHO) "VHDL's Compilation : $*"
-				@$(VCOM) $< > $@
+				@$(MODELTECH_VCOM) $< > $@
 
 synthesis_clean			:
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.defs	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.defs	(revision 15)
@@ -15,11 +15,11 @@
 
 #-----[ Flags ]--------------------------------------------
-FLAGS				=	-DSYSTEMC		\
+FLAGS				=	-DVHDL			\
+ 					-DVHDL_TESTBENCH	\
+					-DSYSTEMC		\
+					-DSTATISTICS 		\
 					-DCONFIGURATION		\
-					-DSTATISTICS 		\
-					-DVHDL			\
-					-DVHDL_TESTBENCH
-# 					-DDEBUG=DEBUG_TRACE
-
+					-DDEBUG=DEBUG_ALL    
+					
 # Flags :
 # DEBUG={level}                 - Print Debug Message
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf	(revision 15)
@@ -3,45 +3,20 @@
 #
 
-all: _Generic/Counter/SelfTest _Generic/RegisterFile/SelfTest _Generic/Shifter/SelfTest _Generic/Select/Pseudo_LRU/SelfTest _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest
-
-_Generic/Counter/SelfTest:
-	gmake all -C Generic/Counter/SelfTest
+all: _Generic/RegisterFile/SelfTest _Generic/Select/Priority_Fixed/SelfTest
 
 _Generic/RegisterFile/SelfTest:
 	gmake all -C Generic/RegisterFile/SelfTest
 
-_Generic/Shifter/SelfTest:
-	gmake all -C Generic/Shifter/SelfTest
-
-_Generic/Select/Pseudo_LRU/SelfTest:
-	gmake all -C Generic/Select/Pseudo_LRU/SelfTest
-
-_Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest:
-	gmake all -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest
-
-_Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest:
-	gmake all -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest
-
-_Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest:
-	gmake all -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest
+_Generic/Select/Priority_Fixed/SelfTest:
+	gmake all -C Generic/Select/Priority_Fixed/SelfTest
 
 clean:
-	gmake clean -C Generic/Counter/SelfTest
 	gmake clean -C Generic/RegisterFile/SelfTest
-	gmake clean -C Generic/Shifter/SelfTest
-	gmake clean -C Generic/Select/Pseudo_LRU/SelfTest
-	gmake clean -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest
-	gmake clean -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest
-	gmake clean -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest
+	gmake clean -C Generic/Select/Priority_Fixed/SelfTest
 
 re: clean all
 
 install:
-	gmake install -C Generic/Counter/SelfTest
 	gmake install -C Generic/RegisterFile/SelfTest
-	gmake install -C Generic/Shifter/SelfTest
-	gmake install -C Generic/Select/Pseudo_LRU/SelfTest
-	gmake install -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest
-	gmake install -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest
-	gmake install -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest
+	gmake install -C Generic/Select/Priority_Fixed/SelfTest
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component.sh
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component.sh	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component.sh	(revision 15)
@@ -5,4 +5,5 @@
 SOURCE_FILE="New_Component";
 SOURCE_DIR="./$SOURCE_FILE";
+TMP_DIR="/tmp/$SOURCE_FILE"
 
 #-----[ usage ]------------------------------------------------------
@@ -34,4 +35,9 @@
     fi;
 
+    if test   -d $TMP_DIR; then
+	echo "Temporary directory \"$TMP_DIR\" exist already";
+	usage;
+    fi;
+
     if test -f $SED_SCRIPT; then
 	echo "File \"$SED_SCRIPT\" exist"; 
@@ -239,13 +245,15 @@
 function translation_directory_rec
 {
-    # recursion
-    for ENTRY in $1/*; do
-
-	if test -d $ENTRY; then
-	    translation_directory_rec $ENTRY;
-	else
-	    translation_file          $ENTRY
-	fi;
-    done;
+    if test `ls $1|grep -c ""` -ne 0; then
+	# recursion
+	for ENTRY in $1/*; do
+	
+		if test -d $ENTRY; then
+		    translation_directory_rec $ENTRY;
+		else
+		    translation_file          $ENTRY
+		fi;
+	done;
+     fi;
 }
 
@@ -280,6 +288,10 @@
     
     #Copy
-    cp -r $SOURCE_DIR/* $1/$2/;
-    
+    cp -r $SOURCE_DIR $TMP_DIR;
+    find  $TMP_DIR   -iname ".svn" -type d -exec rm -fr '{}' \; &> /dev/null
+    mv    $TMP_DIR/* $1/$2;
+    rmdir $TMP_DIR
+    
+
     #translation
     rename_directory      "$1/$2" $SOURCE_FILE $2;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp	(revision 15)
@@ -10,10 +10,15 @@
 #define NB_PARAMS 0
 
-void usage (string exec)
+void usage (int argc, char * argv[])
 {
-  cerr << "<Usage> " << exec << " name_instance list_params" << endl
-       << "list_params is :" << endl;
+  cerr << "<Usage> " << argv[0] << " name_instance list_params" << endl
+       << "list_params is :" << endl
 //     << " - size_data     (unsigned int)" << endl
 //     << " - nb_port       (unsigned int)" << endl;
+       << "" << endl;
+
+  for (int i=0; i<argc; i++)
+    cerr << argv[i] << " ";
+  cerr << endl;
 
   exit (1);
@@ -26,6 +31,6 @@
 #endif
 {
-  if (argc != 2+NB_PARAMS)
-    usage (argv[0]);
+  if (argc < 2+NB_PARAMS)
+    usage (argc, argv);
 
   const string   name      = argv[1];
@@ -46,5 +51,5 @@
     {
       cout << "<" << name << "> : " <<  error.what ();
-      return;
+      exit (EXIT_FAILURE);
     }
   catch (...)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp	(revision 15)
@@ -9,9 +9,11 @@
 #define NB_ITERATION 1
 
+#define LABEL(str) do {cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; _@COMPONENT->vhdl_testbench_label(str);} while (0)
+
 #include "Behavioural/@DIRECTORY/SelfTest/include/test.h"
 #include "Include/Test.h"
 
 void test (string name,
-	   morpheo::behavioural::@NAMESPACE_USE::Parameters param)
+	   morpheo::behavioural::@NAMESPACE_USE::Parameters _param)
 {
   cout << "<" << name << "> : Simulation SystemC" << endl;
@@ -21,5 +23,5 @@
 					     morpheo::behavioural::Parameters_Statistics(5,50),
 #endif
-					     param);
+					     _param);
   
 #ifdef SYSTEMC
@@ -28,9 +30,10 @@
    *********************************************************************/
   sc_clock                               * CLOCK;
-
+  sc_signal<Tcontrol_t>                  * NRESET;
 
   string rename;
 
   CLOCK                                  = new sc_clock ("clock", 1.0, 0.5);
+  NRESET                                 = new sc_signal<Tcontrol_t> ("NRESET");
   
   /********************************************************
@@ -41,4 +44,8 @@
   
   (*(_@COMPONENT->in_CLOCK))        (*(CLOCK));
+  (*(_@COMPONENT->in_NRESET))       (*(NRESET));
+
+
+  cout << "<" << name << "> Start Simulation ............" << endl;
 
   /********************************************************
@@ -46,5 +53,4 @@
    ********************************************************/
 
-  cout << "<" << name << "> Start Simulation ............" << endl;
   // Initialisation
 
@@ -55,14 +61,11 @@
 
   sc_start(0);
-  _@COMPONENT->vhdl_testbench_label("Initialisation");
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
+  LABEL("Initialisation");
 
-
-  _@COMPONENT->vhdl_testbench_label("Loop of Test");
-  cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl;
+  LABEL("Loop of Test");
 
   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     {
-      _@COMPONENT->vhdl_testbench_label("Iteration "+toString(iteration));
+      LABEL("Iteration "+toString(iteration));
 
       sc_start(1);
@@ -75,4 +78,6 @@
   cout << "<" << name << "> ............ Stop Simulation" << endl;
 
+  delete CLOCK;
+  delete NRESET;
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/VERSION
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/VERSION	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/VERSION	(revision 15)
@@ -1,1 +1,3 @@
-v0.4
+v0.5
+
+0.5 modif vhdl_port et vhdl_testbench_port -> ajout d'une macro
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/New_Component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/New_Component.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/New_Component.h	(revision 15)
@@ -93,6 +93,7 @@
   private : void     deallocation              (void);
 					       
+//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void     transition                (void);
-//public  : void     genMoore                  (void) {/* empty */};
+//#endif
 #endif					       
 #ifdef STATISTICS
@@ -108,5 +109,4 @@
 					       
 #ifdef VHDL_TESTBENCH			       
-  private : void     vhdl_testbench_port       (void);
   private : void     vhdl_testbench_transition (void);
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/Types.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/Types.h	(revision 15)
@@ -1,3 +1,2 @@
-#ifdef SYSTEMC
 #ifndef morpheo_behavioural_@DEFINE_Type_h
 #define morpheo_behavioural_@DEFINE_Type_h
@@ -21,3 +20,2 @@
 
 #endif
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp	(revision 15)
@@ -30,4 +30,6 @@
 
 #ifdef STATISTICS
+    log_printf(INFO,@COMPONENT,"@COMPONENT","Allocation of statistics");
+
     // Allocation of statistics
     _stat = new Statistics (static_cast<string>(_name),
@@ -37,27 +39,36 @@
 
 #ifdef VHDL_TESTBENCH
+    log_printf(INFO,@COMPONENT,"@COMPONENT","Creation of a testbench");
+
     // Creation of a testbench
     //  -> port
     //  -> clock's signals
     _vhdl_testbench = new Vhdl_Testbench (_name);
-    vhdl_testbench_port           ();
-    _vhdl_testbench->set_clock    ("in_CLOCK",true);
 #endif
 
 #ifdef VHDL
     // generate the vhdl
+    log_printf(INFO,@COMPONENT,"@COMPONENT","Generate the vhdl");
+
     vhdl();
 #endif
 
+#ifdef VHDL_TESTBENCH
+    // must be invoke after affect of port
+    _vhdl_testbench->set_clock    ("in_CLOCK",true);
+#endif
+
 #ifdef SYSTEMC
+    log_printf(INFO,@COMPONENT,"@COMPONENT","Allocation");
+
     allocation ();
+
+//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    log_printf(INFO,@COMPONENT,"@COMPONENT","Method - transition");
 
     SC_METHOD (transition);
     dont_initialize ();
     sensitive_pos << *(in_CLOCK);
-
-//     SC_METHOD (genMoore);
-//     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//#endif
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -74,4 +85,6 @@
 
 #ifdef VHDL_TESTBENCH
+    log_printf(INFO,@COMPONENT,"~@COMPONENT","Generate Testbench  file");
+
     // generate the test bench
     _vhdl_testbench->generate_file();
@@ -80,4 +93,6 @@
 
 #ifdef STATISTICS
+    log_printf(INFO,@COMPONENT,"~@COMPONENT","Generate Statistics file");
+
     _stat->generate_file(statistics(0));
     
@@ -86,4 +101,6 @@
 
 #ifdef SYSTEMC
+    log_printf(INFO,@COMPONENT,"~@COMPONENT","Deallocation");
+
     deallocation ();
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_allocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_allocation.cpp	(revision 15)
@@ -19,5 +19,7 @@
     log_printf(FUNC,@COMPONENT,"allocation","Begin");
 
+//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
+//#endif
     in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_deallocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_deallocation.cpp	(revision 15)
@@ -17,5 +17,7 @@
     log_printf(FUNC,@COMPONENT,"deallocation","Begin");
 
+//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     delete in_CLOCK;
+//#endif
     delete in_NRESET;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_transition.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_transition.cpp	(revision 15)
@@ -1,3 +1,4 @@
 #ifdef SYSTEMC
+//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
 /*
  * $Id$
@@ -32,2 +33,3 @@
 }; // end namespace morpheo              
 #endif
+//#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_port.cpp	(revision 15)
@@ -9,4 +9,10 @@
 #include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
 
+#ifdef VHDL_TESTBENCH
+# define VHDL_SET_PORT(name,direction,size) do {vhdl.set_port (name,direction,size); _vhdl_testbench->set_port (name,direction,size);} while(0)
+#else
+# define VHDL_SET_PORT(name,direction,size)     vhdl.set_port (name,direction,size)
+#endif
+
 namespace morpheo                    {
 namespace behavioural {
@@ -18,5 +24,5 @@
 
     vhdl.set_port (" in_CLOCK" , IN, 1);
-    vhdl.set_port (" in_NRESET", IN, 1);
+    VHDL_SET_PORT (" in_NRESET", IN, 1);
 
     log_printf(FUNC,@COMPONENT,"vhdl_port","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_testbench_port.cpp	(revision 14)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#ifdef VHDL_TESTBENCH
-/*
- * $Id$
- *
- * [ Description ]
- * 
- */
-
-#include "Behavioural/@DIRECTORY/include/@COMPONENT.h"
-
-namespace morpheo                    {
-namespace behavioural {
-@NAMESPACE_BEGIN
-
-  void @COMPONENT::vhdl_testbench_port ()
-  {
-    log_printf(FUNC,@COMPONENT,"vhdl_testbench_port","Begin");
-    _vhdl_testbench->set_port (" in_NRESET",IN ,1);
-    log_printf(FUNC,@COMPONENT,"vhdl_testbench_port","End");
-  };
-
-@NAMESPACE_END
-}; // end namespace behavioural
-}; // end namespace morpheo              
-#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters.cpp	(revision 15)
@@ -21,7 +21,7 @@
   Parameters::Parameters (Parameters & param)
   {
-    log_printf(FUNC,@COMPONENT,"Parameters","Begin");
+    log_printf(FUNC,@COMPONENT,"Parameters (copy)","Begin");
     test();
-    log_printf(FUNC,@COMPONENT,"Parameters","End");
+    log_printf(FUNC,@COMPONENT,"Parameters (copy)","End");
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters_print.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters_print.cpp	(revision 15)
@@ -21,10 +21,6 @@
 
     xml.balise_open("@COMPONENT_LOWER");
-//  xml.  singleton_begin("size_data");
-//  xml.    attribut("value",toString(_size_data));
-//  xml.  singleton_end();
-//  xml.  singleton_begin("nb_port  ");
-//  xml.    attribut("value",toString(_nb_port));
-//  xml.  singleton_end();
+//  xml.singleton_begin("size_data"); xml.attribut("value",toString(_size_data)); xml.singleton_end();
+//  xml.singleton_begin("nb_port  "); xml.attribut("value",toString(_nb_port  )); xml.singleton_end();
     xml.balise_close();
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/configuration.cfg	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/configuration.cfg	(revision 15)
@@ -1,4 +1,4 @@
 Meta_Predictor
-0	0	+1	# have_meta_predictor               
+1	1	+1	# have_meta_predictor               
 1	1	+1	# predictor_0_have_bht              
 10	10	+1	# predictor_0_bht_size_shifter      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/src/test.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/src/test.cpp	(revision 15)
@@ -28,4 +28,5 @@
    *********************************************************************/
   sc_clock                         * CLOCK                      ;
+  sc_signal<Tcontrol_t>            * NRESET                     ;
 
     // Interface Predict
@@ -45,6 +46,7 @@
   string rename;
 
-  CLOCK                                  = new sc_clock ("clock", 1.0, 0.5);
-  
+  CLOCK                       = new sc_clock ("clock", 1.0, 0.5);
+  NRESET                      = new sc_signal<Tcontrol_t> ("NRESET");
+
   PREDICT_VAL                 = new sc_signal<Tcontrol_t>     * [_param._nb_prediction     ];
   PREDICT_ACK                 = new sc_signal<Tcontrol_t>     * [_param._nb_prediction     ];
@@ -93,5 +95,6 @@
   cout << "<" << name << "> Instanciation of _Meta_Predictor" << endl;
   
-  (*(_Meta_Predictor->in_CLOCK))        (*(CLOCK));
+  (*(_Meta_Predictor->in_CLOCK ))        (*(CLOCK ));
+  (*(_Meta_Predictor->in_NRESET))        (*(NRESET));
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/Makefile.deps	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/Makefile.deps	(revision 15)
@@ -14,6 +14,6 @@
 include 			$(DIR_MORPHEO)/Behavioural/Generic/Shifter/Makefile.deps
 endif
-ifndef RegisterFile
-include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/Makefile.deps
+ifndef RegisterFile_Monolithic
+include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps
 endif
 
@@ -22,10 +22,10 @@
 #-----[ Library ]------------------------------------------
 Branch_History_Table_LIBRARY		= 	-lBranch_History_Table	\
-						$(RegisterFile_LIBRARY)	\
+						$(RegisterFile_Monolithic_LIBRARY)	\
 						$(Shifter_LIBRARY)	\
 						$(Behavioural_LIBRARY)	
 
 Branch_History_Table_DIR_LIBRARY	=	-L$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/lib	\
-						$(RegisterFile_DIR_LIBRARY)	\
+						$(RegisterFile_Monolithic_DIR_LIBRARY)	\
 						$(Shifter_DIR_LIBRARY)		\
 						$(Behavioural_DIR_LIBRARY)
@@ -36,5 +36,5 @@
 					@$(MAKE) Behavioural_library
 					@$(MAKE) Shifter_library
-					@$(MAKE) RegisterFile_library
+					@$(MAKE) RegisterFile_Monolithic_library
 					@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table --makefile=Makefile 
 
@@ -42,4 +42,4 @@
 					@$(MAKE) Behavioural_library_clean
 					@$(MAKE) Shifter_library_clean
-					@$(MAKE) RegisterFile_library_clean
+					@$(MAKE) RegisterFile_Monolithic_library_clean
 					@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table --makefile=Makefile clean
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/mkf.info	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/mkf.info	(revision 15)
@@ -1,181 +1,0 @@
-
-# Branch_History_Table_0
-target_dep	all	Branch_History_Table_0.ngc
-target_dep	Branch_History_Table_0.ngc	Branch_History_Table_0.prj
-target_dep	Branch_History_Table_0.prj	Branch_History_Table_0_Pack.vhdl Branch_History_Table_0_RegisterFile_Pack.vhdl Branch_History_Table_0_RegisterFile.vhdl Branch_History_Table_0_Shifter_Pack.vhdl Branch_History_Table_0_Shifter.vhdl Branch_History_Table_0.vhdl
-
-# Branch_History_Table_10
-target_dep	all	Branch_History_Table_10.ngc
-target_dep	Branch_History_Table_10.ngc	Branch_History_Table_10.prj
-target_dep	Branch_History_Table_10.prj	Branch_History_Table_10_Pack.vhdl Branch_History_Table_10_RegisterFile_Pack.vhdl Branch_History_Table_10_RegisterFile.vhdl Branch_History_Table_10_Shifter_Pack.vhdl Branch_History_Table_10_Shifter.vhdl Branch_History_Table_10.vhdl
-
-# Branch_History_Table_11
-target_dep	all	Branch_History_Table_11.ngc
-target_dep	Branch_History_Table_11.ngc	Branch_History_Table_11.prj
-target_dep	Branch_History_Table_11.prj	Branch_History_Table_11_Pack.vhdl Branch_History_Table_11_RegisterFile_Pack.vhdl Branch_History_Table_11_RegisterFile.vhdl Branch_History_Table_11_Shifter_Pack.vhdl Branch_History_Table_11_Shifter.vhdl Branch_History_Table_11.vhdl
-
-# Branch_History_Table_12
-target_dep	all	Branch_History_Table_12.ngc
-target_dep	Branch_History_Table_12.ngc	Branch_History_Table_12.prj
-target_dep	Branch_History_Table_12.prj	Branch_History_Table_12_Pack.vhdl Branch_History_Table_12_RegisterFile_Pack.vhdl Branch_History_Table_12_RegisterFile.vhdl Branch_History_Table_12_Shifter_Pack.vhdl Branch_History_Table_12_Shifter.vhdl Branch_History_Table_12.vhdl
-
-# Branch_History_Table_13
-target_dep	all	Branch_History_Table_13.ngc
-target_dep	Branch_History_Table_13.ngc	Branch_History_Table_13.prj
-target_dep	Branch_History_Table_13.prj	Branch_History_Table_13_Pack.vhdl Branch_History_Table_13_RegisterFile_Pack.vhdl Branch_History_Table_13_RegisterFile.vhdl Branch_History_Table_13_Shifter_Pack.vhdl Branch_History_Table_13_Shifter.vhdl Branch_History_Table_13.vhdl
-
-# Branch_History_Table_14
-target_dep	all	Branch_History_Table_14.ngc
-target_dep	Branch_History_Table_14.ngc	Branch_History_Table_14.prj
-target_dep	Branch_History_Table_14.prj	Branch_History_Table_14_Pack.vhdl Branch_History_Table_14_RegisterFile_Pack.vhdl Branch_History_Table_14_RegisterFile.vhdl Branch_History_Table_14_Shifter_Pack.vhdl Branch_History_Table_14_Shifter.vhdl Branch_History_Table_14.vhdl
-
-# Branch_History_Table_15
-target_dep	all	Branch_History_Table_15.ngc
-target_dep	Branch_History_Table_15.ngc	Branch_History_Table_15.prj
-target_dep	Branch_History_Table_15.prj	Branch_History_Table_15_Pack.vhdl Branch_History_Table_15_RegisterFile_Pack.vhdl Branch_History_Table_15_RegisterFile.vhdl Branch_History_Table_15_Shifter_Pack.vhdl Branch_History_Table_15_Shifter.vhdl Branch_History_Table_15.vhdl
-
-# Branch_History_Table_16
-target_dep	all	Branch_History_Table_16.ngc
-target_dep	Branch_History_Table_16.ngc	Branch_History_Table_16.prj
-target_dep	Branch_History_Table_16.prj	Branch_History_Table_16_Pack.vhdl Branch_History_Table_16_RegisterFile_Pack.vhdl Branch_History_Table_16_RegisterFile.vhdl Branch_History_Table_16_Shifter_Pack.vhdl Branch_History_Table_16_Shifter.vhdl Branch_History_Table_16.vhdl
-
-# Branch_History_Table_17
-target_dep	all	Branch_History_Table_17.ngc
-target_dep	Branch_History_Table_17.ngc	Branch_History_Table_17.prj
-target_dep	Branch_History_Table_17.prj	Branch_History_Table_17_Pack.vhdl Branch_History_Table_17_RegisterFile_Pack.vhdl Branch_History_Table_17_RegisterFile.vhdl Branch_History_Table_17_Shifter_Pack.vhdl Branch_History_Table_17_Shifter.vhdl Branch_History_Table_17.vhdl
-
-# Branch_History_Table_18
-target_dep	all	Branch_History_Table_18.ngc
-target_dep	Branch_History_Table_18.ngc	Branch_History_Table_18.prj
-target_dep	Branch_History_Table_18.prj	Branch_History_Table_18_Pack.vhdl Branch_History_Table_18_RegisterFile_Pack.vhdl Branch_History_Table_18_RegisterFile.vhdl Branch_History_Table_18_Shifter_Pack.vhdl Branch_History_Table_18_Shifter.vhdl Branch_History_Table_18.vhdl
-
-# Branch_History_Table_19
-target_dep	all	Branch_History_Table_19.ngc
-target_dep	Branch_History_Table_19.ngc	Branch_History_Table_19.prj
-target_dep	Branch_History_Table_19.prj	Branch_History_Table_19_Pack.vhdl Branch_History_Table_19_RegisterFile_Pack.vhdl Branch_History_Table_19_RegisterFile.vhdl Branch_History_Table_19_Shifter_Pack.vhdl Branch_History_Table_19_Shifter.vhdl Branch_History_Table_19.vhdl
-
-# Branch_History_Table_1
-target_dep	all	Branch_History_Table_1.ngc
-target_dep	Branch_History_Table_1.ngc	Branch_History_Table_1.prj
-target_dep	Branch_History_Table_1.prj	Branch_History_Table_10_Pack.vhdl Branch_History_Table_10_RegisterFile_Pack.vhdl Branch_History_Table_10_RegisterFile.vhdl Branch_History_Table_10_Shifter_Pack.vhdl Branch_History_Table_10_Shifter.vhdl Branch_History_Table_10.vhdl Branch_History_Table_11_Pack.vhdl Branch_History_Table_11_RegisterFile_Pack.vhdl Branch_History_Table_11_RegisterFile.vhdl Branch_History_Table_11_Shifter_Pack.vhdl Branch_History_Table_11_Shifter.vhdl Branch_History_Table_11.vhdl Branch_History_Table_12_Pack.vhdl Branch_History_Table_12_RegisterFile_Pack.vhdl Branch_History_Table_12_RegisterFile.vhdl Branch_History_Table_12_Shifter_Pack.vhdl Branch_History_Table_12_Shifter.vhdl Branch_History_Table_12.vhdl Branch_History_Table_13_Pack.vhdl Branch_History_Table_13_RegisterFile_Pack.vhdl Branch_History_Table_13_RegisterFile.vhdl Branch_History_Table_13_Shifter_Pack.vhdl Branch_History_Table_13_Shifter.vhdl Branch_History_Table_13.vhdl Branch_History_Table_14_Pack.vhdl Branch_History_Table_14_RegisterFile_Pack.vhdl Branch_History_Table_14_RegisterFile.vhdl Branch_History_Table_14_Shifter_Pack.vhdl Branch_History_Table_14_Shifter.vhdl Branch_History_Table_14.vhdl Branch_History_Table_15_Pack.vhdl Branch_History_Table_15_RegisterFile_Pack.vhdl Branch_History_Table_15_RegisterFile.vhdl Branch_History_Table_15_Shifter_Pack.vhdl Branch_History_Table_15_Shifter.vhdl Branch_History_Table_15.vhdl Branch_History_Table_16_Pack.vhdl Branch_History_Table_16_RegisterFile_Pack.vhdl Branch_History_Table_16_RegisterFile.vhdl Branch_History_Table_16_Shifter_Pack.vhdl Branch_History_Table_16_Shifter.vhdl Branch_History_Table_16.vhdl Branch_History_Table_17_Pack.vhdl Branch_History_Table_17_RegisterFile_Pack.vhdl Branch_History_Table_17_RegisterFile.vhdl Branch_History_Table_17_Shifter_Pack.vhdl Branch_History_Table_17_Shifter.vhdl Branch_History_Table_17.vhdl Branch_History_Table_18_Pack.vhdl Branch_History_Table_18_RegisterFile_Pack.vhdl Branch_History_Table_18_RegisterFile.vhdl Branch_History_Table_18_Shifter_Pack.vhdl Branch_History_Table_18_Shifter.vhdl Branch_History_Table_18.vhdl Branch_History_Table_19_Pack.vhdl Branch_History_Table_19_RegisterFile_Pack.vhdl Branch_History_Table_19_RegisterFile.vhdl Branch_History_Table_19_Shifter_Pack.vhdl Branch_History_Table_19_Shifter.vhdl Branch_History_Table_19.vhdl Branch_History_Table_1_Pack.vhdl Branch_History_Table_1_RegisterFile_Pack.vhdl Branch_History_Table_1_RegisterFile.vhdl Branch_History_Table_1_Shifter_Pack.vhdl Branch_History_Table_1_Shifter.vhdl Branch_History_Table_1.vhdl
-
-# Branch_History_Table_20
-target_dep	all	Branch_History_Table_20.ngc
-target_dep	Branch_History_Table_20.ngc	Branch_History_Table_20.prj
-target_dep	Branch_History_Table_20.prj	Branch_History_Table_20_Pack.vhdl Branch_History_Table_20_RegisterFile_Pack.vhdl Branch_History_Table_20_RegisterFile.vhdl Branch_History_Table_20_Shifter_Pack.vhdl Branch_History_Table_20_Shifter.vhdl Branch_History_Table_20.vhdl
-
-# Branch_History_Table_21
-target_dep	all	Branch_History_Table_21.ngc
-target_dep	Branch_History_Table_21.ngc	Branch_History_Table_21.prj
-target_dep	Branch_History_Table_21.prj	Branch_History_Table_21_Pack.vhdl Branch_History_Table_21_RegisterFile_Pack.vhdl Branch_History_Table_21_RegisterFile.vhdl Branch_History_Table_21_Shifter_Pack.vhdl Branch_History_Table_21_Shifter.vhdl Branch_History_Table_21.vhdl
-
-# Branch_History_Table_22
-target_dep	all	Branch_History_Table_22.ngc
-target_dep	Branch_History_Table_22.ngc	Branch_History_Table_22.prj
-target_dep	Branch_History_Table_22.prj	Branch_History_Table_22_Pack.vhdl Branch_History_Table_22_RegisterFile_Pack.vhdl Branch_History_Table_22_RegisterFile.vhdl Branch_History_Table_22_Shifter_Pack.vhdl Branch_History_Table_22_Shifter.vhdl Branch_History_Table_22.vhdl
-
-# Branch_History_Table_23
-target_dep	all	Branch_History_Table_23.ngc
-target_dep	Branch_History_Table_23.ngc	Branch_History_Table_23.prj
-target_dep	Branch_History_Table_23.prj	Branch_History_Table_23_Pack.vhdl Branch_History_Table_23_RegisterFile_Pack.vhdl Branch_History_Table_23_RegisterFile.vhdl Branch_History_Table_23_Shifter_Pack.vhdl Branch_History_Table_23_Shifter.vhdl Branch_History_Table_23.vhdl
-
-# Branch_History_Table_24
-target_dep	all	Branch_History_Table_24.ngc
-target_dep	Branch_History_Table_24.ngc	Branch_History_Table_24.prj
-target_dep	Branch_History_Table_24.prj	Branch_History_Table_24_Pack.vhdl Branch_History_Table_24_RegisterFile_Pack.vhdl Branch_History_Table_24_RegisterFile.vhdl Branch_History_Table_24_Shifter_Pack.vhdl Branch_History_Table_24_Shifter.vhdl Branch_History_Table_24.vhdl
-
-# Branch_History_Table_25
-target_dep	all	Branch_History_Table_25.ngc
-target_dep	Branch_History_Table_25.ngc	Branch_History_Table_25.prj
-target_dep	Branch_History_Table_25.prj	Branch_History_Table_25_Pack.vhdl Branch_History_Table_25_RegisterFile_Pack.vhdl Branch_History_Table_25_RegisterFile.vhdl Branch_History_Table_25_Shifter_Pack.vhdl Branch_History_Table_25_Shifter.vhdl Branch_History_Table_25.vhdl
-
-# Branch_History_Table_26
-target_dep	all	Branch_History_Table_26.ngc
-target_dep	Branch_History_Table_26.ngc	Branch_History_Table_26.prj
-target_dep	Branch_History_Table_26.prj	Branch_History_Table_26_Pack.vhdl Branch_History_Table_26_RegisterFile_Pack.vhdl Branch_History_Table_26_RegisterFile.vhdl Branch_History_Table_26_Shifter_Pack.vhdl Branch_History_Table_26_Shifter.vhdl Branch_History_Table_26.vhdl
-
-# Branch_History_Table_27
-target_dep	all	Branch_History_Table_27.ngc
-target_dep	Branch_History_Table_27.ngc	Branch_History_Table_27.prj
-target_dep	Branch_History_Table_27.prj	Branch_History_Table_27_Pack.vhdl Branch_History_Table_27_RegisterFile_Pack.vhdl Branch_History_Table_27_RegisterFile.vhdl Branch_History_Table_27_Shifter_Pack.vhdl Branch_History_Table_27_Shifter.vhdl Branch_History_Table_27.vhdl
-
-# Branch_History_Table_28
-target_dep	all	Branch_History_Table_28.ngc
-target_dep	Branch_History_Table_28.ngc	Branch_History_Table_28.prj
-target_dep	Branch_History_Table_28.prj	Branch_History_Table_28_Pack.vhdl Branch_History_Table_28_RegisterFile_Pack.vhdl Branch_History_Table_28_RegisterFile.vhdl Branch_History_Table_28_Shifter_Pack.vhdl Branch_History_Table_28_Shifter.vhdl Branch_History_Table_28.vhdl
-
-# Branch_History_Table_29
-target_dep	all	Branch_History_Table_29.ngc
-target_dep	Branch_History_Table_29.ngc	Branch_History_Table_29.prj
-target_dep	Branch_History_Table_29.prj	Branch_History_Table_29_Pack.vhdl Branch_History_Table_29_RegisterFile_Pack.vhdl Branch_History_Table_29_RegisterFile.vhdl Branch_History_Table_29_Shifter_Pack.vhdl Branch_History_Table_29_Shifter.vhdl Branch_History_Table_29.vhdl
-
-# Branch_History_Table_2
-target_dep	all	Branch_History_Table_2.ngc
-target_dep	Branch_History_Table_2.ngc	Branch_History_Table_2.prj
-target_dep	Branch_History_Table_2.prj	Branch_History_Table_20_Pack.vhdl Branch_History_Table_20_RegisterFile_Pack.vhdl Branch_History_Table_20_RegisterFile.vhdl Branch_History_Table_20_Shifter_Pack.vhdl Branch_History_Table_20_Shifter.vhdl Branch_History_Table_20.vhdl Branch_History_Table_21_Pack.vhdl Branch_History_Table_21_RegisterFile_Pack.vhdl Branch_History_Table_21_RegisterFile.vhdl Branch_History_Table_21_Shifter_Pack.vhdl Branch_History_Table_21_Shifter.vhdl Branch_History_Table_21.vhdl Branch_History_Table_22_Pack.vhdl Branch_History_Table_22_RegisterFile_Pack.vhdl Branch_History_Table_22_RegisterFile.vhdl Branch_History_Table_22_Shifter_Pack.vhdl Branch_History_Table_22_Shifter.vhdl Branch_History_Table_22.vhdl Branch_History_Table_23_Pack.vhdl Branch_History_Table_23_RegisterFile_Pack.vhdl Branch_History_Table_23_RegisterFile.vhdl Branch_History_Table_23_Shifter_Pack.vhdl Branch_History_Table_23_Shifter.vhdl Branch_History_Table_23.vhdl Branch_History_Table_24_Pack.vhdl Branch_History_Table_24_RegisterFile_Pack.vhdl Branch_History_Table_24_RegisterFile.vhdl Branch_History_Table_24_Shifter_Pack.vhdl Branch_History_Table_24_Shifter.vhdl Branch_History_Table_24.vhdl Branch_History_Table_25_Pack.vhdl Branch_History_Table_25_RegisterFile_Pack.vhdl Branch_History_Table_25_RegisterFile.vhdl Branch_History_Table_25_Shifter_Pack.vhdl Branch_History_Table_25_Shifter.vhdl Branch_History_Table_25.vhdl Branch_History_Table_26_Pack.vhdl Branch_History_Table_26_RegisterFile_Pack.vhdl Branch_History_Table_26_RegisterFile.vhdl Branch_History_Table_26_Shifter_Pack.vhdl Branch_History_Table_26_Shifter.vhdl Branch_History_Table_26.vhdl Branch_History_Table_27_Pack.vhdl Branch_History_Table_27_RegisterFile_Pack.vhdl Branch_History_Table_27_RegisterFile.vhdl Branch_History_Table_27_Shifter_Pack.vhdl Branch_History_Table_27_Shifter.vhdl Branch_History_Table_27.vhdl Branch_History_Table_28_Pack.vhdl Branch_History_Table_28_RegisterFile_Pack.vhdl Branch_History_Table_28_RegisterFile.vhdl Branch_History_Table_28_Shifter_Pack.vhdl Branch_History_Table_28_Shifter.vhdl Branch_History_Table_28.vhdl Branch_History_Table_29_Pack.vhdl Branch_History_Table_29_RegisterFile_Pack.vhdl Branch_History_Table_29_RegisterFile.vhdl Branch_History_Table_29_Shifter_Pack.vhdl Branch_History_Table_29_Shifter.vhdl Branch_History_Table_29.vhdl Branch_History_Table_2_Pack.vhdl Branch_History_Table_2_RegisterFile_Pack.vhdl Branch_History_Table_2_RegisterFile.vhdl Branch_History_Table_2_Shifter_Pack.vhdl Branch_History_Table_2_Shifter.vhdl Branch_History_Table_2.vhdl
-
-# Branch_History_Table_30
-target_dep	all	Branch_History_Table_30.ngc
-target_dep	Branch_History_Table_30.ngc	Branch_History_Table_30.prj
-target_dep	Branch_History_Table_30.prj	Branch_History_Table_30_Pack.vhdl Branch_History_Table_30_RegisterFile_Pack.vhdl Branch_History_Table_30_RegisterFile.vhdl Branch_History_Table_30_Shifter_Pack.vhdl Branch_History_Table_30_Shifter.vhdl Branch_History_Table_30.vhdl
-
-# Branch_History_Table_31
-target_dep	all	Branch_History_Table_31.ngc
-target_dep	Branch_History_Table_31.ngc	Branch_History_Table_31.prj
-target_dep	Branch_History_Table_31.prj	Branch_History_Table_31_Pack.vhdl Branch_History_Table_31_RegisterFile_Pack.vhdl Branch_History_Table_31_RegisterFile.vhdl Branch_History_Table_31_Shifter_Pack.vhdl Branch_History_Table_31_Shifter.vhdl Branch_History_Table_31.vhdl
-
-# Branch_History_Table_32
-target_dep	all	Branch_History_Table_32.ngc
-target_dep	Branch_History_Table_32.ngc	Branch_History_Table_32.prj
-target_dep	Branch_History_Table_32.prj	Branch_History_Table_32_Pack.vhdl Branch_History_Table_32_RegisterFile_Pack.vhdl Branch_History_Table_32_RegisterFile.vhdl Branch_History_Table_32_Shifter_Pack.vhdl Branch_History_Table_32_Shifter.vhdl Branch_History_Table_32.vhdl
-
-# Branch_History_Table_33
-target_dep	all	Branch_History_Table_33.ngc
-target_dep	Branch_History_Table_33.ngc	Branch_History_Table_33.prj
-target_dep	Branch_History_Table_33.prj	Branch_History_Table_33_Pack.vhdl Branch_History_Table_33_RegisterFile_Pack.vhdl Branch_History_Table_33_RegisterFile.vhdl Branch_History_Table_33_Shifter_Pack.vhdl Branch_History_Table_33_Shifter.vhdl Branch_History_Table_33.vhdl
-
-# Branch_History_Table_34
-target_dep	all	Branch_History_Table_34.ngc
-target_dep	Branch_History_Table_34.ngc	Branch_History_Table_34.prj
-target_dep	Branch_History_Table_34.prj	Branch_History_Table_34_Pack.vhdl Branch_History_Table_34_RegisterFile_Pack.vhdl Branch_History_Table_34_RegisterFile.vhdl Branch_History_Table_34_Shifter_Pack.vhdl Branch_History_Table_34_Shifter.vhdl Branch_History_Table_34.vhdl
-
-# Branch_History_Table_35
-target_dep	all	Branch_History_Table_35.ngc
-target_dep	Branch_History_Table_35.ngc	Branch_History_Table_35.prj
-target_dep	Branch_History_Table_35.prj	Branch_History_Table_35_Pack.vhdl Branch_History_Table_35_RegisterFile_Pack.vhdl Branch_History_Table_35_RegisterFile.vhdl Branch_History_Table_35_Shifter_Pack.vhdl Branch_History_Table_35_Shifter.vhdl Branch_History_Table_35.vhdl
-
-# Branch_History_Table_3
-target_dep	all	Branch_History_Table_3.ngc
-target_dep	Branch_History_Table_3.ngc	Branch_History_Table_3.prj
-target_dep	Branch_History_Table_3.prj	Branch_History_Table_30_Pack.vhdl Branch_History_Table_30_RegisterFile_Pack.vhdl Branch_History_Table_30_RegisterFile.vhdl Branch_History_Table_30_Shifter_Pack.vhdl Branch_History_Table_30_Shifter.vhdl Branch_History_Table_30.vhdl Branch_History_Table_31_Pack.vhdl Branch_History_Table_31_RegisterFile_Pack.vhdl Branch_History_Table_31_RegisterFile.vhdl Branch_History_Table_31_Shifter_Pack.vhdl Branch_History_Table_31_Shifter.vhdl Branch_History_Table_31.vhdl Branch_History_Table_32_Pack.vhdl Branch_History_Table_32_RegisterFile_Pack.vhdl Branch_History_Table_32_RegisterFile.vhdl Branch_History_Table_32_Shifter_Pack.vhdl Branch_History_Table_32_Shifter.vhdl Branch_History_Table_32.vhdl Branch_History_Table_33_Pack.vhdl Branch_History_Table_33_RegisterFile_Pack.vhdl Branch_History_Table_33_RegisterFile.vhdl Branch_History_Table_33_Shifter_Pack.vhdl Branch_History_Table_33_Shifter.vhdl Branch_History_Table_33.vhdl Branch_History_Table_34_Pack.vhdl Branch_History_Table_34_RegisterFile_Pack.vhdl Branch_History_Table_34_RegisterFile.vhdl Branch_History_Table_34_Shifter_Pack.vhdl Branch_History_Table_34_Shifter.vhdl Branch_History_Table_34.vhdl Branch_History_Table_35_Pack.vhdl Branch_History_Table_35_RegisterFile_Pack.vhdl Branch_History_Table_35_RegisterFile.vhdl Branch_History_Table_35_Shifter_Pack.vhdl Branch_History_Table_35_Shifter.vhdl Branch_History_Table_35.vhdl Branch_History_Table_3_Pack.vhdl Branch_History_Table_3_RegisterFile_Pack.vhdl Branch_History_Table_3_RegisterFile.vhdl Branch_History_Table_3_Shifter_Pack.vhdl Branch_History_Table_3_Shifter.vhdl Branch_History_Table_3.vhdl
-
-# Branch_History_Table_4
-target_dep	all	Branch_History_Table_4.ngc
-target_dep	Branch_History_Table_4.ngc	Branch_History_Table_4.prj
-target_dep	Branch_History_Table_4.prj	Branch_History_Table_4_Pack.vhdl Branch_History_Table_4_RegisterFile_Pack.vhdl Branch_History_Table_4_RegisterFile.vhdl Branch_History_Table_4_Shifter_Pack.vhdl Branch_History_Table_4_Shifter.vhdl Branch_History_Table_4.vhdl
-
-# Branch_History_Table_5
-target_dep	all	Branch_History_Table_5.ngc
-target_dep	Branch_History_Table_5.ngc	Branch_History_Table_5.prj
-target_dep	Branch_History_Table_5.prj	Branch_History_Table_5_Pack.vhdl Branch_History_Table_5_RegisterFile_Pack.vhdl Branch_History_Table_5_RegisterFile.vhdl Branch_History_Table_5_Shifter_Pack.vhdl Branch_History_Table_5_Shifter.vhdl Branch_History_Table_5.vhdl
-
-# Branch_History_Table_6
-target_dep	all	Branch_History_Table_6.ngc
-target_dep	Branch_History_Table_6.ngc	Branch_History_Table_6.prj
-target_dep	Branch_History_Table_6.prj	Branch_History_Table_6_Pack.vhdl Branch_History_Table_6_RegisterFile_Pack.vhdl Branch_History_Table_6_RegisterFile.vhdl Branch_History_Table_6_Shifter_Pack.vhdl Branch_History_Table_6_Shifter.vhdl Branch_History_Table_6.vhdl
-
-# Branch_History_Table_7
-target_dep	all	Branch_History_Table_7.ngc
-target_dep	Branch_History_Table_7.ngc	Branch_History_Table_7.prj
-target_dep	Branch_History_Table_7.prj	Branch_History_Table_7_Pack.vhdl Branch_History_Table_7_RegisterFile_Pack.vhdl Branch_History_Table_7_RegisterFile.vhdl Branch_History_Table_7_Shifter_Pack.vhdl Branch_History_Table_7_Shifter.vhdl Branch_History_Table_7.vhdl
-
-# Branch_History_Table_8
-target_dep	all	Branch_History_Table_8.ngc
-target_dep	Branch_History_Table_8.ngc	Branch_History_Table_8.prj
-target_dep	Branch_History_Table_8.prj	Branch_History_Table_8_Pack.vhdl Branch_History_Table_8_RegisterFile_Pack.vhdl Branch_History_Table_8_RegisterFile.vhdl Branch_History_Table_8_Shifter_Pack.vhdl Branch_History_Table_8_Shifter.vhdl Branch_History_Table_8.vhdl
-
-# Branch_History_Table_9
-target_dep	all	Branch_History_Table_9.ngc
-target_dep	Branch_History_Table_9.ngc	Branch_History_Table_9.prj
-target_dep	Branch_History_Table_9.prj	Branch_History_Table_9_Pack.vhdl Branch_History_Table_9_RegisterFile_Pack.vhdl Branch_History_Table_9_RegisterFile.vhdl Branch_History_Table_9_Shifter_Pack.vhdl Branch_History_Table_9_Shifter.vhdl Branch_History_Table_9.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/src/test.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/src/test.cpp	(revision 15)
@@ -46,4 +46,5 @@
    *********************************************************************/
   sc_clock                                 CLOCK ("clock", 1.0, 0.5);
+  sc_signal<Tcontrol_t>                    NRESET;
   sc_signal<Tcontrol_t>                    PREDICT_VAL               [param._nb_prediction];
   sc_signal<Tcontrol_t>                    PREDICT_ACK               [param._nb_prediction];
@@ -64,4 +65,5 @@
   
   (*(_Branch_History_Table->in_CLOCK))        (CLOCK);
+  (*(_Branch_History_Table->in_NRESET))       (NRESET);
 
   for (uint32_t i=0; i<param._nb_prediction; i++)
@@ -97,4 +99,5 @@
   cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
 
+  NRESET.write(1);
   for (uint32_t i=0; i<param._nb_prediction; i++)
     PREDICT_VAL         [i].write(0);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Branch_History_Table.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Branch_History_Table.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Branch_History_Table.h	(revision 15)
@@ -18,6 +18,5 @@
 // Internal structure
 #include "Behavioural/Generic/Shifter/include/Shifter.h"
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
-
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h"
 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Types.h"
@@ -68,4 +67,5 @@
     // Interface
   public    : SC_CLOCK                      *  in_CLOCK                  ;
+  public    : SC_IN (Tcontrol_t)            *  in_NRESET                 ;
  
   public    : SC_IN (Tcontrol_t)           **  in_PREDICT_VAL            ;
@@ -88,5 +88,5 @@
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
   public    : morpheo::behavioural::generic::shifter::Shifter           * component_Shifter     ;
-  public    : morpheo::behavioural::generic::registerfile::RegisterFile * component_RegisterFile;
+  public    : morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic * component_RegisterFile;
 
     // -----[ methods ]---------------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h	(revision 15)
@@ -13,5 +13,5 @@
 // Internal structure
 #include "Behavioural/Generic/Shifter/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
 #include <math.h>
 
@@ -34,5 +34,5 @@
 
   public :       morpheo::behavioural::generic::shifter::Parameters      * _param_shifter;
-  public :       morpheo::behavioural::generic::registerfile::Parameters * _param_registerfile;
+  public :       morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters * _param_registerfile;
 
     //-----[ methods ]-----------------------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Statistics.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Statistics.h	(revision 15)
@@ -14,5 +14,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 #include "Behavioural/Generic/Shifter/include/Statistics.h"
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
 //#include "Behavioural/Generic/Group/include/Statistics.h"
 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h"
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table.cpp	(revision 15)
@@ -56,9 +56,9 @@
     allocation ();
 
-    // Constant
-    for (uint32_t i=0; i<_param._nb_prediction     ; i++)
-      PORT_WRITE(out_PREDICT_ACK         [i],1);
-    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
-      PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1);
+//     // Constant
+//     for (uint32_t i=0; i<_param._nb_prediction     ; i++)
+//       PORT_WRITE(out_PREDICT_ACK         [i],1);
+//     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
+//       PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1);
 
 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_allocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_allocation.cpp	(revision 15)
@@ -23,4 +23,5 @@
 
      in_CLOCK           = new SC_CLOCK           ("in_CLOCK");
+     in_NRESET          = new SC_IN (Tcontrol_t) ("in_NRESET");
 
      in_PREDICT_VAL     = new SC_IN (Tcontrol_t) * [_param._nb_prediction];
@@ -102,5 +103,5 @@
     name_component = _name+"_RegisterFile";
     
-    component_RegisterFile = new morpheo::behavioural::generic::registerfile::RegisterFile (name_component.c_str(),
+    component_RegisterFile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic(name_component.c_str(),
 #ifdef STATISTICS
 											    _param_statistics            ,
@@ -109,9 +110,11 @@
      
     // Instantiation
-    (*(component_RegisterFile->in_CLOCK))        (*(in_CLOCK));
+    (*(component_RegisterFile->in_CLOCK ))       (*(in_CLOCK ));
+    (*(component_RegisterFile->in_NRESET))       (*(in_NRESET));
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
       {
-	(*(component_RegisterFile-> in_READ_ENABLE   [i])) (*( in_PREDICT_VAL      [i]));
+	(*(component_RegisterFile-> in_READ_VAL      [i])) (*( in_PREDICT_VAL      [i]));
+	(*(component_RegisterFile->out_READ_ACK      [i])) (*(out_PREDICT_ACK      [i]));
 	(*(component_RegisterFile-> in_READ_ADDRESS  [i])) (*( in_PREDICT_ADDRESS  [i]));
 	(*(component_RegisterFile->out_READ_DATA     [i])) (*(out_PREDICT_HISTORY  [i]));    
@@ -120,5 +123,6 @@
     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
       {
-	(*(component_RegisterFile-> in_WRITE_ENABLE  [i])) (*(    in_BRANCH_COMPLETE_VAL      [i]));
+	(*(component_RegisterFile-> in_WRITE_VAL     [i])) (*(    in_BRANCH_COMPLETE_VAL      [i]));
+	(*(component_RegisterFile->out_WRITE_ACK     [i])) (*(   out_BRANCH_COMPLETE_ACK      [i]));
 	(*(component_RegisterFile-> in_WRITE_ADDRESS [i])) (*(    in_BRANCH_COMPLETE_ADDRESS  [i]));
 	(*(component_RegisterFile-> in_WRITE_DATA    [i])) (*(signal_BRANCH_COMPLETE_HISTORY  [i]));    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_deallocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_deallocation.cpp	(revision 15)
@@ -20,4 +20,5 @@
   {
     delete in_CLOCK;
+    delete in_NRESET;
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_body.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_body.cpp	(revision 15)
@@ -20,10 +20,10 @@
   void Branch_History_Table::vhdl_body (Vhdl & vhdl)
   {
-    vhdl.set_body ("-- Output : always at '1'");
-    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
-      vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';");
-    for (uint32_t i=0; i<_param._nb_prediction     ; i++)
-      vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+"         <= '1';");
-    vhdl.set_body ("");
+//     vhdl.set_body ("-- Output : always at '1'");
+//     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
+//       vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';");
+//     for (uint32_t i=0; i<_param._nb_prediction     ; i++)
+//       vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+"         <= '1';");
+//     vhdl.set_body ("");
 
     list<string> list_port_map;
@@ -40,7 +40,10 @@
     list_port_map.clear();
     vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+    vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
+
     for (uint32_t i=0; i<_param._nb_prediction; i++)
       {
-	vhdl.set_body_component_port_map (list_port_map," in_READ_ENABLE_"+toString(i)+"  "," in_PREDICT_VAL_"+toString(i));
+	vhdl.set_body_component_port_map (list_port_map," in_READ_VAL_"+toString(i)+"     "," in_PREDICT_VAL_"+toString(i));
+	vhdl.set_body_component_port_map (list_port_map,"out_READ_ACK_"+toString(i)+"     ","out_PREDICT_ACK_"+toString(i));
 	vhdl.set_body_component_port_map (list_port_map," in_READ_ADDRESS_"+toString(i)+" "," in_PREDICT_ADDRESS_"+toString(i));
 	vhdl.set_body_component_port_map (list_port_map,"out_READ_DATA_"+toString(i)+"    ","out_PREDICT_HISTORY_"+toString(i));    
@@ -49,5 +52,6 @@
     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
       {
-	vhdl.set_body_component_port_map (list_port_map," in_WRITE_ENABLE_"+toString(i)+" ","    in_BRANCH_COMPLETE_VAL_"+toString(i)+"");
+	vhdl.set_body_component_port_map (list_port_map," in_WRITE_VAL_"+toString(i)+"    ","    in_BRANCH_COMPLETE_VAL_"+toString(i)+"");
+	vhdl.set_body_component_port_map (list_port_map,"out_WRITE_ACK_"+toString(i)+"    ","   out_BRANCH_COMPLETE_ACK_"+toString(i)+"");
 	vhdl.set_body_component_port_map (list_port_map," in_WRITE_ADDRESS_"+toString(i)+"","    in_BRANCH_COMPLETE_ADDRESS_"+toString(i));
 	vhdl.set_body_component_port_map (list_port_map," in_WRITE_DATA_"+toString(i)+"   ","signal_BRANCH_COMPLETE_HISTORY_"+toString(i));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_port.cpp	(revision 15)
@@ -21,4 +21,5 @@
   {
     vhdl.set_port (" in_CLOCK" , IN, 1);
+    vhdl.set_port (" in_NRESET", IN, 1);
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_port.cpp	(revision 15)
@@ -19,4 +19,5 @@
   void Branch_History_Table::vhdl_testbench_port (void)
   {
+    _vhdl_testbench->set_port (" in_NRESET", IN, 1);
     for (uint32_t i=0; i<_param._nb_prediction; i++)
       {
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_transition.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_transition.cpp	(revision 15)
@@ -25,8 +25,10 @@
 #endif    
 
+    _vhdl_testbench->add_input  (PORT_READ( in_NRESET));
+
     for (uint32_t i=0; i<_param._nb_prediction; i++)
       {
 	_vhdl_testbench->add_input  (PORT_READ( in_PREDICT_VAL     [i]));
-	_vhdl_testbench->add_output (PORT_READ(out_PREDICT_ACK     [i]));
+	_vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_ACK  [i]));
 	_vhdl_testbench->add_input  (PORT_READ( in_PREDICT_ADDRESS [i]));
 	_vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_DATA [i]));
@@ -37,5 +39,5 @@
        {
 	 _vhdl_testbench->add_input  (PORT_READ( in_BRANCH_COMPLETE_VAL     [i]));
-	 _vhdl_testbench->add_output (PORT_READ(out_BRANCH_COMPLETE_ACK     [i]));
+	 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_WRITE_ACK [i]));
 	 _vhdl_testbench->add_input  (PORT_READ( in_BRANCH_COMPLETE_ADDRESS [i]));
 	 _vhdl_testbench->add_input  (PORT_READ( in_BRANCH_COMPLETE_HISTORY [i]));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Parameters.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Parameters.cpp	(revision 15)
@@ -32,8 +32,8 @@
 									     morpheo::behavioural::generic::shifter::internal_left_shift,
 									     morpheo::behavioural::generic::shifter::external_completion),
-    _param_registerfile = new morpheo::behavioural::generic::registerfile::Parameters (nb_prediction      ,
-										       nb_branch_complete ,
-										       nb_shifter         ,
-										       size_shifter       );
+    _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (nb_prediction      ,
+														nb_branch_complete ,
+														nb_shifter         ,
+														size_shifter       );
     
     test();
@@ -54,8 +54,8 @@
 									     true),
 
-    _param_registerfile = new morpheo::behavioural::generic::registerfile::Parameters (param._nb_prediction      ,
-										       param._nb_branch_complete ,
-										       param._nb_shifter         ,
-										       param._size_shifter       );
+    _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (param._nb_prediction      ,
+														param._nb_branch_complete ,
+														param._nb_shifter         ,
+														param._size_shifter       );
       
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/Makefile.deps	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/Makefile.deps	(revision 15)
@@ -14,6 +14,6 @@
 include 			$(DIR_MORPHEO)/Behavioural/Generic/Counter/Makefile.deps
 endif
-ifndef RegisterFile
-include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/Makefile.deps
+ifndef RegisterFile_Monolithic
+include 			$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps
 endif
 
@@ -22,10 +22,10 @@
 #-----[ Library ]------------------------------------------
 Pattern_History_Table_LIBRARY		= 	-lPattern_History_Table	\
-						$(RegisterFile_LIBRARY)	\
+						$(RegisterFile_Monolithic_LIBRARY)	\
 						$(Counter_LIBRARY)	\
 						$(Behavioural_LIBRARY)
 
 Pattern_History_Table_DIR_LIBRARY	=	-L$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/lib	\
-						$(RegisterFile_DIR_LIBRARY)	\
+						$(RegisterFile_Monolithic_DIR_LIBRARY)	\
 						$(Counter_DIR_LIBRARY)		\
 						$(Behavioural_DIR_LIBRARY)
@@ -36,5 +36,5 @@
 					@$(MAKE) Behavioural_library
 					@$(MAKE) Counter_library
-					@$(MAKE) RegisterFile_library
+					@$(MAKE) RegisterFile_Monolithic_library
 					@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table --makefile=Makefile 
 	
@@ -42,4 +42,4 @@
 					@$(MAKE) Behavioural_library_clean
 					@$(MAKE) Counter_library_clean
-					@$(MAKE) RegisterFile_library_clean
+					@$(MAKE) RegisterFile_Monolithic_library_clean
 					@$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table --makefile=Makefile clean
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/mkf.info	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/mkf.info	(revision 15)
@@ -1,181 +1,0 @@
-
-# Pattern_History_Table_0
-target_dep	all	Pattern_History_Table_0.ngc
-target_dep	Pattern_History_Table_0.ngc	Pattern_History_Table_0.prj
-target_dep	Pattern_History_Table_0.prj	Pattern_History_Table_0_Counter_Pack.vhdl Pattern_History_Table_0_Counter.vhdl Pattern_History_Table_0_Pack.vhdl Pattern_History_Table_0_RegisterFile_Pack.vhdl Pattern_History_Table_0_RegisterFile.vhdl Pattern_History_Table_0.vhdl
-
-# Pattern_History_Table_10
-target_dep	all	Pattern_History_Table_10.ngc
-target_dep	Pattern_History_Table_10.ngc	Pattern_History_Table_10.prj
-target_dep	Pattern_History_Table_10.prj	Pattern_History_Table_10_Counter_Pack.vhdl Pattern_History_Table_10_Counter.vhdl Pattern_History_Table_10_Pack.vhdl Pattern_History_Table_10_RegisterFile_Pack.vhdl Pattern_History_Table_10_RegisterFile.vhdl Pattern_History_Table_10.vhdl
-
-# Pattern_History_Table_11
-target_dep	all	Pattern_History_Table_11.ngc
-target_dep	Pattern_History_Table_11.ngc	Pattern_History_Table_11.prj
-target_dep	Pattern_History_Table_11.prj	Pattern_History_Table_11_Counter_Pack.vhdl Pattern_History_Table_11_Counter.vhdl Pattern_History_Table_11_Pack.vhdl Pattern_History_Table_11_RegisterFile_Pack.vhdl Pattern_History_Table_11_RegisterFile.vhdl Pattern_History_Table_11.vhdl
-
-# Pattern_History_Table_12
-target_dep	all	Pattern_History_Table_12.ngc
-target_dep	Pattern_History_Table_12.ngc	Pattern_History_Table_12.prj
-target_dep	Pattern_History_Table_12.prj	Pattern_History_Table_12_Counter_Pack.vhdl Pattern_History_Table_12_Counter.vhdl Pattern_History_Table_12_Pack.vhdl Pattern_History_Table_12_RegisterFile_Pack.vhdl Pattern_History_Table_12_RegisterFile.vhdl Pattern_History_Table_12.vhdl
-
-# Pattern_History_Table_13
-target_dep	all	Pattern_History_Table_13.ngc
-target_dep	Pattern_History_Table_13.ngc	Pattern_History_Table_13.prj
-target_dep	Pattern_History_Table_13.prj	Pattern_History_Table_13_Counter_Pack.vhdl Pattern_History_Table_13_Counter.vhdl Pattern_History_Table_13_Pack.vhdl Pattern_History_Table_13_RegisterFile_Pack.vhdl Pattern_History_Table_13_RegisterFile.vhdl Pattern_History_Table_13.vhdl
-
-# Pattern_History_Table_14
-target_dep	all	Pattern_History_Table_14.ngc
-target_dep	Pattern_History_Table_14.ngc	Pattern_History_Table_14.prj
-target_dep	Pattern_History_Table_14.prj	Pattern_History_Table_14_Counter_Pack.vhdl Pattern_History_Table_14_Counter.vhdl Pattern_History_Table_14_Pack.vhdl Pattern_History_Table_14_RegisterFile_Pack.vhdl Pattern_History_Table_14_RegisterFile.vhdl Pattern_History_Table_14.vhdl
-
-# Pattern_History_Table_15
-target_dep	all	Pattern_History_Table_15.ngc
-target_dep	Pattern_History_Table_15.ngc	Pattern_History_Table_15.prj
-target_dep	Pattern_History_Table_15.prj	Pattern_History_Table_15_Counter_Pack.vhdl Pattern_History_Table_15_Counter.vhdl Pattern_History_Table_15_Pack.vhdl Pattern_History_Table_15_RegisterFile_Pack.vhdl Pattern_History_Table_15_RegisterFile.vhdl Pattern_History_Table_15.vhdl
-
-# Pattern_History_Table_16
-target_dep	all	Pattern_History_Table_16.ngc
-target_dep	Pattern_History_Table_16.ngc	Pattern_History_Table_16.prj
-target_dep	Pattern_History_Table_16.prj	Pattern_History_Table_16_Counter_Pack.vhdl Pattern_History_Table_16_Counter.vhdl Pattern_History_Table_16_Pack.vhdl Pattern_History_Table_16_RegisterFile_Pack.vhdl Pattern_History_Table_16_RegisterFile.vhdl Pattern_History_Table_16.vhdl
-
-# Pattern_History_Table_17
-target_dep	all	Pattern_History_Table_17.ngc
-target_dep	Pattern_History_Table_17.ngc	Pattern_History_Table_17.prj
-target_dep	Pattern_History_Table_17.prj	Pattern_History_Table_17_Counter_Pack.vhdl Pattern_History_Table_17_Counter.vhdl Pattern_History_Table_17_Pack.vhdl Pattern_History_Table_17_RegisterFile_Pack.vhdl Pattern_History_Table_17_RegisterFile.vhdl Pattern_History_Table_17.vhdl
-
-# Pattern_History_Table_18
-target_dep	all	Pattern_History_Table_18.ngc
-target_dep	Pattern_History_Table_18.ngc	Pattern_History_Table_18.prj
-target_dep	Pattern_History_Table_18.prj	Pattern_History_Table_18_Counter_Pack.vhdl Pattern_History_Table_18_Counter.vhdl Pattern_History_Table_18_Pack.vhdl Pattern_History_Table_18_RegisterFile_Pack.vhdl Pattern_History_Table_18_RegisterFile.vhdl Pattern_History_Table_18.vhdl
-
-# Pattern_History_Table_19
-target_dep	all	Pattern_History_Table_19.ngc
-target_dep	Pattern_History_Table_19.ngc	Pattern_History_Table_19.prj
-target_dep	Pattern_History_Table_19.prj	Pattern_History_Table_19_Counter_Pack.vhdl Pattern_History_Table_19_Counter.vhdl Pattern_History_Table_19_Pack.vhdl Pattern_History_Table_19_RegisterFile_Pack.vhdl Pattern_History_Table_19_RegisterFile.vhdl Pattern_History_Table_19.vhdl
-
-# Pattern_History_Table_1
-target_dep	all	Pattern_History_Table_1.ngc
-target_dep	Pattern_History_Table_1.ngc	Pattern_History_Table_1.prj
-target_dep	Pattern_History_Table_1.prj	Pattern_History_Table_10_Counter_Pack.vhdl Pattern_History_Table_10_Counter.vhdl Pattern_History_Table_10_Pack.vhdl Pattern_History_Table_10_RegisterFile_Pack.vhdl Pattern_History_Table_10_RegisterFile.vhdl Pattern_History_Table_10.vhdl Pattern_History_Table_11_Counter_Pack.vhdl Pattern_History_Table_11_Counter.vhdl Pattern_History_Table_11_Pack.vhdl Pattern_History_Table_11_RegisterFile_Pack.vhdl Pattern_History_Table_11_RegisterFile.vhdl Pattern_History_Table_11.vhdl Pattern_History_Table_12_Counter_Pack.vhdl Pattern_History_Table_12_Counter.vhdl Pattern_History_Table_12_Pack.vhdl Pattern_History_Table_12_RegisterFile_Pack.vhdl Pattern_History_Table_12_RegisterFile.vhdl Pattern_History_Table_12.vhdl Pattern_History_Table_13_Counter_Pack.vhdl Pattern_History_Table_13_Counter.vhdl Pattern_History_Table_13_Pack.vhdl Pattern_History_Table_13_RegisterFile_Pack.vhdl Pattern_History_Table_13_RegisterFile.vhdl Pattern_History_Table_13.vhdl Pattern_History_Table_14_Counter_Pack.vhdl Pattern_History_Table_14_Counter.vhdl Pattern_History_Table_14_Pack.vhdl Pattern_History_Table_14_RegisterFile_Pack.vhdl Pattern_History_Table_14_RegisterFile.vhdl Pattern_History_Table_14.vhdl Pattern_History_Table_15_Counter_Pack.vhdl Pattern_History_Table_15_Counter.vhdl Pattern_History_Table_15_Pack.vhdl Pattern_History_Table_15_RegisterFile_Pack.vhdl Pattern_History_Table_15_RegisterFile.vhdl Pattern_History_Table_15.vhdl Pattern_History_Table_16_Counter_Pack.vhdl Pattern_History_Table_16_Counter.vhdl Pattern_History_Table_16_Pack.vhdl Pattern_History_Table_16_RegisterFile_Pack.vhdl Pattern_History_Table_16_RegisterFile.vhdl Pattern_History_Table_16.vhdl Pattern_History_Table_17_Counter_Pack.vhdl Pattern_History_Table_17_Counter.vhdl Pattern_History_Table_17_Pack.vhdl Pattern_History_Table_17_RegisterFile_Pack.vhdl Pattern_History_Table_17_RegisterFile.vhdl Pattern_History_Table_17.vhdl Pattern_History_Table_18_Counter_Pack.vhdl Pattern_History_Table_18_Counter.vhdl Pattern_History_Table_18_Pack.vhdl Pattern_History_Table_18_RegisterFile_Pack.vhdl Pattern_History_Table_18_RegisterFile.vhdl Pattern_History_Table_18.vhdl Pattern_History_Table_19_Counter_Pack.vhdl Pattern_History_Table_19_Counter.vhdl Pattern_History_Table_19_Pack.vhdl Pattern_History_Table_19_RegisterFile_Pack.vhdl Pattern_History_Table_19_RegisterFile.vhdl Pattern_History_Table_19.vhdl Pattern_History_Table_1_Counter_Pack.vhdl Pattern_History_Table_1_Counter.vhdl Pattern_History_Table_1_Pack.vhdl Pattern_History_Table_1_RegisterFile_Pack.vhdl Pattern_History_Table_1_RegisterFile.vhdl Pattern_History_Table_1.vhdl
-
-# Pattern_History_Table_20
-target_dep	all	Pattern_History_Table_20.ngc
-target_dep	Pattern_History_Table_20.ngc	Pattern_History_Table_20.prj
-target_dep	Pattern_History_Table_20.prj	Pattern_History_Table_20_Counter_Pack.vhdl Pattern_History_Table_20_Counter.vhdl Pattern_History_Table_20_Pack.vhdl Pattern_History_Table_20_RegisterFile_Pack.vhdl Pattern_History_Table_20_RegisterFile.vhdl Pattern_History_Table_20.vhdl
-
-# Pattern_History_Table_21
-target_dep	all	Pattern_History_Table_21.ngc
-target_dep	Pattern_History_Table_21.ngc	Pattern_History_Table_21.prj
-target_dep	Pattern_History_Table_21.prj	Pattern_History_Table_21_Counter_Pack.vhdl Pattern_History_Table_21_Counter.vhdl Pattern_History_Table_21_Pack.vhdl Pattern_History_Table_21_RegisterFile_Pack.vhdl Pattern_History_Table_21_RegisterFile.vhdl Pattern_History_Table_21.vhdl
-
-# Pattern_History_Table_22
-target_dep	all	Pattern_History_Table_22.ngc
-target_dep	Pattern_History_Table_22.ngc	Pattern_History_Table_22.prj
-target_dep	Pattern_History_Table_22.prj	Pattern_History_Table_22_Counter_Pack.vhdl Pattern_History_Table_22_Counter.vhdl Pattern_History_Table_22_Pack.vhdl Pattern_History_Table_22_RegisterFile_Pack.vhdl Pattern_History_Table_22_RegisterFile.vhdl Pattern_History_Table_22.vhdl
-
-# Pattern_History_Table_23
-target_dep	all	Pattern_History_Table_23.ngc
-target_dep	Pattern_History_Table_23.ngc	Pattern_History_Table_23.prj
-target_dep	Pattern_History_Table_23.prj	Pattern_History_Table_23_Counter_Pack.vhdl Pattern_History_Table_23_Counter.vhdl Pattern_History_Table_23_Pack.vhdl Pattern_History_Table_23_RegisterFile_Pack.vhdl Pattern_History_Table_23_RegisterFile.vhdl Pattern_History_Table_23.vhdl
-
-# Pattern_History_Table_24
-target_dep	all	Pattern_History_Table_24.ngc
-target_dep	Pattern_History_Table_24.ngc	Pattern_History_Table_24.prj
-target_dep	Pattern_History_Table_24.prj	Pattern_History_Table_24_Counter_Pack.vhdl Pattern_History_Table_24_Counter.vhdl Pattern_History_Table_24_Pack.vhdl Pattern_History_Table_24_RegisterFile_Pack.vhdl Pattern_History_Table_24_RegisterFile.vhdl Pattern_History_Table_24.vhdl
-
-# Pattern_History_Table_25
-target_dep	all	Pattern_History_Table_25.ngc
-target_dep	Pattern_History_Table_25.ngc	Pattern_History_Table_25.prj
-target_dep	Pattern_History_Table_25.prj	Pattern_History_Table_25_Counter_Pack.vhdl Pattern_History_Table_25_Counter.vhdl Pattern_History_Table_25_Pack.vhdl Pattern_History_Table_25_RegisterFile_Pack.vhdl Pattern_History_Table_25_RegisterFile.vhdl Pattern_History_Table_25.vhdl
-
-# Pattern_History_Table_26
-target_dep	all	Pattern_History_Table_26.ngc
-target_dep	Pattern_History_Table_26.ngc	Pattern_History_Table_26.prj
-target_dep	Pattern_History_Table_26.prj	Pattern_History_Table_26_Counter_Pack.vhdl Pattern_History_Table_26_Counter.vhdl Pattern_History_Table_26_Pack.vhdl Pattern_History_Table_26_RegisterFile_Pack.vhdl Pattern_History_Table_26_RegisterFile.vhdl Pattern_History_Table_26.vhdl
-
-# Pattern_History_Table_27
-target_dep	all	Pattern_History_Table_27.ngc
-target_dep	Pattern_History_Table_27.ngc	Pattern_History_Table_27.prj
-target_dep	Pattern_History_Table_27.prj	Pattern_History_Table_27_Counter_Pack.vhdl Pattern_History_Table_27_Counter.vhdl Pattern_History_Table_27_Pack.vhdl Pattern_History_Table_27_RegisterFile_Pack.vhdl Pattern_History_Table_27_RegisterFile.vhdl Pattern_History_Table_27.vhdl
-
-# Pattern_History_Table_28
-target_dep	all	Pattern_History_Table_28.ngc
-target_dep	Pattern_History_Table_28.ngc	Pattern_History_Table_28.prj
-target_dep	Pattern_History_Table_28.prj	Pattern_History_Table_28_Counter_Pack.vhdl Pattern_History_Table_28_Counter.vhdl Pattern_History_Table_28_Pack.vhdl Pattern_History_Table_28_RegisterFile_Pack.vhdl Pattern_History_Table_28_RegisterFile.vhdl Pattern_History_Table_28.vhdl
-
-# Pattern_History_Table_29
-target_dep	all	Pattern_History_Table_29.ngc
-target_dep	Pattern_History_Table_29.ngc	Pattern_History_Table_29.prj
-target_dep	Pattern_History_Table_29.prj	Pattern_History_Table_29_Counter_Pack.vhdl Pattern_History_Table_29_Counter.vhdl Pattern_History_Table_29_Pack.vhdl Pattern_History_Table_29_RegisterFile_Pack.vhdl Pattern_History_Table_29_RegisterFile.vhdl Pattern_History_Table_29.vhdl
-
-# Pattern_History_Table_2
-target_dep	all	Pattern_History_Table_2.ngc
-target_dep	Pattern_History_Table_2.ngc	Pattern_History_Table_2.prj
-target_dep	Pattern_History_Table_2.prj	Pattern_History_Table_20_Counter_Pack.vhdl Pattern_History_Table_20_Counter.vhdl Pattern_History_Table_20_Pack.vhdl Pattern_History_Table_20_RegisterFile_Pack.vhdl Pattern_History_Table_20_RegisterFile.vhdl Pattern_History_Table_20.vhdl Pattern_History_Table_21_Counter_Pack.vhdl Pattern_History_Table_21_Counter.vhdl Pattern_History_Table_21_Pack.vhdl Pattern_History_Table_21_RegisterFile_Pack.vhdl Pattern_History_Table_21_RegisterFile.vhdl Pattern_History_Table_21.vhdl Pattern_History_Table_22_Counter_Pack.vhdl Pattern_History_Table_22_Counter.vhdl Pattern_History_Table_22_Pack.vhdl Pattern_History_Table_22_RegisterFile_Pack.vhdl Pattern_History_Table_22_RegisterFile.vhdl Pattern_History_Table_22.vhdl Pattern_History_Table_23_Counter_Pack.vhdl Pattern_History_Table_23_Counter.vhdl Pattern_History_Table_23_Pack.vhdl Pattern_History_Table_23_RegisterFile_Pack.vhdl Pattern_History_Table_23_RegisterFile.vhdl Pattern_History_Table_23.vhdl Pattern_History_Table_24_Counter_Pack.vhdl Pattern_History_Table_24_Counter.vhdl Pattern_History_Table_24_Pack.vhdl Pattern_History_Table_24_RegisterFile_Pack.vhdl Pattern_History_Table_24_RegisterFile.vhdl Pattern_History_Table_24.vhdl Pattern_History_Table_25_Counter_Pack.vhdl Pattern_History_Table_25_Counter.vhdl Pattern_History_Table_25_Pack.vhdl Pattern_History_Table_25_RegisterFile_Pack.vhdl Pattern_History_Table_25_RegisterFile.vhdl Pattern_History_Table_25.vhdl Pattern_History_Table_26_Counter_Pack.vhdl Pattern_History_Table_26_Counter.vhdl Pattern_History_Table_26_Pack.vhdl Pattern_History_Table_26_RegisterFile_Pack.vhdl Pattern_History_Table_26_RegisterFile.vhdl Pattern_History_Table_26.vhdl Pattern_History_Table_27_Counter_Pack.vhdl Pattern_History_Table_27_Counter.vhdl Pattern_History_Table_27_Pack.vhdl Pattern_History_Table_27_RegisterFile_Pack.vhdl Pattern_History_Table_27_RegisterFile.vhdl Pattern_History_Table_27.vhdl Pattern_History_Table_28_Counter_Pack.vhdl Pattern_History_Table_28_Counter.vhdl Pattern_History_Table_28_Pack.vhdl Pattern_History_Table_28_RegisterFile_Pack.vhdl Pattern_History_Table_28_RegisterFile.vhdl Pattern_History_Table_28.vhdl Pattern_History_Table_29_Counter_Pack.vhdl Pattern_History_Table_29_Counter.vhdl Pattern_History_Table_29_Pack.vhdl Pattern_History_Table_29_RegisterFile_Pack.vhdl Pattern_History_Table_29_RegisterFile.vhdl Pattern_History_Table_29.vhdl Pattern_History_Table_2_Counter_Pack.vhdl Pattern_History_Table_2_Counter.vhdl Pattern_History_Table_2_Pack.vhdl Pattern_History_Table_2_RegisterFile_Pack.vhdl Pattern_History_Table_2_RegisterFile.vhdl Pattern_History_Table_2.vhdl
-
-# Pattern_History_Table_30
-target_dep	all	Pattern_History_Table_30.ngc
-target_dep	Pattern_History_Table_30.ngc	Pattern_History_Table_30.prj
-target_dep	Pattern_History_Table_30.prj	Pattern_History_Table_30_Counter_Pack.vhdl Pattern_History_Table_30_Counter.vhdl Pattern_History_Table_30_Pack.vhdl Pattern_History_Table_30_RegisterFile_Pack.vhdl Pattern_History_Table_30_RegisterFile.vhdl Pattern_History_Table_30.vhdl
-
-# Pattern_History_Table_31
-target_dep	all	Pattern_History_Table_31.ngc
-target_dep	Pattern_History_Table_31.ngc	Pattern_History_Table_31.prj
-target_dep	Pattern_History_Table_31.prj	Pattern_History_Table_31_Counter_Pack.vhdl Pattern_History_Table_31_Counter.vhdl Pattern_History_Table_31_Pack.vhdl Pattern_History_Table_31_RegisterFile_Pack.vhdl Pattern_History_Table_31_RegisterFile.vhdl Pattern_History_Table_31.vhdl
-
-# Pattern_History_Table_32
-target_dep	all	Pattern_History_Table_32.ngc
-target_dep	Pattern_History_Table_32.ngc	Pattern_History_Table_32.prj
-target_dep	Pattern_History_Table_32.prj	Pattern_History_Table_32_Counter_Pack.vhdl Pattern_History_Table_32_Counter.vhdl Pattern_History_Table_32_Pack.vhdl Pattern_History_Table_32_RegisterFile_Pack.vhdl Pattern_History_Table_32_RegisterFile.vhdl Pattern_History_Table_32.vhdl
-
-# Pattern_History_Table_33
-target_dep	all	Pattern_History_Table_33.ngc
-target_dep	Pattern_History_Table_33.ngc	Pattern_History_Table_33.prj
-target_dep	Pattern_History_Table_33.prj	Pattern_History_Table_33_Counter_Pack.vhdl Pattern_History_Table_33_Counter.vhdl Pattern_History_Table_33_Pack.vhdl Pattern_History_Table_33_RegisterFile_Pack.vhdl Pattern_History_Table_33_RegisterFile.vhdl Pattern_History_Table_33.vhdl
-
-# Pattern_History_Table_34
-target_dep	all	Pattern_History_Table_34.ngc
-target_dep	Pattern_History_Table_34.ngc	Pattern_History_Table_34.prj
-target_dep	Pattern_History_Table_34.prj	Pattern_History_Table_34_Counter_Pack.vhdl Pattern_History_Table_34_Counter.vhdl Pattern_History_Table_34_Pack.vhdl Pattern_History_Table_34_RegisterFile_Pack.vhdl Pattern_History_Table_34_RegisterFile.vhdl Pattern_History_Table_34.vhdl
-
-# Pattern_History_Table_35
-target_dep	all	Pattern_History_Table_35.ngc
-target_dep	Pattern_History_Table_35.ngc	Pattern_History_Table_35.prj
-target_dep	Pattern_History_Table_35.prj	Pattern_History_Table_35_Counter_Pack.vhdl Pattern_History_Table_35_Counter.vhdl Pattern_History_Table_35_Pack.vhdl Pattern_History_Table_35_RegisterFile_Pack.vhdl Pattern_History_Table_35_RegisterFile.vhdl Pattern_History_Table_35.vhdl
-
-# Pattern_History_Table_3
-target_dep	all	Pattern_History_Table_3.ngc
-target_dep	Pattern_History_Table_3.ngc	Pattern_History_Table_3.prj
-target_dep	Pattern_History_Table_3.prj	Pattern_History_Table_30_Counter_Pack.vhdl Pattern_History_Table_30_Counter.vhdl Pattern_History_Table_30_Pack.vhdl Pattern_History_Table_30_RegisterFile_Pack.vhdl Pattern_History_Table_30_RegisterFile.vhdl Pattern_History_Table_30.vhdl Pattern_History_Table_31_Counter_Pack.vhdl Pattern_History_Table_31_Counter.vhdl Pattern_History_Table_31_Pack.vhdl Pattern_History_Table_31_RegisterFile_Pack.vhdl Pattern_History_Table_31_RegisterFile.vhdl Pattern_History_Table_31.vhdl Pattern_History_Table_32_Counter_Pack.vhdl Pattern_History_Table_32_Counter.vhdl Pattern_History_Table_32_Pack.vhdl Pattern_History_Table_32_RegisterFile_Pack.vhdl Pattern_History_Table_32_RegisterFile.vhdl Pattern_History_Table_32.vhdl Pattern_History_Table_33_Counter_Pack.vhdl Pattern_History_Table_33_Counter.vhdl Pattern_History_Table_33_Pack.vhdl Pattern_History_Table_33_RegisterFile_Pack.vhdl Pattern_History_Table_33_RegisterFile.vhdl Pattern_History_Table_33.vhdl Pattern_History_Table_34_Counter_Pack.vhdl Pattern_History_Table_34_Counter.vhdl Pattern_History_Table_34_Pack.vhdl Pattern_History_Table_34_RegisterFile_Pack.vhdl Pattern_History_Table_34_RegisterFile.vhdl Pattern_History_Table_34.vhdl Pattern_History_Table_35_Counter_Pack.vhdl Pattern_History_Table_35_Counter.vhdl Pattern_History_Table_35_Pack.vhdl Pattern_History_Table_35_RegisterFile_Pack.vhdl Pattern_History_Table_35_RegisterFile.vhdl Pattern_History_Table_35.vhdl Pattern_History_Table_3_Counter_Pack.vhdl Pattern_History_Table_3_Counter.vhdl Pattern_History_Table_3_Pack.vhdl Pattern_History_Table_3_RegisterFile_Pack.vhdl Pattern_History_Table_3_RegisterFile.vhdl Pattern_History_Table_3.vhdl
-
-# Pattern_History_Table_4
-target_dep	all	Pattern_History_Table_4.ngc
-target_dep	Pattern_History_Table_4.ngc	Pattern_History_Table_4.prj
-target_dep	Pattern_History_Table_4.prj	Pattern_History_Table_4_Counter_Pack.vhdl Pattern_History_Table_4_Counter.vhdl Pattern_History_Table_4_Pack.vhdl Pattern_History_Table_4_RegisterFile_Pack.vhdl Pattern_History_Table_4_RegisterFile.vhdl Pattern_History_Table_4.vhdl
-
-# Pattern_History_Table_5
-target_dep	all	Pattern_History_Table_5.ngc
-target_dep	Pattern_History_Table_5.ngc	Pattern_History_Table_5.prj
-target_dep	Pattern_History_Table_5.prj	Pattern_History_Table_5_Counter_Pack.vhdl Pattern_History_Table_5_Counter.vhdl Pattern_History_Table_5_Pack.vhdl Pattern_History_Table_5_RegisterFile_Pack.vhdl Pattern_History_Table_5_RegisterFile.vhdl Pattern_History_Table_5.vhdl
-
-# Pattern_History_Table_6
-target_dep	all	Pattern_History_Table_6.ngc
-target_dep	Pattern_History_Table_6.ngc	Pattern_History_Table_6.prj
-target_dep	Pattern_History_Table_6.prj	Pattern_History_Table_6_Counter_Pack.vhdl Pattern_History_Table_6_Counter.vhdl Pattern_History_Table_6_Pack.vhdl Pattern_History_Table_6_RegisterFile_Pack.vhdl Pattern_History_Table_6_RegisterFile.vhdl Pattern_History_Table_6.vhdl
-
-# Pattern_History_Table_7
-target_dep	all	Pattern_History_Table_7.ngc
-target_dep	Pattern_History_Table_7.ngc	Pattern_History_Table_7.prj
-target_dep	Pattern_History_Table_7.prj	Pattern_History_Table_7_Counter_Pack.vhdl Pattern_History_Table_7_Counter.vhdl Pattern_History_Table_7_Pack.vhdl Pattern_History_Table_7_RegisterFile_Pack.vhdl Pattern_History_Table_7_RegisterFile.vhdl Pattern_History_Table_7.vhdl
-
-# Pattern_History_Table_8
-target_dep	all	Pattern_History_Table_8.ngc
-target_dep	Pattern_History_Table_8.ngc	Pattern_History_Table_8.prj
-target_dep	Pattern_History_Table_8.prj	Pattern_History_Table_8_Counter_Pack.vhdl Pattern_History_Table_8_Counter.vhdl Pattern_History_Table_8_Pack.vhdl Pattern_History_Table_8_RegisterFile_Pack.vhdl Pattern_History_Table_8_RegisterFile.vhdl Pattern_History_Table_8.vhdl
-
-# Pattern_History_Table_9
-target_dep	all	Pattern_History_Table_9.ngc
-target_dep	Pattern_History_Table_9.ngc	Pattern_History_Table_9.prj
-target_dep	Pattern_History_Table_9.prj	Pattern_History_Table_9_Counter_Pack.vhdl Pattern_History_Table_9_Counter.vhdl Pattern_History_Table_9_Pack.vhdl Pattern_History_Table_9_RegisterFile_Pack.vhdl Pattern_History_Table_9_RegisterFile.vhdl Pattern_History_Table_9.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/src/test.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/src/test.cpp	(revision 15)
@@ -43,4 +43,6 @@
    *********************************************************************/
   sc_clock                                 CLOCK ("clock", 1.0, 0.5);
+  sc_signal<Tcontrol_t>                    NRESET;
+
   sc_signal<Tcontrol_t>                    PREDICT_VAL               [param._nb_prediction];
   sc_signal<Tcontrol_t>                    PREDICT_ACK               [param._nb_prediction];
@@ -61,4 +63,5 @@
   
   (*(_Pattern_History_Table->in_CLOCK))        (CLOCK);
+  (*(_Pattern_History_Table->in_NRESET))       (NRESET);
 
   for (uint32_t i=0; i<param._nb_prediction; i++)
@@ -92,5 +95,6 @@
   _Pattern_History_Table->vhdl_testbench_label("Initialisation");
   cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl;
-
+  
+  NRESET.write(1);
 
   for (uint32_t i=0; i<param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h	(revision 15)
@@ -13,5 +13,5 @@
 // Internal structure
 #include "Behavioural/Generic/Counter/include/Parameters.h"
-#include "Behavioural/Generic/RegisterFile/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h"
 #include <math.h>
 
@@ -34,5 +34,5 @@
 
   public :       morpheo::behavioural::generic::counter::Parameters      * _param_counter;
-  public :       morpheo::behavioural::generic::registerfile::Parameters * _param_registerfile;
+  public :       morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters * _param_registerfile;
 
     //-----[ methods ]-----------------------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Pattern_History_Table.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Pattern_History_Table.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Pattern_History_Table.h	(revision 15)
@@ -19,5 +19,5 @@
 // Internal structure
 #include "Behavioural/Generic/Counter/include/Counter.h"
-#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
 
 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h"
@@ -70,4 +70,5 @@
     // Interface
   public    : SC_CLOCK                      *  in_CLOCK        ;
+  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
 
   public    : SC_IN (Tcontrol_t)           **  in_PREDICT_VAL            ;
@@ -90,5 +91,5 @@
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
   public    : morpheo::behavioural::generic::counter::Counter           * component_Counter     ;
-  public    : morpheo::behavioural::generic::registerfile::RegisterFile * component_RegisterFile;
+  public    : morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic * component_RegisterFile;
 
     // -----[ methods ]---------------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Statistics.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Statistics.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Statistics.h	(revision 15)
@@ -14,5 +14,5 @@
 #include "Behavioural/include/Parameters_Statistics.h"
 #include "Behavioural/Generic/Counter/include/Statistics.h"
-#include "Behavioural/Generic/RegisterFile/include/Statistics.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h"
 //#include "Behavioural/Generic/Group/include/Statistics.h"
 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h"
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Parameters.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Parameters.cpp	(revision 15)
@@ -30,8 +30,8 @@
     _param_counter      = new morpheo::behavioural::generic::counter::Parameters (size_counter       ,
 										  nb_branch_complete );
-    _param_registerfile = new morpheo::behavioural::generic::registerfile::Parameters (nb_prediction      ,
-										       nb_branch_complete ,
-										       nb_counter         ,
-										       size_counter       );
+    _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (nb_prediction      ,
+														nb_branch_complete ,
+														nb_counter         ,
+														size_counter       );
     
 
@@ -51,9 +51,9 @@
 									     param._nb_branch_complete );
 
-    _param_registerfile = new morpheo::behavioural::generic::registerfile::Parameters (param._nb_prediction      ,
-										       param._nb_branch_complete ,
-										       param._nb_counter         ,
-										       param._size_counter       );
-
+    _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (param._nb_prediction      ,
+														param._nb_branch_complete ,
+														param._nb_counter         ,
+														param._size_counter       );
+    
     test();
     log_printf(FUNC,Pattern_History_Table,"Parameters","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table.cpp	(revision 15)
@@ -58,9 +58,9 @@
     allocation ();
 
-    // Constant
-    for (uint32_t i=0; i<_param._nb_prediction     ; i++)
-      PORT_WRITE(out_PREDICT_ACK         [i],1);
-    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
-      PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1);
+//     // Constant
+//     for (uint32_t i=0; i<_param._nb_prediction     ; i++)
+//       PORT_WRITE(out_PREDICT_ACK         [i],1);
+//     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
+//       PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1);
 
 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_allocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_allocation.cpp	(revision 15)
@@ -25,4 +25,5 @@
 
     in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
+    in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
 
      in_PREDICT_VAL     = new SC_IN (Tcontrol_t) * [_param._nb_prediction];
@@ -104,16 +105,18 @@
     name_component = _name+"_RegisterFile";
     
-    component_RegisterFile = new morpheo::behavioural::generic::registerfile::RegisterFile (name_component.c_str(),
+    component_RegisterFile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic (name_component.c_str(),
 #ifdef STATISTICS
-											    _param_statistics            ,
+																_param_statistics            ,
 #endif
-											    *(_param._param_registerfile));
-     
+																*(_param._param_registerfile));
+    
     // Instantiation
     (*(component_RegisterFile->in_CLOCK))        (*(in_CLOCK));
-    
+    (*(component_RegisterFile->in_NRESET))       (*(in_NRESET));
+
     for (uint32_t i=0; i<_param._nb_prediction; i++)
       {
-	(*(component_RegisterFile-> in_READ_ENABLE   [i])) (*( in_PREDICT_VAL      [i]));
+	(*(component_RegisterFile-> in_READ_VAL      [i])) (*( in_PREDICT_VAL      [i]));
+	(*(component_RegisterFile->out_READ_ACK      [i])) (*(out_PREDICT_ACK      [i]));
 	(*(component_RegisterFile-> in_READ_ADDRESS  [i])) (*( in_PREDICT_ADDRESS  [i]));
 	(*(component_RegisterFile->out_READ_DATA     [i])) (*(out_PREDICT_HISTORY  [i]));    
@@ -122,5 +125,6 @@
     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
       {
-	(*(component_RegisterFile-> in_WRITE_ENABLE  [i])) (*(    in_BRANCH_COMPLETE_VAL      [i]));
+	(*(component_RegisterFile-> in_WRITE_VAL     [i])) (*(    in_BRANCH_COMPLETE_VAL      [i]));
+	(*(component_RegisterFile->out_WRITE_ACK     [i])) (*(   out_BRANCH_COMPLETE_ACK      [i]));
 	(*(component_RegisterFile-> in_WRITE_ADDRESS [i])) (*(    in_BRANCH_COMPLETE_ADDRESS  [i]));
 	(*(component_RegisterFile-> in_WRITE_DATA    [i])) (*(signal_BRANCH_COMPLETE_HISTORY  [i]));    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_deallocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_deallocation.cpp	(revision 15)
@@ -23,4 +23,5 @@
 
     delete in_CLOCK;
+    delete in_NRESET;
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_body.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_body.cpp	(revision 15)
@@ -22,10 +22,10 @@
     log_printf(FUNC,Pattern_History_Table,"vhdl_body","Begin");
 
-    vhdl.set_body ("-- Output : always at '1'");
-    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
-      vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';");
-    for (uint32_t i=0; i<_param._nb_prediction     ; i++)
-      vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+"         <= '1';");
-    vhdl.set_body ("");
+//     vhdl.set_body ("-- Output : always at '1'");
+//     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
+//       vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';");
+//     for (uint32_t i=0; i<_param._nb_prediction     ; i++)
+//       vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+"         <= '1';");
+//     vhdl.set_body ("");
 
     list<string> list_port_map;
@@ -41,8 +41,11 @@
 
     list_port_map.clear();
-    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK ");
+    vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
+
     for (uint32_t i=0; i<_param._nb_prediction; i++)
       {
-	vhdl.set_body_component_port_map (list_port_map," in_READ_ENABLE_"+toString(i)+"  "," in_PREDICT_VAL_"+toString(i));
+	vhdl.set_body_component_port_map (list_port_map," in_READ_VAL_"+toString(i)+"     "," in_PREDICT_VAL_"+toString(i));
+	vhdl.set_body_component_port_map (list_port_map,"out_READ_ACK_"+toString(i)+"     ","out_PREDICT_ACK_"+toString(i));
 	vhdl.set_body_component_port_map (list_port_map," in_READ_ADDRESS_"+toString(i)+" "," in_PREDICT_ADDRESS_"+toString(i));
 	vhdl.set_body_component_port_map (list_port_map,"out_READ_DATA_"+toString(i)+"    ","out_PREDICT_HISTORY_"+toString(i));    
@@ -51,5 +54,6 @@
     for (uint32_t i=0; i<_param._nb_branch_complete; i++)
       {
-	vhdl.set_body_component_port_map (list_port_map," in_WRITE_ENABLE_"+toString(i)+" ","    in_BRANCH_COMPLETE_VAL_"+toString(i)+"");
+	vhdl.set_body_component_port_map (list_port_map," in_WRITE_VAL_"+toString(i)+"    ","    in_BRANCH_COMPLETE_VAL_"+toString(i)+"");
+	vhdl.set_body_component_port_map (list_port_map,"out_WRITE_ACK_"+toString(i)+"    ","   out_BRANCH_COMPLETE_ACK_"+toString(i)+"");
 	vhdl.set_body_component_port_map (list_port_map," in_WRITE_ADDRESS_"+toString(i)+"","    in_BRANCH_COMPLETE_ADDRESS_"+toString(i));
 	vhdl.set_body_component_port_map (list_port_map," in_WRITE_DATA_"+toString(i)+"   ","signal_BRANCH_COMPLETE_HISTORY_"+toString(i));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_port.cpp	(revision 15)
@@ -23,4 +23,5 @@
 
     vhdl.set_port (" in_CLOCK" , IN, 1);
+    vhdl.set_port (" in_NRESET", IN, 1);
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_port.cpp	(revision 15)
@@ -21,4 +21,6 @@
   {
     log_printf(FUNC,Pattern_History_Table,"vhdl_testbench_port","Begin");
+
+    _vhdl_testbench->set_port (" in_NRESET", IN, 1);
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_transition.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_transition.cpp	(revision 15)
@@ -30,8 +30,10 @@
     // (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_prediction; i++)
       {
 	_vhdl_testbench->add_input  (PORT_READ( in_PREDICT_VAL     [i]));
-	_vhdl_testbench->add_output (PORT_READ(out_PREDICT_ACK     [i]));
+	_vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_ACK  [i]));
 	_vhdl_testbench->add_input  (PORT_READ( in_PREDICT_ADDRESS [i]));
 	_vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_DATA [i]));
@@ -42,5 +44,5 @@
        {
 	 _vhdl_testbench->add_input  (PORT_READ( in_BRANCH_COMPLETE_VAL      [i]));
-	 _vhdl_testbench->add_output (PORT_READ(out_BRANCH_COMPLETE_ACK      [i]));
+	 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_WRITE_ACK [i]));
 	 _vhdl_testbench->add_input  (PORT_READ( in_BRANCH_COMPLETE_ADDRESS  [i]));
 	 _vhdl_testbench->add_input  (PORT_READ( in_BRANCH_COMPLETE_HISTORY  [i]));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/mkf.info	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/mkf.info	(revision 15)
@@ -1,6 +1,0 @@
-
-# Two_Level_Branch_Predictor_0
-target_dep	all	Two_Level_Branch_Predictor_0.ngc
-target_dep	Two_Level_Branch_Predictor_0.ngc	Two_Level_Branch_Predictor_0.prj
-target_dep	Two_Level_Branch_Predictor_0.prj	Two_Level_Branch_Predictor_0_Branch_History_Table_Pack.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_RegisterFile_Pack.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_RegisterFile.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_Shifter_Pack.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_Shifter.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table.vhdl Two_Level_Branch_Predictor_0_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_Counter_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_Counter.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_RegisterFile_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_RegisterFile.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table.vhdl Two_Level_Branch_Predictor_0_Two_Level_Branch_Predictor_Glue_Pack.vhdl Two_Level_Branch_Predictor_0_Two_Level_Branch_Predictor_Glue.vhdl Two_Level_Branch_Predictor_0.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/src/test.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/src/test.cpp	(revision 15)
@@ -29,4 +29,5 @@
    *********************************************************************/
   sc_clock                              *  CLOCK;
+  sc_signal<Tcontrol_t>                 *  NRESET;
 
   sc_signal<Tcontrol_t>                 *  PREDICT_VAL                 [param._nb_prediction];
@@ -47,5 +48,6 @@
   string rename;
 
-  CLOCK = new sc_clock ("clock", 1.0, 0.5);
+  CLOCK  = new sc_clock              ("clock", 1.0, 0.5);
+  NRESET = new sc_signal<Tcontrol_t> ("NRESET");
 
   for (uint32_t i=0; i<param._nb_prediction; i++)
@@ -85,5 +87,6 @@
   cout << "<" << name << "> Instanciation of _Two_Level_Branch_Predictor" << endl;
   
-  (*(_Two_Level_Branch_Predictor->in_CLOCK))        (*(CLOCK));
+  (*(_Two_Level_Branch_Predictor->in_CLOCK ))        (*(CLOCK ));
+  (*(_Two_Level_Branch_Predictor->in_NRESET))        (*(NRESET));
   
   for (uint32_t i=0; i<param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest/mkf.info	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest/mkf.info	(revision 15)
@@ -1,121 +1,0 @@
-
-# Two_Level_Branch_Predictor_Glue_0
-target_dep	all	Two_Level_Branch_Predictor_Glue_0.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_0.ngc	Two_Level_Branch_Predictor_Glue_0.prj
-target_dep	Two_Level_Branch_Predictor_Glue_0.prj	Two_Level_Branch_Predictor_Glue_0_Pack.vhdl Two_Level_Branch_Predictor_Glue_0.vhdl
-
-# Two_Level_Branch_Predictor_Glue_10
-target_dep	all	Two_Level_Branch_Predictor_Glue_10.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_10.ngc	Two_Level_Branch_Predictor_Glue_10.prj
-target_dep	Two_Level_Branch_Predictor_Glue_10.prj	Two_Level_Branch_Predictor_Glue_10_Pack.vhdl Two_Level_Branch_Predictor_Glue_10.vhdl
-
-# Two_Level_Branch_Predictor_Glue_11
-target_dep	all	Two_Level_Branch_Predictor_Glue_11.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_11.ngc	Two_Level_Branch_Predictor_Glue_11.prj
-target_dep	Two_Level_Branch_Predictor_Glue_11.prj	Two_Level_Branch_Predictor_Glue_11_Pack.vhdl Two_Level_Branch_Predictor_Glue_11.vhdl
-
-# Two_Level_Branch_Predictor_Glue_12
-target_dep	all	Two_Level_Branch_Predictor_Glue_12.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_12.ngc	Two_Level_Branch_Predictor_Glue_12.prj
-target_dep	Two_Level_Branch_Predictor_Glue_12.prj	Two_Level_Branch_Predictor_Glue_12_Pack.vhdl Two_Level_Branch_Predictor_Glue_12.vhdl
-
-# Two_Level_Branch_Predictor_Glue_13
-target_dep	all	Two_Level_Branch_Predictor_Glue_13.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_13.ngc	Two_Level_Branch_Predictor_Glue_13.prj
-target_dep	Two_Level_Branch_Predictor_Glue_13.prj	Two_Level_Branch_Predictor_Glue_13_Pack.vhdl Two_Level_Branch_Predictor_Glue_13.vhdl
-
-# Two_Level_Branch_Predictor_Glue_14
-target_dep	all	Two_Level_Branch_Predictor_Glue_14.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_14.ngc	Two_Level_Branch_Predictor_Glue_14.prj
-target_dep	Two_Level_Branch_Predictor_Glue_14.prj	Two_Level_Branch_Predictor_Glue_14_Pack.vhdl Two_Level_Branch_Predictor_Glue_14.vhdl
-
-# Two_Level_Branch_Predictor_Glue_15
-target_dep	all	Two_Level_Branch_Predictor_Glue_15.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_15.ngc	Two_Level_Branch_Predictor_Glue_15.prj
-target_dep	Two_Level_Branch_Predictor_Glue_15.prj	Two_Level_Branch_Predictor_Glue_15_Pack.vhdl Two_Level_Branch_Predictor_Glue_15.vhdl
-
-# Two_Level_Branch_Predictor_Glue_16
-target_dep	all	Two_Level_Branch_Predictor_Glue_16.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_16.ngc	Two_Level_Branch_Predictor_Glue_16.prj
-target_dep	Two_Level_Branch_Predictor_Glue_16.prj	Two_Level_Branch_Predictor_Glue_16_Pack.vhdl Two_Level_Branch_Predictor_Glue_16.vhdl
-
-# Two_Level_Branch_Predictor_Glue_17
-target_dep	all	Two_Level_Branch_Predictor_Glue_17.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_17.ngc	Two_Level_Branch_Predictor_Glue_17.prj
-target_dep	Two_Level_Branch_Predictor_Glue_17.prj	Two_Level_Branch_Predictor_Glue_17_Pack.vhdl Two_Level_Branch_Predictor_Glue_17.vhdl
-
-# Two_Level_Branch_Predictor_Glue_18
-target_dep	all	Two_Level_Branch_Predictor_Glue_18.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_18.ngc	Two_Level_Branch_Predictor_Glue_18.prj
-target_dep	Two_Level_Branch_Predictor_Glue_18.prj	Two_Level_Branch_Predictor_Glue_18_Pack.vhdl Two_Level_Branch_Predictor_Glue_18.vhdl
-
-# Two_Level_Branch_Predictor_Glue_19
-target_dep	all	Two_Level_Branch_Predictor_Glue_19.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_19.ngc	Two_Level_Branch_Predictor_Glue_19.prj
-target_dep	Two_Level_Branch_Predictor_Glue_19.prj	Two_Level_Branch_Predictor_Glue_19_Pack.vhdl Two_Level_Branch_Predictor_Glue_19.vhdl
-
-# Two_Level_Branch_Predictor_Glue_1
-target_dep	all	Two_Level_Branch_Predictor_Glue_1.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_1.ngc	Two_Level_Branch_Predictor_Glue_1.prj
-target_dep	Two_Level_Branch_Predictor_Glue_1.prj	Two_Level_Branch_Predictor_Glue_10_Pack.vhdl Two_Level_Branch_Predictor_Glue_10.vhdl Two_Level_Branch_Predictor_Glue_11_Pack.vhdl Two_Level_Branch_Predictor_Glue_11.vhdl Two_Level_Branch_Predictor_Glue_12_Pack.vhdl Two_Level_Branch_Predictor_Glue_12.vhdl Two_Level_Branch_Predictor_Glue_13_Pack.vhdl Two_Level_Branch_Predictor_Glue_13.vhdl Two_Level_Branch_Predictor_Glue_14_Pack.vhdl Two_Level_Branch_Predictor_Glue_14.vhdl Two_Level_Branch_Predictor_Glue_15_Pack.vhdl Two_Level_Branch_Predictor_Glue_15.vhdl Two_Level_Branch_Predictor_Glue_16_Pack.vhdl Two_Level_Branch_Predictor_Glue_16.vhdl Two_Level_Branch_Predictor_Glue_17_Pack.vhdl Two_Level_Branch_Predictor_Glue_17.vhdl Two_Level_Branch_Predictor_Glue_18_Pack.vhdl Two_Level_Branch_Predictor_Glue_18.vhdl Two_Level_Branch_Predictor_Glue_19_Pack.vhdl Two_Level_Branch_Predictor_Glue_19.vhdl Two_Level_Branch_Predictor_Glue_1_Pack.vhdl Two_Level_Branch_Predictor_Glue_1.vhdl
-
-# Two_Level_Branch_Predictor_Glue_20
-target_dep	all	Two_Level_Branch_Predictor_Glue_20.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_20.ngc	Two_Level_Branch_Predictor_Glue_20.prj
-target_dep	Two_Level_Branch_Predictor_Glue_20.prj	Two_Level_Branch_Predictor_Glue_20_Pack.vhdl Two_Level_Branch_Predictor_Glue_20.vhdl
-
-# Two_Level_Branch_Predictor_Glue_21
-target_dep	all	Two_Level_Branch_Predictor_Glue_21.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_21.ngc	Two_Level_Branch_Predictor_Glue_21.prj
-target_dep	Two_Level_Branch_Predictor_Glue_21.prj	Two_Level_Branch_Predictor_Glue_21_Pack.vhdl Two_Level_Branch_Predictor_Glue_21.vhdl
-
-# Two_Level_Branch_Predictor_Glue_22
-target_dep	all	Two_Level_Branch_Predictor_Glue_22.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_22.ngc	Two_Level_Branch_Predictor_Glue_22.prj
-target_dep	Two_Level_Branch_Predictor_Glue_22.prj	Two_Level_Branch_Predictor_Glue_22_Pack.vhdl Two_Level_Branch_Predictor_Glue_22.vhdl
-
-# Two_Level_Branch_Predictor_Glue_23
-target_dep	all	Two_Level_Branch_Predictor_Glue_23.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_23.ngc	Two_Level_Branch_Predictor_Glue_23.prj
-target_dep	Two_Level_Branch_Predictor_Glue_23.prj	Two_Level_Branch_Predictor_Glue_23_Pack.vhdl Two_Level_Branch_Predictor_Glue_23.vhdl
-
-# Two_Level_Branch_Predictor_Glue_2
-target_dep	all	Two_Level_Branch_Predictor_Glue_2.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_2.ngc	Two_Level_Branch_Predictor_Glue_2.prj
-target_dep	Two_Level_Branch_Predictor_Glue_2.prj	Two_Level_Branch_Predictor_Glue_20_Pack.vhdl Two_Level_Branch_Predictor_Glue_20.vhdl Two_Level_Branch_Predictor_Glue_21_Pack.vhdl Two_Level_Branch_Predictor_Glue_21.vhdl Two_Level_Branch_Predictor_Glue_22_Pack.vhdl Two_Level_Branch_Predictor_Glue_22.vhdl Two_Level_Branch_Predictor_Glue_23_Pack.vhdl Two_Level_Branch_Predictor_Glue_23.vhdl Two_Level_Branch_Predictor_Glue_2_Pack.vhdl Two_Level_Branch_Predictor_Glue_2.vhdl
-
-# Two_Level_Branch_Predictor_Glue_3
-target_dep	all	Two_Level_Branch_Predictor_Glue_3.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_3.ngc	Two_Level_Branch_Predictor_Glue_3.prj
-target_dep	Two_Level_Branch_Predictor_Glue_3.prj	Two_Level_Branch_Predictor_Glue_3_Pack.vhdl Two_Level_Branch_Predictor_Glue_3.vhdl
-
-# Two_Level_Branch_Predictor_Glue_4
-target_dep	all	Two_Level_Branch_Predictor_Glue_4.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_4.ngc	Two_Level_Branch_Predictor_Glue_4.prj
-target_dep	Two_Level_Branch_Predictor_Glue_4.prj	Two_Level_Branch_Predictor_Glue_4_Pack.vhdl Two_Level_Branch_Predictor_Glue_4.vhdl
-
-# Two_Level_Branch_Predictor_Glue_5
-target_dep	all	Two_Level_Branch_Predictor_Glue_5.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_5.ngc	Two_Level_Branch_Predictor_Glue_5.prj
-target_dep	Two_Level_Branch_Predictor_Glue_5.prj	Two_Level_Branch_Predictor_Glue_5_Pack.vhdl Two_Level_Branch_Predictor_Glue_5.vhdl
-
-# Two_Level_Branch_Predictor_Glue_6
-target_dep	all	Two_Level_Branch_Predictor_Glue_6.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_6.ngc	Two_Level_Branch_Predictor_Glue_6.prj
-target_dep	Two_Level_Branch_Predictor_Glue_6.prj	Two_Level_Branch_Predictor_Glue_6_Pack.vhdl Two_Level_Branch_Predictor_Glue_6.vhdl
-
-# Two_Level_Branch_Predictor_Glue_7
-target_dep	all	Two_Level_Branch_Predictor_Glue_7.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_7.ngc	Two_Level_Branch_Predictor_Glue_7.prj
-target_dep	Two_Level_Branch_Predictor_Glue_7.prj	Two_Level_Branch_Predictor_Glue_7_Pack.vhdl Two_Level_Branch_Predictor_Glue_7.vhdl
-
-# Two_Level_Branch_Predictor_Glue_8
-target_dep	all	Two_Level_Branch_Predictor_Glue_8.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_8.ngc	Two_Level_Branch_Predictor_Glue_8.prj
-target_dep	Two_Level_Branch_Predictor_Glue_8.prj	Two_Level_Branch_Predictor_Glue_8_Pack.vhdl Two_Level_Branch_Predictor_Glue_8.vhdl
-
-# Two_Level_Branch_Predictor_Glue_9
-target_dep	all	Two_Level_Branch_Predictor_Glue_9.ngc
-target_dep	Two_Level_Branch_Predictor_Glue_9.ngc	Two_Level_Branch_Predictor_Glue_9.prj
-target_dep	Two_Level_Branch_Predictor_Glue_9.prj	Two_Level_Branch_Predictor_Glue_9_Pack.vhdl Two_Level_Branch_Predictor_Glue_9.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h	(revision 15)
@@ -70,5 +70,5 @@
     // Interface
   public    : SC_CLOCK                      *  in_CLOCK                      ;
-
+  public    : SC_IN (Tcontrol_t)            *  in_NRESET                     ;
     // Interface Predict
   public    : SC_IN (Tcontrol_t)           **  in_PREDICT_VAL                ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_allocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_allocation.cpp	(revision 15)
@@ -23,4 +23,5 @@
 
      in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
+     in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
 
      in_PREDICT_VAL                 = new SC_IN (Tcontrol_t)     * [_param._nb_prediction     ];
@@ -161,5 +162,6 @@
 	
 	// Instantiation
-	(*(component_Branch_History_Table->in_CLOCK))        (*(in_CLOCK));
+	(*(component_Branch_History_Table->in_CLOCK ))        (*(in_CLOCK ));
+	(*(component_Branch_History_Table->in_NRESET))        (*(in_NRESET));
 
 	for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -196,4 +198,5 @@
 	// Instantiation
 	(*(component_Pattern_History_Table->in_CLOCK))        (*(in_CLOCK));
+	(*(component_Pattern_History_Table->in_NRESET))       (*(in_NRESET));
 	
 	for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_deallocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_deallocation.cpp	(revision 15)
@@ -21,4 +21,5 @@
 
     delete in_CLOCK;
+    delete in_NRESET;
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_body.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_body.cpp	(revision 15)
@@ -27,5 +27,6 @@
 	list_port_map.clear();
 
-	vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+	vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK ");
+	vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
 
 	for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -53,5 +54,6 @@
 	list_port_map.clear();
 
-	vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+	vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK ");
+	vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
 
 	for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_port.cpp	(revision 15)
@@ -20,5 +20,6 @@
     log_printf(FUNC,Two_Level_Branch_Predictor,"vhdl_port","Begin");
 
-    vhdl.set_port (" in_CLOCK" , IN, 1);
+    vhdl.set_port (" in_CLOCK ", IN, 1);
+    vhdl.set_port (" in_NRESET", IN, 1);
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_port.cpp	(revision 15)
@@ -20,4 +20,6 @@
   {
     log_printf(FUNC,Two_Level_Branch_Predictor,"vhdl_testbench_port","Begin");
+
+    _vhdl_testbench->set_port (" in_NRESET", IN, 1);
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_transition.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_transition.cpp	(revision 15)
@@ -25,4 +25,6 @@
 #endif    
 
+    _vhdl_testbench->add_input (PORT_READ( in_NRESET));
+    
     // In order with file Two_Level_Branch_Predictor_vhdl_testbench_port.cpp
     // Warning : if a output depend of a subcomponent, take directly the port of subcomponent
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/include/Meta_Predictor.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/include/Meta_Predictor.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/include/Meta_Predictor.h	(revision 15)
@@ -68,4 +68,5 @@
     // Interface
   public    : SC_CLOCK                      *  in_CLOCK        ;
+  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
 
     // Interface Predict
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_allocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_allocation.cpp	(revision 15)
@@ -23,4 +23,5 @@
 
     in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
+    in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
 
      in_PREDICT_VAL                 = new SC_IN (Tcontrol_t)     * [_param._nb_prediction     ];
@@ -235,6 +236,8 @@
     
     // Instantiation
-    (*(component_Meta_Predictor_Glue->in_CLOCK))        (*(in_CLOCK));
-    
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    (*(component_Meta_Predictor_Glue->in_CLOCK ))        (*(in_CLOCK ));
+#endif
+   
         // Interface Predict
     for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -317,5 +320,6 @@
       
     // Instantiation
-    (*(component_Two_Level_Branch_Predictor_2->in_CLOCK))        (*(in_CLOCK));
+    (*(component_Two_Level_Branch_Predictor_2->in_CLOCK ))        (*(in_CLOCK ));
+    (*(component_Two_Level_Branch_Predictor_2->in_NRESET))        (*(in_NRESET));
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -363,5 +367,6 @@
       
     // Instantiation
-    (*(component_Two_Level_Branch_Predictor_1->in_CLOCK))        (*(in_CLOCK));
+    (*(component_Two_Level_Branch_Predictor_1->in_CLOCK ))        (*(in_CLOCK ));
+    (*(component_Two_Level_Branch_Predictor_1->in_NRESET))        (*(in_NRESET));
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -401,5 +406,6 @@
       
     // Instantiation
-    (*(component_Two_Level_Branch_Predictor_0->in_CLOCK))        (*(in_CLOCK));
+    (*(component_Two_Level_Branch_Predictor_0->in_CLOCK ))        (*(in_CLOCK ));
+    (*(component_Two_Level_Branch_Predictor_0->in_NRESET))        (*(in_NRESET));
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_deallocation.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_deallocation.cpp	(revision 15)
@@ -20,4 +20,5 @@
 
     delete in_CLOCK;
+    delete in_NRESET;
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_body.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_body.cpp	(revision 15)
@@ -105,5 +105,6 @@
     
     // Instantiation
-    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK ");
+    vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -146,5 +147,6 @@
     
     // Instantiation
-    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK ");
+    vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
@@ -179,5 +181,6 @@
     
     // Instantiation
-    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK");
+    vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK ");
+    vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET");
     
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_port.cpp	(revision 15)
@@ -20,5 +20,6 @@
     log_printf(FUNC,Meta_Predictor,"vhdl_port","Begin");
 
-    vhdl.set_port (" in_CLOCK" , IN, 1);
+    vhdl.set_port (" in_CLOCK ", IN, 1);
+    vhdl.set_port (" in_NRESET", IN, 1);
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_port.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_port.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_port.cpp	(revision 15)
@@ -19,4 +19,6 @@
   {
     log_printf(FUNC,Meta_Predictor,"vhdl_testbench_port","Begin");
+
+    _vhdl_testbench->set_port (" in_NRESET", IN, 1);
 
     for (uint32_t i=0; i<_param._nb_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_transition.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_transition.cpp	(revision 15)
@@ -26,4 +26,6 @@
     // 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_prediction; i++)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h	(revision 15)
@@ -2,21 +2,28 @@
 #define DEBUG_COMPONENT_H
 
-#define DEBUG_Behavioural                                 false
-
-// Behavioural/Generic/
-#define DEBUG_Counter                                     false 
-#define DEBUG_Group                                       false
-#define DEBUG_Register_File                               false 
-#define DEBUG_Shifter                                     false
-// Behavioural/Generic/Select/
-#define DEBUG_Pseudo_LRU                                  false
-// Behavioural/Stage_1_Ifetch/
-// Behavioural/Stage_1_Ifetch/Predictor/
-// Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/
-#define DEBUG_Two_Level_Branch_Predictor                  false
-// Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/
-#define DEBUG_Two_Level_Branch_Predictor_Glue             false 
-#define DEBUG_Branch_History_Table                        false
-#define DEBUG_Pattern_History_Table                       false
+#define DEBUG_Behavioural                                   false
+#define   DEBUG_Generic                                     false
+#define     DEBUG_Counter                                   false 
+#define     DEBUG_Group                                     false
+#define     DEBUG_Shifter                                   false
+#define     DEBUG_Register_File                             false 
+#define     DEBUG_RegisterFile_Multi_Banked                 true
+#define       DEBUG_RegisterFile_Multi_Banked_Glue          true
+#define     DEBUG_Select                                    false
+#define       DEBUG_Select_Priority_Fixed                   true 
+#define     DEBUG_Victim                                    false
+#define       DEBUG_Victim_Pseudo_LRU                       false
+#define   DEBUG_Stage_1_Ifetch                              false
+#define     DEBUG_Predictor                                 false
+#define       DEBUG_Meta_Predictor                          false
+#define         DEBUG_Meta_Predictor_Glue                   false
+#define           DEBUG_Two_Level_Branch_Predictor          false
+#define             DEBUG_Two_Level_Branch_Predictor_Glue   false 
+#define             DEBUG_Branch_History_Table              false
+#define             DEBUG_Pattern_History_Table             false
+#define   DEBUG_Stage_5_Execute                             false
+#define     DEBUG_Execution_cluster                         false
+#define       DEBUG_Execution_group                         false
+#define         DEBUG_Execution_unit                        false
 
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h	(revision 15)
@@ -27,8 +27,4 @@
   {
     // -----[ fields ]----------------------------------------------------
-    // Constant
-  public   : const uint32_t _size_condition;
-  public   : const uint32_t _size_instruction;
-  public   : const uint32_t _size_instruction_log2;
 
     // -----[ methods ]---------------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info	(revision 15)
@@ -15,12 +15,16 @@
 
 # build src directory content
-target_dep		all		Generic/Counter/SelfTest
+#target_dep		all		Generic/Counter/SelfTest
 target_dep		all		Generic/RegisterFile/SelfTest
-target_dep		all		Generic/Shifter/SelfTest
-target_dep		all		Generic/Select/Pseudo_LRU/SelfTest
-target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest
-target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest
-target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest
-target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest
+#target_dep		all		Generic/Shifter/SelfTest
+target_dep		all		Generic/Select/Priority_Fixed/SelfTest
+#target_dep		all		Generic/Victim/Pseudo_LRU/SelfTest
+#target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest
+#target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Meta_Predictor_Glue/SelfTest
+#target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest
+#target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest
+#target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest
+#target_dep		all		Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest
+#target_dep		all		Stage_5_Execute/Execution_cluster/Execution_group/Execution_unit/SelfTest
 
 # mkf include path
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Parameters.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Parameters.cpp	(revision 15)
@@ -11,8 +11,5 @@
 namespace behavioural          {
 
-  Parameters::Parameters  (void) :
-    _size_condition        ( 3),
-    _size_instruction      (32) ,
-    _size_instruction_log2 (static_cast<uint32_t>(ceil(log2(_size_instruction))))
+  Parameters::Parameters  (void)
   {
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_generate_file_model.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_generate_file_model.cpp	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_generate_file_model.cpp	(revision 15)
@@ -23,9 +23,9 @@
     
     log_printf(TRACE,Behavioural,"generate_file_model","print %s",filename.c_str());
-
     cout << "Generate file \""<< filename << "\"" << endl;
 
     log_printf(TRACE,Behavioural,"generate_file_model","declaration");
     ofstream file;
+
     log_printf(TRACE,Behavioural,"generate_file_model","open file");
     file.open(filename.c_str(),ios::out | ios::trunc);
@@ -33,5 +33,4 @@
     log_printf(TRACE,Behavioural,"generate_file_model","get model");
     file << get_model (0,filename,_name,"behavioural");
-
     file.close();
 
Index: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Graph/simulation_occupation.dat
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Graph/simulation_occupation.dat	(revision 14)
+++ 	(revision )
@@ -1,13 +1,0 @@
-1.46 # x4-1\_1\_4-8
-2.37 # x4-1\_2\_2-8
-2.37 # x4-1\_2\_2-4
-2.94 # x4-1\_4\_1-8
-3.27 # x4-1\_4\_1-2
-2.51 # x4-2\_1\_2-8
-2.4  # x4-2\_1\_2-4
-3.38 # x4-2\_2\_1-8
-3.41 # x4-2\_2\_1-4
-3.63 # x4-2\_2\_1-2
-3.94 # x4-4\_1\_1-8
-3.88 # x4-4\_1\_1-4
-3.92 # x4-4\_1\_1-2 
Index: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Graph/simulation_occupation.p
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Graph/simulation_occupation.p	(revision 14)
+++ 	(revision )
@@ -1,34 +1,0 @@
-set size 1.0, 1.0
-set terminal postscript eps enhanced color
-
-set out "../Schema_eps/simulation_all.eps"
-
-unset label
-unset log
-
-set data style boxes
-set boxwidth 0.5
-set style fill solid 1.000000 border -1
-
-set grid
-set xlabel "Architecture"
-set ylabel "Speed Up MT/ST"
-set yrange [0:4]
-   
-set xtics rotate by -25 ('x4-1\_1\_4-8'  0 , \
-			 'x4-1\_2\_2-8'  1 , \
-			 'x4-1\_2\_2-4'  2 , \
-			 'x4-1\_4\_1-8'  3 , \
-			 'x4-1\_4\_1-2'  4 , \
-			 'x4-2\_1\_2-8'  5 , \
-			 'x4-2\_1\_2-4'  6 , \
-			 'x4-2\_2\_1-8'  7 , \
-			 'x4-2\_2\_1-4'  8 , \
-			 'x4-2\_2\_1-2'  9 , \
-			 'x4-4\_1\_1-8'  10, \
-			 'x4-4\_1\_1-4'  11, \
-			 'x4-4\_1\_1-2'  12  \
-			 )			   
-
-plot "simulation_all.dat" notitle
-     
Index: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/MORPHEO_component-prediction_unit-Alpha_21264.fig
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/MORPHEO_component-prediction_unit-Alpha_21264.fig	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/MORPHEO_component-prediction_unit-Alpha_21264.fig	(revision 15)
@@ -0,0 +1,117 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3450 2100 4050 2100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3450 2400 4050 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 2700 4650 2700
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 3000 4650 3000
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 3300 5250 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 3600 5250 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 3900 4650 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 4200 5250 4200
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 4500 5250 4500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 3900 4650 4500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 3600 4650 3000
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4050 3900 4050 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3450 4800 4050 4800
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 5100 4650 5100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 5400 4650 5400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 5700 5250 5700
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 6000 5250 6000
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 6300 4650 6300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 6600 5250 6600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 6900 5250 6900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 6300 4650 6900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 6000 4650 5400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4050 6300 4050 4800
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3450 7200 4050 7200
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 7500 4650 7500
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 8100 5250 8100
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4650 8400 5250 8400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 8400 4650 7800
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4050 7800 4050 7200
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 7800 4650 7800
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3450 7200 3450 1800
+4 0 0 50 -1 -1 10 0.0000 4 150 1365 4200 2100 Meta_Predictor_Glue\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1410 4800 3000 Branch_History_Table\001
+4 0 0 50 -1 -1 10 0.0000 4 105 435 5400 3300 Shifter\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1575 5400 3600 RegisterFile_Monolithic\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1455 4800 3900 Pattern_History_Table\001
+4 0 0 50 -1 -1 10 0.0000 4 105 510 5400 4200 Counter\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1575 5400 4500 RegisterFile_Monolithic\001
+4 0 0 50 -1 -1 10 0.0000 4 150 2235 4800 2700 Two_Level_Branch_Predictor_Glue\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1410 4800 5400 Branch_History_Table\001
+4 0 0 50 -1 -1 10 0.0000 4 105 435 5400 5700 Shifter\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1575 5400 6000 RegisterFile_Monolithic\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1455 4800 6300 Pattern_History_Table\001
+4 0 0 50 -1 -1 10 0.0000 4 105 510 5400 6600 Counter\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1575 5400 6900 RegisterFile_Monolithic\001
+4 0 0 50 -1 -1 10 0.0000 4 150 2235 4800 5100 Two_Level_Branch_Predictor_Glue\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1575 5400 8400 RegisterFile_Monolithic\001
+4 0 0 50 -1 -1 10 0.0000 4 150 2235 4800 7500 Two_Level_Branch_Predictor_Glue\001
+4 0 0 50 -1 -1 10 0.0000 4 105 510 5400 8100 Counter\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1455 4800 7800 Pattern_History_Table\001
+4 0 0 50 -1 -1 10 0.0000 4 150 990 3600 1800 Meta_Predictor\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1860 4200 4800 Two_Level_Branch_Predictor\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1860 4200 2400 Two_Level_Branch_Predictor\001
+4 0 0 50 -1 -1 10 0.0000 4 135 2700 3600 1500 Predicteur de branchement de l'Alpha 21264\001
+4 0 0 50 -1 -1 10 0.0000 4 150 1860 4200 7200 Two_Level_Branch_Predictor\001
Index: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/MORPHEO_service.fig
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/MORPHEO_service.fig	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/MORPHEO_service.fig	(revision 15)
@@ -0,0 +1,96 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 4950 4050 5850 4500
+2 4 0 1 0 20 50 -1 20 0.000 0 0 7 0 0 5
+	 5850 4050 5850 4500 4950 4500 4950 4050 5850 4050
+4 1 0 50 -1 -1 10 0.0000 4 135 555 5400 4275 SystemC\001
+-6
+6 3675 4050 4725 4650
+5 1 0 1 0 2 50 -1 20 0.000 0 1 0 0 3975.000 4200.000 3750 4500 3975 4575 4200 4500
+5 1 0 1 0 2 49 -1 40 0.000 0 0 0 0 4425.000 4800.000 4200 4500 4425 4425 4650 4500
+2 1 0 1 0 2 50 -1 20 0.000 0 0 7 0 0 4
+	 3750 4500 3750 4050 4650 4050 4650 4500
+-6
+6 4275 5100 5325 5700
+5 1 0 1 0 2 50 -1 20 0.000 0 1 0 0 4575.000 5250.000 4350 5550 4575 5625 4800 5550
+5 1 0 1 0 2 49 -1 40 0.000 0 0 0 0 5025.000 5850.000 4800 5550 5025 5475 5250 5550
+2 1 0 1 0 2 50 -1 20 0.000 0 0 7 0 0 4
+	 4350 5550 4350 5100 5250 5100 5250 5550
+-6
+6 5475 5100 6525 5700
+5 1 0 1 0 2 49 -1 40 0.000 0 0 0 0 6225.000 5850.000 6000 5550 6225 5475 6450 5550
+5 1 0 1 0 31 50 -1 20 0.000 0 1 0 0 5775.000 5250.000 5550 5550 5775 5625 6000 5550
+2 1 0 1 0 31 50 -1 20 0.000 0 0 7 0 0 4
+	 5550 5550 5550 5100 6450 5100 6450 5550
+-6
+6 6075 4050 7125 4650
+5 1 0 1 0 2 49 -1 40 0.000 0 0 0 0 6825.000 4800.000 6600 4500 6825 4425 7050 4500
+5 1 0 1 0 31 50 -1 20 0.000 0 1 0 0 6375.000 4200.000 6150 4500 6375 4575 6600 4500
+2 1 0 1 0 31 50 -1 20 0.000 0 0 7 0 0 4
+	 6150 4500 6150 4050 7050 4050 7050 4500
+-6
+6 4275 1950 5325 2550
+5 1 0 1 0 2 49 -1 40 0.000 0 0 0 0 5025.000 2700.000 4800 2400 5025 2325 5250 2400
+5 1 0 1 0 29 50 -1 20 0.000 0 1 0 0 4575.000 2100.000 4350 2400 4575 2475 4800 2400
+2 1 0 1 0 29 50 -1 20 0.000 0 0 7 0 0 4
+	 4350 2400 4350 1950 5250 1950 5250 2400
+-6
+6 5475 1950 6525 2550
+5 1 0 1 0 2 49 -1 40 0.000 0 0 0 0 6225.000 2700.000 6000 2400 6225 2325 6450 2400
+5 1 0 1 0 29 50 -1 20 0.000 0 1 0 0 5775.000 2100.000 5550 2400 5775 2475 6000 2400
+2 1 0 1 0 29 50 -1 20 0.000 0 0 7 0 0 4
+	 5550 2400 5550 1950 6450 1950 6450 2400
+-6
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5400 3450 5400 4050
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5700 3450 6600 4050
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5100 3450 4200 4050
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5400 4500 6000 5100
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5400 4500 4800 5100
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4800 2400 5100 3000
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 6000 2400 5700 3000
+2 4 0 1 0 11 50 -1 20 0.000 0 0 7 0 0 5
+	 7950 3450 7950 3000 7050 3000 7050 3450 7950 3450
+2 4 0 1 0 11 50 -1 20 0.000 0 0 7 0 0 5
+	 5850 3450 5850 3000 4950 3000 4950 3450 5850 3450
+2 1 0 1 0 26 50 -1 -1 0.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 7500 3450 6600 4050
+2 1 0 1 0 29 50 -1 -1 0.000 0 0 -1 1 0 4
+	3 0 1.00 60.00 120.00
+	 7350 3000 7350 1650 6000 1650 6000 1950
+2 1 0 1 0 29 50 -1 -1 0.000 0 0 -1 1 0 4
+	3 0 1.00 60.00 120.00
+	 4800 1950 4800 1350 7650 1350 7650 3000
+4 1 0 50 -1 -1 10 0.0000 4 135 570 5400 3225 Morpheo\001
+4 1 0 50 -1 -1 10 0.0000 4 105 435 4200 4275 VHDL\001
+4 1 0 50 -1 -1 10 0.0000 4 105 435 4800 5475 VHDL\001
+4 1 0 50 -1 -1 10 0.0000 4 105 630 4800 5250 TestBench\001
+4 1 0 50 -1 -1 10 0.0000 4 105 585 6000 5325 Statistics\001
+4 1 0 50 -1 -1 10 0.0000 4 105 585 6600 4200 Positions\001
+4 1 0 50 -1 -1 10 0.0000 4 105 255 6600 4425 .pos\001
+4 1 0 50 -1 -1 10 0.0000 4 135 240 6000 2325 .cfg\001
+4 1 0 50 -1 -1 10 0.0000 4 105 255 4800 2325 .gen\001
+4 1 0 50 -1 -1 10 0.0000 4 120 675 4800 2100 G\351n\351rateur\001
+4 1 0 50 -1 -1 10 0.0000 4 135 885 6000 2100 Configuration\001
+4 1 0 50 -1 -1 10 0.0000 4 105 465 7500 3225 Viewer\001
Index: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/VIEWER_overview.fig
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/VIEWER_overview.fig	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Schema/VIEWER_overview.fig	(revision 15)
@@ -0,0 +1,123 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+0 32 #636363
+0 33 #cdcdcd
+0 34 #6c6c6c
+0 35 #c6b797
+0 36 #eff8ff
+0 37 #dccba6
+0 38 #e0e0e0
+0 39 #8e8f8e
+0 40 #aaaaaa
+0 41 #555555
+0 42 #404040
+0 43 #808080
+0 44 #c0c0c0
+0 45 #8e8e8e
+0 46 #d7d7d7
+0 47 #aeaeae
+0 48 #bebebe
+0 49 #515151
+0 50 #e7e3e7
+0 51 #000049
+0 52 #797979
+0 53 #303430
+0 54 #414141
+0 55 #c7b696
+0 56 #414541
+0 57 #444444
+0 58 #c9c9c9
+0 59 #dfd8df
+0 60 #f7f3f7
+6 4350 5100 6450 5400
+2 2 0 1 0 11 50 -1 20 0.000 0 0 -1 0 0 5
+	 4350 5100 6450 5100 6450 5400 4350 5400 4350 5100
+4 1 0 50 -1 -1 10 0.0000 4 105 555 5400 5250 Interface\001
+-6
+6 4350 4500 6450 4800
+2 2 0 1 0 26 50 -1 20 0.000 0 0 -1 0 0 5
+	 4350 4500 6450 4500 6450 4800 4350 4800 4350 4500
+4 1 0 50 -1 -1 10 0.0000 4 105 555 5400 4650 Interface\001
+-6
+6 4350 2100 6450 4200
+2 4 0 1 0 26 50 -1 20 0.000 0 0 7 0 0 5
+	 5250 3450 5250 3000 4350 3000 4350 3450 5250 3450
+2 4 0 1 0 26 50 -1 20 0.000 0 0 7 0 0 5
+	 6450 3450 6450 3000 5550 3000 5550 3450 6450 3450
+2 1 0 1 0 26 50 -1 20 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4500 2400 4500 3000
+2 1 0 1 0 26 50 -1 20 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4800 2400 4800 3000
+2 1 0 1 0 26 50 -1 20 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5400 2400 5100 3000
+2 1 0 1 0 26 50 -1 20 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 6000 3000 5400 2400
+2 1 0 1 0 26 50 -1 20 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4800 3450 4800 3750
+2 1 0 1 0 26 50 -1 20 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 6000 3750 6000 3450
+2 4 0 1 0 26 50 -1 20 0.000 0 0 7 0 0 5
+	 6450 4200 6450 3750 4350 3750 4350 4200 6450 4200
+4 1 0 50 -1 -1 10 0.0000 4 105 300 4800 3225 Read\001
+4 1 0 50 -1 -1 10 0.0000 4 105 375 6000 3225 Write\001
+4 1 0 50 -1 -1 10 0.0000 4 105 255 4500 2250 .gen\001
+4 1 0 50 -1 -1 10 0.0000 4 105 255 4800 2250 .pos\001
+4 1 0 50 -1 -1 10 0.0000 4 135 240 5400 2250 .cfg\001
+4 1 0 50 -1 -1 10 0.0000 4 105 585 5400 3975 Data Base\001
+-6
+2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 6750 4950 4050 4950
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 5400 4500 5400 4200
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 5400 5100 5400 4800
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 5400 5700 5400 5400
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 4275 5700 4650 5400
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 6150 5400 6525 5700
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 5400 6750 5400 6150
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 6525 6150 5550 6750
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2
+	3 0 1.00 60.00 120.00
+	3 0 1.00 60.00 120.00
+	 5250 6750 4275 6150
+2 4 0 1 0 11 50 -1 20 3.000 0 0 7 0 0 5
+	 3825 6150 3825 5700 4725 5700 4725 6150 3825 6150
+2 4 0 1 0 11 50 -1 20 3.000 0 0 7 0 0 5
+	 4950 6150 4950 5700 5850 5700 5850 6150 4950 6150
+2 4 0 1 0 11 50 -1 20 3.000 0 0 7 0 0 5
+	 6075 6150 6075 5700 6975 5700 6975 6150 6075 6150
+4 1 0 50 -1 -1 10 0.0000 4 105 765 6525 5925 Information\001
+4 1 0 50 -1 -1 10 0.0000 4 120 690 5400 5925 Param\350tres\001
+4 1 0 50 -1 -1 10 0.0000 4 135 630 4275 5925 Graphique\001
+4 1 0 50 -1 -1 10 0.0000 4 105 765 5400 6900 Utilisateurs\001
Index: trunk/IPs/systemC/processor/Morpheo/Include/Debug.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Include/Debug.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Include/Debug.h	(revision 15)
@@ -9,4 +9,11 @@
 #include <string>
 using namespace std;
+
+// Debug's Level :
+//  * None    : print elementary information
+//  * Info    : print basic information
+//  * Trace   : trace internal variable
+//  * Func    : trace call and return function
+//  * All     : print all information
 
 enum _debug_verbosity 
@@ -21,40 +28,40 @@
 #ifdef DEBUG
 //Debug
-/*
-#  define log_printf(level, component, str... )                                       \
-do                                                                                    \
-{                                                                                     \
-    if ( ( DEBUG_ ## level     <= DEBUG) and                                          \
-         ( DEBUG_ ## component == true ) )                                            \
-      {                                                                               \
-        fprintf(stdout,"<%s> line %d : ",__FILE__,__LINE__);                          \
-        fprintf(stdout,str);                                                          \
-        fprintf(stdout,"\n");                                                         \
-      }                                                                               \
-} while(0)								            
-*/			
-					            
-#  define log_printf(level, component, func, str... )                                 \
-do                                                                                    \
-{                                                                                     \
-    if ( ( DEBUG_ ## level     <= DEBUG) and                                          \
-         ( DEBUG_ ## component == true ) )                                            \
-      {                                                                               \
-        fprintf(stdout,"In file %s, ",__FILE__);                                      \
-        fprintf(stdout,"at line %d, ",__LINE__);                                      \
-        fprintf(stdout,"in function \"%s\" : ",func);                                 \
-        fprintf(stdout,str);                                                          \
-        fprintf(stdout,"\n");                                                         \
-      }                                                                               \
+
+#  define log_printf(level, component, func, str... )                   \
+do                                                                      \
+{                                                                       \
+    if ( (DEBUG == DEBUG_ALL) or                                        \
+         (( DEBUG_ ## level     <= DEBUG) and                           \
+          ( DEBUG_ ## component == true )) )                            \
+      {                                                                 \
+        if (DEBUG >= DEBUG_ALL )                                        \
+          {                                                             \
+            switch (DEBUG_ ## level)                                    \
+            {                                                           \
+	    case DEBUG_NONE  : fprintf(stdout,"(none       ) "); break; \
+	    case DEBUG_INFO  : fprintf(stdout,"(information) "); break; \
+	    case DEBUG_TRACE : fprintf(stdout,"(trace      ) "); break; \
+	    case DEBUG_FUNC  : fprintf(stdout,"(function   ) "); break; \
+	    case DEBUG_ALL   : fprintf(stdout,"(all        ) "); break; \
+	    default          : fprintf(stdout,"(undefine   ) "); break; \
+	    }                                                           \
+          }                                                             \
+        fprintf(stdout,"In file %s, ",__FILE__);                        \
+        fprintf(stdout,"at line %d, ",__LINE__);                        \
+        if (DEBUG >= DEBUG_FUNC)                                        \
+          {                                                             \
+            fprintf(stdout,"in function \"%s\" ",func);                 \
+          }                                                             \
+        fprintf(stdout,": ");                                           \
+        fprintf(stdout,str);                                            \
+        fprintf(stdout,"\n");                                           \
+        fflush (stdout);                                                \
+      }                                                                 \
 } while(0)
 
 #else
 // No debug
-/*
-#  define log_printf(level, component, str... )                                       \
-do                                                                                    \
-{                                                                                     \
-} while(0)									      
-*/									      
+
 #  define log_printf(level, component, func, str... )                                 \
 do                                                                                    \
Index: trunk/IPs/systemC/processor/Morpheo/Include/FromString.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Include/FromString.h	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Include/FromString.h	(revision 15)
@@ -0,0 +1,31 @@
+#ifndef morpheo_fromstring
+#define morpheo_fromstring
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+// #include <iosfwd>
+// #include <sstream>
+// #include <iomanip>
+#include <string>
+// #include <limits>
+
+namespace morpheo {
+  
+  template<typename T> inline T   fromString             (const std::string& x)
+  {
+    return static_cast<T>(x.c_str());
+  }
+  
+  template<>           inline int fromString<int>        (const std::string& x)
+  {
+    return atoi(x.c_str());
+  }
+  
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Include/Test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Include/Test.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Include/Test.h	(revision 15)
@@ -15,5 +15,5 @@
 void test_ko (T exp1, T exp2, char * file, uint32_t line)
 {
-  string msg = ("{"+toString(num_test)+"} : Test KO\n" +
+  string msg = ("<"+toString(num_test)+"> : Test KO\n" +
 		" * Localisation\n"                    +
 		"   - File : "+file+"\n"               +
Index: trunk/IPs/systemC/processor/Morpheo/Include/ToString.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Include/ToString.h	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Include/ToString.h	(revision 15)
@@ -1,4 +1,4 @@
-#ifndef morpheo_Tostring
-#define morpheo_Tostring
+#ifndef morpheo_tostring
+#define morpheo_tostring
 
 /*
@@ -21,5 +21,5 @@
 namespace morpheo              {
   
-  template<typename T> inline std::string toString(const T& x)
+  template<typename T> inline std::string toString             (const T& x)
   {
     ostringstream out;
@@ -28,5 +28,5 @@
   }
   
-  template<> inline std::string toString<bool>       (const bool& x)
+  template<>           inline std::string toString<bool>       (const bool& x)
   {
     ostringstream out;
@@ -36,5 +36,5 @@
   }
   
-  template<> inline std::string toString<float>      (const float& x)
+  template<>           inline std::string toString<float>      (const float& x)
   {
     const int sigdigits = std::numeric_limits<float>::digits10;
@@ -44,5 +44,5 @@
   }
   
-  template<> inline std::string toString<double>     (const double& x)
+  template<>           inline std::string toString<double>     (const double& x)
   {
     const int sigdigits = std::numeric_limits<double>::digits10;
@@ -52,5 +52,5 @@
   }
   
-  template<> inline std::string toString<long double>(const long double& x)
+  template<>           inline std::string toString<long double>(const long double& x)
   {
     const int sigdigits = std::numeric_limits<long double>::digits10;
Index: trunk/IPs/systemC/processor/Morpheo/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Makefile	(revision 14)
+++ trunk/IPs/systemC/processor/Morpheo/Makefile	(revision 15)
@@ -1,22 +1,9 @@
+include $(SOC)/Makefile.tools
+
 #-----[ Directory ]----------------------------------------------------
 DIR_LIB			= Library
-
-#-----[ Usual Commands ]-----------------------------------------------
-
-RM        		= rm
-ECHO			= echo -e
-CD                  	= cd
-LS              	= ls
-PWD                 	= `pwd`
-TEST			= test
-MAKE			= make -s
-BASENAME		= basename
-CAT			= cat
-MKDIR			= mkdir
-
-#-----[ Particular Commands ]------------------------------------------
+DIR_DOC			= Documentation/Source
 
 #-----[ Options ]------------------------------------------------------
-DIR_DOC			= Documentation/Source
 
 PREFIXE_PATH		= "."
@@ -28,4 +15,5 @@
 all			: help
 
+#~~~~~[ doc ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 doc			:
 			@$(ECHO) ""
@@ -34,4 +22,5 @@
 			@$(MAKE) -C $(DIR_DOC) view
 
+#~~~~~[ path ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 path			:
 			@$(ECHO) ""
@@ -44,5 +33,5 @@
 			@$(MAKE) path_rec TAB="|    " DIR_PATH=.
 
-path_rec			:
+path_rec		:
 			@												\
 															\
@@ -74,5 +63,5 @@
 			@$(ECHO) " Function unimplemented"
 			@$(ECHO) ""
-			@$(ECHO) " The library is generate into the directory : $(PWD)/$(DIR_LIB)"
+#			@$(ECHO) " The library is generate into the directory : $(PWD)/$(DIR_LIB)"
 
 #~~~~~[ Maintenance ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -83,22 +72,22 @@
 			@$(ECHO) ""
 			@$(ECHO) "Delete     temporary files              "$(PWD)
-			@$(MAKE) clean_rec DIR_CLEAN=.
+#			@$(MAKE) clean_rec DIR_CLEAN=.
 
 #Clean recursive
-clean_rec		:
-			@$(ECHO) "Delete     temporary files in directory $(DIR_CLEAN)"
-			@$(RM) -f $(DIR_CLEAN)/*~
-			@										\
-			if $(TEST) -f $(DIR_CLEAN)/Makefile -a "$(DIR_CLEAN)" != ".";			\
-			then 										\
-		       		($(CD) $(DIR_CLEAN); $(MAKE) clean;)                    		\
-			else										\
-				for files in `$(LS) $(DIR_CLEAN)`; do					\
-				    	if $(TEST) -d $(DIR_CLEAN)/$$files; 				\
-					then 								\
-						$(MAKE) clean_rec DIR_CLEAN=$(DIR_CLEAN)/$$files;	\
-					fi;								\
-				done;									\
-			fi;
+#clean_rec		:
+#			@$(ECHO) "Delete     temporary files in directory $(DIR_CLEAN)"
+#			@$(RM) -f $(DIR_CLEAN)/*~
+#			@										\
+#			if $(TEST) -f $(DIR_CLEAN)/Makefile -a "$(DIR_CLEAN)" != ".";			\
+#			then 										\
+#		       		($(CD) $(DIR_CLEAN); $(MAKE) clean;)                    		\
+#			else										\
+#				for files in `$(LS) $(DIR_CLEAN)`; do					\
+#				    	if $(TEST) -d $(DIR_CLEAN)/$$files; 				\
+#					then 								\
+#						$(MAKE) clean_rec DIR_CLEAN=$(DIR_CLEAN)/$$files;	\
+#					fi;								\
+#				done;									\
+#			fi;
 
 #~~~~~[ Help ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -110,10 +99,10 @@
 			@$(ECHO) " Rules              Description"
 			@$(ECHO) ""
-			@$(ECHO) " all                cf rule \"help\""
-			@$(ECHO) " clean              Delete temporary files"
-			@$(ECHO) " doc                View documentation files"
-			@$(ECHO) " lib                Generate the library to include"
-			@$(ECHO) " help               Print this message"
-			@$(ECHO) " path               Print a little description of each directory"
+			@$(ECHO) " * all              cf rule \"help\""
+			@$(ECHO) " * clean            Delete temporary files"
+			@$(ECHO) " * doc              View documentation files"
+			@$(ECHO) " * lib              Generate the library to include"
+			@$(ECHO) " * help             Print this message"
+			@$(ECHO) " * path             Print a little description of each directory"
 			@$(ECHO) ""
 
