Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h	(revision 131)
@@ -209,4 +209,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State.cpp	(revision 131)
@@ -75,25 +75,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Constant 
-	for (uint32_t i=0; i<_param->_nb_context; i++)
-	  {
-	    internal_BRANCH_EVENT_ACK [i] = 1;
-	    PORT_WRITE(out_BRANCH_EVENT_ACK [i], internal_BRANCH_EVENT_ACK [i]);
-	  }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Context_State,FUNCTION,_("Method - constant"));
 
-// 	for (uint32_t i=0; i<_param->_nb_decod_unit; i++)
-// 	  {
-// 	    internal_DECOD_EVENT_ACK [i] = 1;
-// 	    PORT_WRITE(out_DECOD_EVENT_ACK [i], internal_DECOD_EVENT_ACK [i]);
-// 	  }
-
-        internal_COMMIT_EVENT_ACK = 1;
-        PORT_WRITE(out_COMMIT_EVENT_ACK, internal_COMMIT_EVENT_ACK);
-
-	for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
-	  {
-	    internal_BRANCH_COMPLETE_ACK [i] = 1;
-	    PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
-	  }
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Context_State,FUNCTION,_("Method - transition"));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_constant.cpp	(revision 131)
@@ -0,0 +1,56 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace context_state {
+
+#undef  FUNCTION
+#define FUNCTION "Context_State::constant"
+  void Context_State::constant (void)
+  {
+    log_begin(Context_State,FUNCTION);
+    log_function(Context_State,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_context; i++)
+      {
+        internal_BRANCH_EVENT_ACK [i] = 1;
+        PORT_WRITE(out_BRANCH_EVENT_ACK [i], internal_BRANCH_EVENT_ACK [i]);
+      }
+    
+//  for (uint32_t i=0; i<_param->_nb_decod_unit; i++)
+//    {
+//      internal_DECOD_EVENT_ACK [i] = 1;
+//      PORT_WRITE(out_DECOD_EVENT_ACK [i], internal_DECOD_EVENT_ACK [i]);
+//    }
+
+    internal_COMMIT_EVENT_ACK = 1;
+    PORT_WRITE(out_COMMIT_EVENT_ACK, internal_COMMIT_EVENT_ACK);
+    
+    for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
+      {
+        internal_BRANCH_COMPLETE_ACK [i] = 1;
+        PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
+      }
+    
+    log_end(Context_State,FUNCTION);
+  };
+
+}; // end namespace context_state
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h	(revision 131)
@@ -180,4 +180,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
 //public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp	(revision 131)
@@ -75,10 +75,17 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-        // Constant
-        if (_param->_have_port_context_id)
-          for (uint32_t i=0; i<_param->_nb_decod_unit; ++i)
-            for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j)
-              PORT_WRITE(out_IFETCH_DECOD_UNIT_CONTEXT_ID [i][j],j);
-        
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Front_end_Glue,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
+
 	log_printf(INFO,Front_end_Glue,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_constant.cpp	(revision 131)
@@ -0,0 +1,40 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace front_end_glue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Front_end_Glue::constant"
+  void Front_end_Glue::constant (void)
+  {
+    log_begin(Front_end_Glue,FUNCTION);
+    
+    if (_param->_have_port_context_id)
+      for (uint32_t i=0; i<_param->_nb_decod_unit; ++i)
+        for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j)
+          PORT_WRITE(out_IFETCH_DECOD_UNIT_CONTEXT_ID [i][j],j);
+        
+    log_end(Front_end_Glue,FUNCTION);
+  };
+
+}; // end namespace front_end_glue
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp	(revision 131)
@@ -23,4 +23,6 @@
   morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
 #endif
+
+  _model.set_model(MODEL_SYSTEMC, true);
 
   Tusage_t _usage = USE_ALL;
@@ -180,4 +182,5 @@
   TEST(Tcontrol_t, out_EVENT_ACK->read()  , true ); // can receveive an event
 
+#ifdef SELFTEST
   uint32_t        jump      = 7 ;// packet
   uint32_t        nb_packet = 1;
@@ -412,6 +415,8 @@
 
       SC_START(1);
