Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.deps	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.deps	(revision 68)
@@ -2,5 +2,5 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
@@ -13,21 +13,32 @@
 include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
 endif
+ifndef Queue
+include                         $(DIR_MORPHEO)/Behavioural/Generic/Queue/Makefile.deps
+endif
 
-#-----[ Library ]------------------------------------------
-Read_queue_LIBRARY		= 	-lRead_queue	\
+#-----[ Library ]------------------------------------------
+Read_queue_LIBRARY		= 	-lRead_queue		\
+					$(Queue_LIBRARY)	\
 					$(Behavioural_LIBRARY)	
 
 Read_queue_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/lib	\
+					$(Queue_DIR_LIBRARY) \
 					$(Behavioural_DIR_LIBRARY)
 
-#-----[ Rules ]--------------------------------------------
+Read_queue_DEPENDENCIES		=	Queue_library	\
+					Behavioural_library
 
-Read_queue_library		: 
+Read_queue_CLEAN        	=	Queue_library_clean	\
+					Behavioural_library_clean
+
+#-----[ Rules ]--------------------------------------------
+
+.NOTPARALLEL			: Read_queue_library Read_queue_library_clean
+
+Read_queue_library		: $(Read_queue_DEPENDENCIES)
 				@\
-				$(MAKE) Behavioural_library; \
 				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue --makefile=Makefile;
 	
-Read_queue_library_clean	: 
+Read_queue_library_clean	: $(Read_queue_CLEAN)
 				@\
-				$(MAKE) Behavioural_library_clean; \
 				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue --makefile=Makefile clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config1.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config1.cfg	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config1.cfg	(revision 68)
@@ -6,9 +6,9 @@
 32	32	*2	# nb_packet          
 16	16	+1	# size_general_data  
-8	8	+1	# size_special_data  
-16	16	*2	# nb_general_register
-2 	2 	+1	# nb_special_register
+16	16	+1	# size_special_data  
+4 	4 	*2	# nb_general_register
+4 	4 	+1	# nb_special_register
 40	40	+1	# nb_operation       
 6	6	+1	# nb_type            
-1	4	*2	# nb_gpr_write
-1	4	*2	# nb_spr_write
+2	4	*2	# nb_gpr_write
+2	4	*2	# nb_spr_write
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config2.cfg	(revision 68)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config2.cfg	(revision 68)
@@ -0,0 +1,14 @@
+Read_queue
+4	4	*2	# size_queue    
+2	4	*2	# nb_context         
+2	4	*2	# nb_front_end 
+1	4	*2	# nb_ooo_engine
+32	32	*2	# nb_packet          
+16	16	+1	# size_general_data  
+16	16	+1	# size_special_data  
+4 	4 	*2	# nb_general_register
+4 	4 	+1	# nb_special_register
+40	40	+1	# nb_operation       
+6	6	+1	# nb_type            
+1	1	*2	# nb_gpr_write
+1	1	*2	# nb_spr_write
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config_min.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config_min.cfg	(revision 68)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config_min.cfg	(revision 68)
@@ -0,0 +1,14 @@
+Read_queue
+1	4	*2	# size_queue    
+1	1	*2	# nb_context         
+1	1	*2	# nb_front_end       
+1	1	*2	# nb_ooo_engine      
+32	32	*2	# nb_packet          
+16	16	+1	# size_general_data  
+2	2	+1	# size_special_data  
+32	32	*2	# nb_general_register
+32	32	+1	# nb_special_register
+12	12	+1	# nb_operation       
+5 	5 	+1	# nb_type            
+1 	1 	*2	# nb_gpr_write
+1 	1 	*2	# nb_spr_write
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp	(revision 68)
@@ -214,11 +214,14 @@
   (*(_Read_queue->in_NRESET))        (*(NRESET));
 
-  
   (*(_Read_queue-> in_READ_QUEUE_IN_VAL            )) (*(READ_QUEUE_IN_VAL            ));
   (*(_Read_queue->out_READ_QUEUE_IN_ACK            )) (*(READ_QUEUE_IN_ACK            ));
-  (*(_Read_queue-> in_READ_QUEUE_IN_CONTEXT_ID     )) (*(READ_QUEUE_IN_CONTEXT_ID     ));
-  (*(_Read_queue-> in_READ_QUEUE_IN_FRONT_END_ID   )) (*(READ_QUEUE_IN_FRONT_END_ID   ));
-  (*(_Read_queue-> in_READ_QUEUE_IN_OOO_ENGINE_ID  )) (*(READ_QUEUE_IN_OOO_ENGINE_ID  ));
-  (*(_Read_queue-> in_READ_QUEUE_IN_ROB_ID         )) (*(READ_QUEUE_IN_ROB_ID         ));
+  if(_param->_have_port_context_id   )
+    (*(_Read_queue-> in_READ_QUEUE_IN_CONTEXT_ID     )) (*(READ_QUEUE_IN_CONTEXT_ID     ));
+  if(_param->_have_port_front_end_id )
+    (*(_Read_queue-> in_READ_QUEUE_IN_FRONT_END_ID   )) (*(READ_QUEUE_IN_FRONT_END_ID   ));
+  if(_param->_have_port_ooo_engine_id)
+    (*(_Read_queue-> in_READ_QUEUE_IN_OOO_ENGINE_ID  )) (*(READ_QUEUE_IN_OOO_ENGINE_ID  ));
+  if(_param->_have_port_rob_id       )
+    (*(_Read_queue-> in_READ_QUEUE_IN_ROB_ID         )) (*(READ_QUEUE_IN_ROB_ID         ));
   (*(_Read_queue-> in_READ_QUEUE_IN_OPERATION      )) (*(READ_QUEUE_IN_OPERATION      ));
   (*(_Read_queue-> in_READ_QUEUE_IN_TYPE           )) (*(READ_QUEUE_IN_TYPE           ));
@@ -238,8 +241,12 @@
   (*(_Read_queue->out_READ_QUEUE_OUT_VAL           )) (*(READ_QUEUE_OUT_VAL           )); 
   (*(_Read_queue-> in_READ_QUEUE_OUT_ACK           )) (*(READ_QUEUE_OUT_ACK           )); 
-  (*(_Read_queue->out_READ_QUEUE_OUT_CONTEXT_ID    )) (*(READ_QUEUE_OUT_CONTEXT_ID    )); 
-  (*(_Read_queue->out_READ_QUEUE_OUT_FRONT_END_ID  )) (*(READ_QUEUE_OUT_FRONT_END_ID  )); 
-  (*(_Read_queue->out_READ_QUEUE_OUT_OOO_ENGINE_ID )) (*(READ_QUEUE_OUT_OOO_ENGINE_ID )); 
-  (*(_Read_queue->out_READ_QUEUE_OUT_ROB_ID        )) (*(READ_QUEUE_OUT_ROB_ID        )); 
+  if(_param->_have_port_context_id   )
+    (*(_Read_queue->out_READ_QUEUE_OUT_CONTEXT_ID    )) (*(READ_QUEUE_OUT_CONTEXT_ID    )); 
+  if(_param->_have_port_front_end_id )
+    (*(_Read_queue->out_READ_QUEUE_OUT_FRONT_END_ID  )) (*(READ_QUEUE_OUT_FRONT_END_ID  )); 
+  if(_param->_have_port_ooo_engine_id)
+    (*(_Read_queue->out_READ_QUEUE_OUT_OOO_ENGINE_ID )) (*(READ_QUEUE_OUT_OOO_ENGINE_ID )); 
+  if(_param->_have_port_rob_id       )
+    (*(_Read_queue->out_READ_QUEUE_OUT_ROB_ID        )) (*(READ_QUEUE_OUT_ROB_ID        )); 
   (*(_Read_queue->out_READ_QUEUE_OUT_OPERATION     )) (*(READ_QUEUE_OUT_OPERATION     )); 
   (*(_Read_queue->out_READ_QUEUE_OUT_TYPE          )) (*(READ_QUEUE_OUT_TYPE          )); 
@@ -267,5 +274,6 @@
       (*(_Read_queue->out_GPR_READ_VAL         [i])) (*(GPR_READ_VAL         [i]));
       (*(_Read_queue-> in_GPR_READ_ACK         [i])) (*(GPR_READ_ACK         [i]));
-      (*(_Read_queue->out_GPR_READ_OOO_ENGINE_ID  [i])) (*(GPR_READ_OOO_ENGINE_ID  [i]));
+      if(_param->_have_port_ooo_engine_id)
+	(*(_Read_queue->out_GPR_READ_OOO_ENGINE_ID  [i])) (*(GPR_READ_OOO_ENGINE_ID  [i]));
       (*(_Read_queue->out_GPR_READ_NUM_REG     [i])) (*(GPR_READ_NUM_REG     [i]));
       (*(_Read_queue-> in_GPR_READ_DATA        [i])) (*(GPR_READ_DATA        [i]));
@@ -277,5 +285,6 @@
       (*(_Read_queue->out_SPR_READ_VAL         [i])) (*(SPR_READ_VAL         [i]));
       (*(_Read_queue-> in_SPR_READ_ACK         [i])) (*(SPR_READ_ACK         [i]));
-      (*(_Read_queue->out_SPR_READ_OOO_ENGINE_ID  [i])) (*(SPR_READ_OOO_ENGINE_ID  [i]));
+      if(_param->_have_port_ooo_engine_id)
+	(*(_Read_queue->out_SPR_READ_OOO_ENGINE_ID  [i])) (*(SPR_READ_OOO_ENGINE_ID  [i]));
       (*(_Read_queue->out_SPR_READ_NUM_REG     [i])) (*(SPR_READ_NUM_REG     [i]));
       (*(_Read_queue-> in_SPR_READ_DATA        [i])) (*(SPR_READ_DATA        [i]));
