Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.deps	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.deps	(revision 135)
@@ -13,4 +13,7 @@
 include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
 endif
+ifndef Queue
+include 			$(DIR_MORPHEO)/Behavioural/Generic/Queue/Makefile.deps
+endif
 
 #-----[ Directory ]----------------------------------------
@@ -21,7 +24,9 @@
 
 Decod_queue_LIBRARY		= 	-lDecod_queue	\
+					$(Queue_LIBRARY)		\
 					$(Behavioural_LIBRARY)	
 
 Decod_queue_DIR_LIBRARY		=	-L$(Decod_queue_DIR)/lib	\
+					$(Queue_DIR_LIBRARY)		\
 					$(Behavioural_DIR_LIBRARY)
 
@@ -31,4 +36,5 @@
 				@\
 				$(MAKE) Behavioural_library;		\
+				$(MAKE) Queue_library;			\
 				$(MAKE) --directory=$(Decod_queue_DIR) --makefile=Makefile;
 
@@ -36,3 +42,4 @@
 				@\
 				$(MAKE) Behavioural_library_clean;	\
+				$(MAKE) Queue_library_clean;		\
 				$(MAKE) --directory=$(Decod_queue_DIR) --makefile=Makefile clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue.fig
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue.fig	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue.fig	(revision 135)
@@ -0,0 +1,67 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+	 2850 1500 4050 1500 4050 2400 2850 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3750 1500 3750 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3450 1500 3450 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3150 1500 3150 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 6000 1950 7200 1950
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 6000 2250 7200 2250
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4050 1650 7200 1650
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 4800 1800 4800 2400 6000 2400 6000 1800 4800 1800
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 4800 1950 4050 1950
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 4050 2250 4800 2250
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5400 3150 5400 2400
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3450 2400 3450 3150
+2 4 2 1 0 7 50 -1 -1 3.000 0 0 7 0 0 5
+	 4125 3750 4125 3000 2775 3000 2775 3750 4125 3750
+2 4 2 1 0 7 50 -1 -1 3.000 0 0 7 0 0 5
+	 6075 3750 6075 3000 4725 3000 4725 3750 6075 3750
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1650 1950 2925 1950
+2 4 2 1 0 7 50 -1 -1 3.000 0 0 7 0 0 5
+	 6150 2550 6150 1050 2700 1050 2700 2550 6150 2550
+2 4 2 1 0 7 50 -1 -1 3.000 0 0 7 0 0 5
+	 8550 2550 8550 1350 7050 1350 7050 2550 8550 2550
+2 4 2 1 0 7 50 -1 -1 3.000 0 0 7 0 0 5
+	 1800 2550 1800 1350 450 1350 450 2550 1800 2550
+4 1 0 50 -1 2 10 0.0000 0 105 945 3450 3450 Context State\001
+4 1 0 50 -1 2 10 0.0000 0 120 1050 5400 3450 Prediction Unit\001
+4 1 0 50 -1 0 10 0.0000 0 135 375 5625 2850 Depth\001
+4 1 0 50 -1 0 10 0.0000 0 150 525 3750 2850 Nb_Inst\001
+4 1 0 50 -1 0 10 0.0000 0 105 330 4425 2175 ACK\001
+4 1 0 50 -1 0 10 0.0000 0 105 330 4425 1875 VAL\001
+4 1 0 50 -1 3 10 0.0000 0 150 705 5400 2100 Profondeur\001
+4 1 0 50 -1 2 10 0.0000 0 150 900 4425 1275 Decod_queue\001
+4 1 0 50 -1 0 10 0.0000 0 105 765 6600 1575 Instructions\001
+4 1 0 50 -1 0 10 0.0000 0 105 330 6600 1875 VAL\001
+4 1 0 50 -1 0 10 0.0000 0 105 330 6600 2175 ACK\001
+4 1 0 50 -1 2 10 0.0000 0 165 1350 7800 1950 Out Of Order Engine\001
+4 1 0 50 -1 2 10 0.0000 0 105 450 1125 1950 Decod\001
+4 1 0 50 -1 0 10 0.0000 0 105 765 2250 1800 Instructions\001
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue_index.fig
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue_index.fig	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue_index.fig	(revision 135)
@@ -0,0 +1,156 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+5 1 0 1 0 7 50 -1 -1 3.000 0 0 0 0 4865.625 4425.000 4800 4200 5100 4425 4800 4650
+1 4 0 1 0 7 50 -1 -1 3.000 1 0.0000 4350 2100 150 150 4200 2100 4500 2100
+1 4 0 1 0 7 50 -1 -1 3.000 1 0.0000 4350 3150 150 150 4200 3150 4500 3150
+1 4 0 1 0 7 50 -1 -1 3.000 1 0.0000 4350 825 375 375 4050 600 4650 1050
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1650 3450 4800 3450
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1650 2400 4800 2400
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1650 1350 4800 1350
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+	3 0 1.00 60.00 120.00
+	 1650 1050 2700 1050 2700 600 4050 600
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+	3 0 1.00 60.00 120.00
+	 1650 2100 2850 2100 2850 750 3975 750
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+	3 0 1.00 60.00 120.00
+	 1650 4200 3150 4200 3150 1050 4050 1050
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+	3 0 1.00 60.00 120.00
+	 1650 3150 3000 3150 3000 900 3975 900
+2 2 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5
+	 4800 1200 5100 1200 5100 1950 4800 1950 4800 1200
+2 2 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5
+	 4800 2250 5100 2250 5100 2850 4800 2850 4800 2250
+2 2 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 5
+	 4800 3300 5100 3300 5100 3750 4800 3750 4800 3300
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 3
+	 4800 1200 5100 1575 4800 1950
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 3
+	 4800 2250 5100 2550 4800 2850
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 3
+	 4800 3300 5100 3525 4800 3750
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 3750 3300 3750 2550
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 3750 4500 3750 3300
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 3750 2550 3750 1800
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 3600 2400 3600 1650
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 3600 3450 3600 2400
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 3450 2400 3450 1500
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 4800 4200 4800 4650
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4350 2250 4350 3000
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4350 1200 4350 1950
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 3
+	3 0 1.00 60.00 120.00
+	 4500 3150 4950 3150 4950 3300
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 3
+	3 0 1.00 60.00 120.00
+	 4500 2100 4950 2100 4950 2250
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 3
+	3 0 1.00 60.00 120.00
+	 4725 900 4950 900 4950 1200
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4950 2100 6000 2100
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4950 3150 6000 3150
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4350 4050 6000 4050
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3750 3600 4800 3600
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3600 2550 4800 2550
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3750 2700 4800 2700
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3750 1800 4800 1800
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3600 1650 4800 1650
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3450 1500 4800 1500
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 4725 750 6000 750
+2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 3
+	3 0 1.00 60.00 120.00
+	 4350 3300 4350 4350 4800 4350
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1650 4500 4800 4500
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5100 2550 6000 2550
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5100 1575 6000 1575
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5100 3525 6000 3525
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 5100 4425 6000 4425
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 450 600 750 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1350 600 1650 600 1650 4800 1350 4800 1350 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1050 600 1350 600 1350 4800 1050 4800 1050 600
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 750 600 1050 600 1050 4800 750 4800 750 600
+2 1 0 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 750 4800 450 4800
+2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 750 1650 1650 1650
+2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 750 2700 1650 2700
+2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 750 3750 1650 3750
+4 0 0 50 -1 0 8 0.0000 0 105 525 1800 2025 in_VAL_1\001
+4 0 0 50 -1 0 8 0.0000 0 105 525 1800 975 in_VAL_0\001
+4 0 0 50 -1 0 8 0.0000 0 105 525 1800 3075 in_VAL_2\001
+4 0 0 50 -1 0 8 0.0000 0 105 525 1800 4125 in_VAL_3\001
+4 0 0 50 -1 0 8 0.0000 0 105 555 1800 1275 in_INST_0\001
+4 0 0 50 -1 0 8 0.0000 0 105 555 1800 2325 in_INST_1\001
+4 0 0 50 -1 0 8 0.0000 0 105 555 1800 3375 in_INST_2\001
+4 0 0 50 -1 0 8 0.0000 0 105 555 1800 4425 in_INST_3\001
+4 1 0 50 -1 0 8 0.0000 0 75 405 4350 900 DEPTH\001
+4 2 0 50 -1 0 8 0.0000 0 90 600 5850 675 out_VAL_0\001
+4 2 0 50 -1 0 8 0.0000 0 90 600 5850 2025 out_VAL_1\001
+4 2 0 50 -1 0 8 0.0000 0 90 600 5850 3075 out_VAL_2\001
+4 2 0 50 -1 0 8 0.0000 0 90 600 5850 3975 out_VAL_3\001
+4 2 0 50 -1 0 8 0.0000 0 90 630 5850 1500 out_INST_0\001
+4 2 0 50 -1 0 8 0.0000 0 90 630 5850 2475 out_INST_1\001
+4 2 0 50 -1 0 8 0.0000 0 90 630 5850 3450 out_INST_2\001
+4 2 0 50 -1 0 8 0.0000 0 90 630 5850 4350 out_INST_3\001
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue_reg.fig
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue_reg.fig	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/fig/Decod_queue_reg.fig	(revision 135)
@@ -0,0 +1,51 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
+	 1500 900 1800 900 1800 1500 1500 1500 1500 900
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 3
+	 1500 900 1800 1200 1500 1500
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
+	 2850 750 3150 750 3150 1350 2850 1350 2850 750
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 3
+	 2850 750 3150 1050 2850 1350
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
+	 3600 600 3900 600 3900 1500 3600 1500 3600 600
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 3
+	 3600 1500 3750 1350 3900 1500
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 6
+	3 0 1.00 60.00 120.00
+	 3900 1050 4200 1050 4200 1650 1200 1650 1200 1350 1500 1350
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1650 450 1650 900
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3000 450 3000 750
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 1800 1200 2850 1200
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+	3 0 1.00 60.00 120.00
+	 3150 1050 3600 1050
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 2850 900 2550 900
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
+	3 0 1.00 60.00 120.00
+	 1500 1050 900 1050
+4 0 0 50 -1 0 8 0.0000 0 90 480 900 975 out_VAL\001
+4 0 0 50 -1 0 8 0.0000 0 75 60 2550 825 0\001
+4 1 0 50 -1 0 8 0.0000 0 90 495 1650 375 new_head\001
+4 1 0 50 -1 0 8 0.0000 0 90 540 3000 375 transaction\001
+4 1 0 50 -1 0 8 0.0000 0 90 480 3750 525 reg_VAL\001
+4 1 0 50 -1 0 8 0.0000 0 75 60 1725 1425 0\001
+4 1 0 50 -1 0 8 0.0000 0 75 60 3075 1275 0\001
+4 1 0 50 -1 0 8 0.0000 0 75 60 1725 1050 1\001
+4 1 0 50 -1 0 8 0.0000 0 75 60 3075 900 1\001
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/sty/header.sty
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/sty/header.sty	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/doc/sty/header.sty	(revision 135)
@@ -2,5 +2,5 @@
 %\def\review{\number\day/\number\month/\number\year\xspace}
 