-      
     }
+#else
+  SC_START(100);
+#endif // SELFTEST
 
   /********************************************************
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h	(revision 131)
@@ -167,4 +167,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management.cpp	(revision 131)
@@ -74,7 +74,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Affect output constant
-	internal_EVENT_ACK = 1;
-	PORT_WRITE(out_EVENT_ACK, internal_EVENT_ACK);
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Address_management,FUNCTION,"Method - constant");
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Address_management,FUNCTION,"Method - transition");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management_constant.cpp	(revision 131)
@@ -0,0 +1,41 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace ifetch_unit {
+namespace address_management {
+
+
+#undef  FUNCTION
+#define FUNCTION "Address_management::constant"
+  void Address_management::constant (void)
+  {
+    log_begin(Address_management,FUNCTION);
+    log_function(Address_management,FUNCTION,_name.c_str());
+
+    internal_EVENT_ACK = 1;
+    PORT_WRITE(out_EVENT_ACK, internal_EVENT_ACK);
+    
+    log_end(Address_management,FUNCTION);
+  };
+
+}; // end namespace address_management
+}; // end namespace ifetch_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp	(revision 131)
@@ -107,5 +107,5 @@
   ALLOC0_SC_SIGNAL(out_DECOD_BRANCH_STATE                 ,"out_DECOD_BRANCH_STATE                 ",Tbranch_state_t      );
   ALLOC0_SC_SIGNAL(out_DECOD_BRANCH_UPDATE_PREDICTION_ID  ,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID  ",Tprediction_ptr_t    );
-  ALLOC0_SC_SIGNAL(out_DECOD_EXCEPTION                    ,"out_DECOD_EXCEPTION                    ",Tprediction_ptr_t    );
+  ALLOC0_SC_SIGNAL(out_DECOD_EXCEPTION                    ,"out_DECOD_EXCEPTION                    ",Texception_t         );
   ALLOC0_SC_SIGNAL( in_ICACHE_RSP_VAL                     ," in_ICACHE_RSP_VAL                     ",Tcontrol_t           );
   ALLOC0_SC_SIGNAL(out_ICACHE_RSP_ACK                     ,"out_ICACHE_RSP_ACK                     ",Tcontrol_t           );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/include/Ifetch_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/include/Ifetch_queue.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/include/Ifetch_queue.h	(revision 131)
@@ -145,4 +145,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue.cpp	(revision 131)
@@ -74,10 +74,12 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// constant output
-	internal_ICACHE_RSP_ACK  = 1;
-	internal_EVENT_RESET_ACK = 1;
+	log_printf(INFO,Ifetch_queue,FUNCTION,_("<%s> Method - constant"),_name.c_str());
 
-	PORT_WRITE(out_ICACHE_RSP_ACK , internal_ICACHE_RSP_ACK );
-	PORT_WRITE(out_EVENT_RESET_ACK, internal_EVENT_RESET_ACK);
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
 
 	log_printf(INFO,Ifetch_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_constant.cpp	(revision 131)
@@ -0,0 +1,44 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/include/Ifetch_queue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace ifetch_unit {
+namespace ifetch_queue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Ifetch_queue::constant"
+  void Ifetch_queue::constant (void)
+  {
+    log_begin(Ifetch_queue,FUNCTION);
+    log_function(Ifetch_queue,FUNCTION,_name.c_str());
+
+    internal_ICACHE_RSP_ACK  = 1;
+    internal_EVENT_RESET_ACK = 1;
+    
+    PORT_WRITE(out_ICACHE_RSP_ACK , internal_ICACHE_RSP_ACK );
+    PORT_WRITE(out_EVENT_RESET_ACK, internal_EVENT_RESET_ACK);
+
+    log_end(Ifetch_queue,FUNCTION);
+  };
+
+}; // end namespace ifetch_queue
+}; // end namespace ifetch_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h	(revision 131)
@@ -123,4 +123,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
 # if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void        transition                (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue.cpp	(revision 131)
@@ -74,6 +74,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-        // Write constant
-        PORT_WRITE(out_ICACHE_REQ_TYPE,ICACHE_TYPE_LOAD);
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Ifetch_unit_Glue,FUNCTION,"Method - constant");
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+
+#  ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+#  endif    
+#endif
 
 # if defined(STATISTICS) or defined(VHDL_TESTBENCH)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue_constant.cpp	(revision 131)
@@ -0,0 +1,39 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace ifetch_unit {
+namespace ifetch_unit_glue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Ifetch_unit_Glue::constant"
+  void Ifetch_unit_Glue::constant (void)
+  {
+    log_printf(FUNC,Ifetch_unit_Glue,FUNCTION,"Begin");
+
+    PORT_WRITE(out_ICACHE_REQ_TYPE,ICACHE_TYPE_LOAD);
+
+    log_printf(FUNC,Ifetch_unit_Glue,FUNCTION,"End");
+  };
+
+}; // end namespace ifetch_unit_glue
+}; // end namespace ifetch_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_allocation.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_allocation.cpp	(revision 131)
@@ -156,6 +156,6 @@
     {
       name = _name+"_address_management";
-      log_printf(Ifetch_unit,Core,FUNCTION,_("Create   : %s"),name.c_str());
-      
+      log_printf(INFO,Ifetch_unit,FUNCTION,_("Create   : %s"),name.c_str());
+    
       _component_address_management = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::address_management::Address_management
 	(name.c_str()
@@ -165,5 +165,5 @@
 	 ,_param->_param_address_management
 	 ,_usage);
-      
+
       _component->set_component (_component_address_management->_component
 #ifdef POSITION
@@ -175,6 +175,6 @@
     {
       name = _name+"_ifetch_queue";
-      log_printf(Ifetch_unit,Core,FUNCTION,_("Create   : %s"),name.c_str());
-      
+      log_printf(INFO,Ifetch_unit,FUNCTION,_("Create   : %s"),name.c_str());
+
       _component_ifetch_queue = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_queue::Ifetch_queue
 	(name.c_str()
@@ -184,5 +184,5 @@
 	 ,_param->_param_ifetch_queue
 	 ,_usage);
-      
+
       _component->set_component (_component_ifetch_queue->_component
 #ifdef POSITION
@@ -194,6 +194,6 @@
     {
       name = _name+"_ifetch_unit_glue";
-      log_printf(Ifetch_unit,Core,FUNCTION,_("Create   : %s"),name.c_str());
-      
+      log_printf(INFO,Ifetch_unit,FUNCTION,_("Create   : %s"),name.c_str());
+
       _component_ifetch_unit_glue = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_unit_glue::Ifetch_unit_Glue
 	(name.c_str()
@@ -203,5 +203,5 @@
 	 ,_param->_param_ifetch_unit_glue
 	 ,_usage);
-      
+
       _component->set_component (_component_ifetch_unit_glue->_component
 #ifdef POSITION
@@ -219,5 +219,5 @@
     {
       src = _name+"_address_management";
-      log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str());
+      log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str());
 	   
       {
@@ -337,5 +337,5 @@
     {
       src = _name+"_ifetch_queue";
-      log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str());
+      log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str());
 	   
       {
@@ -459,5 +459,5 @@
     {
       src = _name+"_ifetch_unit_glue";
-      log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str());
+      log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str());
 	   
       {
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h	(revision 131)
@@ -150,4 +150,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMealy_predict          (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp	(revision 131)
@@ -74,19 +74,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Constant
-	for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
-	  {
-	    PORT_WRITE(out_PREDICT_ACK [i],1);
-	  }
-	for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
-	  {
-	    internal_DECOD_ACK [i] = 1;
-	    PORT_WRITE(out_DECOD_ACK [i], internal_DECOD_ACK [i]);
-	  }
-	for (uint32_t i=0; i<_param->_nb_inst_update; i++)
-	  {
-	    internal_UPDATE_ACK [i] = 1;
-	    PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]);
-	  }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Method - constant");
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Method - transition");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register_constant.cpp	(revision 131)
@@ -0,0 +1,54 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace prediction_unit {
+namespace branch_target_buffer {
+namespace branch_target_buffer_register {
+
+#undef  FUNCTION
+#define FUNCTION "Branch_Target_Buffer_Register::constant"
+  void Branch_Target_Buffer_Register::constant (void)
+  {
+    log_begin(Branch_Target_Buffer_Register,FUNCTION);
+    log_function(Branch_Target_Buffer_Register,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
+      {
+        PORT_WRITE(out_PREDICT_ACK [i],1);
+      }
+    for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
+      {
+        internal_DECOD_ACK [i] = 1;
+        PORT_WRITE(out_DECOD_ACK [i], internal_DECOD_ACK [i]);
+      }
+    for (uint32_t i=0; i<_param->_nb_inst_update; i++)
+      {
+        internal_UPDATE_ACK [i] = 1;
+        PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]);
+      }
+    
+    log_end(Branch_Target_Buffer_Register,FUNCTION);
+  };
+
+}; // end namespace branch_target_buffer_register
+}; // end namespace branch_target_buffer
+}; // end namespace prediction_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Direction_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Direction_Glue.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Direction_Glue.h	(revision 131)
@@ -130,4 +130,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
 # if defined(STATISTICS) or defined(VHDL_TESTBENCH)
   public  : void        transition                (void);
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 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp	(revision 131)
@@ -84,12 +84,8 @@
 	    // no need update
 	    need_genmealy_update = false;
-	    for (uint32_t i=0; i<_param->_nb_inst_update; i++)
-	      PORT_WRITE(out_UPDATE_ACK [i], 1);
 
 	    // always ack
 	    for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
 	      {
-		PORT_WRITE(out_PREDICT_ACK [i], 1);
-		
  		// constant direction : never / always 
 		switch (_param->_predictor_scheme)
@@ -98,5 +94,4 @@
 		    {
 		      need_genmealy_predict = false;
-		      PORT_WRITE(out_PREDICT_DIRECTION [i], 0);
 		      break;
 		    }
@@ -104,5 +99,4 @@
 		    {
 		      need_genmealy_predict = false;
-		      PORT_WRITE(out_PREDICT_DIRECTION [i], 1);
 		      break;
 		    }
@@ -111,4 +105,17 @@
 	      }
 	  }
+
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Direction_Glue,FUNCTION,"Method - constant");
+	
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+#  ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+#  endif    
+#endif
 
 # if defined(STATISTICS) or defined(VHDL_TESTBENCH)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_constant.cpp	(revision 131)
@@ -0,0 +1,67 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Direction_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace prediction_unit {
+namespace direction {
+namespace direction_glue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Direction_Glue::constant"
+  void Direction_Glue::constant (void)
+  {
+    log_printf(FUNC,Direction_Glue,FUNCTION,"Begin");
+    
+    if (not _param->_have_component_meta_predictor)
+      {
+        // no need update
+        for (uint32_t i=0; i<_param->_nb_inst_update; i++)
+          PORT_WRITE(out_UPDATE_ACK [i], 1);
+        
+        // always ack
+        for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
+          {
+            PORT_WRITE(out_PREDICT_ACK [i], 1);
+            
+            // constant direction : never / always 
+            switch (_param->_predictor_scheme)
+              {
+              case PREDICTOR_NEVER_TAKE  :
+                {
+                  PORT_WRITE(out_PREDICT_DIRECTION [i], 0);
+                  break;
+                }
+              case PREDICTOR_ALWAYS_TAKE :
+                {
+                  PORT_WRITE(out_PREDICT_DIRECTION [i], 1);
+                  break;
+                }
+              default : break;
+              }
+          }
+      }
+
+    log_printf(FUNC,Direction_Glue,FUNCTION,"End");
+  };
+
+}; // end namespace direction_glue
+}; // end namespace direction
+}; // end namespace prediction_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h	(revision 131)
@@ -129,4 +129,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMealy_predict          (void);
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.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.cpp	(revision 128)
+++ 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.cpp	(revision 131)
@@ -72,16 +72,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-        // Constants :
-        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
-          {
-            internal_PREDICT_ACK [i] = 1;
-            PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]);
-          }
-        for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
-          {
-            internal_UPDATE_ACK [i] = 1;
-            PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]);
-          }
-        
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Two_Level_Branch_Predictor,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Two_Level_Branch_Predictor,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
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_constant.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_constant.cpp	(revision 131)
+++ 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_constant.cpp	(revision 131)
@@ -0,0 +1,53 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace prediction_unit {
+namespace direction {
+namespace meta_predictor {
+namespace two_level_branch_predictor {
+
+
+#undef  FUNCTION
+#define FUNCTION "Two_Level_Branch_Predictor::constant"
+  void Two_Level_Branch_Predictor::constant (void)
+  {
+    log_begin(Two_Level_Branch_Predictor,FUNCTION);
+    log_function(Two_Level_Branch_Predictor,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
+      {
+        internal_PREDICT_ACK [i] = 1;
+        PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]);
+      }
+    for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
+      {
+        internal_UPDATE_ACK [i] = 1;
+        PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]);
+      }
+
+    log_end(Two_Level_Branch_Predictor,FUNCTION);
+  };
+
+}; // end namespace two_level_branch_predictor
+}; // end namespace meta_predictor
+}; // end namespace direction
+}; // end namespace prediction_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h	(revision 131)
@@ -143,4 +143,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMealy_predict          (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp	(revision 131)
@@ -74,20 +74,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-    	for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
-	  {
-	    internal_PREDICT_ACK [i] = 1;
-	    PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]);
-	  }
-    	for (uint32_t i=0; i<_param->_nb_inst_decod  ; i++)
-	  {
-	    internal_DECOD_ACK   [i] = 1;
-	    PORT_WRITE(out_DECOD_ACK   [i], internal_DECOD_ACK   [i]);
-	  }
-    	for (uint32_t i=0; i<_param->_nb_inst_update ; i++)
-	  {
-	    internal_UPDATE_ACK  [i] = 1;
-	    PORT_WRITE(out_UPDATE_ACK  [i], internal_UPDATE_ACK  [i]);
-	  }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Return_Address_Stack,FUNCTION,"Method - constant");
 
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 	log_printf(INFO,Return_Address_Stack,FUNCTION,"Method - transition");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack_constant.cpp	(revision 131)
@@ -0,0 +1,54 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace prediction_unit {
+namespace return_address_stack {
+
+
+#undef  FUNCTION
+#define FUNCTION "Return_Address_Stack::constant"
+  void Return_Address_Stack::constant (void)
+  {
+    log_begin(Return_Address_Stack,FUNCTION);
+    log_function(Return_Address_Stack,FUNCTION,_name.c_str());
+
+    	for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
+	  {
+	    internal_PREDICT_ACK [i] = 1;
+	    PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]);
+	  }
+    	for (uint32_t i=0; i<_param->_nb_inst_decod  ; i++)
+	  {
+	    internal_DECOD_ACK   [i] = 1;
+	    PORT_WRITE(out_DECOD_ACK   [i], internal_DECOD_ACK   [i]);
+	  }
+    	for (uint32_t i=0; i<_param->_nb_inst_update ; i++)
+	  {
+	    internal_UPDATE_ACK  [i] = 1;
+	    PORT_WRITE(out_UPDATE_ACK  [i], internal_UPDATE_ACK  [i]);
+	  }
+
+    log_end(Return_Address_Stack,FUNCTION);
+  };
+
+}; // end namespace return_address_stack
+}; // end namespace prediction_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h	(revision 131)
@@ -254,4 +254,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp	(revision 131)
@@ -76,16 +76,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-        // Constant
-	for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
-	  {
-	    internal_BRANCH_COMPLETE_ACK [i] = 1;
-	    PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
-	  }
-        for (uint32_t i=0; i<_param->_nb_context; ++i)
-          {
-            internal_EVENT_ACK [i] = 1;
-            PORT_WRITE(out_EVENT_ACK [i], internal_EVENT_ACK [i]);
-          }
-
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - constant");
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 	log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - transition");
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_constant.cpp	(revision 131)
@@ -0,0 +1,48 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_front_end {
+namespace front_end {
+namespace prediction_unit {
+namespace update_prediction_table {
+
+#undef  FUNCTION
+#define FUNCTION "Update_Prediction_Table::constant"
+  void Update_Prediction_Table::constant (void)
+  {
+    log_begin(Update_Prediction_Table,FUNCTION);
+    log_function(Update_Prediction_Table,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
+      {
+        internal_BRANCH_COMPLETE_ACK [i] = 1;
+        PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
+      }
+    for (uint32_t i=0; i<_param->_nb_context; ++i)
+      {
+        internal_EVENT_ACK [i] = 1;
+        PORT_WRITE(out_EVENT_ACK [i], internal_EVENT_ACK [i]);
+      }
+
+    log_end(Update_Prediction_Table,FUNCTION);
+  };
+
+}; // end namespace update_prediction_table
+}; // end namespace prediction_unit
+}; // end namespace front_end
+}; // end namespace multi_front_end
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/SelfTest/src/test.cpp	(revision 128)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/SelfTest/src/test.cpp	(revision 131)
@@ -67,4 +67,5 @@
   sc_signal<Toperation_t         >  ** out_DECOD_OPERATION                ;
   sc_signal<Tcontrol_t           >  ** out_DECOD_NO_EXECUTE               ;
+  sc_signal<Tcontrol_t           >  ** out_DECOD_LAST_EVENT               ;
   sc_signal<Tcontrol_t           >  ** out_DECOD_IS_DELAY_SLOT            ;
   sc_signal<Tgeneral_data_t      >  ** out_DECOD_ADDRESS                  ;
@@ -144,4 +145,5 @@
   ALLOC1_SC_SIGNAL(out_DECOD_OPERATION                ,"out_DECOD_OPERATION                ",Toperation_t         ,_param->_sum_inst_decod);
   ALLOC1_SC_SIGNAL(out_DECOD_NO_EXECUTE               ,"out_DECOD_NO_EXECUTE               ",Tcontrol_t           ,_param->_sum_inst_decod);
+  ALLOC1_SC_SIGNAL(out_DECOD_LAST_EVENT               ,"out_DECOD_LAST_EVENT               ",Tcontrol_t           ,_param->_sum_inst_decod);
   ALLOC1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT            ,"out_DECOD_IS_DELAY_SLOT            ",Tcontrol_t           ,_param->_sum_inst_decod);
   ALLOC1_SC_SIGNAL(out_DECOD_ADDRESS                  ,"out_DECOD_ADDRESS                  ",Tgeneral_data_t      ,_param->_sum_inst_decod);
@@ -234,4 +236,5 @@
   INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_OPERATION                ,_param->_sum_inst_decod);
   INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_NO_EXECUTE               ,_param->_sum_inst_decod);
+  INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_LAST_EVENT               ,_param->_sum_inst_decod);
   INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_IS_DELAY_SLOT            ,_param->_sum_inst_decod);
 #ifdef DEBUG
@@ -319,38 +322,38 @@
   LABEL("Initialisation");
 
-  for (uint32_t i=0; i<_param->_nb_context; ++i)
-    {
-      in_ICACHE_REQ_ACK     [i]->write(0);
-      in_ICACHE_RSP_VAL     [i]->write(0);
-      in_EVENT_ACK          [i]->write(0);
-      in_SPR_EVENT_ACK      [i]->write(0);
-      in_NB_INST_COMMIT_ALL [i]->write(0); // no inst
-      in_NB_INST_COMMIT_MEM [i]->write(0); // no inst
-      in_SPR_SR_IEE         [i]->write(0); // interrupt disable
-      in_SPR_SR_EPH         [i]->write(0); // exception msb = 0
-      in_INTERRUPT_ENABLE   [i]->write(0); // no interrupt
-    }
-  for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
-    in_DECOD_ACK [i]->write(0);
-  for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
-    in_BRANCH_COMPLETE_VAL [i]->write(0);
-  in_COMMIT_EVENT_VAL->write(0);
-
-
-  for (uint32_t i=0; i<_param->_nb_context; ++i)
-    {
-      TEST(Tcontrol_t,out_ICACHE_REQ_VAL      [i]->read(),0);
-      TEST(Tcontrol_t,out_ICACHE_RSP_ACK      [i]->read(),1); // Can accept a respons
-      TEST(Tcontrol_t,out_EVENT_VAL           [i]->read(),0); 
-      TEST(Tcontrol_t,out_SPR_EVENT_VAL       [i]->read(),0);
-      TEST(Tdepth_t  ,out_DEPTH_MIN           [i]->read(),0); // no branch speculated
-      TEST(Tdepth_t  ,out_DEPTH_MAX           [i]->read(),0); // no branch speculated
-      TEST(Tdepth_t  ,out_DEPTH_FULL          [i]->read(),0); // no branch speculated
-    }
-  for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
-  TEST(Tcontrol_t,out_DECOD_VAL           [i]->read(),0);
-  for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
-  TEST(Tcontrol_t,out_BRANCH_COMPLETE_ACK [i]->read(),0); // can't accept (interactive)
-  TEST(Tcontrol_t,out_COMMIT_EVENT_ACK       ->read(),1); // can accept
+//   for (uint32_t i=0; i<_param->_nb_context; ++i)
+//     {
+//       in_ICACHE_REQ_ACK     [i]->write(0);
+//       in_ICACHE_RSP_VAL     [i]->write(0);
+//       in_EVENT_ACK          [i]->write(0);
+//       in_SPR_EVENT_ACK      [i]->write(0);
+//       in_NB_INST_COMMIT_ALL [i]->write(0); // no inst
+//       in_NB_INST_COMMIT_MEM [i]->write(0); // no inst
+//       in_SPR_SR_IEE         [i]->write(0); // interrupt disable
+//       in_SPR_SR_EPH         [i]->write(0); // exception msb = 0
+//       in_INTERRUPT_ENABLE   [i]->write(0); // no interrupt
+//     }
+//   for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
+//     in_DECOD_ACK [i]->write(0);
+//   for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
+//     in_BRANCH_COMPLETE_VAL [i]->write(0);
+//   in_COMMIT_EVENT_VAL->write(0);
+
+
+//   for (uint32_t i=0; i<_param->_nb_context; ++i)
+//     {
+//       TEST(Tcontrol_t,out_ICACHE_REQ_VAL      [i]->read(),0);
+//       TEST(Tcontrol_t,out_ICACHE_RSP_ACK      [i]->read(),1); // Can accept a respons
+//       TEST(Tcontrol_t,out_EVENT_VAL           [i]->read(),0); 
+//       TEST(Tcontrol_t,out_SPR_EVENT_VAL       [i]->read(),0);
+//       TEST(Tdepth_t  ,out_DEPTH_MIN           [i]->read(),0); // no branch speculated
+//       TEST(Tdepth_t  ,out_DEPTH_MAX           [i]->read(),0); // no branch speculated
+//       TEST(Tdepth_t  ,out_DEPTH_FULL          [i]->read(),0); // no branch speculated
+//     }
+//   for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
+//   TEST(Tcontrol_t,out_DECOD_VAL           [i]->read(),0);
+//   for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
+//   TEST(Tcontrol_t,out_BRANCH_COMPLETE_ACK [i]->read(),0); // can't accept (interactive)
+//   TEST(Tcontrol_t,out_COMMIT_EVENT_ACK       ->read(),1); // can accept
 
   LABEL("Reset");
@@ -361,5 +364,5 @@
   LABEL("Loop of Test");
 
-  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
+  for (uint32_t iteration=0; iteration< NB_ITERATION; iteration ++)
     {
       LABEL("Iteration %d",iteration);
@@ -399,4 +402,5 @@
   DELETE1_SC_SIGNAL(out_DECOD_OPERATION                ,_param->_sum_inst_decod);
   DELETE1_SC_SIGNAL(out_DECOD_NO_EXECUTE               ,_param->_sum_inst_decod);
+  DELETE1_SC_SIGNAL(out_DECOD_LAST_EVENT               ,_param->_sum_inst_decod);
   DELETE1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT            ,_param->_sum_inst_decod);
   DELETE1_SC_SIGNAL(out_DECOD_ADDRESS                  ,_param->_sum_inst_decod);
