Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod.cpp	(revision 136)
@@ -94,20 +94,23 @@
 	  {
 	    for (uint32_t j=0; j<_param->_nb_inst_fetch [i]; j++)
-	      sensitive << (*(in_IFETCH_VAL         [i][j]))
-			<< (*(in_IFETCH_INSTRUCTION [i][j]));
-	    sensitive << (*(in_IFETCH_ADDRESS                     [i]))
-// 		      << (*(in_IFETCH_ADDRESS_NEXT                [i]))
-		      << (*(in_IFETCH_BRANCH_STATE                [i]))
-		      << (*(in_IFETCH_EXCEPTION                   [i]))
-		      << (*(in_CONTEXT_DECOD_ENABLE               [i]));
-	    if (_param->_have_port_context_id)
-            sensitive << (*(in_IFETCH_CONTEXT_ID                  [i]));
-	    if (_param->_have_port_depth)
-	    sensitive << (*(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]));
-	    sensitive << (*(in_CONTEXT_DEPTH_VAL                  [i]));
+	      {
+		sensitive << (*(in_IFETCH_VAL                         [i][j]))
+			  << (*(in_IFETCH_INSTRUCTION                 [i][j]))
+			  << (*(in_IFETCH_ADDRESS                     [i][j]))
+// 	                  << (*(in_IFETCH_ADDRESS_NEXT                [i][j]))
+			  << (*(in_IFETCH_BRANCH_STATE                [i][j]))
+			  << (*(in_IFETCH_EXCEPTION                   [i][j]));
+
+		if (_param->_have_port_context_id)
+		sensitive << (*(in_IFETCH_CONTEXT_ID                  [i][j]));
+		if (_param->_have_port_depth)
+		sensitive << (*(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i][j]));
+// 		if (_param->_have_port_inst_ifetch_ptr)
+// 		sensitive << (*(in_IFETCH_INST_IFETCH_PTR             [i][j]));
+	      }
+	    sensitive << (*(in_CONTEXT_DECOD_ENABLE               [i]))
+		      << (*(in_CONTEXT_DEPTH_VAL                  [i]));
 	    if (_param->_have_port_depth)
 	    sensitive << (*(in_CONTEXT_DEPTH                      [i]));
-	    if (_param->_have_port_inst_ifetch_ptr)
-	    sensitive << (*(in_IFETCH_INST_IFETCH_PTR             [i]));
 	  }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp	(revision 136)
@@ -61,23 +61,16 @@
 
       
-      _ALLOC2_VALACK_IN ( in_IFETCH_VAL        ,VAL, _param->_nb_context, _param->_nb_inst_fetch[it1]);
-      _ALLOC2_VALACK_OUT(out_IFETCH_ACK        ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]);
-      _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION,"instruction", Tinstruction_t, _param->_size_instruction,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_VALACK_IN ( in_IFETCH_VAL                       ,VAL, _param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_VALACK_OUT(out_IFETCH_ACK                       ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION               ,"instruction"                ,Tinstruction_t     ,_param->_size_instruction        ,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_SIGNAL_IN (in_IFETCH_CONTEXT_ID                 ,"context_id"                 ,Tcontext_t         ,_param->_size_context_id         ,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_SIGNAL_IN (in_IFETCH_ADDRESS                    ,"address"                    ,Tgeneral_address_t ,_param->_size_instruction_address,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+//    _ALLOC2_SIGNAL_IN (in_IFETCH_ADDRESS_NEXT               ,"address_next"               ,Tgeneral_address_t ,_param->_size_instruction_address,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+//    _ALLOC2_SIGNAL_IN (in_IFETCH_INST_IFETCH_PTR            ,"inst_ifetch_ptr"            ,Tinst_ifetch_ptr_t ,_param->_size_inst_ifetch_ptr    ,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_SIGNAL_IN (in_IFETCH_BRANCH_STATE               ,"branch_state"               ,Tbranch_state_t    ,_param->_size_branch_state       ,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t  ,_param->_size_depth              ,_param->_nb_context, _param->_nb_inst_fetch[it1]);
+      _ALLOC2_SIGNAL_IN (in_IFETCH_EXCEPTION                  ,"exception"                  ,Texception_t       ,_param->_size_exception_ifetch   ,_param->_nb_context, _param->_nb_inst_fetch[it1]);
 
       ALLOC2_INTERFACE_END(_param->_nb_context, _param->_nb_inst_fetch[it1]);
-    }
-    {
-      ALLOC1_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context);
-      
-
-      ALLOC1_SIGNAL_IN (in_IFETCH_CONTEXT_ID                 ,"context_id"                 ,Tcontext_t         ,_param->_size_context_id      );
-      ALLOC1_SIGNAL_IN (in_IFETCH_ADDRESS                    ,"address"                    ,Tgeneral_address_t ,_param->_size_instruction_address    );
-//    ALLOC1_SIGNAL_IN (in_IFETCH_ADDRESS_NEXT               ,"address_next"               ,Tgeneral_address_t ,_param->_size_instruction_address    );
-      ALLOC1_SIGNAL_IN (in_IFETCH_INST_IFETCH_PTR            ,"inst_ifetch_ptr"            ,Tinst_ifetch_ptr_t ,_param->_size_inst_ifetch_ptr );
-      ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_STATE               ,"branch_state"               ,Tbranch_state_t    ,_param->_size_branch_state    );
-      ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t  ,_param->_size_depth           );
-      ALLOC1_SIGNAL_IN (in_IFETCH_EXCEPTION                  ,"exception"                  ,Texception_t       ,_param->_size_exception_ifetch);
-
-      ALLOC1_INTERFACE_END(_param->_nb_context);
     }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp	(revision 136)
