Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/src/Meta_Predictor_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/src/Meta_Predictor_allocation.cpp	(revision 111)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/src/Meta_Predictor_allocation.cpp	(revision 112)
@@ -58,5 +58,5 @@
     // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC1_INTERFACE("predict",IN,WEST,_("Predict direction interface"),_param->_nb_inst_predict);
+      ALLOC1_INTERFACE_BEGIN("predict",IN,WEST,_("Predict direction interface"),_param->_nb_inst_predict);
 
       ALLOC1_VALACK_IN ( in_PREDICT_VAL          ,VAL);
@@ -65,9 +65,11 @@
       ALLOC1_SIGNAL_OUT(out_PREDICT_DIRECTION    ,"DIRECTION"    ,Tcontrol_t,1                    );
       ALLOC1_SIGNAL_OUT(out_PREDICT_HISTORY      ,"HISTORY"      ,Thistory_t,_param->_size_history);
+
+      ALLOC1_INTERFACE_END(_param->_nb_inst_predict);
     }
 
     // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      ALLOC1_INTERFACE("update",IN,WEST,_("Update direction interface"),_param->_nb_inst_update);
+      ALLOC1_INTERFACE_BEGIN("update",IN,WEST,_("Update direction interface"),_param->_nb_inst_update);
 
       ALLOC1_VALACK_IN ( in_UPDATE_VAL           ,VAL);
@@ -75,5 +77,8 @@
       ALLOC1_SIGNAL_IN ( in_UPDATE_ADDRESS       ,"ADDRESS"      ,Taddress_t,_param->_size_address);
       ALLOC1_SIGNAL_IN ( in_UPDATE_HISTORY       ,"HISTORY"      ,Thistory_t,_param->_size_history);
+      ALLOC1_SIGNAL_IN ( in_UPDATE_HISTORY_VAL   ,"HISTORY_VAL"  ,Tcontrol_t,1                    );
       ALLOC1_SIGNAL_IN ( in_UPDATE_DIRECTION     ,"DIRECTION"    ,Tcontrol_t,1                    );
+
+      ALLOC1_INTERFACE_END(_param->_nb_inst_update);
     }
     
@@ -218,4 +223,6 @@
           COMPONENT_MAP(_component,src , "in_UPDATE_"                          +toString(j)+"_HISTORY"      ,
                                    dest,"out_UPDATE_PREDICTOR_"+toString(i)+"_"+toString(j)+"_HISTORY"      );
+          COMPONENT_MAP(_component,src , "in_UPDATE_"                          +toString(j)+"_HISTORY_VAL"  ,
+                                   dest,"out_UPDATE_PREDICTOR_"+toString(i)+"_"+toString(j)+"_HISTORY_VAL"  );
           if (_param->_predictor_update_on_prediction [i])
           COMPONENT_MAP(_component,src , "in_UPDATE_"                          +toString(j)+"_MISS"         ,
@@ -286,19 +293,22 @@
 #endif
 
-          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_VAL"      ,
-                              dest, "in_UPDATE_"+toString(i)+"_VAL"      );
-          PORT_MAP(_component,src ,"out_UPDATE_"+toString(i)+"_ACK"      ,
-                              dest,"out_UPDATE_"+toString(i)+"_ACK"      );
-          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_HISTORY"  ,
-                              dest, "in_UPDATE_"+toString(i)+"_HISTORY"  );
-          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_DIRECTION",
-                              dest, "in_UPDATE_"+toString(i)+"_DIRECTION");
-        }
-      
-      //  out_UPDATE_PREDICTOR_VAL       -> two_level_branch_predictor. in_UPDATE_PREDICTOR_VAL      
-      //   in_UPDATE_PREDICTOR_ACK       -> two_level_branch_predictor.out_UPDATE_PREDICTOR_ACK      
-      //  out_UPDATE_PREDICTOR_HISTORY   -> two_level_branch_predictor. in_UPDATE_PREDICTOR_HISTORY  
-      //  out_UPDATE_PREDICTOR_DIRECTION -> two_level_branch_predictor. in_UPDATE_PREDICTOR_DIRECTION
-      //  out_UPDATE_PREDICTOR_MISS      -> two_level_branch_predictor. in_UPDATE_PREDICTOR_MISS     
+          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_VAL"        ,
+                              dest, "in_UPDATE_"+toString(i)+"_VAL"        );
+          PORT_MAP(_component,src ,"out_UPDATE_"+toString(i)+"_ACK"        ,
+                              dest,"out_UPDATE_"+toString(i)+"_ACK"        );
+          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_HISTORY"    ,
+                              dest, "in_UPDATE_"+toString(i)+"_HISTORY"    );
+          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_HISTORY_VAL",
+                              dest, "in_UPDATE_"+toString(i)+"_HISTORY_VAL");
+          PORT_MAP(_component,src , "in_UPDATE_"+toString(i)+"_DIRECTION"  ,
+                              dest, "in_UPDATE_"+toString(i)+"_DIRECTION"  );
+        }
+      
+      //  out_UPDATE_PREDICTOR_VAL        -> two_level_branch_predictor. in_UPDATE_PREDICTOR_VAL      
+      //   in_UPDATE_PREDICTOR_ACK        -> two_level_branch_predictor.out_UPDATE_PREDICTOR_ACK      
+      //  out_UPDATE_PREDICTOR_HISTORY    -> two_level_branch_predictor. in_UPDATE_PREDICTOR_HISTORY  
+      //  out_UPDATE_PREDICTOR_HISTORY_VAL-> two_level_branch_predictor. in_UPDATE_PREDICTOR_HISTORY  
+      //  out_UPDATE_PREDICTOR_DIRECTION  -> two_level_branch_predictor. in_UPDATE_PREDICTOR_DIRECTION
+      //  out_UPDATE_PREDICTOR_MISS       -> two_level_branch_predictor. in_UPDATE_PREDICTOR_MISS     
 
     }