@@ -286,5 +295,6 @@
     {
       (*(_Read_queue-> in_GPR_WRITE_VAL        [i])) (*(GPR_WRITE_VAL        [i]));
-      (*(_Read_queue-> in_GPR_WRITE_OOO_ENGINE_ID [i])) (*(GPR_WRITE_OOO_ENGINE_ID [i]));
+      if(_param->_have_port_ooo_engine_id)
+	(*(_Read_queue-> in_GPR_WRITE_OOO_ENGINE_ID [i])) (*(GPR_WRITE_OOO_ENGINE_ID [i]));
       (*(_Read_queue-> in_GPR_WRITE_NUM_REG    [i])) (*(GPR_WRITE_NUM_REG    [i]));
       (*(_Read_queue-> in_GPR_WRITE_DATA       [i])) (*(GPR_WRITE_DATA       [i]));
@@ -294,5 +304,6 @@
     {
       (*(_Read_queue-> in_SPR_WRITE_VAL        [i])) (*(SPR_WRITE_VAL        [i]));
-      (*(_Read_queue-> in_SPR_WRITE_OOO_ENGINE_ID [i])) (*(SPR_WRITE_OOO_ENGINE_ID [i]));
+      if(_param->_have_port_ooo_engine_id)
+	(*(_Read_queue-> in_SPR_WRITE_OOO_ENGINE_ID [i])) (*(SPR_WRITE_OOO_ENGINE_ID [i]));
       (*(_Read_queue-> in_SPR_WRITE_NUM_REG    [i])) (*(SPR_WRITE_NUM_REG    [i]));
       (*(_Read_queue-> in_SPR_WRITE_DATA       [i])) (*(SPR_WRITE_DATA       [i]));
@@ -308,5 +319,5 @@
   // Initialisation
   const uint32_t nb_request = _param->_nb_packet;
-//const uint32_t seed       = 0;
+  // const uint32_t seed       = 0;
   const uint32_t seed       = static_cast<uint32_t>(time(NULL));
   srand(seed);
@@ -342,10 +353,11 @@
     {
       LABEL("Iteration "+toString(iteration));
-      int32_t percent_transaction_queue_in     = (rand()%50)+25;
-      int32_t percent_transaction_queue_out    = (rand()%50)+25;
-      int32_t percent_registerfile_valid       = (rand()%50)+25;
-      int32_t percent_transaction_registerfile = (rand()%74)+25;
-      int32_t percent_transaction_bypass       = (rand()%50)+25;
-      
+      int32_t percent_transaction_queue_in     = (rand()%45)+30;
+      int32_t percent_transaction_queue_out    = (rand()%45)+30;
+      int32_t percent_registerfile_valid       = (rand()%45)+30;
+      int32_t percent_transaction_registerfile = (rand()%45)+30;
+      int32_t percent_transaction_bypass       = (rand()%45)+30;
+      int32_t percent_must_read_reg            = (rand()%45)+30;
+
       LABEL("Initialisation");
 
@@ -353,9 +365,9 @@
 	{
 	  _ooo_engine_id   [i] = rand()% _param->_nb_ooo_engine         ;
-	  _read_ra      [i] = rand()% 2                              ;
+	  _read_ra      [i] = (rand()%100)<percent_must_read_reg;
 	  _num_reg_ra   [i] = rand()% _param->_nb_general_register   ;
-	  _read_rb      [i] = rand()% 2                              ;
+	  _read_rb      [i] = (rand()%100)<percent_must_read_reg;
 	  _num_reg_rb   [i] = rand()% _param->_nb_general_register   ;
-	  _read_rc      [i] = rand()% 2                              ;
+	  _read_rc      [i] = (rand()%100)<percent_must_read_reg;
 	  _num_reg_rc   [i] = rand()% _param->_nb_special_register   ;
 	}
@@ -386,8 +398,12 @@
 	    {
 	      READ_QUEUE_IN_VAL            ->write(1);
-	      READ_QUEUE_IN_OOO_ENGINE_ID  ->write(_ooo_engine_id [request_in]);
-	      READ_QUEUE_IN_CONTEXT_ID     ->write((2*_ooo_engine_id [request_in])%_param->_nb_context  );
-	      READ_QUEUE_IN_FRONT_END_ID   ->write((3*_ooo_engine_id [request_in])%_param->_nb_front_end);
-	      READ_QUEUE_IN_ROB_ID      ->write(request_in);
+	      if(_param->_have_port_ooo_engine_id)
+		READ_QUEUE_IN_OOO_ENGINE_ID  ->write(_ooo_engine_id [request_in]);
+	      if(_param->_have_port_context_id   )
+		READ_QUEUE_IN_CONTEXT_ID     ->write((2*_ooo_engine_id [request_in])%_param->_nb_context  );
+	      if(_param->_have_port_front_end_id )
+		READ_QUEUE_IN_FRONT_END_ID   ->write((3*_ooo_engine_id [request_in])%_param->_nb_front_end);
+	      if(_param->_have_port_rob_id       )
+		READ_QUEUE_IN_ROB_ID      ->write(request_in);
 	      READ_QUEUE_IN_OPERATION   ->write(0);
 	      READ_QUEUE_IN_TYPE        ->write(0);
@@ -419,8 +435,12 @@
 		{
 		  Tgeneral_address_t num_reg = GPR_READ_NUM_REG       [i]->read();
-		  Tcontext_t         context = GPR_READ_OOO_ENGINE_ID [i]->read();
-
-		  GPR_READ_DATA     [i]->write(_gpr    [num_reg][context]);
-		  GPR_READ_DATA_VAL [i]->write(_gpr_val[num_reg][context]);
+		  Tcontext_t         ooo_engine;
+		  if(_param->_have_port_ooo_engine_id)
+		    ooo_engine = GPR_READ_OOO_ENGINE_ID [i]->read();
+		  else
+		    ooo_engine = 0;
+
+		  GPR_READ_DATA     [i]->write(_gpr    [num_reg][ooo_engine]);
+		  GPR_READ_DATA_VAL [i]->write(_gpr_val[num_reg][ooo_engine]);
 		}
 	    }
@@ -432,8 +452,12 @@
 		{
 		  Tspecial_address_t num_reg = SPR_READ_NUM_REG       [i]->read();
-		  Tcontext_t         context = SPR_READ_OOO_ENGINE_ID [i]->read();
-
-		  SPR_READ_DATA     [i]->write(_spr    [num_reg][context]);
-		  SPR_READ_DATA_VAL [i]->write(_spr_val[num_reg][context]);
+		  Tcontext_t         ooo_engine;
+		  if(_param->_have_port_ooo_engine_id)
+		    ooo_engine = SPR_READ_OOO_ENGINE_ID [i]->read();
+		  else
+		    ooo_engine = 0;
+
+		  SPR_READ_DATA     [i]->write(_spr    [num_reg][ooo_engine]);
+		  SPR_READ_DATA_VAL [i]->write(_spr_val[num_reg][ooo_engine]);
 		}
 	    }
@@ -448,5 +472,6 @@
 	      
 	      GPR_WRITE_VAL           [i]->write(val);	      
-	      GPR_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine);
+	      if(_param->_have_port_ooo_engine_id)
+		GPR_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine);
 	      GPR_WRITE_NUM_REG       [i]->write(num_reg);
 	      GPR_WRITE_DATA          [i]->write(data);
@@ -466,5 +491,6 @@
 	      
 	      SPR_WRITE_VAL            [i]->write(val);	      
-	      SPR_WRITE_OOO_ENGINE_ID  [i]->write(ooo_engine);
+	      if(_param->_have_port_ooo_engine_id)
+		SPR_WRITE_OOO_ENGINE_ID  [i]->write(ooo_engine);
 	      SPR_WRITE_NUM_REG        [i]->write(num_reg);
 	      SPR_WRITE_DATA           [i]->write(data);
@@ -490,5 +516,9 @@
 	      (READ_QUEUE_OUT_ACK->read() == 1))
 	    {
-	      Tpacket_t  rob_id = READ_QUEUE_OUT_ROB_ID->read();
+	      Tpacket_t  rob_id;
+	      if(_param->_have_port_rob_id       )
+		rob_id = READ_QUEUE_OUT_ROB_ID->read();
+	      else
+		rob_id = 0;
 	      Tcontext_t ctxt   = _ooo_engine_id [rob_id];
 	      LABEL("Accepted READ_QUEUE_OUT ["+toString(rob_id)+"]");
@@ -498,7 +528,10 @@
 	      request_out ++;
 
-	      TEST(Tcontext_t        ,READ_QUEUE_OUT_OOO_ENGINE_ID ->read(),ctxt);
-	      TEST(Tcontext_t        ,READ_QUEUE_OUT_CONTEXT_ID    ->read(),(2*ctxt)%_param->_nb_context  );
-	      TEST(Tcontext_t        ,READ_QUEUE_OUT_FRONT_END_ID  ->read(),(3*ctxt)%_param->_nb_front_end);
+	      if(_param->_have_port_ooo_engine_id)
+		TEST(Tcontext_t        ,READ_QUEUE_OUT_OOO_ENGINE_ID ->read(),ctxt);
+	      if(_param->_have_port_context_id   )
+		TEST(Tcontext_t        ,READ_QUEUE_OUT_CONTEXT_ID    ->read(),(2*ctxt)%_param->_nb_context  );
+	      if(_param->_have_port_front_end_id )
+		TEST(Tcontext_t        ,READ_QUEUE_OUT_FRONT_END_ID  ->read(),(3*ctxt)%_param->_nb_front_end);
 
 	      TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RA    ->read(),_read_ra      [rob_id]);
@@ -533,78 +566,90 @@
   cout << "<" << name << "> ............ Stop Simulation" << endl;
 
