Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Parameters.h	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Parameters.h	(revision 120)
@@ -34,7 +34,8 @@
   public : uint32_t   _size_history              ;
   public : uint32_t * _size_ras_index            ; // [nb_context]
-  public : const bool _not_accurate_block_predict;
   public : uint32_t   _nb_thread                          ;
   public : uint32_t * _translate_num_context_to_num_thread;//[nb_context]                    
+  public : const bool _accurate_block_predict    ;
+  public : const bool _accurate_block_decod      ;
 
 //public : uint32_t   _size_context_id           ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Parameters.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Parameters.cpp	(revision 120)
@@ -34,5 +34,6 @@
                           uint32_t * translate_num_context_to_num_thread ,//[nb_context]
                           bool       is_toplevel):
-    _not_accurate_block_predict (false)
+    _accurate_block_predict (false),
+    _accurate_block_decod   (false)
   {
     log_printf(FUNC,Update_Prediction_Table,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_allocation.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_allocation.cpp	(revision 120)
@@ -8,4 +8,5 @@
 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
 #include "Behavioural/include/Allocation.h"
+#include "Common/include/Filename.h"
 
 namespace morpheo                    {
@@ -250,5 +251,11 @@
       if (_param->_have_thread [i])
         {
-          std::string filename = MORPHEO_LOG+"/"+toString(getpid())+"-Branchement_prediction-thread_"+toString(i)+".log";
+          std::string filename = morpheo::filename(MORPHEO_LOG,
+                                                   "Branchement_prediction-thread_"+toString(i),
+                                                   "",
+                                                   "log",
+                                                   false,
+                                                   log_with_pid,
+                                                   false);
           
           branchement_log_file [i] .open(filename.c_str() ,std::ios::out | std::ios::trunc);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_decod.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_decod.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_decod.cpp	(revision 120)
@@ -33,5 +33,5 @@
 
         Tcontext_t    context     = (_param->_have_port_context_id)?PORT_READ(in_DECOD_CONTEXT_ID [i]):0;
-        bool          is_accurate = reg_IS_ACCURATE [context];
+        bool          is_accurate = _param->_accurate_block_decod or reg_IS_ACCURATE [context];
         event_state_t event_state = reg_EVENT_STATE [context];
         uint32_t      ptr_write   = reg_UPT_TOP     [context];
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_predict.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_predict.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_genMealy_predict.cpp	(revision 120)
@@ -45,5 +45,5 @@
         PORT_WRITE(out_PREDICT_UPDATE_PREDICTION_ID [i], internal_PREDICT_UPDATE_PREDICTION_ID [i]);
 
-        bool is_accurate = not _param->_not_accurate_block_predict or reg_IS_ACCURATE[context];
+        bool is_accurate = _param->_accurate_block_predict or reg_IS_ACCURATE[context];
 
         // Ack if :
@@ -52,6 +52,6 @@
         //  * is_accurate
 	internal_PREDICT_ACK [i] = ((reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._state == UPDATE_FETCH_PREDICTION_STATE_EMPTY) and
-// 				    PORT_READ(in_PREDICT_BTB_IS_ACCURATE [i]) and
- 				    (reg_EVENT_STATE [context] == EVENT_STATE_OK) and
+   				    (reg_EVENT_STATE [context] == EVENT_STATE_OK) and
+//                                  (reg_UFPT_NB_UPDATE [context] == 0) and
                                     is_accurate);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp	(revision 120)
@@ -203,11 +203,11 @@
  	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._state        = UPDATE_FETCH_PREDICTION_STATE_WAIT_DECOD;
 
-              Tbranch_condition_t condition = PORT_READ(in_PREDICT_BTB_CONDITION [i]);
-
+              Tbranch_condition_t condition   = PORT_READ(in_PREDICT_BTB_CONDITION [i]);
+              bool                is_accurate = _param->_accurate_block_predict or PORT_READ(in_PREDICT_BTB_IS_ACCURATE [i]);
 	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._condition    = condition;
 	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._address_src  = PORT_READ(in_PREDICT_BTB_ADDRESS_SRC  [i]);
 	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._address_dest = PORT_READ(in_PREDICT_BTB_ADDRESS_DEST [i]);
 	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._last_take    = PORT_READ(in_PREDICT_BTB_LAST_TAKE    [i]);
-	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._is_accurate  = PORT_READ(in_PREDICT_BTB_IS_ACCURATE  [i]);
+	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._is_accurate  = is_accurate;
 	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._history      = (_param->_have_port_history)?PORT_READ(in_PREDICT_DIR_HISTORY [i]):0;
 	      reg_UPDATE_FETCH_PREDICTION_TABLE [context][top]._address_ras  = PORT_READ(in_PREDICT_RAS_ADDRESS      [i]);
@@ -263,5 +263,5 @@
                   // Have a miss !!!
                   condition   = PORT_READ(in_DECOD_BTB_CONDITION [i]);
-                  is_accurate = PORT_READ(in_DECOD_IS_ACCURATE   [i]);
+                  is_accurate = _param->_accurate_block_decod or PORT_READ(in_DECOD_IS_ACCURATE   [i]);
 
                   // if can_continue else don't wait the end of all instruction