-\title{Decod_queue}
+\title{Decod\_queue}
  
 \author{}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Parameters.h	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Parameters.h	(revision 135)
@@ -34,4 +34,5 @@
     
   public : uint32_t              _nb_bank;
+  public : uint32_t              _size_internal_queue    ; // data size in queue
 
     //-----[ methods ]-----------------------------------------------------------
@@ -60,5 +61,4 @@
 }; // end namespace multi_front_end
 }; // end namespace core
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl.cpp	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl.cpp	(revision 135)
@@ -9,4 +9,5 @@
 #include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h"
 #include "Behavioural/include/Vhdl.h"
+#include "Behavioural/Generic/Queue/include/Queue.h"
 
 namespace morpheo                    {
@@ -24,4 +25,33 @@
   {
     log_begin(Decod_queue,FUNCTION);
+
+    //----- Queue -----
+   
+    morpheo::behavioural::generic::queue::Parameters * param_queue;
+    morpheo::behavioural::generic::queue::Queue      * queue;
+    
+    param_queue = new morpheo::behavioural::generic::queue::Parameters
+      (_param->_size_queue,
+       _param->_size_internal_queue,
+       0,
+       false,
+       false
+       );
+    
+    std::string queue_name = _name + "_queue";
+    queue = new morpheo::behavioural::generic::queue::Queue
+      (queue_name.c_str()
+#ifdef STATISTICS
+       ,NULL
+#endif
+       ,param_queue
+       ,USE_VHDL);
+    
+    _component->set_component(queue->_component
+#ifdef POSITION
+                              , 0, 0, 0, 0
+#endif
+                              , INSTANCE_LIBRARY
+                              );
 
     Vhdl * vhdl = new Vhdl (_name);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl_body.cpp	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl_body.cpp	(revision 135)
@@ -23,5 +23,386 @@
   {
     log_begin(Decod_queue,FUNCTION);
-    vhdl->set_body ("");
+
+    vhdl->set_body(0,"");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_comment(0,"-- Instance queue                  ");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_body(0,"");
+
+    vhdl->set_body   (0,"instance_"+_name+"_queue : "+_name+"_queue");
+    vhdl->set_body   (0,"port map (");
+    vhdl->set_body   (1,"  in_CLOCK => in_CLOCK ");
+    vhdl->set_body   (1,", in_NRESET => in_NRESET");
+    vhdl->set_body   (1,", in_INSERT_VAL => internal_QUEUE_INSERT_VAL");
+    vhdl->set_body   (1,",out_INSERT_ACK => internal_QUEUE_INSERT_ACK");
+    vhdl->set_body   (1,", in_INSERT_DATA => internal_QUEUE_INSERT_DATA");
+    vhdl->set_body   (1,",out_RETIRE_VAL => internal_QUEUE_RETIRE_VAL");
+    vhdl->set_body   (1,", in_RETIRE_ACK => internal_QUEUE_RETIRE_ACK");
+    vhdl->set_body   (1,",out_RETIRE_DATA => internal_QUEUE_RETIRE_DATA");
+    vhdl->set_body   (0,");");
+
+    vhdl->set_body(0,"");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_comment(0,"-- Entree Queue                    ");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_body(0,"");
+
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+
+      vhdl->set_body(0,"");
+      vhdl->set_comment(0,"-----------------------------------");
+      vhdl->set_comment(0,"-- Instruction "+toString(i)+"                   ");
+      vhdl->set_comment(0,"-----------------------------------");
+      vhdl->set_body(0,"");
+
+      if(_param->_have_port_context_id) vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_CONTEXT_ID <= in_DECOD_IN_"+toString(i)+"_CONTEXT_ID ;");
+      if(_param->_have_port_depth) vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_DEPTH <= in_DECOD_IN_"+toString(i)+"_DEPTH ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_TYPE <= in_DECOD_IN_"+toString(i)+"_TYPE ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_OPERATION <= in_DECOD_IN_"+toString(i)+"_OPERATION ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_NO_EXECUTE <= in_DECOD_IN_"+toString(i)+"_NO_EXECUTE ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_IS_DELAY_SLOT <= in_DECOD_IN_"+toString(i)+"_IS_DELAY_SLOT ;");
+#ifdef DEBUG
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_ADDRESS <= in_DECOD_IN_"+toString(i)+"_ADDRESS ;");
+#endif
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_ADDRESS_NEXT <= in_DECOD_IN_"+toString(i)+"_ADDRESS_NEXT ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_HAS_IMMEDIAT <= in_DECOD_IN_"+toString(i)+"_HAS_IMMEDIAT ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_IMMEDIAT <= in_DECOD_IN_"+toString(i)+"_IMMEDIAT ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_READ_RA <= in_DECOD_IN_"+toString(i)+"_READ_RA ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_NUM_REG_RA <= in_DECOD_IN_"+toString(i)+"_NUM_REG_RA ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_READ_RB <= in_DECOD_IN_"+toString(i)+"_READ_RB ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_NUM_REG_RB <= in_DECOD_IN_"+toString(i)+"_NUM_REG_RB ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_READ_RC <= in_DECOD_IN_"+toString(i)+"_READ_RC ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_NUM_REG_RC <= in_DECOD_IN_"+toString(i)+"_NUM_REG_RC ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_WRITE_RD <= in_DECOD_IN_"+toString(i)+"_WRITE_RD ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_NUM_REG_RD <= in_DECOD_IN_"+toString(i)+"_NUM_REG_RD ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_WRITE_RE <= in_DECOD_IN_"+toString(i)+"_WRITE_RE ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_NUM_REG_RE <= in_DECOD_IN_"+toString(i)+"_NUM_REG_RE ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_EXCEPTION_USE <= in_DECOD_IN_"+toString(i)+"_EXCEPTION_USE ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_EXCEPTION <= in_DECOD_IN_"+toString(i)+"_EXCEPTION ;");
+      vhdl->set_body(0,"internal_DECOD_IN_"+toString(i)+"_VAL <= in_DECOD_IN_"+toString(i)+"_VAL ;");
+      vhdl->set_body(0,"out_DECOD_IN_"+toString(i)+"_ACK <= internal_QUEUE_INSERT_ACK ;");
+    }
+
+    vhdl->set_body(0,"");
+
+    vhdl->set_body(0,"internal_QUEUE_INSERT_VAL <= '0'");
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+      vhdl->set_body(1," OR internal_DECOD_IN_"+toString(i)+"_VAL");
+    }
+    vhdl->set_body(1,";");
+
+    vhdl->set_body(0,"");
+
+    if(_param->_have_port_context_id){
+      if(_param->_size_nb_inst_decod < 2){
+	for(uint32_t i_context=0;i_context < _param->_nb_context;i_context++)
+	  vhdl->set_body(0,"internal_NB_INST_"+toString(i_context)+"_ALL <= ( reg_NB_INST_"+toString(i_context)+"_ALL OR ( internal_DECOD_IN_0_VAL AND ( internal_QUEUE_INSERT_ACK AND internal_DECOD_OUT_0_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" ))) AND ( NOT ( internal_OUT_DECOD_OUT_0_VAL AND ( internal_DECOD_OUT_0_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" AND ( NOT internal_DECOD_OUT_0_VAL ))));");
+      }
+      else{
+	for(uint32_t i_context=0;i_context < _param->_nb_context;i_context++){
+	  
+	  for(uint32_t i_inst=0;i_inst < _param->_nb_inst_decod;i_inst++){
+	    vhdl->set_body(0,"internal_NB_INST_OUT_"+toString(i_context)+"_"+toString(i_inst)+"_CONTEXT <= "+std_logic_conv(_param->_size_nb_inst_decod,1)+" WHEN( internal_DECOD_OUT_"+toString(i_inst)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" AND internal_OUT_DECOD_OUT_"+toString(i_inst)+"_VAL = '1' AND internal_DECOD_OUT_"+toString(i_inst)+"_VAL = '0' ) ELSE "+std_logic_conv(_param->_size_nb_inst_decod,0)+";");
+	    vhdl->set_body(0,"internal_NB_INST_IN_"+toString(i_context)+"_"+toString(i_inst)+"_CONTEXT <= "+std_logic_conv(_param->_size_nb_inst_decod,1)+" WHEN( internal_DECOD_IN_"+toString(i_inst)+"_VAL = '1' AND internal_QUEUE_INSERT_ACK = '1' AND internal_DECOD_IN_"+toString(i_inst)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" ) ELSE "+std_logic_conv(_param->_size_nb_inst_decod,0)+";");
+	  }
+	  
+	  vhdl->set_body(0,"");
+	  
+	  vhdl->set_body(0,"internal_NB_INST_"+toString(i_context)+"_ALL <= reg_NB_INST_"+toString(i_context)+"_ALL");
+	  
+	  for(uint32_t i_inst=0;i_inst < _param->_nb_inst_decod;i_inst++){
+	    vhdl->set_body(1,"+ internal_NB_INST_IN_"+toString(i_context)+"_"+toString(i_inst)+"_CONTEXT");
+	    vhdl->set_body(1,"- internal_NB_INST_OUT_"+toString(i_context)+"_"+toString(i_inst)+"_CONTEXT");
+	  }
+	  vhdl->set_body(1,";");
+	}
+      }
+    }
+    else{
+      if(_param->_size_nb_inst_decod < 2) vhdl->set_body(0,"internal_NB_INST_0_ALL <= ( reg_NB_INST_0_ALL OR ( internal_DECOD_IN_0_VAL AND internal_QUEUE_INSERT_ACK )) AND ( NOT ( internal_OUT_DECOD_OUT_0_VAL AND ( NOT internal_DECOD_OUT_0_VAL )));");
+      else{
+	for(uint32_t i_inst=0;i_inst < _param->_nb_inst_decod;i_inst++){
+	  vhdl->set_body(0,"internal_NB_INST_OUT_0_"+toString(i_inst)+"_CONTEXT <= "+std_logic_conv(_param->_size_nb_inst_decod,1)+" WHEN(( internal_OUT_DECOD_OUT_"+toString(i_inst)+"_VAL = '1' ) AND internal_DECOD_OUT_"+toString(i_inst)+"_VAL = '0' ) ELSE "+std_logic_conv(_param->_size_nb_inst_decod,0)+";");
+	  vhdl->set_body(0,"internal_NB_INST_IN_0_"+toString(i_inst)+"_CONTEXT <= "+std_logic_conv(_param->_size_nb_inst_decod,1)+" WHEN( internal_DECOD_IN_"+toString(i_inst)+"_VAL = '1' AND internal_QUEUE_INSERT_ACK = '1' ) ELSE "+std_logic_conv(_param->_size_nb_inst_decod,0)+";");
+	}
+	
+	vhdl->set_body(0,"");
+	
+	vhdl->set_body(0,"internal_NB_INST_0_ALL <= reg_NB_INST_0_ALL");
+	for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+	  vhdl->set_body(1," + internal_NB_INST_IN_0_"+toString(i)+"_CONTEXT");
+	  vhdl->set_body(1," - internal_NB_INST_OUT_0_"+toString(i)+"_CONTEXT");
+	}
+	vhdl->set_body(1,";");
+      }
+    }
+
+    vhdl->set_body(0,"");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_comment(0,"-- Sortie Queue                    ");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_body(0,"");
+
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+
+      vhdl->set_body(0,"");
+      vhdl->set_comment(0,"-----------------------------------");
+      vhdl->set_comment(0,"-- Instruction "+toString(i)+"                   ");
+      vhdl->set_comment(0,"-----------------------------------");
+      vhdl->set_body(0,"");
+
+      if(_param->_have_port_context_id){
+	vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_CONTEXT_ID <= internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID");
+	for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	  
+	  vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_CONTEXT_ID ");
+	}
+	vhdl->set_body(0," ;");
+      }
+      if(_param->_have_port_depth){
+	vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_DEPTH <= internal_DECOD_OUT_"+toString(i)+"_DEPTH");
+	for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	  
+	  vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_DEPTH ");
+	}
+	vhdl->set_body(0," ;");
+      }
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_TYPE <= internal_DECOD_OUT_"+toString(i)+"_TYPE");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_TYPE ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_OPERATION <= internal_DECOD_OUT_"+toString(i)+"_OPERATION");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_OPERATION ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_NO_EXECUTE <= internal_DECOD_OUT_"+toString(i)+"_NO_EXECUTE");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_NO_EXECUTE ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_IS_DELAY_SLOT <= internal_DECOD_OUT_"+toString(i)+"_IS_DELAY_SLOT");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_IS_DELAY_SLOT ");
+      }
+      vhdl->set_body(0," ;");
+#ifdef DEBUG
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_ADDRESS <= internal_DECOD_OUT_"+toString(i)+"_ADDRESS");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_ADDRESS ");
+      }
+      vhdl->set_body(0," ;");
+#endif
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_ADDRESS_NEXT <= internal_DECOD_OUT_"+toString(i)+"_ADDRESS_NEXT");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_ADDRESS_NEXT ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_HAS_IMMEDIAT <= internal_DECOD_OUT_"+toString(i)+"_HAS_IMMEDIAT");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_HAS_IMMEDIAT ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_IMMEDIAT <= internal_DECOD_OUT_"+toString(i)+"_IMMEDIAT");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_IMMEDIAT ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_READ_RA <= internal_DECOD_OUT_"+toString(i)+"_READ_RA");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_READ_RA ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_NUM_REG_RA <= internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RA");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_NUM_REG_RA ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_READ_RB <= internal_DECOD_OUT_"+toString(i)+"_READ_RB");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_READ_RB ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_NUM_REG_RB <= internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RB");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_NUM_REG_RB ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_READ_RC <= internal_DECOD_OUT_"+toString(i)+"_READ_RC");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_READ_RC ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_NUM_REG_RC <= internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RC");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_NUM_REG_RC ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_WRITE_RD <= internal_DECOD_OUT_"+toString(i)+"_WRITE_RD");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_WRITE_RD ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_NUM_REG_RD <= internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RD");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_NUM_REG_RD ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_WRITE_RE <= internal_DECOD_OUT_"+toString(i)+"_WRITE_RE");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_WRITE_RE ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_NUM_REG_RE <= internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RE");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_NUM_REG_RE ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_EXCEPTION_USE <= internal_DECOD_OUT_"+toString(i)+"_EXCEPTION_USE");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod+1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_EXCEPTION_USE ");
+      }
+      vhdl->set_body(0," ;");
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_EXCEPTION <= internal_DECOD_OUT_"+toString(i)+"_EXCEPTION");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod - 1;cp++){
+	
+	vhdl->set_body(1," WHEN( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod + 1,cp*2 + 1)+") ELSE internal_DECOD_OUT_"+toString(cp + 1)+"_EXCEPTION ");
+      }
+      vhdl->set_body(0," ;");
+
+      vhdl->set_body(0,"");
+
+      if(_param->_have_port_depth){
+	if(_param->_have_port_context_id){
+	  
+	  vhdl->set_body(0,"internal_DECOD_"+toString(i)+"_VALID <= '1' WHEN(( in_DEPTH_0_FULL = '1' AND internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,0)+" ) ");
+	  for(uint32_t i_context = 1;i_context < _param->_nb_context;i_context++)
+	    vhdl->set_body(2," OR ( in_DEPTH_"+toString(i_context)+"_FULL = '1' AND internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" ) ");
+	  
+	  vhdl->set_body(1," ) ELSE '1' WHEN(( in_DEPTH_0_MIN = in_DEPTH_0_MAX AND internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,0)+" ) ");
+	  for(uint32_t i_context = 1;i_context < _param->_nb_context;i_context++)
+	    vhdl->set_body(2," OR ( in_DEPTH_"+toString(i_context)+"_MIN = in_DEPTH_"+toString(i_context)+"_MAX AND internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" ) ");
+	  
+	  vhdl->set_body(1," ) ELSE '1' WHEN((( internal_DECOD_OUT_"+toString(i)+"_DEPTH > in_DEPTH_0_MIN ) AND ( internal_DECOD_OUT_"+toString(i)+"_DEPTH < in_DEPTH_0_MAX ) AND ( in_DEPTH_0_MIN < in_DEPTH_0_MAX ) AND ( internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,0)+" )) ");
+	  for(uint32_t i_context = 1;i_context < _param->_nb_context;i_context++)
+	    vhdl->set_body(2," OR (( internal_DECOD_OUT_"+toString(i)+"_DEPTH > in_DEPTH_"+toString(i_context)+"_MIN ) AND ( internal_DECOD_OUT_"+toString(i)+"_DEPTH < in_DEPTH_"+toString(i_context)+"_MAX ) AND ( in_DEPTH_"+toString(i_context)+"_MIN < in_DEPTH_"+toString(i_context)+"_MAX ) AND internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" ) ");
+	  
+	  vhdl->set_body(1," ) ELSE '1' WHEN(((( internal_DECOD_OUT_"+toString(i)+"_DEPTH > in_DEPTH_0_MAX ) OR ( internal_DECOD_OUT_"+toString(i)+"_DEPTH < in_DEPTH_0_MIN )) AND ( in_DEPTH_0_MIN > in_DEPTH_0_MAX ) AND ( internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,0)+" ))");
+	  for(uint32_t i_context = 1;i_context < _param->_nb_context;i_context++)
+	    vhdl->set_body(2," OR ((( internal_DECOD_OUT_"+toString(i)+"_DEPTH > in_DEPTH_"+toString(i_context)+"_MAX ) OR ( internal_DECOD_OUT_"+toString(i)+"_DEPTH < in_DEPTH_"+toString(i_context)+"_MIN )) AND ( in_DEPTH_"+toString(i_context)+"_MIN > in_DEPTH_"+toString(i_context)+"_MAX ) AND internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID = "+std_logic_conv(_param->_size_context_id,i_context)+" ) ");
+	  
+	  vhdl->set_body(1," ) ELSE '0' ;");
+	}
+	else{
+	  vhdl->set_body(0,"internal_DECOD_"+toString(i)+"_VALID <= '1' WHEN( in_DEPTH_0_FULL = '1' ) ELSE '1' WHEN( in_DEPTH_0_MIN = in_DEPTH_0_MAX ) ELSE '1' WHEN(( internal_DECOD_OUT_"+toString(i)+"_DEPTH > in_DEPTH_0_MIN ) AND ( internal_DECOD_OUT_"+toString(i)+"_DEPTH < in_DEPTH_0_MAX ) AND ( in_DEPTH_0_MIN < in_DEPTH_0_MAX )) ELSE '1' WHEN((( internal_DECOD_OUT_"+toString(i)+"_DEPTH > in_DEPTH_0_MAX ) OR ( internal_DECOD_OUT_"+toString(i)+"_DEPTH < in_DEPTH_0_MIN )) AND ( in_DEPTH_0_MIN > in_DEPTH_0_MAX )) ELSE '0' ;");
+	}
+	
+	vhdl->set_body(0,"");
+	
+	vhdl->set_body(0,"internal_OUT_DECOD_OUT_"+toString(i)+"_VAL <= ( internal_QUEUE_OUT_"+toString(i)+"_VAL AND internal_QUEUE_RETIRE_VAL AND internal_DECOD_"+toString(i)+"_VALID ) WHEN( internal_QUEUE_NEW_HEAD = '1' ) ELSE reg_DECOD_OUT_"+toString(i)+"_VAL ;");
+      }
+      else vhdl->set_body(0,"internal_OUT_DECOD_OUT_"+toString(i)+"_VAL <= ( internal_QUEUE_OUT_"+toString(i)+"_VAL AND internal_QUEUE_RETIRE_VAL ) WHEN( internal_QUEUE_NEW_HEAD = '1' ) ELSE reg_DECOD_OUT_"+toString(i)+"_VAL ;");
+      
+      vhdl->set_body(0,"");
+      
+      vhdl->set_body(0,"internal_DECOD_OUT_"+toString(i)+"_VAL <= '0' WHEN(( in_DECOD_OUT_"+toString(i)+"_ACK = '1' ) AND ( internal_INDEX_"+toString(i)+" = "+std_logic_conv(_param->_size_nb_inst_decod + 1,i*2 + 1)+" ))");
+      for(uint32_t cp = 0;cp < i;cp++){
+	
+	vhdl->set_body(1," ELSE '0' WHEN(( in_DECOD_OUT_"+toString(cp)+"_ACK = '1' ) AND ( internal_INDEX_"+toString(cp)+" = "+std_logic_conv(_param->_size_nb_inst_decod + 1,i*2 + 1)+" ))");
+      }
+      vhdl->set_body(1," ELSE '1' WHEN( internal_OUT_DECOD_OUT_"+toString(i)+"_VAL = '1' ) ELSE '0' ;");
+
+      vhdl->set_body(0,"");
+
+      vhdl->set_body(0,"out_DECOD_OUT_"+toString(i)+"_VAL <= internal_INDEX_"+toString(i)+"(0) ;");
+
+      vhdl->set_body(0,"");
+
+      vhdl->set_body(0,"internal_INDEX_"+toString(i)+" <= ");
+      for(uint32_t cp = i;cp < _param->_nb_inst_decod;cp++){
+	
+	vhdl->set_body(1,std_logic_conv(_param->_size_nb_inst_decod + 1,cp*2 + 1)+" WHEN( internal_OUT_DECOD_OUT_"+toString(cp)+"_VAL = '1'");
+	for(uint32_t cp2 = 0;cp2 < i;cp2++){
+	
+	  vhdl->set_body(2," AND NOT( internal_INDEX_"+toString(cp2)+" = "+std_logic_conv(_param->_size_nb_inst_decod + 1,cp*2 + 1)+" )");
+	}
+	vhdl->set_body(1," ) ELSE ");
+      }
+      vhdl->set_body(1,std_logic_conv(_param->_size_nb_inst_decod + 1,0)+" ;");
+    }
+
+    vhdl->set_body(0,"");
+
+    vhdl->set_body(0,"internal_QUEUE_NEW_HEAD <= NOT( '0'");
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+      vhdl->set_body(1," OR reg_DECOD_OUT_"+toString(i)+"_VAL");
+    }
+    vhdl->set_body(1,");");
+
+    vhdl->set_body(0,"");
+
+    vhdl->set_body(0,"internal_QUEUE_RETIRE_ACK <= NOT( '0'");
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+      vhdl->set_body(1," OR internal_DECOD_OUT_"+toString(i)+"_VAL");
+    }
+    vhdl->set_body(1,");");
+
+    vhdl->set_body(0,"");
+
+    for(uint32_t i=0;i < _param->_nb_context;i++){
+      vhdl->set_body(0,"out_NB_INST_"+toString(i)+"_ALL <= reg_NB_INST_"+toString(i)+"_ALL ;");
+    }
+
+    vhdl->set_body(0,"");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_comment(0,"-- Registers                       ");
+    vhdl->set_comment(0,"-----------------------------------");
+    vhdl->set_body(0,"");
+    
+    vhdl->set_body(0,"reg_DECOD_write: process (in_CLOCK)");
+    vhdl->set_body(0,"begin");
+    vhdl->set_body(1,"if in_CLOCK'event AND in_CLOCK = '1' then");
+    vhdl->set_body(2,"if in_NRESET = '0' then");
+    
+    for(uint32_t i=0;i < _param->_nb_context;i++){
+      vhdl->set_body(3,"reg_NB_INST_"+toString(i)+"_ALL <= "+std_logic_conv(_param->_size_nb_inst_decod,0)+";");
+    }
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+      vhdl->set_body(3,"reg_DECOD_OUT_"+toString(i)+"_VAL <= '0';");
+    }
+
+    vhdl->set_body(2,"else");
+    
+    for(uint32_t i=0;i < _param->_nb_context;i++){
+      vhdl->set_body(3,"reg_NB_INST_"+toString(i)+"_ALL <= internal_NB_INST_"+toString(i)+"_ALL;");
+    }  
+    for(uint32_t i=0;i < _param->_nb_inst_decod;i++){
+      vhdl->set_body(3,"reg_DECOD_OUT_"+toString(i)+"_VAL <= internal_DECOD_OUT_"+toString(i)+"_VAL;");
+    }
+
+    vhdl->set_body(2,"end if;");
+    vhdl->set_body(1,"end if;");
+    vhdl->set_body(0,"end process reg_DECOD_write;");
+
     log_end(Decod_queue,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl_declaration.cpp	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_vhdl_declaration.cpp	(revision 135)
@@ -23,4 +23,185 @@
   {
     log_begin(Decod_queue,FUNCTION);
+
+    vhdl->set_signal ("internal_QUEUE_INSERT_DATA    ",_param->_size_internal_queue);
+    vhdl->set_signal ("internal_QUEUE_RETIRE_DATA    ",_param->_size_internal_queue);
+    vhdl->set_signal ("internal_QUEUE_INSERT_VAL     ",1);
+    vhdl->set_signal ("internal_QUEUE_RETIRE_VAL     ",1);
+    vhdl->set_signal ("internal_QUEUE_INSERT_ACK     ",1);
+    vhdl->set_signal ("internal_QUEUE_RETIRE_ACK     ",1);
+
+    vhdl->set_signal ("internal_QUEUE_NEW_HEAD       ",1);
+    
+    uint32_t min = 0;
+    uint32_t max, size;
+
+    for(uint32_t i = 0;i < _param->_nb_context;i++){
+      
+      vhdl->set_signal ("reg_NB_INST_"+toString(i)+"_ALL",_param->_size_nb_inst_decod);
+      vhdl->set_signal ("internal_NB_INST_"+toString(i)+"_ALL",_param->_size_nb_inst_decod);
+
+      for(uint32_t i_inst = 0;i_inst < _param->_nb_inst_decod;i_inst++){
+	vhdl->set_signal ("internal_NB_INST_IN_"+toString(i)+"_"+toString(i_inst)+"_CONTEXT",_param->_size_nb_inst_decod);
+	vhdl->set_signal ("internal_NB_INST_OUT_"+toString(i)+"_"+toString(i_inst)+"_CONTEXT",_param->_size_nb_inst_decod);
+      }
+    }
+    
+    for(uint32_t i = 0;i < _param->_nb_inst_decod;i++){
+      vhdl->set_signal ("reg_DECOD_OUT_"+toString(i)+"_VAL",1);
+      vhdl->set_signal ("internal_DECOD_OUT_"+toString(i)+"_VAL",1);
+      vhdl->set_signal ("internal_OUT_DECOD_OUT_"+toString(i)+"_VAL",1);
+      vhdl->set_signal ("internal_DECOD_"+toString(i)+"_VALID",1);
+      vhdl->set_signal ("internal_INDEX_"+toString(i),_param->_size_nb_inst_decod + 1);
+      
+      max = min;
+
+      if(_param->_have_port_context_id)
+	{
+	  size = _param->_size_context_id;
+	  max = min-1+size;
+	  vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_CONTEXT_ID",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+	  vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_CONTEXT_ID",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+	  min = max+1;
+	}
+      
+      if(_param->_have_port_depth)
+	{
+	  size = _param->_size_depth;
+	  max = min-1+size;
+	  vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_DEPTH",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+	  vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_DEPTH",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+	  min = max+1;
+	}
+      
+      size = _param->_size_type;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_TYPE",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_TYPE",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_operation;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_OPERATION",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_OPERATION",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_NO_EXECUTE",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_NO_EXECUTE",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_IS_DELAY_SLOT",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_IS_DELAY_SLOT",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+#ifdef DEBUG
+      size = _param->_size_instruction_address;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_ADDRESS",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_ADDRESS",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+#endif
+      
+      size = _param->_size_instruction_address;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_ADDRESS_NEXT",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_ADDRESS_NEXT",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_HAS_IMMEDIAT",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_HAS_IMMEDIAT",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_general_data;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_IMMEDIAT",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_IMMEDIAT",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_READ_RA",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_READ_RA",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_general_register_logic;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_NUM_REG_RA",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RA",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_READ_RB",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_READ_RB",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_general_register_logic;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_NUM_REG_RB",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RB",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_READ_RC",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_READ_RC",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_special_register_logic;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_NUM_REG_RC",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RC",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_WRITE_RD",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_WRITE_RD",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_general_register_logic;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_NUM_REG_RD",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RD",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_WRITE_RE",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_WRITE_RE",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_special_register_logic;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_NUM_REG_RE",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_NUM_REG_RE",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_exception_use;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_EXCEPTION_USE",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_EXCEPTION_USE",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = _param->_size_exception_decod;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_EXCEPTION",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_DECOD_OUT_"+toString(i)+"_EXCEPTION",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+      
+      size = 1;
+      max = min-1+size;
+      vhdl->set_alias ("internal_DECOD_IN_"+toString(i)+"_VAL",std_logic(size),"internal_QUEUE_INSERT_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      vhdl->set_alias ("internal_QUEUE_OUT_"+toString(i)+"_VAL",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+      min = max+1;
+
+    }
+
     log_end(Decod_queue,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp	(revision 132)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp	(revision 135)
@@ -41,4 +41,32 @@
 
     test();
+
+    _size_internal_queue = 
+      (1                            + // _val
+       _size_context_id             + // _context_id
+       _size_depth                  + // _depth
+       _size_type                   + // _type    
+       _size_operation              + // _operation
+       1                            + // _no_execute
+       1                            + // _is_delay_slot
+#ifdef DEBUG
+       _size_instruction_address    + // _address
+#endif
+       _size_instruction_address    + // _address_next
+       1                            + // _has_immediat
+       _size_general_data           + // _immediat
+       1                            + // _read_ra
+       _size_general_register_logic + // _num_reg_ra
+       1                            + // _read_rb
+       _size_general_register_logic + // _num_reg_rb
+       1                            + // _read_rc
+       _size_special_register_logic + // _num_reg_rc
+       1                            + // _write_rd
+       _size_general_register_logic + // _num_reg_rd
+       1                            + // _write_re
+       _size_special_register_logic + // _num_reg_re
+       _size_exception_use          + // _exception_use
+       _size_exception_decod          // _exception
+       ) * _nb_inst_decod;
 
     if (is_toplevel)