-//   delete    CLOCK;
-//   delete    NRESET;
-
-//   delete    READ_QUEUE_IN_VAL          ;
-//   delete    READ_QUEUE_IN_ACK          ;
-//   delete    READ_QUEUE_IN_CONTEXT_ID   ;
-//   delete    READ_QUEUE_IN_FRONT_END_ID;
-//   delete    READ_QUEUE_IN_OOO_ENGINE_ID;
-//   delete    READ_QUEUE_IN_ROB_ID    ;
-//   delete    READ_QUEUE_IN_OPERATION    ;
-//   delete    READ_QUEUE_IN_TYPE         ;
-//   delete    READ_QUEUE_IN_HAS_IMMEDIAT ;
-//   delete    READ_QUEUE_IN_IMMEDIAT     ;
-//   delete    READ_QUEUE_IN_READ_RA      ;
-//   delete    READ_QUEUE_IN_NUM_REG_RA   ;
-//   delete    READ_QUEUE_IN_READ_RB      ;
-//   delete    READ_QUEUE_IN_NUM_REG_RB   ;
-//   delete    READ_QUEUE_IN_READ_RC      ;
-//   delete    READ_QUEUE_IN_NUM_REG_RC   ;
-//   delete    READ_QUEUE_IN_WRITE_RD     ;
-//   delete    READ_QUEUE_IN_NUM_REG_RD   ;
-//   delete    READ_QUEUE_IN_WRITE_RE     ;
-//   delete    READ_QUEUE_IN_NUM_REG_RE   ;
-
-//   delete    READ_QUEUE_OUT_VAL         ;
-//   delete    READ_QUEUE_OUT_ACK         ;
-//   delete    READ_QUEUE_OUT_CONTEXT_ID  ;
-//   delete    READ_QUEUE_OUT_FRONT_END_ID;
-//   delete    READ_QUEUE_OUT_OOO_ENGINE_ID;
-//   delete    READ_QUEUE_OUT_ROB_ID      ;
-//   delete    READ_QUEUE_OUT_OPERATION   ;
-//   delete    READ_QUEUE_OUT_TYPE        ;
-//   delete    READ_QUEUE_OUT_HAS_IMMEDIAT;
-//   delete    READ_QUEUE_OUT_IMMEDIAT    ;
-//   delete    READ_QUEUE_OUT_READ_RA     ;
-//   delete    READ_QUEUE_OUT_NUM_REG_RA  ;
-//   delete    READ_QUEUE_OUT_DATA_RA_VAL ;
-//   delete    READ_QUEUE_OUT_DATA_RA     ;
-//   delete    READ_QUEUE_OUT_READ_RB     ;
-//   delete    READ_QUEUE_OUT_NUM_REG_RB  ;
-//   delete    READ_QUEUE_OUT_DATA_RB_VAL ;
-//   delete    READ_QUEUE_OUT_DATA_RB     ;
-//   delete    READ_QUEUE_OUT_READ_RC     ;
-//   delete    READ_QUEUE_OUT_NUM_REG_RC  ;
-//   delete    READ_QUEUE_OUT_DATA_RC_VAL ;
-//   delete    READ_QUEUE_OUT_DATA_RC     ;
-//   delete    READ_QUEUE_OUT_WRITE_RD    ;
-//   delete    READ_QUEUE_OUT_NUM_REG_RD  ;
-//   delete    READ_QUEUE_OUT_WRITE_RE    ;
-//   delete    READ_QUEUE_OUT_NUM_REG_RE  ;
-
-//   delete [] GPR_READ_VAL     ;
-//   delete [] GPR_READ_ACK     ;
-//   delete [] GPR_READ_NUM_REG ;
-//   delete [] GPR_READ_DATA    ;
-//   delete [] GPR_READ_DATA_VAL;
-//   delete [] GPR_READ_OOO_ENGINE_ID ;
-
-//   delete [] SPR_READ_VAL     ;
-//   delete [] SPR_READ_ACK     ;
-//   delete [] SPR_READ_NUM_REG ;
-//   delete [] SPR_READ_DATA    ;
-//   delete [] SPR_READ_DATA_VAL;
-//   delete [] SPR_READ_OOO_ENGINE_ID ;
-
-//   delete [] GPR_WRITE_VAL        ;
-//   delete [] GPR_WRITE_OOO_ENGINE_ID ;
-//   delete [] GPR_WRITE_NUM_REG    ;
-//   delete [] GPR_WRITE_DATA       ;
-
-//   delete [] SPR_WRITE_VAL        ;
-//   delete [] SPR_WRITE_OOO_ENGINE_ID ;
-//   delete [] SPR_WRITE_NUM_REG    ;
-//   delete [] SPR_WRITE_DATA       ;
+   delete    CLOCK;
+   delete    NRESET;
+
+   delete    READ_QUEUE_IN_VAL          ;
+   delete    READ_QUEUE_IN_ACK          ;
+   if(_param->_have_port_context_id   )
+     delete    READ_QUEUE_IN_CONTEXT_ID   ;
+   if(_param->_have_port_front_end_id )
+     delete    READ_QUEUE_IN_FRONT_END_ID;
+   if(_param->_have_port_ooo_engine_id )
+     delete    READ_QUEUE_IN_OOO_ENGINE_ID;
+   if(_param->_have_port_rob_id       )
+     delete    READ_QUEUE_IN_ROB_ID    ;
+   delete    READ_QUEUE_IN_OPERATION    ;
+   delete    READ_QUEUE_IN_TYPE         ;
+   delete    READ_QUEUE_IN_HAS_IMMEDIAT ;
+   delete    READ_QUEUE_IN_IMMEDIAT     ;
+   delete    READ_QUEUE_IN_READ_RA      ;
+   delete    READ_QUEUE_IN_NUM_REG_RA   ;
+   delete    READ_QUEUE_IN_READ_RB      ;
+   delete    READ_QUEUE_IN_NUM_REG_RB   ;
+   delete    READ_QUEUE_IN_READ_RC      ;
+   delete    READ_QUEUE_IN_NUM_REG_RC   ;
+   delete    READ_QUEUE_IN_WRITE_RD     ;
+   delete    READ_QUEUE_IN_NUM_REG_RD   ;
+   delete    READ_QUEUE_IN_WRITE_RE     ;
+   delete    READ_QUEUE_IN_NUM_REG_RE   ;
+
+   delete    READ_QUEUE_OUT_VAL         ;
+   delete    READ_QUEUE_OUT_ACK         ;
+   if(_param->_have_port_context_id   )
+     delete    READ_QUEUE_OUT_CONTEXT_ID  ;
+   if(_param->_have_port_front_end_id )
+     delete    READ_QUEUE_OUT_FRONT_END_ID;
+   if(_param->_have_port_ooo_engine_id )
+     delete    READ_QUEUE_OUT_OOO_ENGINE_ID;
+   if(_param->_have_port_rob_id       )
+     delete    READ_QUEUE_OUT_ROB_ID      ;
+   delete    READ_QUEUE_OUT_OPERATION   ;
+   delete    READ_QUEUE_OUT_TYPE        ;
+   delete    READ_QUEUE_OUT_HAS_IMMEDIAT;
+   delete    READ_QUEUE_OUT_IMMEDIAT    ;
+   delete    READ_QUEUE_OUT_READ_RA     ;
+   delete    READ_QUEUE_OUT_NUM_REG_RA  ;
+   delete    READ_QUEUE_OUT_DATA_RA_VAL ;
+   delete    READ_QUEUE_OUT_DATA_RA     ;
+   delete    READ_QUEUE_OUT_READ_RB     ;
+   delete    READ_QUEUE_OUT_NUM_REG_RB  ;
+   delete    READ_QUEUE_OUT_DATA_RB_VAL ;
+   delete    READ_QUEUE_OUT_DATA_RB     ;
+   delete    READ_QUEUE_OUT_READ_RC     ;
+   delete    READ_QUEUE_OUT_NUM_REG_RC  ;
+   delete    READ_QUEUE_OUT_DATA_RC_VAL ;
+   delete    READ_QUEUE_OUT_DATA_RC     ;
+   delete    READ_QUEUE_OUT_WRITE_RD    ;
+   delete    READ_QUEUE_OUT_NUM_REG_RD  ;
+   delete    READ_QUEUE_OUT_WRITE_RE    ;
+   delete    READ_QUEUE_OUT_NUM_REG_RE  ;
+
+   delete [] GPR_READ_VAL     ;
+   delete [] GPR_READ_ACK     ;
+   delete [] GPR_READ_NUM_REG ;
+   delete [] GPR_READ_DATA    ;
+   delete [] GPR_READ_DATA_VAL;
+   if(_param->_have_port_ooo_engine_id )
+     delete [] GPR_READ_OOO_ENGINE_ID ;
+
+   delete [] SPR_READ_VAL     ;
+   delete [] SPR_READ_ACK     ;
+   delete [] SPR_READ_NUM_REG ;
+   delete [] SPR_READ_DATA    ;
+   delete [] SPR_READ_DATA_VAL;
+   if(_param->_have_port_ooo_engine_id )
+     delete [] SPR_READ_OOO_ENGINE_ID ;
+
+   delete [] GPR_WRITE_VAL        ;
+   if(_param->_have_port_ooo_engine_id )
+     delete [] GPR_WRITE_OOO_ENGINE_ID ;
+   delete [] GPR_WRITE_NUM_REG    ;
+   delete [] GPR_WRITE_DATA       ;
+
+   delete [] SPR_WRITE_VAL        ;
+   if(_param->_have_port_ooo_engine_id )
+     delete [] SPR_WRITE_OOO_ENGINE_ID ;
+   delete [] SPR_WRITE_NUM_REG    ;
+   delete [] SPR_WRITE_DATA       ;
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h	(revision 68)
@@ -53,4 +53,11 @@
   public : const uint32_t    _size_type            ;
 
+  public : const bool        _have_port_context_id   ;
+  public : const bool        _have_port_front_end_id ;
+  public : const bool        _have_port_ooo_engine_id;
+  public : const bool        _have_port_rob_id       ;
+
+  public : const uint32_t    _size_internal_queue;
+
     //-----[ methods ]-----------------------------------------------------------
   public : Parameters  (uint32_t size_queue         ,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters.cpp	(revision 68)
@@ -54,5 +54,32 @@
     _size_special_register (static_cast<uint32_t>(log2(_nb_special_register))),
     _size_operation        (static_cast<uint32_t>(log2(_nb_operation       ))),
-    _size_type             (static_cast<uint32_t>(log2(_nb_type            )))
+    _size_type             (static_cast<uint32_t>(log2(_nb_type            ))),
+
+    _have_port_context_id    (_size_context_id    > 0),
+    _have_port_front_end_id  (_size_front_end_id  > 0),
+    _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
+    _have_port_rob_id        (_size_rob_id        > 0),
+
+    _size_internal_queue     (  _size_context_id       //_context_id   
+			      + _size_front_end_id     //_front_end_id 
+			      + _size_ooo_engine_id    //_ooo_engine_id
+			      + _size_rob_id           //_rob_id       
+			      + _size_operation        //_operation    
+			      + _size_type             //_type         
+			      + 1                      //_has_immediat 
+			      + _size_general_data     //_immediat     
+			      + 1                      //_read_ra      
+			      + _size_general_register //_num_reg_ra   
+			      + 1                      //_read_rb      
+			      + _size_general_register //_num_reg_rb   
+			      + 1                      //_read_rc      
+			      + _size_special_register //_num_reg_rc   
+			      + 1                      //_write_rd     
+			      + _size_general_register //_num_reg_rd   
+			      + 1                      //_write_re     
+			      + _size_special_register //_num_reg_re   
+				)
+				
+
   {
     log_printf(FUNC,Read_queue,"Parameters","Begin");
@@ -85,5 +112,12 @@
     _size_special_register (param._size_special_register ),
     _size_operation        (param._size_operation        ),
-    _size_type             (param._size_type             )
+    _size_type             (param._size_type             ),
+
+    _have_port_context_id    (param._have_port_context_id   ),
+    _have_port_front_end_id  (param._have_port_front_end_id ),
+    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
+    _have_port_rob_id        (param._have_port_rob_id       ),
+
+    _size_internal_queue     (param._size_internal_queue    )
   {
     log_printf(FUNC,Read_queue,"Parameters (copy)","Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_msg_error.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_msg_error.cpp	(revision 68)
@@ -26,8 +26,17 @@
     string msg = "";
 
-    if (_size_queue < 2)
+//     if (_size_queue < 2)
+//       {
+//         msg += "  - The read_queue must be have less a depth of 2";
+//         msg += "    * size_queue                      : " + toString(_size_queue)    + "\n";
+//       }
+
+    if (_nb_type < 2)
       {
-        msg += "  - The read_queue must be have less a depth of 2";
-        msg += "    * size_queue                      : " + toString(_size_queue)    + "\n";
+        msg += "  - The number of type must be > 1";
+      }
+    if (_nb_operation < 2)
+      {
+        msg += "  - The number of operation must be > 1";
       }
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 68)
@@ -77,12 +77,19 @@
       sensitive << *(in_SPR_READ_ACK      [i]);
     for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
-      sensitive << *(in_GPR_WRITE_VAL        [i])
-		<< *(in_GPR_WRITE_OOO_ENGINE_ID [i])
-		<< *(in_GPR_WRITE_NUM_REG    [i]);
+      {
+	if (_param->_have_port_ooo_engine_id)
+	  sensitive << *(in_GPR_WRITE_OOO_ENGINE_ID [i]);
+
+	sensitive << *(in_GPR_WRITE_VAL        [i])
+		  << *(in_GPR_WRITE_NUM_REG    [i]);
+      }
     for (uint32_t i=0; i<_param->_nb_spr_write; i++)
-      sensitive << *(in_SPR_WRITE_VAL        [i])
-		<< *(in_SPR_WRITE_OOO_ENGINE_ID [i])
-		<< *(in_SPR_WRITE_NUM_REG    [i]);
-
+      {
+	if (_param->_have_port_ooo_engine_id)
+	  sensitive << *(in_SPR_WRITE_OOO_ENGINE_ID [i]);
+	sensitive << *(in_SPR_WRITE_VAL        [i])
+		  
+		  << *(in_SPR_WRITE_NUM_REG    [i]);
+      }
 #ifdef SYSTEMCASS_SPECIFIC
     // List dependency information
@@ -94,4 +101,5 @@
       {
 	(*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_VAL        [i]));
+	if (_param->_have_port_ooo_engine_id)
 	(*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_VAL)) (*(in_GPR_WRITE_NUM_REG    [i]));
@@ -100,4 +108,5 @@
       {
 	(*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_VAL        [i]));
+	if (_param->_have_port_ooo_engine_id)
 	(*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_VAL)) (*(in_SPR_WRITE_NUM_REG    [i]));
@@ -115,9 +124,11 @@
 		<< *(in_GPR_READ_DATA_VAL [i]);
     for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
-      sensitive << *(in_GPR_WRITE_VAL        [i])
-		<< *(in_GPR_WRITE_OOO_ENGINE_ID [i])
-		<< *(in_GPR_WRITE_NUM_REG    [i])
-		<< *(in_GPR_WRITE_DATA       [i]);
-
+      {
+	if (_param->_have_port_ooo_engine_id)
+	  sensitive << *(in_GPR_WRITE_OOO_ENGINE_ID [i]);
+	sensitive << *(in_GPR_WRITE_VAL        [i])
+		  << *(in_GPR_WRITE_NUM_REG    [i])
+		  << *(in_GPR_WRITE_DATA       [i]);
+      }
 #ifdef SYSTEMCASS_SPECIFIC
     // List dependency information
@@ -134,16 +145,20 @@
       {
 	(*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_VAL        [i]));
-	(*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
+	if (_param->_have_port_ooo_engine_id)
+	  (*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RA_VAL)) (*(in_GPR_WRITE_NUM_REG    [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_VAL        [i]));
-	(*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
+	if (_param->_have_port_ooo_engine_id)
+	  (*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RB_VAL)) (*(in_GPR_WRITE_NUM_REG    [i]));
 
 	(*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_VAL        [i]));
-	(*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
+	if (_param->_have_port_ooo_engine_id)
+	  (*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_NUM_REG    [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RA    )) (*(in_GPR_WRITE_DATA       [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_VAL        [i]));
-	(*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
+	if (_param->_have_port_ooo_engine_id)
+	  (*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_NUM_REG    [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RB    )) (*(in_GPR_WRITE_DATA       [i]));
@@ -161,9 +176,11 @@
 		<< *(in_SPR_READ_DATA_VAL [i]);
     for (uint32_t i=0; i<_param->_nb_spr_write; i++)
-      sensitive << *(in_SPR_WRITE_VAL        [i])
-		<< *(in_SPR_WRITE_OOO_ENGINE_ID [i])
-		<< *(in_SPR_WRITE_NUM_REG    [i])
-		<< *(in_SPR_WRITE_DATA       [i]);
-
+      {
+	if (_param->_have_port_ooo_engine_id)
+	  sensitive << *(in_SPR_WRITE_OOO_ENGINE_ID [i]);
+	sensitive << *(in_SPR_WRITE_VAL        [i])
+		  << *(in_SPR_WRITE_NUM_REG    [i])
+		  << *(in_SPR_WRITE_DATA       [i]);
+      }
 #ifdef SYSTEMCASS_SPECIFIC
     // List dependency information
@@ -177,9 +194,11 @@
       {
 	(*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_VAL        [i]));
-	(*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_OOO_ENGINE_ID [i]));
+	if (_param->_have_port_ooo_engine_id)
+	  (*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RC_VAL)) (*(in_SPR_WRITE_NUM_REG    [i]));
 
 	(*(out_READ_QUEUE_OUT_DATA_RC    )) (*(in_SPR_WRITE_VAL        [i]));
-	(*(out_READ_QUEUE_OUT_DATA_RC    )) (*(in_SPR_WRITE_OOO_ENGINE_ID [i]));
+	if (_param->_have_port_ooo_engine_id)
+	  (*(out_READ_QUEUE_OUT_DATA_RC    )) (*(in_SPR_WRITE_OOO_ENGINE_ID [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RC    )) (*(in_SPR_WRITE_NUM_REG    [i]));
 	(*(out_READ_QUEUE_OUT_DATA_RC    )) (*(in_SPR_WRITE_DATA       [i]));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp	(revision 68)
@@ -59,10 +59,14 @@
 #endif
 							      );
-      
+
        in_READ_QUEUE_IN_VAL            = interface->set_signal_valack_in        ("val"    , VAL);
       out_READ_QUEUE_IN_ACK            = interface->set_signal_valack_out       ("ack"    , ACK);
+      if(_param->_have_port_context_id  )
        in_READ_QUEUE_IN_CONTEXT_ID     = interface->set_signal_in  <Tcontext_t        > ("context_id"   ,_param->_size_context_id       );
+      if(_param->_have_port_front_end_id)
        in_READ_QUEUE_IN_FRONT_END_ID   = interface->set_signal_in  <Tcontext_t        > ("front_end_id" ,_param->_size_front_end_id     );
-       in_READ_QUEUE_IN_OOO_ENGINE_ID  = interface->set_signal_in  <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id    );
+       if(_param->_have_port_ooo_engine_id)
+	 in_READ_QUEUE_IN_OOO_ENGINE_ID  = interface->set_signal_in  <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id    );
+      if(_param->_have_port_rob_id      )
        in_READ_QUEUE_IN_ROB_ID         = interface->set_signal_in  <Tpacket_t         > ("rob_id"      ,_param->_size_rob_id           );
        in_READ_QUEUE_IN_OPERATION      = interface->set_signal_in  <Toperation_t      > ("operation"   ,_param->_size_operation        );