@@ -29,15 +29,14 @@
 	delete    in_NRESET;
       
-        DELETE2_SIGNAL( in_IFETCH_VAL        , _param->_nb_context, _param->_nb_inst_fetch[it1],1);
-        DELETE2_SIGNAL(out_IFETCH_ACK        , _param->_nb_context, _param->_nb_inst_fetch[it1],1);
-        DELETE2_SIGNAL( in_IFETCH_INSTRUCTION, _param->_nb_context, _param->_nb_inst_fetch[it1],_param->_size_instruction);
-      
-        DELETE1_SIGNAL(in_IFETCH_CONTEXT_ID                 , _param->_nb_context,_param->_size_context_id      );
-        DELETE1_SIGNAL(in_IFETCH_ADDRESS                    , _param->_nb_context,_param->_size_instruction_address    );
-//      DELETE1_SIGNAL(in_IFETCH_ADDRESS_NEXT               , _param->_nb_context,_param->_size_instruction_address    );
-        DELETE1_SIGNAL(in_IFETCH_INST_IFETCH_PTR            , _param->_nb_context,_param->_size_inst_ifetch_ptr );
-        DELETE1_SIGNAL(in_IFETCH_BRANCH_STATE               , _param->_nb_context,_param->_size_branch_state    );
-        DELETE1_SIGNAL(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID, _param->_nb_context,_param->_size_depth           );
-        DELETE1_SIGNAL(in_IFETCH_EXCEPTION                  , _param->_nb_context,_param->_size_exception_ifetch);
+        DELETE2_SIGNAL( in_IFETCH_VAL                        ,_param->_nb_context,_param->_nb_inst_fetch[it1],1);
+        DELETE2_SIGNAL(out_IFETCH_ACK                        ,_param->_nb_context,_param->_nb_inst_fetch[it1],1);
+        DELETE2_SIGNAL( in_IFETCH_INSTRUCTION                ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_instruction);
+        DELETE2_SIGNAL( in_IFETCH_CONTEXT_ID                 ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_context_id      );
+        DELETE2_SIGNAL( in_IFETCH_ADDRESS                    ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_instruction_address    );
+//      DELETE2_SIGNAL( in_IFETCH_ADDRESS_NEXT               ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_instruction_address    );
+//      DELETE2_SIGNAL( in_IFETCH_INST_IFETCH_PTR            ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_inst_ifetch_ptr );
+        DELETE2_SIGNAL( in_IFETCH_BRANCH_STATE               ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_branch_state    );
+        DELETE2_SIGNAL( in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_depth           );
+        DELETE2_SIGNAL( in_IFETCH_EXCEPTION                  ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_exception_ifetch);
 
         DELETE1_SIGNAL(out_DECOD_VAL          ,_param->_nb_inst_decod,1);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp	(revision 135)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp	(revision 136)
@@ -99,5 +99,5 @@
 		ifetch_ack [x][y] = PORT_READ(in_DECOD_ACK [i]); // fetch_val and decod_enable and decod_ack
 
-		Tgeneral_data_t addr = PORT_READ(in_IFETCH_ADDRESS [x])+y;
+		Tgeneral_data_t addr = PORT_READ(in_IFETCH_ADDRESS [x][y]);
 
 		_decod_instruction->_instruction        = PORT_READ(in_IFETCH_INSTRUCTION [x][y]);
@@ -132,5 +132,5 @@
 
                 // Test IFetch exception
-                Texception_t ifetch_exception = PORT_READ(in_IFETCH_EXCEPTION [x]);
+                Texception_t ifetch_exception = PORT_READ(in_IFETCH_EXCEPTION [x][y]);
 
                 if (ifetch_exception == EXCEPTION_IFETCH_NONE)
@@ -232,10 +232,13 @@
                   }
 
+		Tbranch_state_t ifetch_branch_state = PORT_READ(in_IFETCH_BRANCH_STATE [x][y]);
 		if (_param->_have_port_context_id)
 		PORT_WRITE(out_PREDICT_CONTEXT_ID                  [i],x);
-		PORT_WRITE(out_PREDICT_MATCH_INST_IFETCH_PTR       [i],y == ((_param->_have_port_inst_ifetch_ptr)?PORT_READ(in_IFETCH_INST_IFETCH_PTR [x]):0));
-		PORT_WRITE(out_PREDICT_BRANCH_STATE                [i],PORT_READ(in_IFETCH_BRANCH_STATE                [x]));
+//		PORT_WRITE(out_PREDICT_MATCH_INST_IFETCH_PTR       [i],y == ((_param->_have_port_inst_ifetch_ptr)?PORT_READ(in_IFETCH_INST_IFETCH_PTR [x]):0));
+		PORT_WRITE(out_PREDICT_MATCH_INST_IFETCH_PTR       [i],ifetch_branch_state != BRANCH_STATE_NONE);
+
+		PORT_WRITE(out_PREDICT_BRANCH_STATE                [i],ifetch_branch_state);
 		if (_param->_have_port_depth)
-                PORT_WRITE(out_PREDICT_BRANCH_UPDATE_PREDICTION_ID [i],PORT_READ(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [x]));
+                PORT_WRITE(out_PREDICT_BRANCH_UPDATE_PREDICTION_ID [i],PORT_READ(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [x][y]));
 		PORT_WRITE(out_PREDICT_BRANCH_CONDITION            [i],_decod_instruction->_branch_condition  );
 // 		PORT_WRITE(out_PREDICT_BRANCH_STACK_WRITE          [i],_decod_instruction->_branch_stack_write);
