Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,4 +1,0 @@
-Comparator
-32      32      *2      # size_data
-0       1       +1      # is_signed
-0       5       +1      # type
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,4 @@
+Comparator
+32      32      *2      # size_data
+0       1       +1      # is_signed
+0       5       +1      # type
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,3 +1,0 @@
-Counter
-2	31	*2	# size_data
-1	6	+1	# nb_port
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,3 @@
+Counter
+2	31	*2	# size_data
+1	6	+1	# nb_port
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,1 +1,0 @@
-Divider
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Divider/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,1 @@
+Divider
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,5 +1,0 @@
-Multiplier
-16       32     *2      #size_data
-0        1      +1      #sign
-6       32      *3      #latency
-1        1      +1      #delay
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Multiplier/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,5 @@
+Multiplier
+16       32     *2      #size_data
+0        1      +1      #sign
+6       32      *3      #latency
+1        1      +1      #delay
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_mono_gpr.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_mono_gpr.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Priority
-0	1	+1	# priority      
-0	1	+1	# load_balancing
-1	1	+1	# nb_grp                 
-1	16	*4	# nb_elt         [0] [nb_grp]
-1	1	+1	# nb_grp_select          
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_multi_gpr.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/config_multi_gpr.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-Priority
-0	1	+1	# priority      
-0	1	+1	# load_balancing
-4	4	+1	# nb_grp                 
-4	4	*4	# nb_elt         [0] [nb_grp]
-1	1	*4	# nb_elt         [1] [nb_grp]
-16	16	*4	# nb_elt         [2] [nb_grp]
-2	2	*4	# nb_elt         [3] [nb_grp]
-1	4	+1	# nb_grp_select          
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/configuration/config_mono_gpr.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/configuration/config_mono_gpr.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/configuration/config_mono_gpr.gen	(revision 145)
@@ -0,0 +1,6 @@
+Priority
+0	1	+1	# priority      
+0	1	+1	# load_balancing
+1	1	+1	# nb_grp                 
+1	16	*4	# nb_elt         [0] [nb_grp]
+1	1	+1	# nb_grp_select          
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/configuration/config_multi_gpr.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/configuration/config_multi_gpr.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Priority/SelfTest/configuration/config_multi_gpr.gen	(revision 145)
@@ -0,0 +1,9 @@
+Priority
+0	1	+1	# priority      
+0	1	+1	# load_balancing
+4	4	+1	# nb_grp                 
+4	4	*4	# nb_elt         [0] [nb_grp]
+1	1	*4	# nb_elt         [1] [nb_grp]
+16	16	*4	# nb_elt         [2] [nb_grp]
+2	2	*4	# nb_elt         [3] [nb_grp]
+1	4	+1	# nb_grp_select          
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/Makefile.mkf
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/Makefile.mkf	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/Makefile.mkf	(revision 145)
@@ -0,0 +1,68 @@
+#
+# Makefile generated by MKF configure script
+#
+
+all: Queue_0.ngc Queue_1.ngc Queue_2.ngc Queue_3.ngc
+
+Queue_0.ngc: Queue_0.prj
+	echo run -keep_hierarchy yes -iobuf no -top Queue_0 -ifn Queue_0.prj -ofn Queue_0.ngc -p xc5vlx330t-2ff1738 -ifmt mixed | xst
+
+Queue_0.prj: Queue_0_Pack.vhdl Queue_0.vhdl
+	for i in Queue_0_Pack.vhdl Queue_0.vhdl ; do echo "vhdl work $$i" ; done > Queue_0.prj
+
+Queue_0_Pack.vhdl:
+
+Queue_0.vhdl:
+
+Queue_1.ngc: Queue_1.prj
+	echo run -keep_hierarchy yes -iobuf no -top Queue_1 -ifn Queue_1.prj -ofn Queue_1.ngc -p xc5vlx330t-2ff1738 -ifmt mixed | xst
+
+Queue_1.prj: Queue_1_Pack.vhdl Queue_1.vhdl
+	for i in Queue_1_Pack.vhdl Queue_1.vhdl ; do echo "vhdl work $$i" ; done > Queue_1.prj
+
+Queue_1_Pack.vhdl:
+
+Queue_1.vhdl:
+
+Queue_2.ngc: Queue_2.prj
+	echo run -keep_hierarchy yes -iobuf no -top Queue_2 -ifn Queue_2.prj -ofn Queue_2.ngc -p xc5vlx330t-2ff1738 -ifmt mixed | xst
+
+Queue_2.prj: Queue_2_Pack.vhdl Queue_2.vhdl
+	for i in Queue_2_Pack.vhdl Queue_2.vhdl ; do echo "vhdl work $$i" ; done > Queue_2.prj
+
+Queue_2_Pack.vhdl:
+
+Queue_2.vhdl:
+
+Queue_3.ngc: Queue_3.prj
+	echo run -keep_hierarchy yes -iobuf no -top Queue_3 -ifn Queue_3.prj -ofn Queue_3.ngc -p xc5vlx330t-2ff1738 -ifmt mixed | xst
+
+Queue_3.prj: Queue_3_Pack.vhdl Queue_3.vhdl
+	for i in Queue_3_Pack.vhdl Queue_3.vhdl ; do echo "vhdl work $$i" ; done > Queue_3.prj
+
+Queue_3_Pack.vhdl:
+
+Queue_3.vhdl:
+
+clean:
+	rm -f Queue_0.ngc
+	rm -f Queue_0.lso
+	rm -f -r xst
+	rm -f Queue_0.prj
+	rm -f Queue_1.ngc
+	rm -f Queue_1.lso
+	rm -f -r xst
+	rm -f Queue_1.prj
+	rm -f Queue_2.ngc
+	rm -f Queue_2.lso
+	rm -f -r xst
+	rm -f Queue_2.prj
+	rm -f Queue_3.ngc
+	rm -f Queue_3.lso
+	rm -f -r xst
+	rm -f Queue_3.prj
+
+re: clean all
+
+install:
+
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_min.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_min.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Queue
-1	1 	*2	#_size_queue	
-1	1	*2	#_size_data 
-0  	1  	+1	#_nb_port_slot
-0       0       +1      #_have_port_write
-0       0       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_log2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_log2.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Queue
-1	32 	*2	#_size_queue	
-32	32	*2	#_size_data 
-0  	0  	*2	#_nb_port_slot
-1       1       +1      #_have_port_write
-1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_no_log2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_no_log2.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Queue
-3	256	*4	#_size_queue	
-32	32	*2	#_size_data 
-0  	0  	*2	#_nb_port_slot
-1       1       +1      #_have_port_write
-1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_slot_out_size_queue_log2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_slot_out_size_queue_log2.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Queue
-8	8 	*2	#_size_queue	
-32	32	*2	#_size_data 
-1  	8  	*2	#_nb_port_slot
-1       1       +1      #_have_port_write
-1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_slot_out_size_queue_no_log2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_slot_out_size_queue_no_log2.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Queue
-11	11	*4	#_size_queue	
-32	32	*2	#_size_data 
-1  	8  	*2	#_nb_port_slot
-1       1       +1      #_have_port_write
-1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_min.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_min.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_min.gen	(revision 145)
@@ -0,0 +1,6 @@
+Queue
+1	1 	*2	#_size_queue	
+1	1	*2	#_size_data 
+0  	1  	+1	#_nb_port_slot
+0       0       +1      #_have_port_write
+0       0       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_size_queue_log2.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_size_queue_log2.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_size_queue_log2.gen	(revision 145)
@@ -0,0 +1,6 @@
+Queue
+1	32 	*2	#_size_queue	
+32	32	*2	#_size_data 
+0  	0  	*2	#_nb_port_slot
+1       1       +1      #_have_port_write
+1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_size_queue_no_log2.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_size_queue_no_log2.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_size_queue_no_log2.gen	(revision 145)
@@ -0,0 +1,6 @@
+Queue
+3	256	*4	#_size_queue	
+32	32	*2	#_size_data 
+0  	0  	*2	#_nb_port_slot
+1       1       +1      #_have_port_write
+1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_slot_out_size_queue_log2.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_slot_out_size_queue_log2.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_slot_out_size_queue_log2.gen	(revision 145)
@@ -0,0 +1,6 @@
+Queue
+8	8 	*2	#_size_queue	
+32	32	*2	#_size_data 
+1  	8  	*2	#_nb_port_slot
+1       1       +1      #_have_port_write
+1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_slot_out_size_queue_no_log2.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_slot_out_size_queue_no_log2.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration/config_slot_out_size_queue_no_log2.gen	(revision 145)
@@ -0,0 +1,6 @@
+Queue
+11	11	*4	#_size_queue	
+32	32	*2	#_size_data 
+1  	8  	*2	#_nb_port_slot
+1       1       +1      #_have_port_write
+1       1       +1      #_have_port_read
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile	(revision 145)
@@ -0,0 +1,24 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT			= .
+include				$(DIR_COMPONENT)/Makefile.defs
+
+#-----[ Library ]------------------------------------------
+LIBRARY				= $(DIR_LIB)/libRegisterFile_Internal_Banked.a
+
+
+#-----[ include ]------------------------------------------
+
+all				: $(LIBRARY_NEED)
+				@$(MAKE) all_component
+
+include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Common
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Component
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile.defs	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile.defs	(revision 145)
@@ -0,0 +1,13 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+ENTITY                          = RegisterFile_Internal_Banked
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT_MORPHEO		= ../../../..
+DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile.deps	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/Makefile.deps	(revision 145)
@@ -0,0 +1,37 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+# DIR_MORPHEO must be defined
+
+RegisterFile_Internal_Banked			= yes
+
+ifndef Behavioural
+include 					$(DIR_MORPHEO)/Behavioural/Makefile.deps
+endif
+
+#-----[ Library ]------------------------------------------
+
+RegisterFile_Internal_Banked_LIBRARY		= 	-lRegisterFile_Internal_Banked		\
+							$(Behavioural_LIBRARY)	
+
+#-----[ Rules ]--------------------------------------------
+
+RegisterFile_Internal_Banked_library_only	:
+						@\
+						$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked --makefile=Makefile;
+	
+RegisterFile_Internal_Banked_library_clean_only	:
+						@\
+						$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked --makefile=Makefile clean;
+
+RegisterFile_Internal_Banked_library			: RegisterFile_Internal_Banked_library_only
+						@\
+						$(MAKE)  Behavioural_library;
+	
+RegisterFile_Internal_Banked_library_clean	: RegisterFile_Internal_Banked_library_clean_only
+						@\
+						$(MAKE)  Behavioural_library_clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/Makefile	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/Makefile	(revision 145)
@@ -0,0 +1,32 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT                   = ../
+include                         $(DIR_COMPONENT)/Makefile.defs
+
+LIBRARY				= $(RegisterFile_Internal_Banked_LIBRARY)
+
+DIR_LIBRARY			= $(RegisterFile_Internal_Banked_DIR_LIBRARY)
+
+#-----[ include ]------------------------------------------
+
+all				:
+				@$(MAKE) all_selftest
+
+library				: RegisterFile_Internal_Banked_library
+
+library_clean			: RegisterFile_Internal_Banked_library_clean
+
+local_clean			:
+
+include                         ../Makefile.deps
+include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Common
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Selftest
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Synthesis
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_read.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_read.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_read.gen	(revision 145)
@@ -0,0 +1,5 @@
+RegisterFile_Internal_Banked
+1	8 	*2	# nb_port_read
+1	1	*2	# nb_port_write
+512 	512	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_size.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_size.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_size.gen	(revision 145)
@@ -0,0 +1,5 @@
+RegisterFile_Internal_Banked
+4	4 	*2	# nb_port_read
+2	2	*2	# nb_port_write
+1   	128	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_write.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_write.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/configuration/config_write.gen	(revision 145)
@@ -0,0 +1,5 @@
+RegisterFile_Internal_Banked
+1	1 	*2	# nb_port_read
+2	8	*2	# nb_port_write
+512	512	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/include/test.h	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/include/test.h	(revision 145)
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#include <string>
+#include <iostream>
+#include <sys/time.h>
+#include "Common/include/Time.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::generic;
+using namespace morpheo::behavioural::generic::registerfile;
+using namespace morpheo::behavioural::generic::registerfile::registerfile_internal_banked;
+
+void test   (string name,
+	     morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters * param);
+
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/mkf.info	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/mkf.info	(revision 145)
@@ -0,0 +1,21 @@
+
+# state_0
+target_dep	all	state_0.ngc
+target_dep	state_0.ngc	state_0.prj
+target_dep	state_0.prj	state_0_Pack.vhdl state_0.vhdl
+
+# state_1
+target_dep	all	state_1.ngc
+target_dep	state_1.ngc	state_1.prj
+target_dep	state_1.prj	state_1_Pack.vhdl state_1.vhdl
+
+# state_2
+target_dep	all	state_2.ngc
+target_dep	state_2.ngc	state_2.prj
+target_dep	state_2.prj	state_2_Pack.vhdl state_2.vhdl
+
+# state_3
+target_dep	all	state_3.ngc
+target_dep	state_3.ngc	state_3.prj
+target_dep	state_3.prj	state_3_Pack.vhdl state_3.vhdl
+
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/src/main.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/src/main.cpp	(revision 145)
@@ -0,0 +1,47 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/include/test.h"
+
+#define NB_PARAMS 4
+
+void usage (string exec)
+{
+  cerr << "<Usage> " << exec << " name_instance list_params" << endl
+       << "list_params is :" << endl
+       << " - nb_port_read       (unsigned int)" << endl
+       << " - nb_port_write      (unsigned int)" << endl
+       << " - nb_word            (unsigned int)" << endl
+       << " - size_word          (unsigned int)" << endl;
+  exit (1);
+}
+
+#ifndef SYSTEMC
+int main    (int argc, char * argv[])
+#else
+int sc_main (int argc, char * argv[])
+#endif
+{
+  if (argc <  2+NB_PARAMS)
+    usage (argv[0]);
+
+  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 nb_word            = atoi(argv[4]);
+  const uint32_t size_word          = atoi(argv[5]);
+  
+  morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters * param = new morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters
+    (nb_port_read ,
+     nb_port_write,
+     nb_word      ,
+     size_word    );
+  
+  test (name,param);
+
+  return (EXIT_SUCCESS);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/src/test.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/src/test.cpp	(revision 145)
@@ -0,0 +1,244 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#define NB_ITERATION 1
+#define CYCLE_MAX    100000*NB_ITERATION
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/SelfTest/include/test.h"
+#include "Common/include/Test.h"
+
+void test (string name,
+	   morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters * _param)
+{
+  cout << "<" << name << "> : Simulation SystemC" << endl;
+
+  try 
+    {
+      cout << _param->print(1);
+      _param->test();
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      cout << "<" << name << "> : " <<  error.what ();
+      return;
+    }
+  catch (...)
+    {
+      cerr << "<" << name << "> : This test must generate a error" << endl;
+      exit (EXIT_FAILURE);
+    }
+
+  _model.set_model(MODEL_SYSTEMC,true);
+
+  Tusage_t _usage = USE_ALL;
+
+//   _usage = usage_unset(_usage,USE_SYSTEMC              );
+//   _usage = usage_unset(_usage,USE_VHDL                 );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//   _usage = usage_unset(_usage,USE_POSITION             );
+//   _usage = usage_unset(_usage,USE_STATISTICS           );
+//   _usage = usage_unset(_usage,USE_INFORMATION          );
+
+#ifdef STATISTICS
+  morpheo::behavioural::Parameters_Statistics * _param_stat = new morpheo::behavioural::Parameters_Statistics (5,100);
+#endif
+  RegisterFile_Internal_Banked * registerfile = new RegisterFile_Internal_Banked 
+    (name.c_str()
+#ifdef STATISTICS
+     ,_param_stat
+#endif
+     ,_param
+     ,_usage);
+  
+#ifdef SYSTEMC
+  /*********************************************************************
+   * Déclarations des signaux
+   *********************************************************************/
+  sc_clock                                 CLOCK ("clock", 1.0, 0.5);
+  sc_signal<Tcontrol_t>                    NRESET;
+  
+  sc_signal<Tcontrol_t>                    READ_VAL      [_param->_nb_port_read];
+  sc_signal<Tcontrol_t>                    READ_ACK      [_param->_nb_port_read];
+  sc_signal<Taddress_t>                    READ_ADDRESS  [_param->_nb_port_read];
+  sc_signal<Tdata_t>                       READ_DATA     [_param->_nb_port_read];
+
+  sc_signal<Tcontrol_t>                    WRITE_VAL     [_param->_nb_port_write];
+  sc_signal<Tcontrol_t>                    WRITE_ACK     [_param->_nb_port_write];
+  sc_signal<Taddress_t>                    WRITE_ADDRESS [_param->_nb_port_write];
+  sc_signal<Tdata_t>                       WRITE_DATA    [_param->_nb_port_write];
+
+  /********************************************************
+   * Instanciation
+   ********************************************************/
+  
+  cout << "<" << name << "> Instanciation of registerfile" << endl;
+  
+  (*(registerfile->in_CLOCK))        (CLOCK);
+  (*(registerfile->in_NRESET))       (NRESET);
+
+  for (uint32_t i=0; i<_param->_nb_port_read; i++)
+    {
+      (*(registerfile-> in_READ_VAL      [i]))        (READ_VAL      [i]);
+      (*(registerfile->out_READ_ACK      [i]))        (READ_ACK      [i]);
+      if (_param->_have_port_address)
+      (*(registerfile-> in_READ_ADDRESS  [i]))        (READ_ADDRESS  [i]);
+      (*(registerfile->out_READ_DATA     [i]))        (READ_DATA     [i]);
+    }
+  for (uint32_t i=0; i<_param->_nb_port_write; i++)
+    {
+      (*(registerfile-> in_WRITE_VAL     [i]))        (WRITE_VAL     [i]);
+      (*(registerfile->out_WRITE_ACK     [i]))        (WRITE_ACK     [i]);
+      if (_param->_have_port_address)
+      (*(registerfile-> in_WRITE_ADDRESS [i]))        (WRITE_ADDRESS [i]);
+      (*(registerfile-> in_WRITE_DATA    [i]))        (WRITE_DATA    [i]);
+    }
+  
+  cout << "<" << name << "> Start Simulation ............" << endl;
+  Time * _time = new Time();
+
+  /********************************************************
+   * Simulation - Begin
+   ********************************************************/
+
+  // Initialisation
+
+  SC_START(0);
+  
+  for (uint32_t i=0; i<_param->_nb_port_write; i++)
+    WRITE_VAL [i] .write (0);
+  for (uint32_t i=0; i<_param->_nb_port_read; i++)
+    READ_VAL  [i] .write (0);
+
+  NRESET.write(0);
+
+  SC_START(5);
+
+  NRESET.write(1);
+
+  for (uint32_t i=0; i<_param->_nb_port_write; i++)
+    TEST(Tcontrol_t,WRITE_ACK [i],1);
+  for (uint32_t i=0; i<_param->_nb_port_read; i++)
+    TEST(Tcontrol_t,READ_ACK  [i],1);
+
+  for (uint32_t nb_iteration=0; nb_iteration < NB_ITERATION; nb_iteration ++)
+    {
+      cout << "<" << name << "> 1) Write the RegisterFile (no read)" << endl;
+
+      // random init
+      uint32_t grain = 0;
+      //uint32_t grain = static_cast<uint32_t>(time(NULL));
+      
+      srand(grain);
+
+      Tdata_t tab [_param->_nb_word];
+      
+      for (uint32_t i=0; i<_param->_nb_word; i++)
+	tab[i]= rand()%(1<<(_param->_size_word-1));
+      
+      Taddress_t address_next = 0;
+      Taddress_t nb_ack = 0;
+      
+      while (nb_ack < _param->_nb_word)
+	{
+          
+	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
+
+	  for (uint32_t num_port=0; num_port < _param->_nb_port_write; num_port ++)
+	    {
+	      if ((address_next < _param->_nb_word) and
+		  (WRITE_VAL [num_port].read() == 0))
+		{
+		  cout << "(" << num_port << ") [" << address_next << "] <= " << tab[address_next] << endl;
+		  
+		  WRITE_VAL     [num_port] .write(1);
+		  WRITE_DATA    [num_port] .write(tab[address_next]);
+		  WRITE_ADDRESS [num_port] .write(address_next++);
+		  
+		  // Address can be not a multiple of nb_port_write
+		  if (address_next >= _param->_nb_word)
+		    break;
+		}
+	    }
+
+  
+	  SC_START(1);
+
+	  // reset write_val port
+	  for (uint32_t num_port=0; num_port < _param->_nb_port_write; num_port ++)
+	    {
+	      if ((WRITE_ACK [num_port].read() == 1) and
+		  (WRITE_VAL [num_port].read() == 1))
+		{
+		  WRITE_VAL  [num_port] .write(0);
+		  nb_ack ++;
+		}
+	    }
+
+// 	  SC_START(0);
+	}
+      
+      address_next = 0;
+      nb_ack       = 0;
+
+      cout << "<" << name << "> 2) Read the RegisterFile (no write)" << endl;
+      
+      Tdata_t read_address       [_param->_nb_port_read];
+
+      while (nb_ack < _param->_nb_word)
+	{
+	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
+	  
+	  for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++)
+	    {
+	      if ((address_next < _param->_nb_word) and
+		  (READ_VAL [num_port].read() == 0))
+		{
+		  read_address [num_port] = address_next++;
+
+		  READ_VAL     [num_port].write(1);
+		  READ_ADDRESS [num_port].write(read_address [num_port]);
+
+		  if (address_next >= _param->_nb_word)
+		    break;
+		}
+	    }
+
+
+	  SC_START(1);
+
+	  // reset write_val port
+	  for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++)
+	    {
+	      if ((READ_ACK [num_port].read() == 1) and
+		  (READ_VAL [num_port].read() == 1))
+		{
+		  READ_VAL  [num_port] .write(0);
+
+		  cout << "(" << num_port << ") [" << read_address [num_port] << "] => " << READ_DATA [num_port].read() << endl;
+
+		  TEST(Tdata_t,READ_DATA [num_port].read(), tab[read_address [num_port]]);
+		  nb_ack ++;
+		}
+	    }
+
+// 	  SC_START(0);
+	}
+    }
+
+  /********************************************************
+   * Simulation - End
+   ********************************************************/
+
+  TEST_STR(bool,true,true, "End of Simulation");
+  delete _time;
+  cout << "<" << name << "> ............ Stop Simulation" << endl;
+
+#endif
+
+  delete registerfile;
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/Makefile	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/Makefile	(revision 145)
@@ -0,0 +1,19 @@
+# 
+# $Id$
+# 
+# [ Description ]
+# 
+# Makefile
+# 
+
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT			= ../
+include				$(DIR_COMPONENT)/Makefile.defs
+
+#-----[ include ]------------------------------------------
+
+all				:
+				$(MAKE) all_documentation
+
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Common
+include				$(DIR_MORPHEO)/Behavioural/Makefile.Documentation
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/RegisterFile_Monolithic.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/RegisterFile_Monolithic.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/RegisterFile_Monolithic.tex	(revision 145)
@@ -0,0 +1,38 @@
+\documentclass[10pt,a4paper,twocolumn]{article}
+
+\def\dirdoc{tex}
+\def\dirschema{eps}
+
+% Package de variables d'environnement : Titre, command etc ...
+\usepackage{../../../../../Behavioural/doc/sty/doc-style}
+\usepackage{sty/header}
+
+
+%------------------------------------------------------------------------------
+% Début document
+%------------------------------------------------------------------------------
+
+\pagestyle{empty}
+
+\begin{document}
+
+% Créez une page de titre
+\maketitle
+\thispagestyle{empty}
+
+%Table des matières et des figures
+%\tableofcontents
+%\newpage
+%\listoffigures
+
+%------------------------------------------------------------------------------
+% Ajout du corps du documents
+%------------------------------------------------------------------------------
+
+\input{tex/root}
+
+%------------------------------------------------------------------------------
+% Fin d'ajout du corps du document
+%------------------------------------------------------------------------------
+
+\end{document}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/sty/header.sty
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/sty/header.sty	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/sty/header.sty	(revision 145)
@@ -0,0 +1,12 @@
+\def\review{YYYY/MM/DD}
+%\def\review{\number\day/\number\month/\number\year\xspace}
+
+\title{RegisterFile\_Internal\_Banked}
+ 
+\author{}
+
+\affiliation{}
+
+\email{}
+
+\date{\review}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/01_introduction.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/01_introduction.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/01_introduction.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Introduction}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/02_features.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/02_features.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/02_features.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Features}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/03_description.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/03_description.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/03_description.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Functional Description}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/04_pinout.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/04_pinout.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/04_pinout.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Pin out}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/05_parameters.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/05_parameters.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/05_parameters.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Parameters}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/06_performance.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/06_performance.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/06_performance.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Performance}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/07_details.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/07_details.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/07_details.tex	(revision 145)
@@ -0,0 +1,1 @@
+\Section{Details}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/08_history.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/08_history.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/08_history.tex	(revision 145)
@@ -0,0 +1,10 @@
+\Section{Revision History}
+
+\begin{tabular}{|c|c|c|}
+\hline
+Revision Date & By  & Modifications\\
+\hline
+\hline
+yyyy/mm/dd    & xxx & Initial document \\
+\hline
+\end{tabular}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/root.tex
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/root.tex	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/doc/tex/root.tex	(revision 145)
@@ -0,0 +1,8 @@
+\input{\dirdoc/01_introduction}
+\input{\dirdoc/02_features}
+\input{\dirdoc/03_description}
+\input{\dirdoc/04_pinout}
+\input{\dirdoc/05_parameters}
+\input{\dirdoc/06_performance}
+\input{\dirdoc/07_details}
+\input{\dirdoc/08_history}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h	(revision 145)
@@ -0,0 +1,62 @@
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_internal_banked_Parameters_h
+#define morpheo_behavioural_generic_registerfile_registerfile_internal_banked_Parameters_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Common/include/Debug.h"
+#include "Behavioural/include/Parameters.h"
+#include <math.h>
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+#define PTR_IS_REGFILE
+
+  class Parameters : public morpheo::behavioural::Parameters
+  {
+  public :       uint32_t    _nb_port_read ;
+  public :       uint32_t    _nb_port_write;
+  public :       uint32_t    _nb_word      ;
+  public :       uint32_t    _size_word    ;
+  public :       std::string _init_value   ;
+
+  public : const uint32_t    _nb_internal_port_read ;
+  public : const uint32_t    _nb_internal_port_write;
+
+  public :       uint32_t    _size_address;
+  public :       uint32_t    _size_ptr_write;
+  public :       bool        _have_port_address;
+  public :       bool        _have_init_value;
+
+  public : Parameters (uint32_t    nb_port_read ,
+		       uint32_t    nb_port_write,
+		       uint32_t    nb_word      ,
+		       uint32_t    size_word    ,
+                       std::string init_value="");
+//   public : Parameters (Parameters & param) ;
+  public : ~Parameters () ;
+
+  public :        void            copy       (void);
+
+  public :        Parameters_test msg_error  (void);
+
+  public :        std::string   print      (uint32_t depth);
+  public : friend std::ostream& operator<< (std::ostream& output_stream,
+					    morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters & x);
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h	(revision 145)
@@ -0,0 +1,137 @@
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_internal_banked_RegisterFile_Internal_Banked
+#define morpheo_behavioural_generic_registerfile_registerfile_internal_banked_RegisterFile_Internal_Banked
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#include "Common/include/Debug.h"
+#include "Common/include/ToString.h"
+#include <iostream>
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Types.h"
+#ifdef STATISTICS
+#include "Behavioural/include/Stat.h"
+#endif
+#include "Behavioural/include/Component.h"
+#ifdef VHDL
+#include "Behavioural/include/Vhdl.h"
+#endif
+#include "Behavioural/include/Usage.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  typedef enum {RW_READ, RW_WRITE} rw_t;
+
+  class RegisterFile_Internal_Banked 
+#if SYSTEMC
+    : public sc_module
+#endif
+  {
+    // -----[ fields ]----------------------------------------------------
+    // Parameters
+  protected : const std::string       _name;
+  protected : const Parameters * _param;
+  private   : const Tusage_t     _usage;
+
+#ifdef STATISTICS
+  public    : Stat                           * _stat;
+    
+  // private   : counter_t                      * _stat_nb_read;
+  // private   : counter_t                      * _stat_nb_write;
+  private   : counters_t                     * _stat_port_read;
+  private   : counters_t                     * _stat_port_write;
+#endif
+
+  public    : Component                      * _component;
+  private   : Interfaces                     * _interfaces;
+
+#ifdef SYSTEMC
+    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // Interface
+  public    : SC_CLOCK                      *  in_CLOCK        ;
+  public    : SC_IN       (Tcontrol_t)      *  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   : Tdata_t * reg_DATA;
+
+    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#endif
+
+    // -----[ methods ]---------------------------------------------------
+
+#ifdef SYSTEMC
+    SC_HAS_PROCESS (RegisterFile_Internal_Banked);
+#endif					       
+  public  : RegisterFile_Internal_Banked
+  (
+#ifdef SYSTEMC
+   sc_module_name                              name
+#else					       
+   std::string                                      name
+#endif					       
+#ifdef STATISTICS
+   ,morpheo::behavioural::Parameters_Statistics * param_statistics
+#endif
+   ,Parameters                                  * param
+   ,morpheo::behavioural::Tusage_t                usage
+   );
+
+  public  :          ~RegisterFile_Internal_Banked  (void);
+					       
+  private : void     allocation                (void);
+  private : void     deallocation              (void);
+					       
+#ifdef SYSTEMC				       
+  public  : void     constant                  (void);
+  public  : void     transition                (void);
+//public  : void     genMoore                  (void) {/* empty */};
+  public  : void     genMealy_read             (void);
+#endif					       
+
+#ifdef STATISTICS
+  public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
+#endif					       
+
+#if VHDL				       
+  private : void     vhdl                      (void);
+  private : void     vhdl_declaration          (Vhdl * & vhdl);
+  private : void     vhdl_body                 (Vhdl * & vhdl);
+#endif					       
+					       
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+  private : void     end_cycle                 (void);
+#endif
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Types.h	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Types.h	(revision 145)
@@ -0,0 +1,29 @@
+#ifndef morpheo_behavioural_generic_registerfile_registerfile_internal_banked_Type_h
+#define morpheo_behavioural_generic_registerfile_registerfile_internal_banked_Type_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Types.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+//typedef uint32_t Taddress_t;
+typedef uint64_t Tdata_t;
+  // typedef Tgeneral_data_t Tdata_t;
+ 
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters.cpp	(revision 145)
@@ -0,0 +1,63 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h"
+#include "Common/include/Log2.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  Parameters::Parameters (uint32_t    nb_port_read ,
+			  uint32_t    nb_port_write,
+			  uint32_t    nb_word      ,
+			  uint32_t    size_word    ,
+                          std::string init_value
+			  ):
+    _nb_internal_port_read  (1),
+    _nb_internal_port_write (1)
+  { 
+    _nb_port_read       = nb_port_read ;
+    _nb_port_write      = nb_port_write;
+    _nb_word            = nb_word      ;
+    _size_word          = size_word    ;
+    _init_value         = init_value   ;
+
+    _size_address       = log2(_nb_word);
+    _size_ptr_write     = log2(_nb_port_write);
+    _have_port_address  = _size_address != 0;
+    _have_init_value    = init_value != "";
+
+    test();
+  };
+  
+//   Parameters::Parameters (Parameters & param) :
+//     _nb_port_read      (param._nb_port_read ),
+//     _nb_port_write     (param._nb_port_write),
+//     _nb_word           (param._nb_word      ),
+//     _size_word         (param._size_word    ),
+//     _size_address      (param._size_address ),
+//     _have_port_address (param._have_port_address)
+//   {
+//     test();
+//   };
+
+  Parameters::~Parameters () 
+  {
+  };
+
+  void Parameters::copy (void) 
+  { 
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters_msg_error.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters_msg_error.cpp	(revision 145)
@@ -0,0 +1,44 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include <stdint.h>
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h"
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Types.h"
+#include <sstream>
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  Parameters_test Parameters::msg_error(void)
+  {
+    Parameters_test test("RegisterFile_Internal_Banked");
+
+    if ((8*sizeof(Tdata_t)) < _size_word)
+      test.error("Type \"Tdata_t\" is too little to the size defined by size_word");
+
+    if ((8*sizeof(Taddress_t)) < log2(_nb_word))
+      test.error("type \"Taddress_t\" is too little to the size defined by nb_word");
+
+    if (_nb_port_read < 1)
+      test.error("you need a read port");
+
+    if (_nb_port_write < 1)
+      test.error("you need a write port");
+
+    // Need test init_value
+
+    return test;
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters_print.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/Parameters_print.cpp	(revision 145)
@@ -0,0 +1,44 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include <stdint.h>
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/Parameters.h"
+#include "Behavioural/include/XML.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  std::string Parameters::print (uint32_t depth)
+  {
+    XML xml ("registerfile_internal_banked");
+
+    xml.balise_open("registerfile_internal_banked");
+    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("nb_word           "); xml.attribut("value",toString(_nb_word           )); xml.singleton_end();
+    xml.singleton_begin("size_word         "); xml.attribut("value",toString(_size_word         )); xml.singleton_end();
+    xml.balise_close();
+
+    return xml.get_body(depth);
+  };
+
+  std::ostream& operator<< (std::ostream& output_stream ,
+			    morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters & x)
+  {
+    output_stream << x.print(0);
+    
+    return output_stream;
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked.cpp	(revision 145)
@@ -0,0 +1,111 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  RegisterFile_Internal_Banked::RegisterFile_Internal_Banked 
+  (
+#ifdef SYSTEMC
+   sc_module_name name,
+#else
+   std::string name        ,
+#endif
+#ifdef STATISTICS
+   morpheo::behavioural::Parameters_Statistics            * param_statistics,
+#endif
+   morpheo::behavioural::generic::registerfile::registerfile_internal_banked::Parameters * param,
+   morpheo::behavioural::Tusage_t usage
+   ):
+    _name  (name),
+    _param (param),
+    _usage (usage)
+  {
+    log_printf(FUNC,RegisterFile_Internal_Banked,"RegisterFile_Internal_Banked","Begin");
+
+// #if DEBUG_RegisterFile_Internal_Banked == true
+//     log_printf(INFO,RegisterFile_Internal_Banked,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+//     std::cout << *param << std::endl;
+// #endif    
+
+    log_printf(INFO,RegisterFile_Internal_Banked,"RegisterFile_Internal_Banked","Allocation");
+    allocation ();
+
+#ifdef STATISTICS
+    if (usage_is_set(_usage,USE_STATISTICS))
+      statistics_declaration(param_statistics);
+#endif
+
+#ifdef VHDL
+    // generate the vhdl
+    if (usage_is_set(_usage,USE_VHDL))
+      vhdl();
+#endif
+
+#ifdef SYSTEMC
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
+
+# ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	SC_METHOD (constant);
+// 	dont_initialize ();
+#endif
+
+	SC_METHOD (transition);
+	dont_initialize ();
+	sensitive << (*(in_CLOCK)).pos();
+
+	SC_METHOD (genMealy_read);
+	dont_initialize ();
+	sensitive << (*(in_CLOCK)).neg()
+		  << (*(in_NRESET));
+
+	for (uint32_t i=0; i<_param->_nb_port_read; i++)
+	  {
+	    sensitive << *(in_READ_VAL     [i]);
+	    if (_param->_have_port_address)
+	      sensitive << *(in_READ_ADDRESS [i]);
+	  }
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+	for (uint32_t i=0; i<_param->_nb_port_read; i++)
+	  {
+	    (*(out_READ_DATA  [i])) (*( in_READ_VAL     [i]));
+	    if (_param->_have_port_address)
+	      (*(out_READ_DATA  [i])) (*( in_READ_ADDRESS [i]));
+	  }
+# endif    
+      }
+#endif
+    
+    log_printf(FUNC,RegisterFile_Internal_Banked,"RegisterFile_Internal_Banked","End");
+  };
+  
+  RegisterFile_Internal_Banked::~RegisterFile_Internal_Banked (void)
+  {
+#ifdef STATISTICS
+    if (usage_is_set(_usage,USE_STATISTICS))
+      delete _stat;
+#endif
+
+    deallocation ();
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_allocation.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_allocation.cpp	(revision 145)
@@ -0,0 +1,81 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+#include "Behavioural/include/Allocation.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::allocation (void)
+  {
+    _component   = new Component (_usage);
+
+    Entity * entity = _component->set_entity (_name                   
+					     ,"RegisterFile_Internal_Banked"
+#ifdef POSITION
+					     ,REGISTER                 
+#endif
+					      );
+    
+    _interfaces = entity->set_interfaces();
+
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      Interface * interface = _interfaces->set_interface(""
+#ifdef POSITION
+							 , IN
+							 ,SOUTH
+							 ,_("Generalist interface")
+#endif
+							 );
+      
+      in_CLOCK              = interface->set_signal_clk              ("clock" ,1);
+      in_NRESET             = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
+    }
+
+    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    { 
+      ALLOC1_INTERFACE_BEGIN("read",IN,WEST,_("Interface Read"),_param->_nb_port_read);
+
+      ALLOC1_VALACK_IN ( in_READ_VAL    ,VAL);
+      ALLOC1_VALACK_OUT(out_READ_ACK    ,ACK);
+      ALLOC1_SIGNAL_IN ( in_READ_ADDRESS,"address",Taddress_t,_param->_size_address);
+      ALLOC1_SIGNAL_OUT(out_READ_DATA   ,"data"   ,Tdata_t   ,_param->_size_word);
+
+      ALLOC1_INTERFACE_END(_param->_nb_port_read);
+    }
+
+    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      ALLOC1_INTERFACE_BEGIN("write",IN,EAST,_("Interface Write"),_param->_nb_port_write);
+
+      ALLOC1_VALACK_IN ( in_WRITE_VAL    ,VAL);
+      ALLOC1_VALACK_OUT(out_WRITE_ACK    ,ACK);
+      ALLOC1_SIGNAL_IN ( in_WRITE_ADDRESS,"address",Taddress_t,_param->_size_address);
+      ALLOC1_SIGNAL_IN ( in_WRITE_DATA   ,"data"   ,Tdata_t   ,_param->_size_word);
+
+      ALLOC1_INTERFACE_END(_param->_nb_port_write);
+    }
+
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      ALLOC1(reg_DATA,Tdata_t,_param->_nb_word);
+    
+#ifdef POSITION
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
+#endif
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_constant.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_constant.cpp	(revision 145)
@@ -0,0 +1,37 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Internal_Banked::constant"
+  void RegisterFile_Internal_Banked::constant (void)
+  {
+    log_begin(RegisterFile_Internal_Banked,FUNCTION);
+    log_function(RegisterFile_Internal_Banked,FUNCTION,_name.c_str());
+    
+    for (uint32_t i=0; i<_param->_nb_port_read       ; i++)
+      PORT_WRITE(out_READ_ACK        [i], 1);
+    for (uint32_t i=0; i<_param->_nb_port_write      ; i++)
+      PORT_WRITE(out_WRITE_ACK       [i], 1);
+
+    log_end(RegisterFile_Internal_Banked,FUNCTION);
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_deallocation.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_deallocation.cpp	(revision 145)
@@ -0,0 +1,44 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+#include "Behavioural/include/Allocation.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::deallocation (void)
+  {
+    delete _component;
+
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
+	delete    in_CLOCK;
+	delete    in_NRESET;
+
+        DELETE1_SIGNAL( in_READ_VAL     ,_param->_nb_port_read,1);
+        DELETE1_SIGNAL(out_READ_ACK     ,_param->_nb_port_read,1);
+        DELETE1_SIGNAL( in_READ_ADDRESS ,_param->_nb_port_read,_param->_size_address);
+        DELETE1_SIGNAL(out_READ_DATA    ,_param->_nb_port_read,_param->_size_word);
+        
+        DELETE1_SIGNAL( in_WRITE_VAL    ,_param->_nb_port_write,1);
+        DELETE1_SIGNAL(out_WRITE_ACK    ,_param->_nb_port_write,1);
+        DELETE1_SIGNAL( in_WRITE_ADDRESS,_param->_nb_port_write,_param->_size_address);
+        DELETE1_SIGNAL( in_WRITE_DATA   ,_param->_nb_port_write,_param->_size_word);
+        
+        DELETE1(reg_DATA,_param->_nb_word);
+      }
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_end_cycle.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_end_cycle.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_end_cycle.cpp	(revision 145)
@@ -0,0 +1,42 @@
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::end_cycle (void)
+  {
+    log_printf(FUNC,RegisterFile,"end_cycle","Begin");
+
+#ifdef STATISTICS
+    if (usage_is_set(_usage,USE_STATISTICS))
+      _stat->end_cycle();
+#endif    
+
+#ifdef VHDL_TESTBENCH
+    // Evaluation before read the ouput signal
+    
+//  sc_start(0);
+    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
+      _interfaces->testbench();
+#endif
+
+    log_printf(FUNC,RegisterFile,"end_cycle","End");
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_genMealy_read.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_genMealy_read.cpp	(revision 145)
@@ -0,0 +1,59 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Internal_Banked::genMealy_read"
+  void RegisterFile_Internal_Banked::genMealy_read (void)
+  {
+    log_begin(RegisterFile_Internal_Banked,FUNCTION);
+    log_function(RegisterFile_Internal_Banked,FUNCTION,_name.c_str());
+
+    if (PORT_READ(in_NRESET))
+      {
+    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;
+	    if (_param->_have_port_address)
+	      address = PORT_READ(in_READ_ADDRESS[i]);
+	    else
+	      address = 0;
+	    Tdata_t    data    = reg_DATA[address];
+
+	    log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
+
+	    // Write in registerFile
+	    PORT_WRITE(out_READ_DATA[i],data);
+ 	  }
+	else
+	  {
+	    //log_printf(TRACE,RegisterFile,FUNCTION,"Read  [%d] : No   transaction",i);
+	    PORT_WRITE(out_READ_DATA[i],0);
+	  }
+      }
+      }
+
+    log_end(RegisterFile_Internal_Banked,FUNCTION);
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_statistics_declaration.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_statistics_declaration.cpp	(revision 145)
@@ -0,0 +1,43 @@
+#ifdef STATISTICS
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)
+  {
+    _stat = new Stat (static_cast<std::string>(_name),
+		      "RegisterFile_Internal_Banked",
+		      param_statistics);
+
+    if (_param->_nb_port_read>0)
+    _stat_port_read         = _stat->create_counters("port_read",_param->_nb_port_read,"",
+                                                     _("Cycle number cycle with %d read(s)."),
+                                                     _("Percent of cycle number cycle with %d read(s)."),
+                                                     _("Average of read per cycle.")
+                                                     );
+
+    if (_param->_nb_port_write>0)
+    _stat_port_write        = _stat->create_counters("port_write",_param->_nb_port_write,"",
+                                                     _("Cycle number cycle with %d write(s)."),
+                                                     _("Percent of cycle number cycle with %d write(s)."),
+                                                     _("Average of write per cycle.")
+                                                     );
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_transition.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_transition.cpp	(revision 145)
@@ -0,0 +1,134 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Internal_Banked::transition"
+  void RegisterFile_Internal_Banked::transition (void)
+  {
+    log_begin(RegisterFile_Internal_Banked,FUNCTION);
+    log_function(RegisterFile_Internal_Banked,FUNCTION,_name.c_str());
+
+    if (PORT_READ(in_NRESET) == 0)
+      {
+        if (_param->_have_init_value)
+          {
+            for (uint32_t i=0; i<_param->_nb_word; ++i)
+              reg_DATA[i] = fromString<Tdata_t>(_param->_init_value);
+          }
+        else
+          {
+            for (uint32_t i=0; i<_param->_nb_word; ++i)
+              reg_DATA[i] = 0;
+          }
+      }
+    else
+      {
+#ifdef STATISTICS
+        uint32_t stat_nb_read      =0;
+        uint32_t stat_nb_write     =0;
+#endif
+        for (uint32_t i=0; i<_param->_nb_port_write; i++)
+          {
+            log_printf(TRACE,RegisterFile,FUNCTION,"  * WRITE [%d] : %d",i,PORT_READ(in_WRITE_VAL[i]));
+
+            // Have a write?
+            if ( PORT_READ(in_WRITE_VAL[i]) == true)
+              {
+#ifdef STATISTICS
+                stat_nb_write++;
+#endif
+
+// #ifdef STATISTICS
+//                 if (usage_is_set(_usage,USE_STATISTICS))
+//                   (*_stat_nb_write) ++;
+// #endif    
+
+                Taddress_t address = (_param->_have_port_address)?PORT_READ(in_WRITE_ADDRESS[i]):0;
+                Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
+
+                log_printf(TRACE,RegisterFile,FUNCTION,"    * address : %d",address);
+                log_printf(TRACE,RegisterFile,FUNCTION,"    * gloup");
+                log_printf(TRACE,RegisterFile,FUNCTION,"    * data    : %d",data);
+                
+                log_printf(TRACE,RegisterFile,FUNCTION,"  * [%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
+
+#ifdef DEBUG_TEST
+                if (address >= _param->_nb_word)
+                  throw ERRORMORPHEO(FUNCTION,toString(_("Address (%d) is invalid (size : %d).\n"),address,_param->_nb_word));
+#endif
+                
+                // Write in registerFile
+                reg_DATA[address] = data;
+              }
+          }
+
+#ifdef STATISTICS
+        if (usage_is_set(_usage,USE_STATISTICS))
+          {
+            for (uint32_t i=0; i<_param->_nb_port_read; i++)
+              if ( PORT_READ(in_READ_VAL [i]) == 1)
+                {
+                  stat_nb_read ++;
+                  // (*_stat_nb_read) ++;
+                }
+
+            if (_param->_nb_port_read>0)
+            (*_stat_port_read      ) += stat_nb_read;
+            if (_param->_nb_port_write>0)
+            (*_stat_port_write     ) += stat_nb_write;
+          }
+#endif    
+      }
+
+#if defined(DEBUG_RegisterFile_Internal_Banked) and DEBUG_RegisterFile_Internal_Banked and (DEBUG >= DEBUG_TRACE)
+# if 1
+    {
+      log_printf(TRACE,RegisterFile,FUNCTION,"  * Dump RegisterFile");
+
+      uint32_t limit = 4;
+      
+      for (uint32_t i=0; i<_param->_nb_word; i+=limit)
+        {
+          std::string str = "";
+          
+          for (uint32_t j=0; j<limit; j++)
+            {
+              uint32_t index = i+j;
+              if (index >= _param->_nb_word)
+                break;
+              else
+                str+=toString("[%.4d] %.8x ",index,reg_DATA[index]);
+            }
+
+          log_printf(TRACE,RegisterFile,FUNCTION,"  %s",str.c_str());
+        }
+    }
+# endif
+#endif
+
+#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
+    end_cycle();
+#endif
+
+    log_end(RegisterFile_Internal_Banked,FUNCTION);
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl.cpp	(revision 145)
@@ -0,0 +1,38 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+#include "Behavioural/include/Vhdl.h"
+#include "Common/include/ToString.h"
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::vhdl (void)
+  {
+    Vhdl * vhdl = new Vhdl (_name);
+
+    _interfaces->set_port     (vhdl);
+    _component ->vhdl_instance(vhdl);
+
+    vhdl_declaration (vhdl);
+    vhdl_body        (vhdl);
+
+    vhdl->generate_file();
+
+    delete vhdl;
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl_body.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl_body.cpp	(revision 145)
@@ -0,0 +1,162 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::vhdl_body (Vhdl * & vhdl)
+  {
+    vhdl->set_body   (0,"");
+    vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    vhdl->set_comment(0," Ackitement");
+    vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    vhdl->set_body   (0,"");
+
+    for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+      vhdl->set_body   (0,"out_READ_"+toString(num_read)+"_ACK  <= '1';");
+    for (uint32_t num_write=0; num_write<_param->_nb_port_write; ++num_write)
+      vhdl->set_body   (0,"out_WRITE_"+toString(num_write)+"_ACK <= '1';");
+
+    vhdl->set_body   (0,"");
+    vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    vhdl->set_comment(0," Read RegisterFile");
+    vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    vhdl->set_body   (0,"");
+
+    if (_param->_size_ptr_write>0)
+      for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+        {
+#ifdef PTR_IS_REGFILE
+          std::string str_address;
+          if (_param->_have_port_address)
+            str_address = "conv_integer(in_READ_"+toString(num_read)+"_ADDRESS)";
+          else
+            str_address = "0";
+
+          vhdl->set_body   (0,"READ_NUM_BANK_"+toString(num_read)+" <= reg_PTR_WRITE("+str_address+");");
+#else
+
+          vhdl->set_body   (0,"with in_READ_"+toString(num_read)+"_ADDRESS select");
+          vhdl->set_body   (1,"READ_NUM_BANK_"+toString(num_read)+" <=");
+          for (uint32_t num_word=0; num_word<_param->_nb_word-1; ++num_word)
+            vhdl->set_body   (1,"reg_PTR_WRITE_"+toString(num_word)+" when "+std_logic_cst(_param->_size_address,num_word)+",");
+          vhdl->set_body   (1,"reg_PTR_WRITE_"+toString(_param->_nb_word-1)+" when others;");
+#endif
+        }
+    vhdl->set_body   (0,"");
+
+    for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+      {
+	std::string str_address;
+	if (_param->_have_port_address)
+	  str_address = "conv_integer(in_READ_"+toString(num_read)+"_ADDRESS)";
+	else
+	  str_address = "0";
+
+	vhdl->set_body   (0,"out_READ_"+toString(num_read)+"_DATA <=");
+        for (uint32_t num_write=0; num_write<_param->_nb_port_write; ++num_write)
+          {
+            std::string str_ptr_write="";
+            if (_param->_size_ptr_write>0)
+              str_ptr_write = " and READ_NUM_BANK_"+toString(num_read)+" = "+std_logic_cst(_param->_size_ptr_write,num_write);
+
+            vhdl->set_body   (1,"reg_DATA_"+toString(num_write)+"_"+toString(num_read)+"("+str_address+") when in_READ_"+toString(num_read)+"_VAL = '1'"+str_ptr_write+" else");
+          }
+        vhdl->set_body   (1,std_logic_others(_param->_size_word,0)+";");
+      }
+
+    vhdl->set_body   (0,"");
+    vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    vhdl->set_comment(0," Write RegisterFile");
+    vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    vhdl->set_body   (0,"");
+
+    vhdl->set_body   (0,"RegisterFile_write: process (in_CLOCK)");
+    vhdl->set_body   (0,"begin  -- process RegisterFile_write");
+    vhdl->set_body   (1,"if in_CLOCK'event and in_CLOCK = '1' then");
+
+    if (_param->_have_init_value)
+      {
+        vhdl->set_body   (2,"if in_NRESET = '0' then");
+        
+        std::string init_value = ((_param->_size_word>1)?"\"":"'")+_param->_init_value+((_param->_size_word>1)?"\"":"'");
+        
+        for (uint32_t num_word=0; num_word<_param->_nb_word; ++num_word)
+          {
+            for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+              vhdl->set_body   (3,"reg_DATA_0_"+toString(num_read)+"("+toString(num_word)+") <= "+init_value+";");
+
+            if (_param->_size_ptr_write>0)
+              {
+#ifdef PTR_IS_REGFILE
+                vhdl->set_body   (3,"reg_PTR_WRITE("+toString(num_word)+") <= "+std_logic_cst(_param->_size_ptr_write,0)+";");
+#else
+                vhdl->set_body   (3,"reg_PTR_WRITE_"+toString(num_word)+" <= "+std_logic_cst(_param->_size_ptr_write,0)+";");
+#endif
+              }
+          }
+        vhdl->set_body   (2,"else");
+      }
+    // else
+    //   {
+    //     vhdl->set_body   (2,"if in_NRESET = '0' then");
+        
+    //     for (uint32_t num_word=0; num_word<_param->_nb_word; ++num_word)
+    //         if (_param->_size_ptr_write>0)
+    //           vhdl->set_body   (3,"reg_PTR_WRITE("+toString(num_word)+") <= "+std_logic_cst(_param->_size_ptr_write,0)+";");
+    //     vhdl->set_body   (2,"else");
+    //   }
+      
+    
+    for (uint32_t num_write=0; num_write<_param->_nb_port_write; ++num_write)
+      {
+	std::string str_address;
+	if (_param->_have_port_address)
+	  str_address = "conv_integer(in_WRITE_"+toString(num_write)+"_ADDRESS)";
+	else
+	  str_address = "0";
+
+	vhdl->set_body   (2,"if (in_WRITE_"+toString(num_write)+"_VAL = '1') then");
+        for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+          vhdl->set_body   (3,"reg_DATA_"+toString(num_write)+"_"+toString(num_read)+"("+str_address+") <= in_WRITE_"+toString(num_write)+"_DATA;");
+
+        if (_param->_size_ptr_write>0)
+          {
+#ifdef PTR_IS_REGFILE
+          vhdl->set_body   (3,"reg_PTR_WRITE("+str_address+") <= "+std_logic_cst(_param->_size_ptr_write,num_write)+";");
+#else
+          for (uint32_t num_word=0; num_word<_param->_nb_word; ++num_word)
+            {
+              vhdl->set_body   (3,"if (in_WRITE_"+toString(num_write)+"_ADDRESS = "+std_logic_cst(_param->_size_address,num_word)+") then");
+              vhdl->set_body   (4,"reg_PTR_WRITE_"+toString(num_word)+" <= "+std_logic_cst(_param->_size_ptr_write,num_write)+";");
+              vhdl->set_body   (3,"end if;");
+            }
+#endif
+          }
+	vhdl->set_body   (2,"end if;");
+      }
+
+    vhdl->set_body   (1,"end if;");
+
+    if (_param->_have_init_value)
+      vhdl->set_body   (1,"end if;");
+
+    vhdl->set_body   (0,"end process RegisterFile_write;");
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl_declaration.cpp	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_vhdl_declaration.cpp	(revision 145)
@@ -0,0 +1,49 @@
+#ifdef VHDL
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
+#include "Behavioural/include/Vhdl.h"
+#include "Common/include/ToString.h"
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_internal_banked    {
+
+  void RegisterFile_Internal_Banked::vhdl_declaration (Vhdl * & vhdl)
+  {
+    vhdl->set_type ("Tregfile", "array " + _std_logic_range(_param->_nb_word) + " of " + std_logic(_param->_size_word));
+
+    for (uint32_t num_write=0; num_write<_param->_nb_port_write; ++num_write)
+      for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+        vhdl->set_signal ("reg_DATA_"+toString(num_write)+"_"+toString(num_read), "Tregfile");
+
+    if (_param->_size_ptr_write > 0)
+      {
+        for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+          vhdl->set_signal ("READ_NUM_BANK_"+toString(num_read), _param->_size_ptr_write);
+      }
+#ifdef PTR_IS_REGFILE
+    if (_param->_size_ptr_write > 0)
+      {
+    vhdl->set_type ("Tptr_write", "array " + _std_logic_range(_param->_nb_word) + " of " + std_logic(_param->_size_ptr_write));
+    vhdl->set_signal ("reg_PTR_WRITE", "Tptr_write");
+      }
+#else
+    if (_param->_size_ptr_write > 0)
+      for (uint32_t num_word=0; num_word<_param->_nb_word; ++num_word)
+        vhdl->set_signal ("reg_PTR_WRITE_"+toString(num_word), _param->_size_ptr_write);
+#endif
+  };
+
+}; // end namespace registerfile_internal_banked
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile	(revision 145)
@@ -2,11 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
-DIR_MORPHEO			= ../../../../..
+#-----[ Directory ]----------------------------------------
+DIR_COMPONENT                   = ../
+include                         $(DIR_COMPONENT)/Makefile.defs
 
 LIBRARY				= $(RegisterFile_Monolithic_LIBRARY)
@@ -14,7 +15,7 @@
 DIR_LIBRARY			= $(RegisterFile_Monolithic_DIR_LIBRARY)
 
-#-----[ include ]------------------------------------------
+#-----[ include ]------------------------------------------
 
-all				: library
+all				:
 				@$(MAKE) all_selftest
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_mixte.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_mixte.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-RegisterFile_Monolithic
-0	0 	*2	# nb_port_read
-0	0	*2	# nb_port_write
-1	8	*2	# nb_port_read_write
-32 	32 	*2	# nb_word
-32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_read.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_read.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-RegisterFile_Monolithic
-1	8 	*2	# nb_port_read
-1	1	*2	# nb_port_write
-0	0	*2	# nb_port_read_write
-512 	512	*2	# nb_word
-32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_size.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_size.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-RegisterFile_Monolithic
-4	4 	*2	# nb_port_read
-2	2	*2	# nb_port_write
-0	0	*2	# nb_port_read_write
-1   	128	*2	# nb_word
-32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_write.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/config_write.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-RegisterFile_Monolithic
-1	1 	*2	# nb_port_read
-2	8	*2	# nb_port_write
-0	0	*2	# nb_port_read_write
-512	512	*2	# nb_word
-32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_mixte.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_mixte.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_mixte.gen	(revision 145)
@@ -0,0 +1,6 @@
+RegisterFile_Monolithic
+0	0 	*2	# nb_port_read
+0	0	*2	# nb_port_write
+1	8	*2	# nb_port_read_write
+32 	32 	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_read.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_read.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_read.gen	(revision 145)
@@ -0,0 +1,6 @@
+RegisterFile_Monolithic
+1	8 	*2	# nb_port_read
+1	1	*2	# nb_port_write
+0	0	*2	# nb_port_read_write
+512 	512	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_size.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_size.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_size.gen	(revision 145)
@@ -0,0 +1,6 @@
+RegisterFile_Monolithic
+4	4 	*2	# nb_port_read
+2	2	*2	# nb_port_write
+0	0	*2	# nb_port_read_write
+1   	128	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_write.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_write.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration/config_write.gen	(revision 145)
@@ -0,0 +1,6 @@
+RegisterFile_Monolithic
+1	1 	*2	# nb_port_read
+2	8	*2	# nb_port_write
+0	0	*2	# nb_port_read_write
+512	512	*2	# nb_word
+32	32	*2	# size_word
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/mkf.info	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/mkf.info	(revision 145)
@@ -1,6 +1,6 @@
 
-# RegisterFile_Monolithic_0
-target_dep	all	RegisterFile_Monolithic_0.ngc
-target_dep	RegisterFile_Monolithic_0.ngc	RegisterFile_Monolithic_0.prj
-target_dep	RegisterFile_Monolithic_0.prj	RegisterFile_Monolithic_0_Pack.vhdl RegisterFile_Monolithic_0.vhdl
+# debug_0
+target_dep	all	debug_0.ngc
+target_dep	debug_0.ngc	debug_0.prj
+target_dep	debug_0.prj	debug_0_Pack.vhdl debug_0.vhdl
 
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 145)
@@ -22,5 +22,5 @@
 #include "Behavioural/include/Stat.h"
 #endif
-#include "Behavioural/include/Component.h"
+// #include "Behavioural/include/Component.h"
 #ifdef VHDL
 #include "Behavioural/include/Vhdl.h"
@@ -28,9 +28,17 @@
 #include "Behavioural/include/Usage.h"
 
+
+
 namespace morpheo                    {
 namespace behavioural                {
+
+  class Component;
+  class Interfaces;
+
 namespace generic                    {
 namespace registerfile               {
 namespace registerfile_monolithic    {
+
+// #define VHDL_GAISLER
 
   typedef enum {RW_READ, RW_WRITE} rw_t;
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h	(revision 145)
@@ -17,5 +17,6 @@
 namespace registerfile_monolithic    {
 
-//   typedef uint32_t Taddress_t;
+//typedef uint32_t Taddress_t;
+//typedef uint64_t Tdata_t;
   typedef Tgeneral_data_t Tdata_t;
  
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp	(revision 145)
@@ -8,4 +8,5 @@
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
 #include "Behavioural/include/Allocation.h"
+#include "Behavioural/include/Component.h"
 
 namespace morpheo                    {
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp	(revision 145)
@@ -8,4 +8,5 @@
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
 #include "Behavioural/include/Allocation.h"
+#include "Behavioural/include/Component.h"
 
 namespace morpheo                    {
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl.cpp	(revision 145)
@@ -10,4 +10,6 @@
 #include "Behavioural/include/Vhdl.h"
 #include "Common/include/ToString.h"
+#include "Behavioural/include/Component.h"
+
 namespace morpheo                    {
 namespace behavioural                {
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp	(revision 145)
@@ -17,4 +17,6 @@
   void RegisterFile_Monolithic::vhdl_body (Vhdl * & vhdl)
   {
+#ifndef VHDL_GAISLER
+
     vhdl->set_body   (0,"");
     vhdl->set_comment(0,"---------------------------------------------------------------------------");
@@ -107,6 +109,142 @@
     if (_param->_have_init_value)
       vhdl->set_body   (1,"end if;");
-
     vhdl->set_body   (0,"end process RegisterFile_write;");
+
+#else
+    // vhdl->set_body   (0,"");
+    // vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    // vhdl->set_comment(0," Ackitement");
+    // vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    // vhdl->set_body   (0,"");
+
+    // for (uint32_t i = 0; i < _param->_nb_port_read; i++)
+    //   vhdl->set_body   (0,"out_READ_"+toString(i)+"_ACK  <= '1';");
+    // for (uint32_t i = 0; i < _param->_nb_port_write; i++)
+    //   vhdl->set_body   (0,"out_WRITE_"+toString(i)+"_ACK <= '1';");
+    // for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
+    //   vhdl->set_body   (0,"out_READ_WRITE_"+toString(i)+"_ACK  <= '1';");
+
+    // vhdl->set_body   (0,"");
+    // vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    // vhdl->set_comment(0," Read RegisterFile");
+    // vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    // vhdl->set_body   (0,"");
+
+    // for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+    //   {
+    //     vhdl->set_body   (0,"with in_READ_"+toString(num_read)+"_ADDRESS select");
+    //       vhdl->set_body   (1,"out_READ_"+toString(num_read)+"_DATA <=");
+    //       for (uint32_t num_word=0; num_word<_param->_nb_word-1; ++num_word)
+    //         vhdl->set_body   (1,"reg_DATA_"+toString(num_word)+" when "+std_logic_cst(_param->_size_address,num_word)+",");
+    //       vhdl->set_body   (1,"reg_DATA_"+toString(_param->_nb_word-1)+" when others;");
+    //   }
+
+    // vhdl->set_body   (0,"");
+    // vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    // vhdl->set_comment(0," Write RegisterFile");
+    // vhdl->set_comment(0,"---------------------------------------------------------------------------");
+    // vhdl->set_body   (0,"");
+
+    // vhdl->set_body   (0,"RegisterFile_write: process (in_CLOCK)");
+    // vhdl->set_body   (0,"begin  -- process RegisterFile_write");
+    // vhdl->set_body   (1,"if in_CLOCK'event and in_CLOCK = '1' then");
+
+    // for (uint32_t num_write = 0; num_write < _param->_nb_port_write; num_write++)
+    //   {
+    //     vhdl->set_body   (2,"if (in_WRITE_"+toString(num_write)+"_VAL = '1') then");
+    //     for (uint32_t num_word=0; num_word<_param->_nb_word; ++num_word)
+    //       {
+    //         vhdl->set_body   (3,"if (in_WRITE_"+toString(num_write)+"_ADDRESS = "+std_logic_cst(_param->_size_address,num_word)+") then");
+    //         vhdl->set_body   (4,"reg_DATA_"+toString(num_word)+" <= in_WRITE_"+toString(num_write)+"_DATA;");
+    //         vhdl->set_body   (3,"end if;");
+    //       }
+    //     vhdl->set_body   (2,"end if;");
+    //   }
+    
+    // vhdl->set_body   (1,"end if;");
+    // vhdl->set_body   (0,"end process RegisterFile_write;");
+
+    vhdl->set_body   (0,"combinatory : process (");
+    for (uint32_t num_read=0; num_read<_param->_nb_port_read; ++num_read)
+      {
+        vhdl->set_body   (1,"in_READ_"+toString(num_read)+"_VAL,");
+	if (_param->_have_port_address)
+        vhdl->set_body   (1,"in_READ_"+toString(num_read)+"_ADDRESS,");
+      }
+    for (uint32_t num_write=0; num_write<_param->_nb_port_write; ++num_write)
+      {
+        vhdl->set_body   (1,"in_WRITE_"+toString(num_write)+"_VAL,");
+	if (_param->_have_port_address)
+        vhdl->set_body   (1,"in_WRITE_"+toString(num_write)+"_ADDRESS,");
+        vhdl->set_body   (1,"in_WRITE_"+toString(num_write)+"_DATA,");
+      }
+    for (uint32_t num_write = 0; num_write < _param->_nb_port_write; num_write++)
+    vhdl->set_body   (1,"in_NRESET,");
+    vhdl->set_body   (1,"reg_DATA)");
+    vhdl->set_body   (1,"variable sig_DATA : Treg;");
+    vhdl->set_body   (0,"begin");
+    vhdl->set_body   (1,"");
+    vhdl->set_body   (1,"sig_DATA := reg_DATA;");
+
+    vhdl->set_body   (1,"");
+    vhdl->set_body   (1," -- ack");
+    vhdl->set_body   (1,"");
+    
+    for (uint32_t i = 0; i < _param->_nb_port_read; i++)
+      vhdl->set_body   (1,"out_READ_"+toString(i)+"_ACK  <= '1';");
+    for (uint32_t i = 0; i < _param->_nb_port_write; i++)
+      vhdl->set_body   (1,"out_WRITE_"+toString(i)+"_ACK <= '1';");
+    for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
+      vhdl->set_body   (1,"out_READ_WRITE_"+toString(i)+"_ACK  <= '1';");
+    vhdl->set_body   (1,"");
+    vhdl->set_body   (1," -- Read");
+    vhdl->set_body   (1,"");
+
+    for (uint32_t i = 0; i < _param->_nb_port_read; i++)
+      {
+	std::string str_address;
+	if (_param->_have_port_address)
+	  str_address = "conv_integer(in_READ_"+toString(i)+"_ADDRESS)";
+	else
+	  str_address = "0";
+
+        vhdl->set_body   (1,"if (in_READ_"+toString(i)+"_VAL = '1') then"),
+	vhdl->set_body   (2,"out_READ_"+toString(i)+"_DATA <= sig_DATA.reg ("+str_address+");");
+        vhdl->set_body   (1,"else"),
+	vhdl->set_body   (2,"out_READ_"+toString(i)+"_DATA <= "+std_logic_others(_param->_size_word,0)+";");
+        vhdl->set_body   (1,"end if;");
+      }
+    vhdl->set_body   (1,"");
+    vhdl->set_body   (1," -- write");
+    vhdl->set_body   (1,"");
+
+    for (uint32_t i = 0; i < _param->_nb_port_write; i++)
+      {
+	std::string str_address;
+	if (_param->_have_port_address)
+	  str_address = "conv_integer(in_WRITE_"+toString(i)+"_ADDRESS)";
+	else
+	  str_address = "0";
+
+	vhdl->set_body   (1,"if (in_WRITE_"+toString(i)+"_VAL = '1') then");
+	vhdl->set_body   (2,"sig_DATA.reg("+str_address+") := in_WRITE_"+toString(i)+"_DATA;");
+	vhdl->set_body   (1,"end if;");
+      }
+
+    vhdl->set_body   (1,"");
+    vhdl->set_body   (1,"reg_DATA_next <= sig_DATA;");
+    vhdl->set_body   (1,"");
+    vhdl->set_body   (0,"end process combinatory;");
+
+
+    vhdl->set_body   (0,"sequential: process (in_CLOCK)");
+    vhdl->set_body   (0,"begin");
+    vhdl->set_body   (1,"if rising_edge(in_CLOCK) then");
+    vhdl->set_body   (2,"reg_DATA <= reg_DATA_NEXT;");
+    vhdl->set_body   (1,"end if;");
+    vhdl->set_body   (0,"end process sequential;");
+
+#endif
+
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_declaration.cpp	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_declaration.cpp	(revision 145)
@@ -18,7 +18,18 @@
   void RegisterFile_Monolithic::vhdl_declaration (Vhdl * & vhdl)
   {
+#ifndef VHDL_GAISLER
     vhdl->set_type ("Tregfile", "array " + _std_logic_range(_param->_nb_word) + " of " + std_logic(_param->_size_word));
 
     vhdl->set_signal ("reg_DATA", "Tregfile");
+#else
+    // for (uint32_t i=0; i<_param->_nb_word; ++i)
+    //   vhdl->set_signal ("reg_DATA_"+toString(i), _param->_size_word);
+
+    vhdl->set_type ("Tregfile", "array " + _std_logic_range(_param->_nb_word) + " of " + std_logic(_param->_size_word));
+    vhdl->set_type ("Treg", "record reg : Tregfile; end record");
+
+    vhdl->set_signal ("reg_DATA"     , "Treg");
+    vhdl->set_signal ("reg_DATA_next", "Treg");
+#endif
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/16x_1r_1w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/16x_1r_1w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-16	16	*2	# nb_bank
-1  	1   	*2	# nb_port_read_by_bank
-1 	1	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/16x_2r_1w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/16x_2r_1w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-16	16	*2	# nb_bank
-2  	2   	*2	# nb_port_read_by_bank
-1 	1	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/2x_10r_5w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/2x_10r_5w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-2	2	*2	# nb_bank
-10  	10  	*2	# nb_port_read_by_bank
-5 	5	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/2x_6r_3w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/2x_6r_3w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-2	2	*2	# nb_bank
-6  	6   	*2	# nb_port_read_by_bank
-3 	3	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/2x_8r_4w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/2x_8r_4w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-2	2	*2	# nb_bank
-8  	8   	*2	# nb_port_read_by_bank
-4 	4	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/32x_1r_1w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/32x_1r_1w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-32	32	*2	# nb_bank
-1  	1   	*2	# nb_port_read_by_bank
-1 	1	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/4x_4r_2w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/4x_4r_2w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-4	4	*2	# nb_bank
-4  	4   	*2	# nb_port_read_by_bank
-2 	2	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/4x_6r_3w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/4x_6r_3w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-4	4	*2	# nb_bank
-6  	6   	*2	# nb_port_read_by_bank
-3 	3	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/4x_8r_4w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/4x_8r_4w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-4	4	*2	# nb_bank
-8  	8   	*2	# nb_port_read_by_bank
-4 	4	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/8x_2r_1w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/8x_2r_1w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-8	8	*2	# nb_bank
-2  	2   	*2	# nb_port_read_by_bank
-1 	1	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/8x_4r_2w.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/8x_4r_2w.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-12	12	*2	# nb_port_read
-6	6	*2	# nb_port_write
-256	256	+1	# nb_word
-32	32	*2 	# size_word
-8	8	*2	# nb_bank
-4  	4   	*2	# nb_port_read_by_bank
-2 	2	*2	# nb_port_write_by_bank
-0	0	+1	# crossbar
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile	(revision 145)
@@ -9,5 +9,5 @@
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT			= ../
-include				$(DIR_COMPONENT)/Makefile.defs
+include                         $(DIR_COMPONENT)/Makefile.defs                                                                                                                                                   
 
 LIBRARY				= $(RegisterFile_Multi_Banked_LIBRARY)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-mono_bank-mux_port.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-mono_bank-mux_port.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-1	1	*2	# nb_bank
-4 	4  	*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/SelfTest/config-mono_bank.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-mono_bank.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-1	1	*2	# nb_bank
-11	11 	*2	# nb_port_read_by_bank
-5	5	*2	# nb_port_write_by_bank
-0	1	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-multi_bank.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-multi_bank.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-2	16	*2	# nb_bank
-3	3 	*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/SelfTest/config-one_reg.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-one_reg.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-256	256	*2	# nb_bank
-3	3 	*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/SelfTest/config-size.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-size.cfg	(revision 144)
+++ 	(revision )
@@ -1,9 +1,0 @@
-RegisterFile_Multi_Banked
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-1  	32    	*2	# nb_word
-32	32	*2	# size_word
-1	1	*2	# nb_bank
-3	3 	*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/SelfTest/configuration/16x_1r_1w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/16x_1r_1w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/16x_1r_1w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+16	16	*2	# nb_bank
+1  	1   	*2	# nb_port_read_by_bank
+1 	1	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/16x_2r_1w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/16x_2r_1w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/16x_2r_1w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+16	16	*2	# nb_bank
+2  	2   	*2	# nb_port_read_by_bank
+1 	1	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_10r_5w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_10r_5w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_10r_5w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+2	2	*2	# nb_bank
+10  	10  	*2	# nb_port_read_by_bank
+5 	5	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_6r_3w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_6r_3w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_6r_3w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+2	2	*2	# nb_bank
+6  	6   	*2	# nb_port_read_by_bank
+3 	3	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_8r_4w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_8r_4w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/2x_8r_4w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+2	2	*2	# nb_bank
+8  	8   	*2	# nb_port_read_by_bank
+4 	4	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/32x_1r_1w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/32x_1r_1w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/32x_1r_1w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+32	32	*2	# nb_bank
+1  	1   	*2	# nb_port_read_by_bank
+1 	1	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_4r_2w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_4r_2w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_4r_2w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+4	4	*2	# nb_bank
+4  	4   	*2	# nb_port_read_by_bank
+2 	2	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_6r_3w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_6r_3w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_6r_3w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+4	4	*2	# nb_bank
+6  	6   	*2	# nb_port_read_by_bank
+3 	3	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_8r_4w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_8r_4w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/4x_8r_4w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+4	4	*2	# nb_bank
+8  	8   	*2	# nb_port_read_by_bank
+4 	4	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/8x_2r_1w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/8x_2r_1w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/8x_2r_1w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+8	8	*2	# nb_bank
+2  	2   	*2	# nb_port_read_by_bank
+1 	1	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/8x_4r_2w.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/8x_4r_2w.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/8x_4r_2w.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+12	12	*2	# nb_port_read
+6	6	*2	# nb_port_write
+256	256	+1	# nb_word
+32	32	*2 	# size_word
+8	8	*2	# nb_bank
+4  	4   	*2	# nb_port_read_by_bank
+2 	2	*2	# nb_port_write_by_bank
+0	0	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-mono_bank-mux_port.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-mono_bank-mux_port.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-mono_bank-mux_port.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+4 	4  	*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/SelfTest/configuration/config-mono_bank.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-mono_bank.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-mono_bank.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+11	11 	*2	# nb_port_read_by_bank
+5	5	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-multi_bank.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-multi_bank.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-multi_bank.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+2	16	*2	# nb_bank
+3	3 	*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/SelfTest/configuration/config-one_reg.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-one_reg.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-one_reg.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+256	256	*2	# nb_bank
+3	3 	*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/SelfTest/configuration/config-size.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-size.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/configuration/config-size.gen	(revision 145)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+1  	32    	*2	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+3	3 	*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/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/mkf.info	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/mkf.info	(revision 145)
@@ -1,11 +1,61 @@
 
-# RegisterFile_Multi_Banked_0
-target_dep	all	RegisterFile_Multi_Banked_0.ngc
-target_dep	RegisterFile_Multi_Banked_0.ngc	RegisterFile_Multi_Banked_0.prj
-target_dep	RegisterFile_Multi_Banked_0.prj	RegisterFile_Multi_Banked_0_bank_Pack.vhdl RegisterFile_Multi_Banked_0_bank.vhdl RegisterFile_Multi_Banked_0_Pack.vhdl RegisterFile_Multi_Banked_0_select_1_ports_Pack.vhdl RegisterFile_Multi_Banked_0_select_1_ports.vhdl RegisterFile_Multi_Banked_0_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_0_select_2_ports.vhdl RegisterFile_Multi_Banked_0.vhdl
+# info_00
+target_dep	all	info_00.ngc
+target_dep	info_00.ngc	info_00.prj
+target_dep	info_00.prj	info_00_bank_Pack.vhdl info_00_bank.vhdl info_00_Pack.vhdl info_00_select_4_ports_Pack.vhdl info_00_select_4_ports.vhdl info_00_select_8_ports_Pack.vhdl info_00_select_8_ports.vhdl info_00.vhdl
 
-# RegisterFile_Multi_Banked_1
-target_dep	all	RegisterFile_Multi_Banked_1.ngc
-target_dep	RegisterFile_Multi_Banked_1.ngc	RegisterFile_Multi_Banked_1.prj
-target_dep	RegisterFile_Multi_Banked_1.prj	RegisterFile_Multi_Banked_1_bank_Pack.vhdl RegisterFile_Multi_Banked_1_bank.vhdl RegisterFile_Multi_Banked_1_Pack.vhdl RegisterFile_Multi_Banked_1_select_1_ports_Pack.vhdl RegisterFile_Multi_Banked_1_select_1_ports.vhdl RegisterFile_Multi_Banked_1_select_2_ports_Pack.vhdl RegisterFile_Multi_Banked_1_select_2_ports.vhdl RegisterFile_Multi_Banked_1.vhdl
+# info_01
+target_dep	all	info_01.ngc
+target_dep	info_01.ngc	info_01.prj
+target_dep	info_01.prj	info_01_bank_Pack.vhdl info_01_bank.vhdl info_01_Pack.vhdl info_01_select_4_ports_Pack.vhdl info_01_select_4_ports.vhdl info_01_select_8_ports_Pack.vhdl info_01_select_8_ports.vhdl info_01.vhdl
 
+# info_02
+target_dep	all	info_02.ngc
+target_dep	info_02.ngc	info_02.prj
+target_dep	info_02.prj	info_02_bank_Pack.vhdl info_02_bank.vhdl info_02_Pack.vhdl info_02_select_4_ports_Pack.vhdl info_02_select_4_ports.vhdl info_02_select_8_ports_Pack.vhdl info_02_select_8_ports.vhdl info_02.vhdl
+
+# info_03
+target_dep	all	info_03.ngc
+target_dep	info_03.ngc	info_03.prj
+target_dep	info_03.prj	info_03_bank_Pack.vhdl info_03_bank.vhdl info_03_Pack.vhdl info_03_select_16_ports_Pack.vhdl info_03_select_16_ports.vhdl info_03_select_4_ports_Pack.vhdl info_03_select_4_ports.vhdl info_03.vhdl
+
+# info_04
+target_dep	all	info_04.ngc
+target_dep	info_04.ngc	info_04.prj
+target_dep	info_04.prj	info_04_bank_Pack.vhdl info_04_bank.vhdl info_04_Pack.vhdl info_04_select_16_ports_Pack.vhdl info_04_select_16_ports.vhdl info_04_select_4_ports_Pack.vhdl info_04_select_4_ports.vhdl info_04.vhdl
+
+# info_05
+target_dep	all	info_05.ngc
+target_dep	info_05.ngc	info_05.prj
+target_dep	info_05.prj	info_05_bank_Pack.vhdl info_05_bank.vhdl info_05_Pack.vhdl info_05_select_16_ports_Pack.vhdl info_05_select_16_ports.vhdl info_05_select_4_ports_Pack.vhdl info_05_select_4_ports.vhdl info_05.vhdl
+
+# result_06
+target_dep	all	result_06.ngc
+target_dep	result_06.ngc	result_06.prj
+target_dep	result_06.prj	result_06_bank_Pack.vhdl result_06_bank.vhdl result_06_Pack.vhdl result_06_select_4_ports_Pack.vhdl result_06_select_4_ports.vhdl result_06_select_8_ports_Pack.vhdl result_06_select_8_ports.vhdl result_06.vhdl
+
+# result_07
+target_dep	all	result_07.ngc
+target_dep	result_07.ngc	result_07.prj
+target_dep	result_07.prj	result_07_bank_Pack.vhdl result_07_bank.vhdl result_07_Pack.vhdl result_07_select_4_ports_Pack.vhdl result_07_select_4_ports.vhdl result_07_select_8_ports_Pack.vhdl result_07_select_8_ports.vhdl result_07.vhdl
+
+# result_08
+target_dep	all	result_08.ngc
+target_dep	result_08.ngc	result_08.prj
+target_dep	result_08.prj	result_08_bank_Pack.vhdl result_08_bank.vhdl result_08_Pack.vhdl result_08_select_4_ports_Pack.vhdl result_08_select_4_ports.vhdl result_08_select_8_ports_Pack.vhdl result_08_select_8_ports.vhdl result_08.vhdl
+
+# result_09
+target_dep	all	result_09.ngc
+target_dep	result_09.ngc	result_09.prj
+target_dep	result_09.prj	result_09_bank_Pack.vhdl result_09_bank.vhdl result_09_Pack.vhdl result_09_select_16_ports_Pack.vhdl result_09_select_16_ports.vhdl result_09_select_4_ports_Pack.vhdl result_09_select_4_ports.vhdl result_09.vhdl
+
+# result_10
+target_dep	all	result_10.ngc
+target_dep	result_10.ngc	result_10.prj
+target_dep	result_10.prj	result_10_bank_Pack.vhdl result_10_bank.vhdl result_10_Pack.vhdl result_10_select_16_ports_Pack.vhdl result_10_select_16_ports.vhdl result_10_select_4_ports_Pack.vhdl result_10_select_4_ports.vhdl result_10.vhdl
+
+# result_11
+target_dep	all	result_11.ngc
+target_dep	result_11.ngc	result_11.prj
+target_dep	result_11.prj	result_11_bank_Pack.vhdl result_11_bank.vhdl result_11_Pack.vhdl result_11_select_16_ports_Pack.vhdl result_11_select_16_ports.vhdl result_11_select_4_ports_Pack.vhdl result_11_select_4_ports.vhdl result_11.vhdl
+
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/main.cpp	(revision 145)
@@ -8,5 +8,5 @@
 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h"
 
-#define NB_PARAMS 0
+#define NB_PARAMS 8
 
 void usage (int argc, char * argv[])
@@ -40,5 +40,5 @@
     usage (argc, argv);
 
-  const string   name      = argv[1];
+  const string      name                  = argv[1];
   const uint32_t    nb_port_read          = atoi(argv[2]);
   const uint32_t    nb_port_write         = atoi(argv[3]);
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 145)
@@ -42,6 +42,8 @@
      _param,
      _usage);
-  
-#ifdef SYSTEMC
+
+#if 0  
+// #ifdef SYSTEMC
+
   /*********************************************************************
    * Déclarations des signaux
@@ -229,5 +231,4 @@
    ********************************************************/
 
-  TEST_OK("End of Simulation");
   delete _time;
   cout << "<" << name << "> ............ Stop Simulation" << endl;
@@ -236,4 +237,5 @@
   delete NRESET;
 #endif
+  TEST_OK("End of Simulation");
 
   delete _RegisterFile_Multi_Banked;
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 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h	(revision 145)
@@ -19,4 +19,5 @@
 
 //typedef uint32_t Taddress_t;
+//typedef uint64_t Tdata_t;
   typedef Tgeneral_data_t Tdata_t;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-mono_bank-mux_port.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-mono_bank-mux_port.cfg	(revision 144)
+++ 	(revision )
@@ -1,10 +1,0 @@
-RegisterFile
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-1	1	*2	# nb_bank
-4 	4  	*2	# nb_port_read_by_bank
-2	2	*2	# nb_port_write_by_bank
-0	1	+1	# crossbar
-0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-mono_bank.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-mono_bank.cfg	(revision 144)
+++ 	(revision )
@@ -1,10 +1,0 @@
-RegisterFile
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-1	1	*2	# nb_bank
-11	11 	*2	# nb_port_read_by_bank
-5	5	*2	# nb_port_write_by_bank
-0	1	+1	# crossbar
-0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-multi_bank.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-multi_bank.cfg	(revision 144)
+++ 	(revision )
@@ -1,10 +1,0 @@
-RegisterFile
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-2	16	*2	# nb_bank
-3	3 	*2	# nb_port_read_by_bank
-2	2	*2	# nb_port_write_by_bank
-0	1	+1	# crossbar
-0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-one_reg.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-one_reg.cfg	(revision 144)
+++ 	(revision )
@@ -1,10 +1,0 @@
-RegisterFile
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-256  	256    	+1	# nb_word
-32	32	*2	# size_word
-256	256	*2	# nb_bank
-3	3 	*2	# nb_port_read_by_bank
-2	2	*2	# nb_port_write_by_bank
-0	1	+1	# crossbar
-0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-size.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/config-size.cfg	(revision 144)
+++ 	(revision )
@@ -1,10 +1,0 @@
-RegisterFile
-11	11	*2	# nb_port_read
-5	5	*2	# nb_port_write
-1  	32    	*2	# nb_word
-32	32	*2	# size_word
-1	1	*2	# nb_bank
-3	3 	*2	# nb_port_read_by_bank
-2	2	*2	# nb_port_write_by_bank
-0	1	+1	# crossbar
-0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-mono_bank-mux_port.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-mono_bank-mux_port.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-mono_bank-mux_port.gen	(revision 145)
@@ -0,0 +1,10 @@
+RegisterFile
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+4 	4  	*2	# nb_port_read_by_bank
+2	2	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
+0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-mono_bank.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-mono_bank.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-mono_bank.gen	(revision 145)
@@ -0,0 +1,10 @@
+RegisterFile
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+11	11 	*2	# nb_port_read_by_bank
+5	5	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
+0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-multi_bank.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-multi_bank.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-multi_bank.gen	(revision 145)
@@ -0,0 +1,10 @@
+RegisterFile
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+2	16	*2	# nb_bank
+3	3 	*2	# nb_port_read_by_bank
+2	2	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
+0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-one_reg.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-one_reg.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-one_reg.gen	(revision 145)
@@ -0,0 +1,10 @@
+RegisterFile
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+256  	256    	+1	# nb_word
+32	32	*2	# size_word
+256	256	*2	# nb_bank
+3	3 	*2	# nb_port_read_by_bank
+2	2	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
+0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-size.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-size.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/configuration/config-size.gen	(revision 145)
@@ -0,0 +1,10 @@
+RegisterFile
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+1  	32    	*2	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+3	3 	*2	# nb_port_read_by_bank
+2	2	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
+0	1	+1	# Monolithic / Multi Banked
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_compact.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_compact.cfg	(revision 144)
+++ 	(revision )
@@ -1,4 +1,0 @@
-Select_Priority_Fixed
-2	16	*2	# nb_entity
-0	0	+1	# encoding_one_hot
-1	1	+1	# encoding_compact
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_dual.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_dual.cfg	(revision 144)
+++ 	(revision )
@@ -1,4 +1,0 @@
-Select_Priority_Fixed
-2	16	*2	# nb_entity
-1	1	+1	# encoding_one_hot
-1	1	+1	# encoding_compact
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_one_hot.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_one_hot.cfg	(revision 144)
+++ 	(revision )
@@ -1,4 +1,0 @@
-Select_Priority_Fixed
-2	16	*2	# nb_entity
-1	1	+1	# encoding_one_hot
-0	0	+1	# encoding_compact
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_compact.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_compact.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_compact.gen	(revision 145)
@@ -0,0 +1,4 @@
+Select_Priority_Fixed
+2	16	*2	# nb_entity
+0	0	+1	# encoding_one_hot
+1	1	+1	# encoding_compact
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_dual.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_dual.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_dual.gen	(revision 145)
@@ -0,0 +1,4 @@
+Select_Priority_Fixed
+2	16	*2	# nb_entity
+1	1	+1	# encoding_one_hot
+1	1	+1	# encoding_compact
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_one_hot.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_one_hot.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration/config_one_hot.gen	(revision 145)
@@ -0,0 +1,4 @@
+Select_Priority_Fixed
+2	16	*2	# nb_entity
+1	1	+1	# encoding_one_hot
+0	0	+1	# encoding_compact
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/config_rotate.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/config_rotate.cfg	(revision 144)
+++ 	(revision )
@@ -1,7 +1,0 @@
-Shifter
-16	16	*4	# size_data  
-2	2	+1	# nb_port    
-0	0       +1	# shift_value
-1	2	+1	# rotate     
-0	2	+1	# direction  
-0	0	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/config_shift.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/config_shift.cfg	(revision 144)
+++ 	(revision )
@@ -1,7 +1,0 @@
-Shifter
-16	16	*4	# size_data  
-1	2	+1	# nb_port    
-0	2	+1	# shift_value
-0	0	+1	# rotate     
-0	2	+1	# direction  
-0	2	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,7 +1,0 @@
-Shifter
-16	16	*4	# size_data  
-1	2	+1	# nb_port    
-0	2	+1	# shift_value
-0	0	+1	# rotate     
-0	2	+1	# direction  
-0	2	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/config_rotate.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/config_rotate.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/config_rotate.gen	(revision 145)
@@ -0,0 +1,7 @@
+Shifter
+16	16	*4	# size_data  
+2	2	+1	# nb_port    
+0	0       +1	# shift_value
+1	2	+1	# rotate     
+0	2	+1	# direction  
+0	0	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/config_shift.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/config_shift.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/config_shift.gen	(revision 145)
@@ -0,0 +1,7 @@
+Shifter
+16	16	*4	# size_data  
+1	2	+1	# nb_port    
+0	2	+1	# shift_value
+0	0	+1	# rotate     
+0	2	+1	# direction  
+0	2	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,7 @@
+Shifter
+16	16	*4	# size_data  
+1	2	+1	# nb_port    
+0	2	+1	# shift_value
+0	0	+1	# rotate     
+0	2	+1	# direction  
+0	2	+1	# carry      
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,7 +1,0 @@
-Sort
-8	8	*2	# nb_input           
-1	8	*2	# nb_output          
-1	1	+1	# ascending          
-16	16	*2	# size_data          
-1	1	+1	# have_port_index_out
-1	1	+1	# have_port_data_out 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Sort/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,7 @@
+Sort
+8	8	*2	# nb_input           
+1	8	*2	# nb_output          
+1	1	+1	# ascending          
+16	16	*2	# size_data          
+1	1	+1	# have_port_index_out
+1	1	+1	# have_port_data_out 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/configuration.cfg	(revision 144)
+++ 	(revision )
@@ -1,6 +1,0 @@
-Victim
-3	3	+1	# victim_scheme
-2	8	*4	# nb_entity    
-1	8	*4	# nb_entry     
-1	4	*4	# nb_access    
-0	1	+1	# table_global 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,6 @@
+Victim
+3	3	+1	# victim_scheme
+2	8	*4	# nb_entity    
+1	8	*4	# nb_entry     
+1	4	*4	# nb_access    
+0	1	+1	# table_global 
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 144)
+++ 	(revision )
@@ -1,5 +1,0 @@
-Victim_Pseudo_LRU
-4	16	*4	# nb_entity 
-1	4	*4	# nb_access		# 1	4	*4	# nb_update 
-1	16	*4	# size_table
-0	1	+1	# table_global
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration/configuration.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration/configuration.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration/configuration.gen	(revision 145)
@@ -0,0 +1,5 @@
+Victim_Pseudo_LRU
+4	16	*4	# nb_entity 
+1	4	*4	# nb_access		# 1	4	*4	# nb_update 
+1	16	*4	# size_table
+0	1	+1	# table_global