@@ -95,8 +99,12 @@
        in_READ_QUEUE_OUT_ACK            = interface->set_signal_valack_in        ("ack"    , ACK);
 
-      out_READ_QUEUE_OUT_CONTEXT_ID     = interface->set_signal_out <Tcontext_t        > ("context_id"   ,_param->_size_context_id       );
-      out_READ_QUEUE_OUT_FRONT_END_ID   = interface->set_signal_out <Tcontext_t        > ("front_end_id" ,_param->_size_front_end_id     );
-      out_READ_QUEUE_OUT_OOO_ENGINE_ID  = interface->set_signal_out <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id    );
-      out_READ_QUEUE_OUT_ROB_ID         = interface->set_signal_out <Tpacket_t         > ("rob_id"      ,_param->_size_rob_id           );
+      if(_param->_have_port_context_id  )
+	out_READ_QUEUE_OUT_CONTEXT_ID     = interface->set_signal_out <Tcontext_t        > ("context_id"   ,_param->_size_context_id       );
+      if(_param->_have_port_front_end_id)
+	out_READ_QUEUE_OUT_FRONT_END_ID   = interface->set_signal_out <Tcontext_t        > ("front_end_id" ,_param->_size_front_end_id     );
+      if(_param->_have_port_ooo_engine_id)
+	out_READ_QUEUE_OUT_OOO_ENGINE_ID  = interface->set_signal_out <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id    );
+      if(_param->_have_port_rob_id      )
+	out_READ_QUEUE_OUT_ROB_ID         = interface->set_signal_out <Tpacket_t         > ("rob_id"      ,_param->_size_rob_id           );
       out_READ_QUEUE_OUT_OPERATION      = interface->set_signal_out <Toperation_t      > ("operation"   ,_param->_size_operation        );
       out_READ_QUEUE_OUT_TYPE           = interface->set_signal_out <Ttype_t           > ("type"        ,_param->_size_type             );
@@ -125,5 +133,6 @@
     out_GPR_READ_VAL          = new SC_OUT(Tcontrol_t        ) * [_param->_nb_gpr_read];
      in_GPR_READ_ACK          = new SC_IN (Tcontrol_t        ) * [_param->_nb_gpr_read];
-    out_GPR_READ_OOO_ENGINE_ID= new SC_OUT(Tcontext_t        ) * [_param->_nb_gpr_read];
+    if(_param->_have_port_ooo_engine_id)
+      out_GPR_READ_OOO_ENGINE_ID= new SC_OUT(Tcontext_t        ) * [_param->_nb_gpr_read];
     out_GPR_READ_NUM_REG      = new SC_OUT(Tgeneral_address_t) * [_param->_nb_gpr_read];
      in_GPR_READ_DATA         = new SC_IN (Tgeneral_data_t   ) * [_param->_nb_gpr_read];
@@ -142,5 +151,6 @@
 	out_GPR_READ_VAL           [i] = interface->set_signal_valack_out       ("val"    , VAL);
 	 in_GPR_READ_ACK           [i] = interface->set_signal_valack_in        ("ack"    , ACK);
-	out_GPR_READ_OOO_ENGINE_ID [i] = interface->set_signal_out <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
+	if(_param->_have_port_ooo_engine_id)
+	  out_GPR_READ_OOO_ENGINE_ID [i] = interface->set_signal_out <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
 	out_GPR_READ_NUM_REG       [i] = interface->set_signal_out <Tgeneral_address_t> ("num_reg"  ,_param->_size_general_register);
 	 in_GPR_READ_DATA          [i] = interface->set_signal_in  <Tgeneral_data_t   > ("data"     ,_param->_size_general_data);
@@ -152,5 +162,6 @@
     out_SPR_READ_VAL          = new SC_OUT(Tcontrol_t        ) * [_param->_nb_spr_read];
      in_SPR_READ_ACK          = new SC_IN (Tcontrol_t        ) * [_param->_nb_spr_read];
-    out_SPR_READ_OOO_ENGINE_ID= new SC_OUT(Tcontext_t        ) * [_param->_nb_spr_read];
+    if(_param->_have_port_ooo_engine_id) 
+      out_SPR_READ_OOO_ENGINE_ID= new SC_OUT(Tcontext_t        ) * [_param->_nb_spr_read];
     out_SPR_READ_NUM_REG      = new SC_OUT(Tspecial_address_t) * [_param->_nb_spr_read];
      in_SPR_READ_DATA         = new SC_IN (Tspecial_data_t   ) * [_param->_nb_spr_read];
@@ -169,5 +180,6 @@
 	out_SPR_READ_VAL           [i] = interface->set_signal_valack_out       ("val"    , VAL);
 	 in_SPR_READ_ACK           [i] = interface->set_signal_valack_in        ("ack"    , ACK);
-	out_SPR_READ_OOO_ENGINE_ID [i] = interface->set_signal_out <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
+	if(_param->_have_port_ooo_engine_id)
+	  out_SPR_READ_OOO_ENGINE_ID [i] = interface->set_signal_out <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
 	out_SPR_READ_NUM_REG       [i] = interface->set_signal_out <Tspecial_address_t> ("num_reg"   ,_param->_size_special_register);
 	 in_SPR_READ_DATA          [i] = interface->set_signal_in  <Tspecial_data_t   > ("data"      ,_param->_size_special_data);
@@ -178,5 +190,6 @@
     
      in_GPR_WRITE_VAL          = new SC_IN (Tcontrol_t        ) * [_param->_nb_gpr_write];
-     in_GPR_WRITE_OOO_ENGINE_ID= new SC_IN (Tcontext_t        ) * [_param->_nb_gpr_write];
+     if(_param->_have_port_ooo_engine_id)
+       in_GPR_WRITE_OOO_ENGINE_ID= new SC_IN (Tcontext_t        ) * [_param->_nb_gpr_write];
      in_GPR_WRITE_NUM_REG      = new SC_IN (Tgeneral_address_t) * [_param->_nb_gpr_write];
      in_GPR_WRITE_DATA         = new SC_IN (Tgeneral_data_t   ) * [_param->_nb_gpr_write];
@@ -193,5 +206,6 @@
 
 	 in_GPR_WRITE_VAL           [i] = interface->set_signal_valack_in        ("val"    , VAL);
-	 in_GPR_WRITE_OOO_ENGINE_ID [i] = interface->set_signal_in  <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
+	 if(_param->_have_port_ooo_engine_id)
+	   in_GPR_WRITE_OOO_ENGINE_ID [i] = interface->set_signal_in  <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
 	 in_GPR_WRITE_NUM_REG       [i] = interface->set_signal_in  <Tgeneral_address_t> ("num_reg"   ,_param->_size_general_register);
 	 in_GPR_WRITE_DATA          [i] = interface->set_signal_in  <Tgeneral_data_t   > ("data"      ,_param->_size_general_data);
