Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp	(revision 123)
@@ -40,9 +40,9 @@
 
 
-#if DEBUG_Direction_Glue == true
-    log_printf(INFO,Direction_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
-
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Direction_Glue == true
+//     log_printf(INFO,Direction_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+//     std::cout << *param << std::endl;
+// #endif    
 
     log_printf(INFO,Direction_Glue,FUNCTION,"Allocation");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_predict.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_predict.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_predict.cpp	(revision 123)
@@ -26,4 +26,13 @@
     log_function(Direction_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
+//         std::cout << "Kane (before) " << std::endl;
+//         std::cout << _param << std::endl;
+//         std::cout << _param->_nb_inst_update << std::endl;
+//         std::cout << _param->_nb_inst_predict<< std::endl;
+//         std::cout << "Kane (end) " << std::endl;
+
+
     // constant direction : never / always 
     for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
@@ -31,5 +40,5 @@
         log_printf(TRACE,Direction_Glue,FUNCTION,"  * PREDICT [%d]",i);
 
-        Tcontrol_t direction;
+        Tcontrol_t direction = false;
 
         switch (_param->_predictor_scheme)
@@ -86,4 +95,17 @@
         PORT_WRITE(out_PREDICT_DIRECTION   [i], direction);
       }
+      }
+    else
+      {
+        //RESET
+        for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
+          {
+            if (_param->_have_component_meta_predictor)
+              {
+            PORT_WRITE(out_PREDICT_PREDICTOR_VAL [i], 0);
+            PORT_WRITE(out_PREDICT_ACK           [i], 0);
+              }
+          }
+      }
 
     log_end(Direction_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_update.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_update.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_update.cpp	(revision 123)
@@ -26,4 +26,6 @@
     log_function(Direction_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_inst_update; i++)
       {
@@ -35,5 +37,15 @@
 	PORT_WRITE(out_UPDATE_PREDICTOR_PREDICTION_IFETCH [i], PORT_READ(in_UPDATE_PREDICTION_IFETCH [i]));
       }
-    
+      }
+    else
+      {
+        // RESET
+        for (uint32_t i=0; i<_param->_nb_inst_update; i++)
+          {
+            PORT_WRITE(out_UPDATE_PREDICTOR_VAL [i], 0);
+            PORT_WRITE(out_UPDATE_ACK           [i], 0);
+          }
+      }
+
     log_end(Direction_Glue,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_predict.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_predict.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_predict.cpp	(revision 123)
@@ -27,4 +27,6 @@
     log_function(Meta_Predictor_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
       {
@@ -89,4 +91,8 @@
         PORT_WRITE(out_PREDICT_DIRECTION [i],direction);
       }
+      }
+//     else
+//       {
+//       }
 
     log_end(Meta_Predictor_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_predict_valack.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_predict_valack.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_predict_valack.cpp	(revision 123)
@@ -27,4 +27,6 @@
     log_function(Meta_Predictor_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
       {
@@ -40,4 +42,15 @@
 
         PORT_WRITE(out_PREDICT_ACK [i],ack);
+      }
+      }
+    else
+      {
+        // Reset
+        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
+          {
+            for (uint32_t j=0; j<_param->_nb_predictor; ++j)
+              PORT_WRITE(out_PREDICT_PREDICTOR_VAL [j][i],0);
+            PORT_WRITE(out_PREDICT_ACK [i],0);
+          }
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_update.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_update.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_update.cpp	(revision 123)
@@ -27,4 +27,6 @@
     log_function(Meta_Predictor_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
       {
@@ -112,4 +114,9 @@
           }
       }
+      }
+//     else
+//       {
+//         // RESET
+//       }
 
     log_end(Meta_Predictor_Glue,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_update_valack.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_update_valack.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue_genMealy_update_valack.cpp	(revision 123)
@@ -27,4 +27,6 @@
     log_function(Meta_Predictor_Glue,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
       {
@@ -40,4 +42,15 @@
 
         PORT_WRITE(out_UPDATE_ACK [i],ack);
+      }
+      }
+    else
+      {
+        // RESET
+        for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
+          {
+            for (uint32_t j=0; j<_param->_nb_predictor; ++j)
+              PORT_WRITE(out_UPDATE_PREDICTOR_VAL [j][i],0);
+            PORT_WRITE(out_UPDATE_ACK [i],0);
+          }
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_genMealy_predict.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_genMealy_predict.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_genMealy_predict.cpp	(revision 123)
@@ -29,4 +29,6 @@
     log_function(Two_Level_Branch_Predictor,FUNCTION,_name.c_str());
 
+    if (PORT_READ(in_NRESET))
+      {
     // ===================================================================
     // =====[ PREDICT ]===================================================
@@ -95,4 +97,5 @@
           PORT_WRITE(out_PREDICT_HISTORY   [i],history  );
         }
+      }
 
     log_end(Two_Level_Branch_Predictor,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/src/Direction.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/src/Direction.cpp	(revision 119)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/src/Direction.cpp	(revision 123)
@@ -38,9 +38,9 @@
     log_printf(FUNC,Direction,FUNCTION,"Begin");
 
-#if DEBUG_Direction == true
-    log_printf(INFO,Direction,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Direction == true
+//     log_printf(INFO,Direction,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif
+//     std::cout << *param << std::endl;
+// #endif
 
     log_printf(INFO,Direction,FUNCTION,"Allocation");