@@ -201,5 +215,6 @@
     
      in_SPR_WRITE_VAL          = new SC_IN (Tcontrol_t        ) * [_param->_nb_spr_write];
-     in_SPR_WRITE_OOO_ENGINE_ID= new SC_IN (Tcontext_t        ) * [_param->_nb_spr_write];
+     if(_param->_have_port_ooo_engine_id)
+       in_SPR_WRITE_OOO_ENGINE_ID= new SC_IN (Tcontext_t        ) * [_param->_nb_spr_write];
      in_SPR_WRITE_NUM_REG      = new SC_IN (Tspecial_address_t) * [_param->_nb_spr_write];
      in_SPR_WRITE_DATA         = new SC_IN (Tspecial_data_t   ) * [_param->_nb_spr_write];
@@ -216,5 +231,6 @@
 
 	 in_SPR_WRITE_VAL           [i] = interface->set_signal_valack_in ("val"    , VAL);
-	 in_SPR_WRITE_OOO_ENGINE_ID [i] = interface->set_signal_in  <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
+	 if(_param->_have_port_ooo_engine_id)
+	   in_SPR_WRITE_OOO_ENGINE_ID [i] = interface->set_signal_in  <Tcontext_t        > ("ooo_engine_id",_param->_size_ooo_engine_id);
 	 in_SPR_WRITE_NUM_REG       [i] = interface->set_signal_in  <Tspecial_address_t> ("num_reg"   ,_param->_size_special_register);
 	 in_SPR_WRITE_DATA          [i] = interface->set_signal_in  <Tspecial_data_t   > ("data"      ,_param->_size_special_data);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp	(revision 68)
@@ -30,8 +30,13 @@
     delete     in_READ_QUEUE_IN_VAL            ;
     delete    out_READ_QUEUE_IN_ACK            ;
-    delete     in_READ_QUEUE_IN_CONTEXT_ID     ;
-    delete     in_READ_QUEUE_IN_FRONT_END_ID   ;
-    delete     in_READ_QUEUE_IN_OOO_ENGINE_ID  ;
-    delete     in_READ_QUEUE_IN_ROB_ID         ;
+
+    if(_param->_have_port_context_id   )
+      delete     in_READ_QUEUE_IN_CONTEXT_ID     ;
+    if(_param->_have_port_front_end_id )
+      delete     in_READ_QUEUE_IN_FRONT_END_ID   ;
+    if(_param->_have_port_ooo_engine_id)
+      delete     in_READ_QUEUE_IN_OOO_ENGINE_ID  ;
+    if(_param->_have_port_rob_id       )
+      delete     in_READ_QUEUE_IN_ROB_ID         ;
     delete     in_READ_QUEUE_IN_OPERATION      ;
     delete     in_READ_QUEUE_IN_TYPE           ;
@@ -52,8 +57,13 @@
     delete    out_READ_QUEUE_OUT_VAL            ;
     delete     in_READ_QUEUE_OUT_ACK            ;
-    delete    out_READ_QUEUE_OUT_CONTEXT_ID     ;
-    delete    out_READ_QUEUE_OUT_FRONT_END_ID   ;
-    delete    out_READ_QUEUE_OUT_OOO_ENGINE_ID  ;
-    delete    out_READ_QUEUE_OUT_ROB_ID         ;
+
+    if(_param->_have_port_context_id   )
+      delete    out_READ_QUEUE_OUT_CONTEXT_ID     ;
+    if(_param->_have_port_front_end_id )
+      delete    out_READ_QUEUE_OUT_FRONT_END_ID   ;
+    if(_param->_have_port_ooo_engine_id)
+      delete    out_READ_QUEUE_OUT_OOO_ENGINE_ID  ;
+    if(_param->_have_port_rob_id       )
+      delete    out_READ_QUEUE_OUT_ROB_ID         ;
     delete    out_READ_QUEUE_OUT_OPERATION      ;
     delete    out_READ_QUEUE_OUT_TYPE           ;
@@ -81,5 +91,6 @@
     delete [] out_GPR_READ_VAL       ;
     delete []  in_GPR_READ_ACK       ;
-    delete [] out_GPR_READ_OOO_ENGINE_ID;
+    if(_param->_have_port_ooo_engine_id)
+      delete [] out_GPR_READ_OOO_ENGINE_ID;
     delete [] out_GPR_READ_NUM_REG   ;
     delete []  in_GPR_READ_DATA      ;
@@ -90,5 +101,6 @@
     delete [] out_SPR_READ_VAL       ;
     delete []  in_SPR_READ_ACK       ;
-    delete [] out_SPR_READ_OOO_ENGINE_ID;
+    if(_param->_have_port_ooo_engine_id)
+      delete [] out_SPR_READ_OOO_ENGINE_ID;
     delete [] out_SPR_READ_NUM_REG   ;
     delete []  in_SPR_READ_DATA      ;
@@ -98,5 +110,6 @@
     
     delete []  in_GPR_WRITE_VAL       ;
-    delete []  in_GPR_WRITE_OOO_ENGINE_ID;
+    if(_param->_have_port_ooo_engine_id)
+      delete []  in_GPR_WRITE_OOO_ENGINE_ID;
     delete []  in_GPR_WRITE_NUM_REG   ;
     delete []  in_GPR_WRITE_DATA      ;
@@ -105,5 +118,6 @@
     
     delete []  in_SPR_WRITE_VAL       ;
-    delete []  in_SPR_WRITE_OOO_ENGINE_ID;
+    if(_param->_have_port_ooo_engine_id)
+      delete []  in_SPR_WRITE_OOO_ENGINE_ID;
     delete []  in_SPR_WRITE_NUM_REG   ;
     delete []  in_SPR_WRITE_DATA      ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp	(revision 68)
@@ -65,8 +65,13 @@
     for (uint32_t i=0; i<_param->_nb_gpr_write ; i++)
       {
+	bool cmp;
+
+	if (_param->_have_port_ooo_engine_id)
+	  cmp = (PORT_READ (in_GPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id);
+	else
+	  cmp = true;
+
 	// Test if this bypass is valid
-	if ( (PORT_READ (in_GPR_WRITE_VAL           [i]) == 1) and
-	     (PORT_READ (in_GPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id)
-	     )
+	if ( (PORT_READ (in_GPR_WRITE_VAL [i]) == 1) and cmp)
 	  {
 	    Tgeneral_address_t gpr_write_num_reg = PORT_READ(in_GPR_WRITE_NUM_REG [i]);
@@ -78,4 +83,7 @@
 
 		internal_READ_QUEUE_OUT_DATA_RA_VAL = 1;
+#ifdef SYSTEMC_VHDL_COMPATIBILITY
+		if (_queue_head->_read_ra == 1)
+#endif
 		internal_READ_QUEUE_OUT_DATA_RA     = gpr_write_data;
 	      }
@@ -84,4 +92,7 @@
 		log_printf(TRACE,Read_queue,FUNCTION," * internal_READ_QUEUE_OUT_DATA_RB_VAL   - bypass hit (%d)",i);
 		internal_READ_QUEUE_OUT_DATA_RB_VAL = 1;
+#ifdef SYSTEMC_VHDL_COMPATIBILITY
+		if (_queue_head->_read_rb == 1)
+#endif
 		internal_READ_QUEUE_OUT_DATA_RB     = gpr_write_data;
 	      }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_spr.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_spr.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_spr.cpp	(revision 68)
@@ -45,13 +45,16 @@
 					   PORT_READ(in_SPR_READ_DATA [0]));
 
-//     cout << "yo1 : " << internal_READ_QUEUE_OUT_DATA_RC << endl;
-
     // Test all bypass
     for (uint32_t i=0; i<_param->_nb_spr_write ; i++)
       {
+	bool cmp;
+
+	if (_param->_have_port_ooo_engine_id)
+	  cmp = (PORT_READ (in_SPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id);
+	else
+	  cmp = true;
+	    
 	// Test if this bypass is valid
-	if ( (PORT_READ (in_SPR_WRITE_VAL           [i]) == 1) and
-	     (PORT_READ (in_SPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id)
-	     )
+	if ( (PORT_READ (in_SPR_WRITE_VAL [i]) == 1) and cmp)
 	  {
 	    if (_queue_head->_num_reg_rc == PORT_READ(in_SPR_WRITE_NUM_REG [i]))
@@ -59,10 +62,11 @@
 		log_printf(TRACE,Read_queue,FUNCTION," * internal_READ_QUEUE_OUT_DATA_RC_VAL   - bypass hit (%d)",i);
 		internal_READ_QUEUE_OUT_DATA_RC_VAL = 1;
+#ifdef SYSTEMC_VHDL_COMPATIBILITY
+		if (_queue_head->_read_rc == 1)
+#endif
 		internal_READ_QUEUE_OUT_DATA_RC     = PORT_READ(in_SPR_WRITE_DATA [i]);
 	      }
 	  }
       }
-
-//     cout << "yo2 : " << internal_READ_QUEUE_OUT_DATA_RC << endl;
 
     // Affectation out port
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_val.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_val.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_val.cpp	(revision 68)
@@ -41,8 +41,13 @@
     for (uint32_t i=0; i<_param->_nb_gpr_write ; i++)
       {
+	bool cmp;
+
+	if (_param->_have_port_ooo_engine_id)
+	  cmp = (PORT_READ (in_GPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id);
+	else
+	  cmp = true;
+	
 	// Test if this bypass is valid
-	if ( (PORT_READ (in_GPR_WRITE_VAL           [i]) == 1) and
-	     (PORT_READ (in_GPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id)
-	     )
+	if ((PORT_READ (in_GPR_WRITE_VAL           [i]) == 1) and cmp)
 	  {
 	    Tgeneral_address_t gpr_write_num_reg = PORT_READ(in_GPR_WRITE_NUM_REG [i]);
@@ -58,8 +63,13 @@
     for (uint32_t i=0; i<_param->_nb_spr_write ; i++)
       {
+	bool cmp;
+
+	if (_param->_have_port_ooo_engine_id)
+	  cmp = (PORT_READ (in_SPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id);
+	else
+	  cmp = true;
+	
 	// Test if this bypass is valid
-	if ( (PORT_READ (in_SPR_WRITE_VAL           [i]) == 1) and
-	     (PORT_READ (in_SPR_WRITE_OOO_ENGINE_ID [i]) == _queue_head->_ooo_engine_id)
-	     )
+	if ((PORT_READ (in_SPR_WRITE_VAL           [i]) == 1) and cmp)
 	  {
 	    Tspecial_address_t spr_write_num_reg = PORT_READ(in_SPR_WRITE_NUM_REG [i]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp	(revision 68)
@@ -31,10 +31,14 @@
 
     // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//  PORT_WRITE (out_READ_QUEUE_OUT_VAL         , not_empty    );              // in genMealy_val
-
-    PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID   , _queue_head->_context_id  );
-    PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id);
-    PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id);
-    PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID      , _queue_head->_rob_id      );
+    //  PORT_WRITE (out_READ_QUEUE_OUT_VAL         , not_empty    );              // in genMealy_val
+    
+    if(_param->_have_port_context_id   )
+      PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID   , _queue_head->_context_id  );
+    if(_param->_have_port_front_end_id )
+      PORT_WRITE (out_READ_QUEUE_OUT_FRONT_END_ID , _queue_head->_front_end_id);
+    if(_param->_have_port_ooo_engine_id)
+      PORT_WRITE (out_READ_QUEUE_OUT_OOO_ENGINE_ID, _queue_head->_ooo_engine_id);
+    if(_param->_have_port_rob_id       )
+      PORT_WRITE (out_READ_QUEUE_OUT_ROB_ID      , _queue_head->_rob_id      );
     PORT_WRITE (out_READ_QUEUE_OUT_OPERATION   , _queue_head->_operation   );
     PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
@@ -61,6 +65,9 @@
     PORT_WRITE (out_GPR_READ_VAL           [0], not_empty and _queue_head->_read_ra_val);
     PORT_WRITE (out_GPR_READ_VAL           [1], not_empty and _queue_head->_read_rb_val);
-    PORT_WRITE (out_GPR_READ_OOO_ENGINE_ID [0],               _queue_head->_ooo_engine_id);
-    PORT_WRITE (out_GPR_READ_OOO_ENGINE_ID [1],               _queue_head->_ooo_engine_id);
+    if(_param->_have_port_ooo_engine_id)
+      {
+	PORT_WRITE (out_GPR_READ_OOO_ENGINE_ID [0],               _queue_head->_ooo_engine_id);
+	PORT_WRITE (out_GPR_READ_OOO_ENGINE_ID [1],               _queue_head->_ooo_engine_id);
+      }
     PORT_WRITE (out_GPR_READ_NUM_REG       [0],               _queue_head->_num_reg_ra);
     PORT_WRITE (out_GPR_READ_NUM_REG       [1],               _queue_head->_num_reg_rb);
@@ -68,5 +75,6 @@
     // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PORT_WRITE (out_SPR_READ_VAL           [0], not_empty and _queue_head->_read_rc_val);
-    PORT_WRITE (out_SPR_READ_OOO_ENGINE_ID [0],               _queue_head->_ooo_engine_id);
+    if(_param->_have_port_ooo_engine_id)
+      PORT_WRITE (out_SPR_READ_OOO_ENGINE_ID [0],               _queue_head->_ooo_engine_id);
     PORT_WRITE (out_SPR_READ_NUM_REG       [0],               _queue_head->_num_reg_rc);
 		    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp	(revision 68)
@@ -49,5 +49,5 @@
 	bool not_full      = not (_queue->size() == _param->_size_queue);
 	bool     empty     =     _queue->empty();
-	bool nead_new_head = false;
+	bool need_new_head = false;
 	
 	log_printf(TRACE,Read_queue,FUNCTION," * test transaction READ_QUEUE_IN  : %d,%d",PORT_READ(in_READ_QUEUE_IN_VAL), not_full);
@@ -56,8 +56,12 @@
 	    Tread_queue_entry_t * entry = new Tread_queue_entry_t;
 
-	    entry->_context_id   = PORT_READ(in_READ_QUEUE_IN_CONTEXT_ID  );
-	    entry->_front_end_id = PORT_READ(in_READ_QUEUE_IN_FRONT_END_ID);
-	    entry->_ooo_engine_id= PORT_READ(in_READ_QUEUE_IN_OOO_ENGINE_ID);
-	    entry->_rob_id       = PORT_READ(in_READ_QUEUE_IN_ROB_ID      );
+	    if(_param->_have_port_context_id   )
+	      entry->_context_id   = PORT_READ(in_READ_QUEUE_IN_CONTEXT_ID  );
+	    if(_param->_have_port_front_end_id )
+	      entry->_front_end_id = PORT_READ(in_READ_QUEUE_IN_FRONT_END_ID);
+	    if(_param->_have_port_ooo_engine_id)
+	      entry->_ooo_engine_id= PORT_READ(in_READ_QUEUE_IN_OOO_ENGINE_ID);
+	    if(_param->_have_port_rob_id       )
+	      entry->_rob_id       = PORT_READ(in_READ_QUEUE_IN_ROB_ID      );
 	    entry->_operation    = PORT_READ(in_READ_QUEUE_IN_OPERATION   );
 	    entry->_type         = PORT_READ(in_READ_QUEUE_IN_TYPE        );
@@ -83,5 +87,5 @@
 	      {
 		log_printf(TRACE,Read_queue,FUNCTION,"     * queue was    empty");
-		nead_new_head = true;
+		need_new_head = true;
 	      }
 	  }
@@ -100,5 +104,5 @@
 	      {
 		log_printf(TRACE,Read_queue,FUNCTION,"     * queue was not empty");
-		nead_new_head = true;
+		need_new_head = true;
 	      }
 	  }
@@ -119,5 +123,5 @@
 	  }
 
-	if (nead_new_head == true)
+	if (need_new_head == true)
 	  {
 	    log_printf(TRACE,Read_queue,FUNCTION," * new head");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl.cpp	(revision 68)
@@ -8,4 +8,5 @@
 
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h"
+#include "Behavioural/Generic/Queue/include/Queue.h"
 #include "Behavioural/include/Vhdl.h"
 
@@ -23,4 +24,31 @@
   {
     log_printf(FUNC,Read_queue,"vhdl","Begin");
+    
+    //----- 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
+       );
+    
+    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);
@@ -35,4 +63,6 @@
 
     delete vhdl;
+    delete param_queue;
+    delete queue;
 
     log_printf(FUNC,Read_queue,"vhdl","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_body.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_body.cpp	(revision 68)
@@ -23,4 +23,425 @@
     log_printf(FUNC,Read_queue,"vhdl_body","Begin");
     vhdl->set_body ("");
+    vhdl->set_body("");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("-- Instance queue                  ");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("");
+
+    vhdl->set_body("instance_"+_name+"_queue : "+_name+"_queue");
+    vhdl->set_body("port map (");
+    vhdl->set_body("\t  in_CLOCK       \t=>\t      in_CLOCK ");
+    vhdl->set_body("\t, in_NRESET      \t=>\t      in_NRESET");
+    vhdl->set_body("\t, in_INSERT_VAL  \t=>\tinternal_QUEUE_INSERT_VAL");
+    vhdl->set_body("\t,out_INSERT_ACK  \t=>\tinternal_QUEUE_INSERT_ACK");
+    vhdl->set_body("\t, in_INSERT_DATA \t=>\tinternal_QUEUE_INSERT_DATA");
+    vhdl->set_body("\t,out_RETIRE_VAL  \t=>\tinternal_QUEUE_RETIRE_VAL");
+    vhdl->set_body("\t, in_RETIRE_ACK  \t=>\tinternal_QUEUE_RETIRE_ACK");
+    vhdl->set_body("\t,out_RETIRE_DATA \t=>\tinternal_QUEUE_RETIRE_DATA");
+    vhdl->set_body(");");
+
+    vhdl->set_body("");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("-- Queue_data                      ");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("");
+    
+    uint32_t min = 0;
+    uint32_t max;
+
+    if(_param->_have_port_context_id   )
+      {
+	max = min-1+_param->_size_context_id;
+	vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_CONTEXT_ID;");
+	min = max+1;
+      }
+    if(_param->_have_port_front_end_id   )
+      {
+	max = min-1+_param->_size_front_end_id;
+	vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_FRONT_END_ID;");
+	min = max+1;
+      }
+    if(_param->_have_port_ooo_engine_id   )
+      {
+	max = min-1+_param->_size_ooo_engine_id;
+	vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_OOO_ENGINE_ID;");
+	min = max+1;
+      }
+    if(_param->_have_port_rob_id   )
+      {
+	max = min-1+_param->_size_rob_id;
+	vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_ROB_ID;");
+	min = max+1;
+      }
+
+    max = min-1+_param->_size_operation;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_OPERATION;");
+    min = max+1;
+
+    max = min-1+_param->_size_type;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_TYPE;");
+    min = max+1;
+
+    max = min;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_HAS_IMMEDIAT;");
+    min = max+1;
+
+    max = min-1+_param->_size_general_data;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_IMMEDIAT;");
+    min = max+1;
+
+    max = min;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_READ_RA;");
+    min = max+1;
+
+    max = min-1+_param->_size_general_register;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_NUM_REG_RA;");
+    min = max+1;
+
+    max = min;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_READ_RB;");
+    min = max+1;
+
+    max = min-1+_param->_size_general_register;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_NUM_REG_RB;");
+    min = max+1;
+
+    max = min;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_READ_RC;");
+    min = max+1;
+
+    max = min-1+_param->_size_special_register;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_NUM_REG_RC;");
+    min = max+1;
+
+    max = min;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_WRITE_RD;");
+    min = max+1;
+
+    max = min-1+_param->_size_general_register;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_NUM_REG_RD;");
+    min = max+1;
+
+    max = min;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_WRITE_RE;");
+    min = max+1;
+
+    max = min-1+_param->_size_special_register;
+    vhdl->set_body ("internal_QUEUE_INSERT_DATA"+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_READ_QUEUE_IN_NUM_REG_RE;");
+    min = max+1;
+
+    vhdl->set_body ("internal_QUEUE_RETIRE_ACK <= internal_READ_QUEUE_OUT_VAL and in_READ_QUEUE_OUT_ACK;");
+
+    vhdl->set_body("");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("-- Interface read");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("");
+    vhdl->set_body("-- GPR");
+    vhdl->set_body ("out_GPR_READ_0_VAL           <= internal_QUEUE_RETIRE_VAL and internal_READ_RA_VAL;");
+    vhdl->set_body ("out_GPR_READ_1_VAL           <= internal_QUEUE_RETIRE_VAL and internal_READ_RB_VAL;");
+    if(_param->_have_port_ooo_engine_id)
+      {
+	vhdl->set_body ("out_GPR_READ_0_OOO_ENGINE_ID <= internal_OOO_ENGINE_ID;");
+	vhdl->set_body ("out_GPR_READ_1_OOO_ENGINE_ID <= internal_OOO_ENGINE_ID;");
+      }
+    vhdl->set_body ("out_GPR_READ_0_NUM_REG       <= internal_NUM_REG_RA;");
+    vhdl->set_body ("out_GPR_READ_1_NUM_REG       <= internal_NUM_REG_RB;");
+    vhdl->set_body("");
+    
+    vhdl->set_body("-- SPR");
+    vhdl->set_body ("out_SPR_READ_0_VAL           <= internal_QUEUE_RETIRE_VAL and internal_READ_RC_VAL;");
+    if(_param->_have_port_ooo_engine_id)
+      {
+	vhdl->set_body ("out_SPR_READ_0_OOO_ENGINE_ID <= internal_OOO_ENGINE_ID;");
+      }
+    vhdl->set_body ("out_SPR_READ_0_NUM_REG       <= internal_NUM_REG_RC;");
+
+    vhdl->set_body("");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("-- Interface read_queue_out");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("");
+    
+    if(_param->_have_port_context_id   )
+      vhdl->set_body ("out_READ_QUEUE_OUT_CONTEXT_ID    <= internal_CONTEXT_ID   ;");
+    if(_param->_have_port_front_end_id   )
+      vhdl->set_body ("out_READ_QUEUE_OUT_FRONT_END_ID  <= internal_FRONT_END_ID ;");
+    if(_param->_have_port_ooo_engine_id   )
+      vhdl->set_body ("out_READ_QUEUE_OUT_OOO_ENGINE_ID <= internal_OOO_ENGINE_ID;");
+    if(_param->_have_port_rob_id   )
+      vhdl->set_body ("out_READ_QUEUE_OUT_ROB_ID        <= internal_ROB_ID       ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_OPERATION     <= internal_OPERATION    ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_TYPE          <= internal_TYPE         ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_HAS_IMMEDIAT  <= internal_HAS_IMMEDIAT ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_IMMEDIAT      <= internal_IMMEDIAT     ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_READ_RA       <= internal_READ_RA      ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_NUM_REG_RA    <= internal_NUM_REG_RA   ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_DATA_RA_VAL   <= internal_NEXT_DATA_RA_VAL;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_DATA_RA       <= internal_NEXT_DATA_RA ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_READ_RB       <= internal_READ_RB      ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_NUM_REG_RB    <= internal_NUM_REG_RB   ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_DATA_RB_VAL   <= internal_NEXT_DATA_RB_VAL;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_DATA_RB       <= internal_NEXT_DATA_RB ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_READ_RC       <= internal_READ_RC      ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_NUM_REG_RC    <= internal_NUM_REG_RC   ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_DATA_RC_VAL   <= internal_NEXT_DATA_RC_VAL;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_DATA_RC       <= internal_NEXT_DATA_RC ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_WRITE_RD      <= internal_WRITE_RD     ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_NUM_REG_RD    <= internal_NUM_REG_RD   ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_WRITE_RE      <= internal_WRITE_RE     ;");
+    vhdl->set_body ("out_READ_QUEUE_OUT_NUM_REG_RE    <= internal_NUM_REG_RE   ;");
+    
+    vhdl->set_body("");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("-- next reg update");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("");
+    vhdl->set_body("-- read_rx_val - 1 : must access at the registerFile (after access, is set at 0)");
+    
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_READ_RA_VAL <=");
+      vhdl->set_body("\t'0' when");
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_gpr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	  
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\t\t((in_GPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RA=in_GPR_WRITE_"+toString(i)+"_NUM_REG)) or");
+	}
+      vhdl->set_body("\t\tfalse else");
+      vhdl->set_body("\tinternal_READ_RA_VAL and not in_GPR_READ_0_ACK;");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_READ_RB_VAL <=");
+      vhdl->set_body("\t'0' when");
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_gpr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	  
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\t\t((in_GPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RB=in_GPR_WRITE_"+toString(i)+"_NUM_REG)) or");
+	}
+      vhdl->set_body("\t\tfalse else");
+      vhdl->set_body("\tinternal_READ_RB_VAL and not in_GPR_READ_1_ACK;");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_READ_RC_VAL <=");
+      vhdl->set_body("\t'0' when");
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_spr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	  
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\t\t((in_SPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RC=in_SPR_WRITE_"+toString(i)+"_NUM_REG)) or");
+	}
+      vhdl->set_body("\t\tfalse else");
+      vhdl->set_body("\tinternal_READ_RC_VAL and not in_SPR_READ_0_ACK;");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_READ_QUEUE_OUT_VAL <= not internal_NEXT_READ_RA_VAL and not internal_NEXT_READ_RB_VAL and not internal_NEXT_READ_RC_VAL;");
+      vhdl->set_body("     out_READ_QUEUE_OUT_VAL <= internal_READ_QUEUE_OUT_VAL and internal_QUEUE_RETIRE_VAL;");
+      
+    }
+    
+    vhdl->set_body("");
+    vhdl->set_body("-- data_rx_val - 1 : the read of registerFile is valid");
+    
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_DATA_RA_VAL <=");
+      vhdl->set_body("\t'1' when");
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_gpr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\t\t((in_GPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RA=in_GPR_WRITE_"+toString(i)+"_NUM_REG)) or");
+	}
+      vhdl->set_body("\t\tfalse else");
+      vhdl->set_body("\tinternal_DATA_RA_VAL or (internal_READ_RA_VAL and in_GPR_READ_0_ACK and in_GPR_READ_0_DATA_VAL);");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_DATA_RB_VAL <=");
+      vhdl->set_body("\t'1' when");
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_gpr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	  
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	else
+	  cmp = "";
+	  
+	  vhdl->set_body("\t\t((in_GPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RB=in_GPR_WRITE_"+toString(i)+"_NUM_REG)) or");
+	}
+      vhdl->set_body("\t\tfalse else");
+      vhdl->set_body("\tinternal_DATA_RB_VAL or (internal_READ_RB_VAL and in_GPR_READ_1_ACK and in_GPR_READ_1_DATA_VAL);");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_DATA_RC_VAL <=");
+      vhdl->set_body("\t'1' when");
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_spr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	  
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\t\t((in_SPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RC=in_SPR_WRITE_"+toString(i)+"_NUM_REG)) or");
+	}
+      vhdl->set_body("\t\tfalse else");
+      vhdl->set_body("\tinternal_DATA_RC_VAL or (internal_READ_RC_VAL and in_SPR_READ_0_ACK and in_SPR_READ_0_DATA_VAL);");
+    }
+    
+    vhdl->set_body("");
+    vhdl->set_body("-- data_rx - data read");
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_DATA_RA <=");
+#ifdef SYSTEMC_VHDL_COMPATIBILITY
+      vhdl->set_body("\t"+std_logic_others(_param->_size_general_data,0)+" when internal_READ_RA='0' else");
+#endif
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_gpr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\tin_GPR_WRITE_"+toString(i)+"_DATA when ((in_GPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RA=in_GPR_WRITE_"+toString(i)+"_NUM_REG)) else");
+	}
+      vhdl->set_body("\treg_DATA_RA when (internal_DATA_RA_VAL='1') else");
+      vhdl->set_body("\tin_GPR_READ_0_DATA;");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_DATA_RB <=");
+#ifdef SYSTEMC_VHDL_COMPATIBILITY
+      vhdl->set_body("\t"+std_logic_others(_param->_size_general_data,0)+" when internal_READ_RB='0' else");
+#endif
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_gpr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\tin_GPR_WRITE_"+toString(i)+"_DATA when ((in_GPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (internal_NUM_REG_RB=in_GPR_WRITE_"+toString(i)+"_NUM_REG)) else");
+	}
+      vhdl->set_body("\treg_DATA_RB when (internal_DATA_RB_VAL='1') else");
+      vhdl->set_body("\tin_GPR_READ_1_DATA;");
+    }
+    {
+      vhdl->set_body("");
+      vhdl->set_body("internal_NEXT_DATA_RC <=");
+#ifdef SYSTEMC_VHDL_COMPATIBILITY
+      vhdl->set_body("\t"+std_logic_others(_param->_size_special_data,0)+" when internal_READ_RC='0' else");
+#endif
+      // bypass
+      vhdl->set_body("\t\t-- check bypass");
+      for (int32_t i=_param->_nb_spr_write-1; i>=0 ; i--)
+	{
+	  string cmp;
+	
+	  if (_param->_have_port_ooo_engine_id)
+	    cmp = "and (in_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID=internal_OOO_ENGINE_ID) ";
+	  else
+	    cmp = "";
+	  
+	  vhdl->set_body("\tin_SPR_WRITE_"+toString(i)+"_DATA when ((in_SPR_WRITE_"+toString(i)+"_VAL='1') "+cmp+"and (in_SPR_WRITE_"+toString(i)+"_NUM_REG=internal_NUM_REG_RC)) else");
+	}
+      vhdl->set_body("\treg_DATA_RC when (internal_DATA_RC_VAL='1') else");
+      vhdl->set_body("\tin_SPR_READ_0_DATA;");
+
+    vhdl->set_body("");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("-- transition");
+    vhdl->set_body("-----------------------------------");
+    vhdl->set_body("");
+    vhdl->set_body("-- need a new head if :");
+    vhdl->set_body("--   * queue is empty");
+    vhdl->set_body("--   * pop with queue");
+    vhdl->set_body ("internal_NEXT_NEED_NEW_HEAD <= not internal_QUEUE_RETIRE_VAL or (internal_QUEUE_RETIRE_VAL and internal_QUEUE_RETIRE_ACK);");
+
+    vhdl->set_body ("internal_READ_RA_VAL   <=     internal_READ_RA when reg_NEED_NEW_HEAD='1' else reg_READ_RA_VAL;");
+    vhdl->set_body ("internal_READ_RB_VAL   <=     internal_READ_RB when reg_NEED_NEW_HEAD='1' else reg_READ_RB_VAL;");
+    vhdl->set_body ("internal_READ_RC_VAL   <=     internal_READ_RC when reg_NEED_NEW_HEAD='1' else reg_READ_RC_VAL;");
+    vhdl->set_body ("internal_DATA_RA_VAL   <= not internal_READ_RA when reg_NEED_NEW_HEAD='1' else reg_DATA_RA_VAL;");
+    vhdl->set_body ("internal_DATA_RB_VAL   <= not internal_READ_RB when reg_NEED_NEW_HEAD='1' else reg_DATA_RB_VAL;");
+    vhdl->set_body ("internal_DATA_RC_VAL   <= not internal_READ_RC when reg_NEED_NEW_HEAD='1' else reg_DATA_RC_VAL;");
+
+
+    vhdl->set_body ("");
+    vhdl->set_body ("transition: process (in_CLOCK)");
+    vhdl->set_body ("begin  -- process transition");
+    vhdl->set_body ("\tif in_CLOCK'event and in_CLOCK = '1' then");
+    vhdl->set_body ("");
+    vhdl->set_body ("\t\tif (in_NRESET = '0') then");    
+    vhdl->set_body ("\t\t\treg_NEED_NEW_HEAD <= '1';");
+    vhdl->set_body ("\t\telse");
+    vhdl->set_body ("\t\t\treg_NEED_NEW_HEAD <= internal_NEXT_NEED_NEW_HEAD;");
+    vhdl->set_body ("\t\t\treg_READ_RA_VAL   <= internal_NEXT_READ_RA_VAL;");
+    vhdl->set_body ("\t\t\treg_READ_RB_VAL   <= internal_NEXT_READ_RB_VAL;");
+    vhdl->set_body ("\t\t\treg_READ_RC_VAL   <= internal_NEXT_READ_RC_VAL;");
+    vhdl->set_body ("\t\t\treg_DATA_RA_VAL   <= internal_NEXT_DATA_RA_VAL;");
+    vhdl->set_body ("\t\t\treg_DATA_RB_VAL   <= internal_NEXT_DATA_RB_VAL;");
+    vhdl->set_body ("\t\t\treg_DATA_RC_VAL   <= internal_NEXT_DATA_RC_VAL;");
+    vhdl->set_body ("\t\t\treg_DATA_RA       <= internal_NEXT_DATA_RA    ;");
+    vhdl->set_body ("\t\t\treg_DATA_RB       <= internal_NEXT_DATA_RB    ;");
+    vhdl->set_body ("\t\t\treg_DATA_RC       <= internal_NEXT_DATA_RC    ;");
+
+    vhdl->set_body ("\t\tend if;");
+    vhdl->set_body ("");
+    vhdl->set_body ("\tend if;");
+    vhdl->set_body ("end process transition;");
+
+    }
+
+
     log_printf(FUNC,Read_queue,"vhdl_body","End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_declaration.cpp	(revision 66)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_declaration.cpp	(revision 68)
@@ -22,4 +22,148 @@
   {
     log_printf(FUNC,Read_queue,"vhdl_declaration","Begin");
+
+
+    vhdl->set_signal ("internal_READ_QUEUE_OUT_VAL   ",1);
+
+    vhdl->set_signal ("reg_NEED_NEW_HEAD             ",1);
+    vhdl->set_signal ("reg_READ_RA_VAL               ",1);
+    vhdl->set_signal ("reg_READ_RB_VAL               ",1);
+    vhdl->set_signal ("reg_READ_RC_VAL               ",1);
+    vhdl->set_signal ("reg_DATA_RA_VAL               ",1);
+    vhdl->set_signal ("reg_DATA_RB_VAL               ",1);
+    vhdl->set_signal ("reg_DATA_RA                   ",_param->_size_general_data);
+    vhdl->set_signal ("reg_DATA_RB                   ",_param->_size_general_data);
+    vhdl->set_signal ("reg_DATA_RC_VAL               ",1);
+    vhdl->set_signal ("reg_DATA_RC                   ",_param->_size_special_data);
+
+    vhdl->set_signal ("internal_NEXT_NEED_NEW_HEAD   ",1);
+    vhdl->set_signal ("internal_NEXT_READ_RA_VAL     ",1);
+    vhdl->set_signal ("internal_NEXT_READ_RB_VAL     ",1);
+    vhdl->set_signal ("internal_NEXT_READ_RC_VAL     ",1);
+    vhdl->set_signal ("internal_NEXT_DATA_RA_VAL     ",1);
+    vhdl->set_signal ("internal_NEXT_DATA_RB_VAL     ",1);
+    vhdl->set_signal ("internal_NEXT_DATA_RA         ",_param->_size_general_data);
+    vhdl->set_signal ("internal_NEXT_DATA_RB         ",_param->_size_general_data);
+    vhdl->set_signal ("internal_NEXT_DATA_RC_VAL     ",1);
+    vhdl->set_signal ("internal_NEXT_DATA_RC         ",_param->_size_special_data);
+
+    vhdl->set_signal ("internal_READ_RA_VAL          ",1);
+    vhdl->set_signal ("internal_READ_RB_VAL          ",1);
+    vhdl->set_signal ("internal_READ_RC_VAL          ",1);
+    vhdl->set_signal ("internal_DATA_RA_VAL          ",1);
+    vhdl->set_signal ("internal_DATA_RB_VAL          ",1);
+    vhdl->set_signal ("internal_DATA_RC_VAL          ",1);
+ 
+
+    vhdl->set_alias  ("internal_QUEUE_INSERT_VAL     ",std_logic(1)," in_READ_QUEUE_IN_VAL",std_logic_range(1));
+    vhdl->set_alias  ("internal_QUEUE_INSERT_ACK     ",std_logic(1),"out_READ_QUEUE_IN_ACK",std_logic_range(1));
+    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_RETIRE_VAL     ",1);
+    vhdl->set_signal ("internal_QUEUE_RETIRE_ACK     ",1);
+    
+    uint32_t min = 0;
+    uint32_t max, size;
+    
+    if(_param->_have_port_context_id   )
+      {
+	size = _param->_size_context_id;
+	max = min-1+size;
+	vhdl->set_alias ("internal_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_front_end_id   )
+      {
+	size = _param->_size_front_end_id;
+	max = min-1+size;
+	vhdl->set_alias ("internal_FRONT_END_ID         ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+	min = max+1;
+      }
+    if(_param->_have_port_ooo_engine_id   )
+      {
+	size = _param->_size_ooo_engine_id;
+	max = min-1+size;
+	vhdl->set_alias ("internal_OOO_ENGINE_ID        ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+	min = max+1;
+      }
+    if(_param->_have_port_rob_id   )
+      {
+	size = _param->_size_rob_id;
+	max = min-1+size;
+	vhdl->set_alias ("internal_ROB_ID               ",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_OPERATION            ",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_TYPE                 ",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_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_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_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;
+    max = min-1+size;
+    vhdl->set_alias ("internal_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_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;
+    max = min-1+size;
+    vhdl->set_alias ("internal_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_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;
+    max = min-1+size;
+    vhdl->set_alias ("internal_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_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;
+    max = min-1+size;
+    vhdl->set_alias ("internal_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_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;
+    max = min-1+size;
+    vhdl->set_alias ("internal_NUM_REG_RE           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
+    min = max+1;
+
+
     log_printf(FUNC,Read_queue,"vhdl_declaration","End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/mkf.info	(revision 66)
+++ 	(revision )
@@ -1,81 +1,0 @@
-
-# Register_unit_Glue_0
-target_dep	all	Register_unit_Glue_0.ngc
-target_dep	Register_unit_Glue_0.ngc	Register_unit_Glue_0.prj
-target_dep	Register_unit_Glue_0.prj	Register_unit_Glue_0.vhdl Register_unit_Glue_0_Pack.vhdl
-
-# Register_unit_Glue_1
-target_dep	all	Register_unit_Glue_1.ngc
-target_dep	Register_unit_Glue_1.ngc	Register_unit_Glue_1.prj
-target_dep	Register_unit_Glue_1.prj	Register_unit_Glue_1.vhdl Register_unit_Glue_10.vhdl Register_unit_Glue_10_Pack.vhdl Register_unit_Glue_11.vhdl Register_unit_Glue_11_Pack.vhdl Register_unit_Glue_12.vhdl Register_unit_Glue_12_Pack.vhdl Register_unit_Glue_13.vhdl Register_unit_Glue_13_Pack.vhdl Register_unit_Glue_14.vhdl Register_unit_Glue_14_Pack.vhdl Register_unit_Glue_15.vhdl Register_unit_Glue_15_Pack.vhdl Register_unit_Glue_1_Pack.vhdl
-
-# Register_unit_Glue_10
-target_dep	all	Register_unit_Glue_10.ngc
-target_dep	Register_unit_Glue_10.ngc	Register_unit_Glue_10.prj
-target_dep	Register_unit_Glue_10.prj	Register_unit_Glue_10.vhdl Register_unit_Glue_10_Pack.vhdl
-
-# Register_unit_Glue_11
-target_dep	all	Register_unit_Glue_11.ngc
-target_dep	Register_unit_Glue_11.ngc	Register_unit_Glue_11.prj
-target_dep	Register_unit_Glue_11.prj	Register_unit_Glue_11.vhdl Register_unit_Glue_11_Pack.vhdl
-
-# Register_unit_Glue_12
-target_dep	all	Register_unit_Glue_12.ngc
-target_dep	Register_unit_Glue_12.ngc	Register_unit_Glue_12.prj
-target_dep	Register_unit_Glue_12.prj	Register_unit_Glue_12.vhdl Register_unit_Glue_12_Pack.vhdl
-
-# Register_unit_Glue_13
-target_dep	all	Register_unit_Glue_13.ngc
-target_dep	Register_unit_Glue_13.ngc	Register_unit_Glue_13.prj
-target_dep	Register_unit_Glue_13.prj	Register_unit_Glue_13.vhdl Register_unit_Glue_13_Pack.vhdl
-
-# Register_unit_Glue_14
-target_dep	all	Register_unit_Glue_14.ngc
-target_dep	Register_unit_Glue_14.ngc	Register_unit_Glue_14.prj
-target_dep	Register_unit_Glue_14.prj	Register_unit_Glue_14.vhdl Register_unit_Glue_14_Pack.vhdl
-
-# Register_unit_Glue_15
-target_dep	all	Register_unit_Glue_15.ngc
-target_dep	Register_unit_Glue_15.ngc	Register_unit_Glue_15.prj
-target_dep	Register_unit_Glue_15.prj	Register_unit_Glue_15.vhdl Register_unit_Glue_15_Pack.vhdl
-
-# Register_unit_Glue_2
-target_dep	all	Register_unit_Glue_2.ngc
-target_dep	Register_unit_Glue_2.ngc	Register_unit_Glue_2.prj
-target_dep	Register_unit_Glue_2.prj	Register_unit_Glue_2.vhdl Register_unit_Glue_2_Pack.vhdl
-
-# Register_unit_Glue_3
-target_dep	all	Register_unit_Glue_3.ngc
-target_dep	Register_unit_Glue_3.ngc	Register_unit_Glue_3.prj
-target_dep	Register_unit_Glue_3.prj	Register_unit_Glue_3.vhdl Register_unit_Glue_3_Pack.vhdl
-
-# Register_unit_Glue_4
-target_dep	all	Register_unit_Glue_4.ngc
-target_dep	Register_unit_Glue_4.ngc	Register_unit_Glue_4.prj
-target_dep	Register_unit_Glue_4.prj	Register_unit_Glue_4.vhdl Register_unit_Glue_4_Pack.vhdl
-
-# Register_unit_Glue_5
-target_dep	all	Register_unit_Glue_5.ngc
-target_dep	Register_unit_Glue_5.ngc	Register_unit_Glue_5.prj
-target_dep	Register_unit_Glue_5.prj	Register_unit_Glue_5.vhdl Register_unit_Glue_5_Pack.vhdl
-
-# Register_unit_Glue_6
-target_dep	all	Register_unit_Glue_6.ngc
-target_dep	Register_unit_Glue_6.ngc	Register_unit_Glue_6.prj
-target_dep	Register_unit_Glue_6.prj	Register_unit_Glue_6.vhdl Register_unit_Glue_6_Pack.vhdl
-
-# Register_unit_Glue_7
-target_dep	all	Register_unit_Glue_7.ngc
-target_dep	Register_unit_Glue_7.ngc	Register_unit_Glue_7.prj
-target_dep	Register_unit_Glue_7.prj	Register_unit_Glue_7.vhdl Register_unit_Glue_7_Pack.vhdl
-
-# Register_unit_Glue_8
-target_dep	all	Register_unit_Glue_8.ngc
-target_dep	Register_unit_Glue_8.ngc	Register_unit_Glue_8.prj
-target_dep	Register_unit_Glue_8.prj	Register_unit_Glue_8.vhdl Register_unit_Glue_8_Pack.vhdl
-
-# Register_unit_Glue_9
-target_dep	all	Register_unit_Glue_9.ngc
-target_dep	Register_unit_Glue_9.ngc	Register_unit_Glue_9.prj
-target_dep	Register_unit_Glue_9.prj	Register_unit_Glue_9.vhdl Register_unit_Glue_9_Pack.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/mkf.info	(revision 66)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-# Meta_Predictor_0
-target_dep	all	Meta_Predictor_0.ngc
-target_dep	Meta_Predictor_0.ngc	Meta_Predictor_0.prj
-target_dep	Meta_Predictor_0.prj	Meta_Predictor_0_Meta_Predictor_Glue_Pack.vhdl Meta_Predictor_0_Meta_Predictor_Glue.vhdl Meta_Predictor_0_Pack.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pack.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pattern_History_Table_Counter_Pack.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pattern_History_Table_Counter.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pattern_History_Table_Pack.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pattern_History_Table_RegisterFile_Pack.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pattern_History_Table_RegisterFile.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Pattern_History_Table.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Two_Level_Branch_Predictor_Glue_Pack.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2_Two_Level_Branch_Predictor_Glue.vhdl Meta_Predictor_0_Two_Level_Branch_Predictor_2.vhdl Meta_Predictor_0.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/mkf.info	(revision 66)
+++ 	(revision )
@@ -1,6 +1,0 @@
-
-# Pattern_History_Table_0
-target_dep	all	Pattern_History_Table_0.ngc
-target_dep	Pattern_History_Table_0.ngc	Pattern_History_Table_0.prj
-target_dep	Pattern_History_Table_0.prj	Pattern_History_Table_0_Counter_Pack.vhdl Pattern_History_Table_0_Counter.vhdl Pattern_History_Table_0_Pack.vhdl Pattern_History_Table_0_RegisterFile_Pack.vhdl Pattern_History_Table_0_RegisterFile.vhdl Pattern_History_Table_0.vhdl
-
