Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/SelfTest/src/test.cpp	(revision 131)
@@ -59,5 +59,17 @@
     cout << "------------------------------------------------------" << endl;
 
-    Instance * instance = new Instance ("../../../Files/Instance_x2_w1_6.cfg",
+    Instance * instance = new Instance ("../../../Files/Instance_x4_w8_1.cfg",
+                                        generator1,
+                                        _get_custom_information
+                                        );
+    instance->toFile("data_out");
+    
+    delete instance;
+  }
+
+  {
+    cout << "------------------------------------------------------" << endl;
+
+    Instance * instance = new Instance ("../../../Files/Instance_x4_w8_2.cfg",
                                         generator1,
                                         _get_custom_information
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Generator_toXML.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Generator_toXML.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Generator_toXML.cpp	(revision 131)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Configuration/include/Generator.h"
+#include "Common/include/Basename.h"
 
 namespace morpheo {
@@ -16,6 +17,6 @@
   XML Generator::toXML (void)
   {
-    XML xml (basename(_filename.c_str()));
-    xml.filename_extension("");
+    XML xml (basename(_filename,false).c_str());
+    xml.filename_extension("gen");
     
     xml.balise_open("parameters");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_toXML.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_toXML.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_toXML.cpp	(revision 131)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Configuration/include/Instance.h"
+#include "Common/include/Basename.h"
 
 namespace morpheo {
@@ -16,6 +17,6 @@
   XML Instance::toXML (void)
   {
-    XML xml (basename(_filename.c_str()));
-    xml.filename_extension("");
+    XML xml (basename(_filename,false).c_str());
+    xml.filename_extension("cfg");
     
     xml.balise_open_begin("core");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Simulator_toXML.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Simulator_toXML.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Simulator_toXML.cpp	(revision 131)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Configuration/include/Simulator.h"
+#include "Common/include/Basename.h"
 
 namespace morpheo {
@@ -16,6 +17,6 @@
   XML Simulator::toXML (void)
   {
-    XML xml (basename(_filename.c_str()));
-    xml.filename_extension("");
+    XML xml (basename(_filename,false).c_str());
+    xml.filename_extension("sim");
     
     xml.balise_open("parameters");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Core_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Core_Glue.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Core_Glue.h	(revision 131)
@@ -247,4 +247,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
 //public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue.cpp	(revision 131)
@@ -73,11 +73,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-        // Constant
-        if (_param->_have_port_front_end_id)
-          for (uint32_t i=0; i<_param->_nb_front_end; ++i)
-            for (uint32_t j=0; j<_param->_nb_inst_decod [i]; ++j)
-              {
-                PORT_WRITE(out_RENAME_FRONT_END_ID [i][j],_param->_translate_num_front_end_to_ooo_engine_front_end_id[i]);
-              }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_constant.cpp	(revision 131)
@@ -0,0 +1,38 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Core_Glue/include/Core_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace core_glue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Core_Glue::constant"
+  void Core_Glue::constant (void)
+  {
+    log_begin(Core_Glue,FUNCTION);
+
+    if (_param->_have_port_front_end_id)
+      for (uint32_t i=0; i<_param->_nb_front_end; ++i)
+        for (uint32_t j=0; j<_param->_nb_inst_decod [i]; ++j)
+          {
+            PORT_WRITE(out_RENAME_FRONT_END_ID [i][j],_param->_translate_num_front_end_to_ooo_engine_front_end_id[i]);
+          }
+    
+    log_end(Core_Glue,FUNCTION);
+  };
+
+}; // end namespace core_glue
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h	(revision 131)
@@ -227,4 +227,5 @@
   private : void     deallocation              (void);
 
+  public  : void     constant                  (void);
   public  : void     transition                (void);
   public  : void     genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp	(revision 131)
@@ -95,18 +95,16 @@
       }
 
-    log_printf(INFO,Load_store_unit,FUNCTION,"Constant affectation");
-
-    internal_DCACHE_RSP_ACK = 1;
-    PORT_WRITE(out_DCACHE_RSP_ACK [0], internal_DCACHE_RSP_ACK);
-    for (uint32_t i=1; i<_param->_nb_cache_port; ++i)
-      {
-	PORT_WRITE(out_DCACHE_RSP_ACK [i], 0);
-	PORT_WRITE(out_DCACHE_REQ_VAL [i], 0);
-      }
-
-    for (uint32_t i=1; i<_param->_nb_inst_memory; i++)
-      {
-	PORT_WRITE(out_MEMORY_OUT_VAL [i], 0);
-      }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+    log_printf(INFO,Load_store_unit,FUNCTION,"Method - constant");
+
+    SC_METHOD (constant);
+//     dont_initialize ();
+
+#ifdef SYSTEMCASS_SPECIFIC
+    // List dependency information
+#endif    
+#endif
 
     log_printf(INFO,Load_store_unit,FUNCTION,"Method - transition");
@@ -114,5 +112,5 @@
     SC_METHOD (transition);
     dont_initialize ();
-    sensitive_pos << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).pos();
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -124,5 +122,5 @@
     SC_METHOD (genMoore);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -134,5 +132,5 @@
     SC_METHOD (genMealy_insert);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
     for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
       sensitive << (*(in_MEMORY_IN_VAL       [i]))
@@ -153,5 +151,5 @@
     SC_METHOD (genMealy_retire);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -163,5 +161,5 @@
     SC_METHOD (genMealy_dcache);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
 
 #ifdef SYSTEMCASS_SPECIFIC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_constant.cpp	(revision 131)
@@ -0,0 +1,52 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_execute_unit {
+namespace execute_unit {
+namespace load_store_unit {
+
+
+#undef  FUNCTION
+#define FUNCTION "Load_store_unit::constant"
+  void Load_store_unit::constant (void)
+  {
+    log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
+
+    internal_DCACHE_RSP_ACK = 1;
+    PORT_WRITE(out_DCACHE_RSP_ACK [0], internal_DCACHE_RSP_ACK);
+    for (uint32_t i=1; i<_param->_nb_cache_port; ++i)
+      {
+	PORT_WRITE(out_DCACHE_RSP_ACK [i], 0);
+	PORT_WRITE(out_DCACHE_REQ_VAL [i], 0);
+      }
+
+    for (uint32_t i=1; i<_param->_nb_inst_memory; i++)
+      {
+	PORT_WRITE(out_MEMORY_OUT_VAL [i], 0);
+      }
+
+    log_printf(FUNC,Load_store_unit,FUNCTION,"End");
+  };
+
+}; // end namespace load_store_unit
+}; // end namespace execute_unit
+}; // end namespace multi_execute_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp	(revision 131)
@@ -74,5 +74,5 @@
     SC_METHOD (transition);
     dont_initialize ();
-    sensitive_pos << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).pos();
 
     log_printf(INFO,Read_queue,"Read_queue","Method - genMoore");
@@ -80,5 +80,5 @@
     SC_METHOD (genMoore);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
 
     log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_val");
@@ -86,5 +86,5 @@
     SC_METHOD (genMealy_read_queue_out_val);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
     for (uint32_t i=0; i<_param->_nb_gpr_read ; i++)
       sensitive << *(in_GPR_READ_ACK      [i]);
@@ -133,5 +133,5 @@
     SC_METHOD (genMealy_read_queue_out_gpr);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
     for (uint32_t i=0; i<_param->_nb_gpr_read ; i++)
       sensitive << *(in_GPR_READ_ACK      [i])
@@ -185,5 +185,5 @@
     SC_METHOD (genMealy_read_queue_out_spr);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
     for (uint32_t i=0; i<_param->_nb_spr_read ; i++)
       sensitive << *(in_SPR_READ_ACK      [i])
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp	(revision 131)
@@ -78,5 +78,5 @@
     SC_METHOD (transition);
     dont_initialize ();
-    sensitive_pos << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).pos();
 //#endif
 
@@ -89,5 +89,5 @@
     SC_METHOD (genMoore);
     dont_initialize ();
-    sensitive_neg << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).neg();
 
 #ifdef SYSTEMCASS_SPECIFIC
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp	(revision 131)
@@ -46,6 +46,6 @@
   sc_clock                         *  in_CLOCK;
   sc_signal<Tcontrol_t>            *  in_NRESET;
-  sc_signal<Tcontrol_t>            * out_CONST_0;
-  sc_signal<Tcontrol_t>            * out_CONST_1;
+//sc_signal<Tcontrol_t>            * out_CONST_0;
+//sc_signal<Tcontrol_t>            * out_CONST_1;
 
   sc_signal<Tcontrol_t        >   **  in_GPR_READ_VAL              ;
@@ -54,10 +54,12 @@
   sc_signal<Tgeneral_data_t   >   ** out_GPR_READ_DATA             ;
   sc_signal<Tcontrol_t        >   ** out_GPR_READ_DATA_VAL         ;
+
   sc_signal<Tcontrol_t        >  *** out_GPR_READ_REGISTERFILE_VAL ;
   sc_signal<Tcontrol_t        >  ***  in_GPR_READ_REGISTERFILE_ACK ;
   sc_signal<Tgeneral_data_t   >  ***  in_GPR_READ_REGISTERFILE_DATA;
+
   sc_signal<Tcontrol_t        >  *** out_GPR_READ_STATUS_VAL       ;
   sc_signal<Tcontrol_t        >  ***  in_GPR_READ_STATUS_ACK       ;
-  sc_signal<Tcontrol_t        >  ***  in_GPR_READ_STATUS_DATA_VAL  ;
+  sc_signal<Tgeneral_data_t   >  ***  in_GPR_READ_STATUS_DATA_VAL  ;
 
   sc_signal<Tcontrol_t        >   **  in_SPR_READ_VAL              ;
@@ -66,26 +68,34 @@
   sc_signal<Tspecial_data_t   >   ** out_SPR_READ_DATA             ;
   sc_signal<Tcontrol_t        >   ** out_SPR_READ_DATA_VAL         ;
+
   sc_signal<Tcontrol_t        >  *** out_SPR_READ_REGISTERFILE_VAL ;
   sc_signal<Tcontrol_t        >  ***  in_SPR_READ_REGISTERFILE_ACK ;
   sc_signal<Tspecial_data_t   >  ***  in_SPR_READ_REGISTERFILE_DATA;
+
   sc_signal<Tcontrol_t        >  *** out_SPR_READ_STATUS_VAL       ;
   sc_signal<Tcontrol_t        >  ***  in_SPR_READ_STATUS_ACK       ;
-  sc_signal<Tcontrol_t        >  ***  in_SPR_READ_STATUS_DATA_VAL  ;
+  sc_signal<Tspecial_data_t   >  ***  in_SPR_READ_STATUS_DATA_VAL  ;
 
   sc_signal<Tcontrol_t        >   **  in_GPR_WRITE_VAL             ;
   sc_signal<Tcontrol_t        >   ** out_GPR_WRITE_ACK             ;
   sc_signal<Tcontext_t        >   **  in_GPR_WRITE_OOO_ENGINE_ID   ;
+
   sc_signal<Tcontrol_t        >  *** out_GPR_WRITE_REGISTERFILE_VAL;
   sc_signal<Tcontrol_t        >  ***  in_GPR_WRITE_REGISTERFILE_ACK;
+
   sc_signal<Tcontrol_t        >  *** out_GPR_WRITE_STATUS_VAL      ;
   sc_signal<Tcontrol_t        >  ***  in_GPR_WRITE_STATUS_ACK      ;
+  sc_signal<Tgeneral_data_t   >  *** out_GPR_WRITE_STATUS_DATA     ;
   
   sc_signal<Tcontrol_t        >   **  in_SPR_WRITE_VAL             ;
   sc_signal<Tcontrol_t        >   ** out_SPR_WRITE_ACK             ;
   sc_signal<Tcontext_t        >   **  in_SPR_WRITE_OOO_ENGINE_ID   ;
+
   sc_signal<Tcontrol_t        >  *** out_SPR_WRITE_REGISTERFILE_VAL;
   sc_signal<Tcontrol_t        >  ***  in_SPR_WRITE_REGISTERFILE_ACK;
+
   sc_signal<Tcontrol_t        >  *** out_SPR_WRITE_STATUS_VAL      ;
   sc_signal<Tcontrol_t        >  ***  in_SPR_WRITE_STATUS_ACK      ;
+  sc_signal<Tspecial_data_t   >  *** out_SPR_WRITE_STATUS_DATA     ;
 
   sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_VAL                       ;
@@ -93,8 +103,12 @@
   sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_RD_USE                    ;
   sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_RE_USE                    ;
+
   sc_signal<Tcontrol_t        >  *** out_INSERT_ROB_GPR_STATUS_VAL            ;
   sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_GPR_STATUS_ACK            ;
+  sc_signal<Tgeneral_data_t   >  *** out_INSERT_ROB_GPR_STATUS_DATA           ;
+
   sc_signal<Tcontrol_t        >  *** out_INSERT_ROB_SPR_STATUS_VAL            ;
   sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_SPR_STATUS_ACK            ;
+  sc_signal<Tspecial_data_t   >  *** out_INSERT_ROB_SPR_STATUS_DATA           ;
 
 //   sc_signal<Tcontrol_t        >  ***  in_RETIRE_ROB_VAL                       ;
@@ -117,6 +131,6 @@
    in_CLOCK                               = new sc_clock ("clock", 1.0, 0.5);
    in_NRESET                              = new sc_signal<Tcontrol_t> ("NRESET");
-  out_CONST_0                             = new sc_signal<Tcontrol_t> ("CONST_0");
-  out_CONST_1                             = new sc_signal<Tcontrol_t> ("CONST_1");
+//   out_CONST_0                             = new sc_signal<Tcontrol_t> ("CONST_0");
+//   out_CONST_1                             = new sc_signal<Tcontrol_t> ("CONST_1");
 
     // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -131,5 +145,5 @@
   out_GPR_READ_STATUS_VAL        = new sc_signal<Tcontrol_t     >  ** [_param->_nb_ooo_engine];
    in_GPR_READ_STATUS_ACK        = new sc_signal<Tcontrol_t     >  ** [_param->_nb_ooo_engine];
-   in_GPR_READ_STATUS_DATA_VAL   = new sc_signal<Tcontrol_t     >  ** [_param->_nb_ooo_engine];
+   in_GPR_READ_STATUS_DATA_VAL   = new sc_signal<Tgeneral_data_t>  ** [_param->_nb_ooo_engine];
 
    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -140,5 +154,5 @@
        out_GPR_READ_STATUS_VAL        [i] = new sc_signal<Tcontrol_t     >  * [_param->_nb_gpr_read];
         in_GPR_READ_STATUS_ACK        [i] = new sc_signal<Tcontrol_t     >  * [_param->_nb_gpr_read];
-        in_GPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tcontrol_t     >  * [_param->_nb_gpr_read];
+        in_GPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tgeneral_data_t>  * [_param->_nb_gpr_read];
      }
 
@@ -158,5 +172,5 @@
 	     out_GPR_READ_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
 	      in_GPR_READ_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
-	      in_GPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
+	      in_GPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());
 	 }
      }
@@ -173,5 +187,5 @@
   out_SPR_READ_STATUS_VAL        = new sc_signal<Tcontrol_t     > ** [_param->_nb_ooo_engine];
    in_SPR_READ_STATUS_ACK        = new sc_signal<Tcontrol_t     > ** [_param->_nb_ooo_engine];
-   in_SPR_READ_STATUS_DATA_VAL   = new sc_signal<Tcontrol_t     > ** [_param->_nb_ooo_engine];
+   in_SPR_READ_STATUS_DATA_VAL   = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine];
 
    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -182,5 +196,5 @@
        out_SPR_READ_STATUS_VAL        [i] = new sc_signal<Tcontrol_t     > * [_param->_nb_spr_read];
         in_SPR_READ_STATUS_ACK        [i] = new sc_signal<Tcontrol_t     > * [_param->_nb_spr_read];
-        in_SPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tcontrol_t     > * [_param->_nb_spr_read];
+        in_SPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tspecial_data_t> * [_param->_nb_spr_read];
      }
 
@@ -200,5 +214,5 @@
 	     out_SPR_READ_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
 	      in_SPR_READ_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
-	      in_SPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
+	      in_SPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str());
 	 }
      }
@@ -212,4 +226,5 @@
   out_GPR_WRITE_STATUS_VAL        = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
    in_GPR_WRITE_STATUS_ACK        = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
+  out_GPR_WRITE_STATUS_DATA       = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine];
 
    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -219,4 +234,5 @@
        out_GPR_WRITE_STATUS_VAL        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_gpr_write];
         in_GPR_WRITE_STATUS_ACK        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_gpr_write];
+       out_GPR_WRITE_STATUS_DATA       [i] = new sc_signal<Tgeneral_data_t> * [_param->_nb_gpr_write];
      }
 
@@ -233,4 +249,5 @@
 	     out_GPR_WRITE_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());;
 	      in_GPR_WRITE_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());;
+	     out_GPR_WRITE_STATUS_DATA       [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());;
 	 }
      }
@@ -244,4 +261,5 @@
   out_SPR_WRITE_STATUS_VAL        = new sc_signal<Tcontrol_t>  ** [_param->_nb_ooo_engine];
    in_SPR_WRITE_STATUS_ACK        = new sc_signal<Tcontrol_t>  ** [_param->_nb_ooo_engine];
+  out_SPR_WRITE_STATUS_DATA       = new sc_signal<Tspecial_data_t>  ** [_param->_nb_ooo_engine];
 
    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -251,4 +269,5 @@
        out_SPR_WRITE_STATUS_VAL        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_spr_write];
         in_SPR_WRITE_STATUS_ACK        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_spr_write];
+       out_SPR_WRITE_STATUS_DATA       [i] = new sc_signal<Tspecial_data_t> * [_param->_nb_spr_write];
      }
 
@@ -265,4 +284,5 @@
 	     out_SPR_WRITE_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t>  (rename.c_str());
 	      in_SPR_WRITE_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t>  (rename.c_str());
+	     out_SPR_WRITE_STATUS_DATA       [i][j] = new sc_signal<Tspecial_data_t>  (rename.c_str());
 	 }
      }
@@ -275,6 +295,8 @@
    out_INSERT_ROB_GPR_STATUS_VAL       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
     in_INSERT_ROB_GPR_STATUS_ACK       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
+   out_INSERT_ROB_GPR_STATUS_DATA      = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine];
    out_INSERT_ROB_SPR_STATUS_VAL       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
     in_INSERT_ROB_SPR_STATUS_ACK       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
+   out_INSERT_ROB_SPR_STATUS_DATA      = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine];
 
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -288,6 +310,8 @@
        out_INSERT_ROB_GPR_STATUS_VAL       [i] = new sc_signal<Tcontrol_t> * [x];
 	in_INSERT_ROB_GPR_STATUS_ACK       [i] = new sc_signal<Tcontrol_t> * [x];
+       out_INSERT_ROB_GPR_STATUS_DATA      [i] = new sc_signal<Tgeneral_data_t> * [x];
        out_INSERT_ROB_SPR_STATUS_VAL       [i] = new sc_signal<Tcontrol_t> * [x];
 	in_INSERT_ROB_SPR_STATUS_ACK       [i] = new sc_signal<Tcontrol_t> * [x];
+       out_INSERT_ROB_SPR_STATUS_DATA      [i] = new sc_signal<Tspecial_data_t> * [x];
 
 	for (uint32_t j=0; j<x; j++)
@@ -299,6 +323,8 @@
 	      out_INSERT_ROB_GPR_STATUS_VAL       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
 	       in_INSERT_ROB_GPR_STATUS_ACK       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
+	      out_INSERT_ROB_GPR_STATUS_DATA      [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());
 	      out_INSERT_ROB_SPR_STATUS_VAL       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
 	       in_INSERT_ROB_SPR_STATUS_ACK       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
+	      out_INSERT_ROB_SPR_STATUS_DATA      [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str());
 	  }
       }
@@ -368,6 +394,6 @@
   (*(_Register_unit_Glue-> in_CLOCK  ))       (*( in_CLOCK  ));
   (*(_Register_unit_Glue-> in_NRESET ))       (*( in_NRESET ));
-  (*(_Register_unit_Glue->out_CONST_0))       (*(out_CONST_0));
-  (*(_Register_unit_Glue->out_CONST_1))       (*(out_CONST_1));
+//   (*(_Register_unit_Glue->out_CONST_0))       (*(out_CONST_0));
+//   (*(_Register_unit_Glue->out_CONST_1))       (*(out_CONST_1));
 
    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
@@ -424,4 +450,5 @@
 	   (*(_Register_unit_Glue->out_GPR_WRITE_STATUS_VAL        [i][j]))(*(out_GPR_WRITE_STATUS_VAL        [i][j]));
 	   (*(_Register_unit_Glue-> in_GPR_WRITE_STATUS_ACK        [i][j]))(*( in_GPR_WRITE_STATUS_ACK        [i][j]));
+	   (*(_Register_unit_Glue->out_GPR_WRITE_STATUS_DATA       [i][j]))(*(out_GPR_WRITE_STATUS_DATA       [i][j]));
 	 }
      }
@@ -440,4 +467,5 @@
 	   (*(_Register_unit_Glue->out_SPR_WRITE_STATUS_VAL        [i][j]))(*(out_SPR_WRITE_STATUS_VAL        [i][j]));
 	   (*(_Register_unit_Glue-> in_SPR_WRITE_STATUS_ACK        [i][j]))(*( in_SPR_WRITE_STATUS_ACK        [i][j]));
+	   (*(_Register_unit_Glue->out_SPR_WRITE_STATUS_DATA       [i][j]))(*(out_SPR_WRITE_STATUS_DATA       [i][j]));
 	 }
      }
@@ -456,6 +484,8 @@
 	    (*(_Register_unit_Glue->out_INSERT_ROB_GPR_STATUS_VAL [i][j]))  (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]));
 	    (*(_Register_unit_Glue-> in_INSERT_ROB_GPR_STATUS_ACK [i][j]))  (*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
+	    (*(_Register_unit_Glue->out_INSERT_ROB_GPR_STATUS_DATA[i][j]))  (*(out_INSERT_ROB_GPR_STATUS_DATA[i][j]));
 	    (*(_Register_unit_Glue->out_INSERT_ROB_SPR_STATUS_VAL [i][j]))  (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]));
 	    (*(_Register_unit_Glue-> in_INSERT_ROB_SPR_STATUS_ACK [i][j]))  (*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
+	    (*(_Register_unit_Glue->out_INSERT_ROB_SPR_STATUS_DATA[i][j]))  (*(out_INSERT_ROB_SPR_STATUS_DATA[i][j]));
 	  }
       }
@@ -506,4 +536,12 @@
   srand(seed);
 
+  SC_START(0);
+  LABEL("Initialisation");
+
+  in_NRESET->write(0);
+  SC_START(5);
+  in_NRESET->write(1);
+
+#ifdef SELFTEST
   Tcontext_t      context;
   Tcontrol_t      gpr_read_ack              [_param->_nb_gpr_read];
@@ -548,11 +586,4 @@
   Tcontrol_t      insert_rob_gpr_status_val [_param->_nb_ooo_engine][max_nb_inst_insert_rob];
   Tcontrol_t      insert_rob_spr_status_val [_param->_nb_ooo_engine][max_nb_inst_insert_rob];
-
-  SC_START(0);
-  LABEL("Initialisation");
-
-  in_NRESET->write(0);
-  SC_START(5);
-  in_NRESET->write(1);
 
   LABEL("Loop of Test");
@@ -791,6 +822,6 @@
 
       // Test
-      TEST(Tcontrol_t, out_CONST_0->read() , 0);
-      TEST(Tcontrol_t, out_CONST_1->read() , 1);
+//       TEST(Tcontrol_t, out_CONST_0->read() , 0);
+//       TEST(Tcontrol_t, out_CONST_1->read() , 1);
       
       if (test_read == true)
@@ -832,4 +863,5 @@
 		  TEST(Tcontrol_t, out_GPR_WRITE_REGISTERFILE_VAL  [i][j]->read(), gpr_write_registerfile_val [i][j]);
 		  TEST(Tcontrol_t, out_GPR_WRITE_STATUS_VAL        [i][j]->read(), gpr_write_status_val       [i][j]);
+		  TEST(Tcontrol_t, out_GPR_WRITE_STATUS_DATA       [i][j]->read(), 1);
 		}
 	    }
@@ -842,4 +874,5 @@
 		  TEST(Tcontrol_t, out_SPR_WRITE_REGISTERFILE_VAL  [i][j]->read(), spr_write_registerfile_val [i][j]);
 		  TEST(Tcontrol_t, out_SPR_WRITE_STATUS_VAL        [i][j]->read(), spr_write_status_val       [i][j]);
+		  TEST(Tcontrol_t, out_SPR_WRITE_STATUS_DATA       [i][j]->read(), 1);
 		}
 	    }
@@ -874,5 +907,7 @@
 		  TEST(Tcontrol_t, out_INSERT_ROB_ACK            [i][j]->read(), insert_rob_ack            [i][j]);
 		  TEST(Tcontrol_t, out_INSERT_ROB_GPR_STATUS_VAL [i][j]->read(), insert_rob_gpr_status_val [i][j]);
+		  TEST(Tcontrol_t, out_INSERT_ROB_GPR_STATUS_DATA[i][j]->read(), 0);
 		  TEST(Tcontrol_t, out_INSERT_ROB_SPR_STATUS_VAL [i][j]->read(), insert_rob_spr_status_val [i][j]);
+		  TEST(Tcontrol_t, out_INSERT_ROB_SPR_STATUS_DATA[i][j]->read(), 0);
 		}
 	    }
@@ -882,5 +917,7 @@
       SC_START(1);
     }
-
+#else
+  SC_START(100);
+#endif
   /********************************************************
    * Simulation - End
@@ -922,4 +959,5 @@
   delete [] out_GPR_WRITE_STATUS_VAL        ;
   delete []  in_GPR_WRITE_STATUS_ACK        ;
+  delete [] out_GPR_WRITE_STATUS_DATA       ;
   delete []  in_SPR_WRITE_VAL               ;
   delete [] out_SPR_WRITE_ACK               ;
@@ -929,4 +967,5 @@
   delete [] out_SPR_WRITE_STATUS_VAL        ;
   delete []  in_SPR_WRITE_STATUS_ACK        ;
+  delete [] out_SPR_WRITE_STATUS_DATA       ;
   delete []  in_INSERT_ROB_VAL                  ;
   delete [] out_INSERT_ROB_ACK                  ;
@@ -935,6 +974,8 @@
   delete [] out_INSERT_ROB_GPR_STATUS_VAL       ;
   delete []  in_INSERT_ROB_GPR_STATUS_ACK       ;
+  delete [] out_INSERT_ROB_GPR_STATUS_DATA      ;
   delete [] out_INSERT_ROB_SPR_STATUS_VAL       ;
   delete []  in_INSERT_ROB_SPR_STATUS_ACK       ;
+  delete [] out_INSERT_ROB_SPR_STATUS_DATA      ;
 //   delete []  in_RETIRE_ROB_VAL                      ;
 //   delete [] out_RETIRE_ROB_ACK                      ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h	(revision 131)
@@ -181,4 +181,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void     constant                        (void);
   public  : void     transition                      (void);
   public  : void     genMealy_gpr_read               (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 131)
@@ -70,20 +70,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-    // Constant
-//     PORT_WRITE(out_CONST_0 ,0);
-//     PORT_WRITE(out_CONST_1 ,1);
-        for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
-          {
-            for (uint32_t j=0; j<_param->_nb_gpr_write; ++j)
-              PORT_WRITE(out_GPR_WRITE_STATUS_DATA [i][j],1);
-            for (uint32_t j=0; j<_param->_nb_spr_write; ++j)
-              PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1);
-
-            for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
-              {
-                PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
-                PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
-              }
-          }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - constant");
+
+    SC_METHOD (constant);
+//     dont_initialize ();
+
+#ifdef SYSTEMCASS_SPECIFIC
+    // List dependency information
+#endif    
+#endif
 
     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - transition");
@@ -91,5 +87,5 @@
     SC_METHOD (transition);
     dont_initialize ();
-    sensitive_pos << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).pos();
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -101,5 +97,5 @@
     SC_METHOD (genMealy_gpr_read);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
       {
@@ -138,5 +134,5 @@
     SC_METHOD (genMealy_gpr_read_status);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
       {
@@ -167,5 +163,5 @@
     SC_METHOD (genMealy_gpr_read_registerfile);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
       {
@@ -196,5 +192,5 @@
     SC_METHOD (genMealy_gpr_write);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
       {
@@ -226,5 +222,5 @@
     SC_METHOD (genMealy_gpr_write_status);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
       {
@@ -255,5 +251,5 @@
     SC_METHOD (genMealy_gpr_write_registerfile);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
       {
@@ -284,5 +280,5 @@
     SC_METHOD (genMealy_spr_read);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_spr_read; j++)
       {
@@ -321,5 +317,5 @@
     SC_METHOD (genMealy_spr_read_status);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_spr_read; j++)
       {
@@ -350,5 +346,5 @@
     SC_METHOD (genMealy_spr_read_registerfile);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_spr_read; j++)
       {
@@ -379,5 +375,5 @@
     SC_METHOD (genMealy_spr_write);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_spr_write; j++)
       {
@@ -409,5 +405,5 @@
     SC_METHOD (genMealy_spr_write_status);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_spr_write; j++)
       {
@@ -438,5 +434,5 @@
     SC_METHOD (genMealy_spr_write_registerfile);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t j=0; j<_param->_nb_spr_write; j++)
       {
@@ -467,5 +463,5 @@
     SC_METHOD (genMealy_insert);
     dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
+//     sensitive << (*(in_CLOCK)).neg();
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
       {
@@ -503,5 +499,5 @@
 //     SC_METHOD (genMealy_retire);
 //     dont_initialize ();
-// //     sensitive_neg << *(in_CLOCK);
+// //     sensitive << (*(in_CLOCK)).neg();
 //     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
 //       {
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp	(revision 131)
@@ -177,5 +177,5 @@
     }
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
@@ -192,6 +192,6 @@
       ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
       
-      _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
 
@@ -202,6 +202,6 @@
       ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
       
-      _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
-      _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
+      _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
       _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_constant.cpp	(revision 131)
@@ -0,0 +1,53 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace register_unit {
+namespace register_unit_glue {
+
+
+#undef  FUNCTION
+#define FUNCTION "Register_unit_Glue::constant"
+  void Register_unit_Glue::constant (void)
+  {
+    log_begin(Register_unit_Glue,FUNCTION);
+
+//  PORT_WRITE(out_CONST_0 ,0);
+//  PORT_WRITE(out_CONST_1 ,1);
+    for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
+      {
+        for (uint32_t j=0; j<_param->_nb_gpr_write; ++j)
+          PORT_WRITE(out_GPR_WRITE_STATUS_DATA [i][j],1);
+        for (uint32_t j=0; j<_param->_nb_spr_write; ++j)
+          PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1);
+        
+        for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
+          {
+            PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
+            PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
+          }
+      }
+
+    log_end(Register_unit_Glue,FUNCTION);
+  };
+
+}; // end namespace register_unit_glue
+}; // end namespace register_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h	(revision 131)
@@ -15,6 +15,10 @@
 #include <sys/time.h>
 
+#define NB_ITERATION  128
+#define CYCLE_MAX     (128*NB_ITERATION)
+
+#include "Common/include/Time.h"
+#include "Common/include/Test.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
-#include "Common/include/Time.h"
 
 using namespace std;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/main.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/main.cpp	(revision 131)
@@ -85,4 +85,5 @@
     _nb_inst_retire_rob  [i] = atoi(argv[x++]);
   
+  int _return = EXIT_SUCCESS;
   try 
     {
@@ -114,14 +115,22 @@
   catch (morpheo::ErrorMorpheo & error)
     {
-      cout << "<" << name << "> : " <<  error.what ();
-      exit (EXIT_FAILURE);
-    }
-  catch (...)
-    {
-      cerr << "<" << name << "> : This test must generate a error" << endl;
-      exit (EXIT_FAILURE);
+      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
     }
 
-  return (EXIT_SUCCESS);
+  try 
+    {
+      if (_return == EXIT_SUCCESS)
+        TEST_OK("OOO_Engine : no error");
+      else
+        TEST_KO("OOO_Engine : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//       msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
+    }
+
+  return (_return);
 }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp	(revision 131)
@@ -7,9 +7,5 @@
  */
 
-#define NB_ITERATION  1
-#define CYCLE_MAX     (10240*NB_ITERATION)
-
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h"
-#include "Common/include/Test.h"
 
 void test (string name,
@@ -22,9 +18,5 @@
 #endif
 
-  _model.set_model(NAME_Register_unit            ,MODEL_SYSTEMC, true);
-  _model.set_model(NAME_RegisterFile             ,MODEL_SYSTEMC, true);
-  _model.set_model(NAME_RegisterFile_Monolithic  ,MODEL_SYSTEMC, true);
-  _model.set_model(NAME_RegisterFile_Multi_Banked,MODEL_SYSTEMC, true);
-  _model.set_model(NAME_Register_unit_Glue       ,MODEL_SYSTEMC, true);
+  _model.set_model(MODEL_SYSTEMC,true);
 
   Tusage_t _usage = USE_ALL;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h	(revision 131)
@@ -119,4 +119,10 @@
   protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_spr       ;
   protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_spr_status;
+
+//   protected : morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked ** component_gpr       ;
+//   protected : morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   ** component_gpr_status;
+//   protected : morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked ** component_spr       ;
+//   protected : morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   ** component_spr_status;
+
   protected : morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue      * component_glue      ;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp	(revision 131)
@@ -77,5 +77,5 @@
     SC_METHOD (transition);
     dont_initialize ();
-    sensitive_pos << *(in_CLOCK);
+    sensitive << (*(in_CLOCK)).pos();
 //#endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 131)
@@ -106,5 +106,5 @@
     }
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
@@ -179,4 +179,9 @@
     component_spr        = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
     component_spr_status = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
+
+//     component_gpr        = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine];
+//     component_gpr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   * [_param->_nb_ooo_engine];
+//     component_spr        = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine];
+//     component_spr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   * [_param->_nb_ooo_engine];
      
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -185,10 +190,11 @@
         log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 
-	component_gpr        [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 
+ 	component_gpr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 
+//  	component_gpr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
 	  (name.c_str()
 #ifdef STATISTICS
 	   ,param_statistics
 #endif
-	   ,_param->_param_gpr [i]
+ 	   ,_param->_param_gpr [i]//->_param_registerfile_multi_banked
 	   ,_usage
 	   );
@@ -207,10 +213,11 @@
         log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 
-	component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
+ 	component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 
+// 	component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic
 	  (name.c_str()
 #ifdef STATISTICS
 	   ,param_statistics
 #endif
-	   ,_param->_param_gpr_status [i]
+ 	   ,_param->_param_gpr_status [i]//->_param_registerfile_monolithic
 	   ,_usage
 	   );
@@ -229,10 +236,11 @@
         log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 	 
-	component_spr        [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 
+ 	component_spr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
+// 	component_spr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
 	  (name.c_str()
 #ifdef STATISTICS
 	   ,param_statistics
 #endif
-	   ,_param->_param_spr [i]
+ 	   ,_param->_param_spr [i]//->_param_registerfile_multi_banked
 	   ,_usage
 	   );
@@ -250,10 +258,11 @@
         log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 
-	component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
+ 	component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
+// 	component_spr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic::RegisterFile_Monolithic
 	  (name.c_str()
 #ifdef STATISTICS
 	   ,param_statistics
 #endif
-	   ,_param->_param_spr_status [i]
+ 	   ,_param->_param_spr_status [i]//->_param_registerfile_monolithic
 	   ,_usage
 	   );
@@ -269,29 +278,33 @@
       }
 
-
-    name = _name+"_glue";
-    log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
-     
-    component_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue     
-      (name.c_str()
+    {
+      name = _name+"_glue";
+      log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
+      
+      component_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue     
+        (name.c_str()
 #ifdef STATISTICS
-       ,param_statistics
-#endif
-       ,_param->_param_glue
-       ,_usage
-       );
-
-    _component->set_component (component_glue->_component
-#ifdef POSITION
-			       , 50
-			       , 50
-			       , 10
-			       , 10
-#endif
-			       );
+         ,param_statistics
+#endif
+         ,_param->_param_glue
+         ,_usage
+         );
+      
+      _component->set_component (component_glue->_component
+#ifdef POSITION
+                                 , 50
+                                 , 50
+                                 , 10
+                                 , 10
+#endif
+                                 );
+    }
      
     // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
     std::string src,dest;
-    
+
+    // -------------------------------------------------------------------    
+    // -----[ gpr ]-------------------------------------------------------    
+    // -------------------------------------------------------------------    
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
       {
@@ -300,4 +313,5 @@
         log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str());
 	
+        // -----[ instance "" ]-----------------------------------------------    
         {
           dest = _name;
@@ -310,4 +324,5 @@
         }
 
+        // -----[ instance "read" ]-------------------------------------------    
 	for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
 	  {
@@ -332,4 +347,5 @@
 	  }
 
+        // -----[ instance "write" ]------------------------------------------    
 	for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
 	  {
@@ -353,7 +369,9 @@
                                      dest, "in_GPR_WRITE_"+toString(j)+"_DATA");
 	  }
-
       }// gpr
     
+    // -------------------------------------------------------------------    
+    // -----[ gpr_status ]------------------------------------------------
+    // -------------------------------------------------------------------    
     {
       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -401,5 +419,5 @@
               
 #ifdef POSITION
-              _component->interface_map (src ,    "write_"+toString(j),
+              _component->interface_map (src ,    "write_"+toString(x),
                                          dest,"gpr_write_status_"+toString(i)+"_"+toString(j));
 #endif
@@ -445,8 +463,10 @@
               x++;
 	    }
-
 	}
     }// gpr_status
 
+    // -------------------------------------------------------------------    
+    // -----[ spr ]-------------------------------------------------------
+    // -------------------------------------------------------------------    
     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
       {
@@ -508,7 +528,9 @@
                                      dest, "in_SPR_WRITE_"+toString(j)+"_DATA");
 	  }
-
       }// spr
     
+    // -------------------------------------------------------------------    
+    // -----[ spr_status ]------------------------------------------------
+    // -------------------------------------------------------------------    
     {
       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
@@ -556,5 +578,5 @@
               
 #ifdef POSITION
-              _component->interface_map (src ,    "write_"+toString(j),
+              _component->interface_map (src ,    "write_"+toString(x),
                                          dest,"spr_write_status_"+toString(i)+"_"+toString(j));
 #endif
@@ -581,5 +603,5 @@
               
 #ifdef POSITION
-              _component->interface_map (src ,    "write_"+toString(j),
+              _component->interface_map (src ,    "write_"+toString(x),
                                          dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
 #endif
@@ -592,5 +614,5 @@
                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
 //                                     dest,"out_CONST_0");
-              
+
               dest = _name;
               
@@ -600,9 +622,10 @@
               x++;
 	    }
-
-
 	}
     }// spr_status
 
+    // -------------------------------------------------------------------    
+    // -----[ glue ]------------------------------------------------------
+    // -------------------------------------------------------------------    
     {
       src = _name+"_glue";
@@ -730,5 +753,5 @@
       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
 	{
-	  uint32_t x     =_param->_nb_inst_insert_rob [i];
+	  uint32_t x = _param->_nb_inst_insert_rob [i];
 
 	  for (uint32_t j=0; j<x; j++)
@@ -758,5 +781,4 @@
 	    }
 	}
-      
     }// glue
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h	(revision 131)
@@ -15,6 +15,9 @@
 #include <sys/time.h>
 
+#define NB_ITERATION  128
+#define CYCLE_MAX     (128*NB_ITERATION)
+
 #include "Common/include/Time.h"
-#include "Behavioural/include/Selftest.h"
+#include "Common/include/Test.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h"
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/main.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/main.cpp	(revision 131)
@@ -315,4 +315,5 @@
     num_thread_valid [i] = true;
 
+  int _return = EXIT_SUCCESS;
   try 
     {
@@ -383,11 +384,19 @@
   catch (morpheo::ErrorMorpheo & error)
     {
-      msg (_("%s\n"),error.what ());
-      exit (EXIT_FAILURE);
-    }
-  catch (...)
-    {
-      err (_("This test must generate a error.\n"));
-      exit (EXIT_FAILURE);
+      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
+    }
+
+  try 
+    {
+      if (_return == EXIT_SUCCESS)
+        TEST_OK("OOO_Engine : no error");
+      else
+        TEST_KO("OOO_Engine : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//       msg (_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
     }
 
@@ -450,5 +459,5 @@
   DELETE1(num_thread_valid              , nb_thread);
 
-  return (EXIT_SUCCESS);
+  return (_return);
 }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp	(revision 131)
@@ -7,9 +7,5 @@
  */
 
-#define NB_ITERATION  128
-#define CYCLE_MAX     (128*NB_ITERATION)
-
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h"
-#include "Common/include/Test.h"
 #include "Behavioural/include/Allocation.h"
 
@@ -23,4 +19,6 @@
   morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
 #endif
+
+  _model.set_model(MODEL_SYSTEMC,true);
 
   Tusage_t _usage = USE_ALL;
@@ -60,4 +58,6 @@
   sc_signal<Ttype_t           >  **  in_EXECUTE_LOOP_IN_TYPE                 ;
   sc_signal<Tlsq_ptr_t        >  **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE;
+  sc_signal<Tlsq_ptr_t        >  **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ;
+  sc_signal<Tcontrol_t        >  **  in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ;
   sc_signal<Tlsq_ptr_t        >  **  in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ;
   sc_signal<Tcontrol_t        >  **  in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ;
@@ -125,4 +125,6 @@
   ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_TYPE                 ," in_EXECUTE_LOOP_IN_TYPE                 ",Ttype_t           ,_param->_nb_read_unit);
   ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE," in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_nb_read_unit);
+  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ," in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ",Tlsq_ptr_t        ,_param->_nb_read_unit);
+  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ," in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ",Tcontrol_t        ,_param->_nb_read_unit);
   ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ," in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t        ,_param->_nb_read_unit);
   ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ," in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ",Tcontrol_t        ,_param->_nb_read_unit);
@@ -203,4 +205,6 @@
   INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_TYPE                 ,_param->_nb_read_unit);
   INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit);
+  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit);
+  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ,_param->_nb_read_unit);
   if (_param->_have_port_load_queue_ptr)
   INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit);
@@ -319,4 +323,6 @@
   DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_TYPE                 ,_param->_nb_read_unit);
   DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit);
+  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit);
+  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ,_param->_nb_read_unit);
   DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit);
   DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ,_param->_nb_read_unit);
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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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 130)
+++ 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);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h	(revision 131)
@@ -338,4 +338,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit.cpp	(revision 131)
@@ -76,14 +76,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-        // Constant
-	for (uint32_t i=0; i<_param->_nb_front_end; i++)
-	  for (uint32_t j=0; j<_param->_nb_context [i]; j++)
-	    {
-              internal_EVENT_ACK [i][j] = 1;
-              PORT_WRITE(out_EVENT_ACK [i][j], internal_EVENT_ACK [i][j]);
-
-              internal_RETIRE_EVENT_VAL [i][j] = 1;
-              PORT_WRITE(out_RETIRE_EVENT_VAL [i][j], internal_RETIRE_EVENT_VAL [i][j]);
-            }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Commit_unit,FUNCTION,_("<%s> Method - constant"),_name.c_str());
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Commit_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_constant.cpp	(revision 131)
@@ -0,0 +1,46 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h"
+#include "Behavioural/include/Simulation.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_ooo_engine {
+namespace ooo_engine {
+namespace commit_unit {
+  
+#undef  FUNCTION
+#define FUNCTION "Commit_unit::constant"
+  void Commit_unit::constant (void)
+  {
+    log_begin(Commit_unit,FUNCTION);
+    log_function(Commit_unit,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_front_end; i++)
+      for (uint32_t j=0; j<_param->_nb_context [i]; j++)
+        {
+          internal_EVENT_ACK [i][j] = 1;
+          PORT_WRITE(out_EVENT_ACK [i][j], internal_EVENT_ACK [i][j]);
+          
+          internal_RETIRE_EVENT_VAL [i][j] = 1;
+          PORT_WRITE(out_RETIRE_EVENT_VAL [i][j], internal_RETIRE_EVENT_VAL [i][j]);
+        }
+
+    log_end(Commit_unit,FUNCTION);
+  };
+
+}; // end namespace commit_unit
+}; // end namespace ooo_engine
+}; // end namespace multi_ooo_engine
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/include/Reexecute_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/include/Reexecute_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/include/Reexecute_unit.h	(revision 131)
@@ -199,4 +199,5 @@
   private : bool        must_reexecute            (Tspr_address_t address, info_t & info);
 
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit.cpp	(revision 131)
@@ -75,19 +75,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Constant
-	for (uint32_t i=0; i<_param->_nb_inst_reexecute; ++i)
-	  {
-	    if (_param->_have_port_load_queue_ptr)
-	    PORT_WRITE(out_REEXECUTE_LOAD_QUEUE_PTR_WRITE [i],0);
-	    PORT_WRITE(out_REEXECUTE_READ_RA              [i],0);
-	    PORT_WRITE(out_REEXECUTE_NUM_REG_RA           [i],0);
-	    PORT_WRITE(out_REEXECUTE_READ_RB              [i],0);
-	    PORT_WRITE(out_REEXECUTE_NUM_REG_RB           [i],0);
-	    PORT_WRITE(out_REEXECUTE_READ_RC              [i],0);
-	    PORT_WRITE(out_REEXECUTE_NUM_REG_RC           [i],0);
-	    PORT_WRITE(out_REEXECUTE_WRITE_RE             [i],0);
-	    PORT_WRITE(out_REEXECUTE_NUM_REG_RE           [i],0);
-	  }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
 
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_constant.cpp	(revision 131)
@@ -0,0 +1,50 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/include/Reexecute_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_ooo_engine {
+namespace ooo_engine {
+namespace reexecute_unit {
+
+
+#undef  FUNCTION
+#define FUNCTION "Reexecute_unit::constant"
+  void Reexecute_unit::constant (void)
+  {
+    log_begin(Reexecute_unit,FUNCTION);
+    log_function(Reexecute_unit,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_inst_reexecute; ++i)
+      {
+        if (_param->_have_port_load_queue_ptr)
+        PORT_WRITE(out_REEXECUTE_LOAD_QUEUE_PTR_WRITE [i],0);
+        PORT_WRITE(out_REEXECUTE_READ_RA              [i],0);
+        PORT_WRITE(out_REEXECUTE_NUM_REG_RA           [i],0);
+        PORT_WRITE(out_REEXECUTE_READ_RB              [i],0);
+        PORT_WRITE(out_REEXECUTE_NUM_REG_RB           [i],0);
+        PORT_WRITE(out_REEXECUTE_READ_RC              [i],0);
+        PORT_WRITE(out_REEXECUTE_NUM_REG_RC           [i],0);
+        PORT_WRITE(out_REEXECUTE_WRITE_RE             [i],0);
+        PORT_WRITE(out_REEXECUTE_NUM_REG_RE           [i],0);
+      }
+
+    log_end(Reexecute_unit,FUNCTION);
+  };
+
+}; // end namespace reexecute_unit
+}; // end namespace ooo_engine
+}; // end namespace multi_ooo_engine
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_commit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_commit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_commit.cpp	(revision 131)
@@ -131,4 +131,7 @@
     else
       {
+        for (uint32_t i=0; i<_param->_nb_bank; i++)
+          internal_QUEUE_PUSH [i] = 0;
+
 #ifdef STATISTICS
         for (uint32_t i=0; i<_param->_nb_inst_commit; ++i)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_transition.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_transition.cpp	(revision 131)
@@ -49,5 +49,7 @@
 	      uint32_t y = internal_QUEUE_NUM_INST_EXECUTE [i];
 	      uint32_t z = internal_QUEUE_NUM_INST_COMMIT  [i];
-	      
+
+              log_printf(TRACE,Reexecute_unit,FUNCTION,"  * EXECUTE_LOOP[%d][%d] - COMMIT[%d]",x,y,z);
+
 	      entry->state        = STATE_SPR_ACCESS;
 	      entry->context_id   = (_param->_have_port_context_id  )?PORT_READ(in_EXECUTE_LOOP_CONTEXT_ID   [x][y]):0;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h	(revision 131)
@@ -146,4 +146,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                 (void);
   public  : void        transition                (void);
   public  : void        genMealy_insert           (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp	(revision 131)
@@ -74,13 +74,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-
-	// Constant : accepted already transaction
-        for (uint32_t i=0; i<_param->_nb_front_end; ++i)
-          for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
-            {
-              internal_RETIRE_EVENT_ACK [i][j] = 1;
-              
-              PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
-            }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - constant");
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - transition");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_constant.cpp	(revision 131)
@@ -0,0 +1,46 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_ooo_engine {
+namespace ooo_engine {
+namespace rename_unit {
+namespace load_store_pointer_unit {
+
+
+#undef  FUNCTION
+#define FUNCTION "Load_Store_pointer_unit::constant"
+  void Load_Store_pointer_unit::constant (void)
+  {
+    log_begin(Load_Store_pointer_unit,FUNCTION);
+    log_function(Load_Store_pointer_unit,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_front_end; ++i)
+      for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
+        {
+          internal_RETIRE_EVENT_ACK [i][j] = 1;
+          
+          PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
+        }
+    
+    log_end(Load_Store_pointer_unit,FUNCTION);
+  };
+
+}; // end namespace load_store_pointer_unit
+}; // end namespace rename_unit
+}; // end namespace ooo_engine
+}; // end namespace multi_ooo_engine
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h	(revision 131)
@@ -169,4 +169,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMealy_rename           (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp	(revision 131)
@@ -75,28 +75,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Constant : accepted already transaction
-	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
-	  {
-	    internal_RENAME_ACK [i] = 1;
-	    internal_INSERT_ACK [i] = 1;
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - constant");
 
-	    PORT_WRITE(out_RENAME_ACK[i],internal_RENAME_ACK [i]);
-	    PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]);
-	  }
-
-	for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
-	  {
-	    internal_RETIRE_ACK [i] = 1;
-
-	    PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]);
-	  }
-
-        for (uint32_t i=0; i<_param->_nb_front_end; ++i)
-          for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
-            {
-              internal_RETIRE_EVENT_ACK [i][j] = 1;
-              
-              PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
-            }
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - transition");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_constant.cpp	(revision 131)
@@ -0,0 +1,65 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_ooo_engine {
+namespace ooo_engine {
+namespace rename_unit {
+namespace register_translation_unit {
+namespace register_address_translation_unit {
+
+
+#undef  FUNCTION
+#define FUNCTION "Register_Address_Translation_unit::constant"
+  void Register_Address_Translation_unit::constant (void)
+  {
+    log_begin(Register_Address_Translation_unit,FUNCTION);
+    log_function(Register_Address_Translation_unit,FUNCTION,_name.c_str());
+
+	// Constant : accepted already transaction
+	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
+	  {
+	    internal_RENAME_ACK [i] = 1;
+	    internal_INSERT_ACK [i] = 1;
+
+	    PORT_WRITE(out_RENAME_ACK[i],internal_RENAME_ACK [i]);
+	    PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]);
+	  }
+
+	for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
+	  {
+	    internal_RETIRE_ACK [i] = 1;
+
+	    PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]);
+	  }
+
+        for (uint32_t i=0; i<_param->_nb_front_end; ++i)
+          for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
+            {
+              internal_RETIRE_EVENT_ACK [i][j] = 1;
+              
+              PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
+            }
+
+    log_end(Register_Address_Translation_unit,FUNCTION);
+  };
+
+}; // end namespace register_address_translation_unit
+}; // end namespace register_translation_unit
+}; // end namespace rename_unit
+}; // end namespace ooo_engine
+}; // end namespace multi_ooo_engine
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h	(revision 131)
@@ -164,4 +164,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp	(revision 131)
@@ -74,15 +74,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Constant
-	for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
-	  {
-	    internal_INSERT_ACK[i] = 1;
-	    PORT_WRITE(out_INSERT_ACK[i], internal_INSERT_ACK[i]);
-	  }
-	for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
-	  {
-	    internal_RETIRE_ACK[i] = 1;
-	    PORT_WRITE(out_RETIRE_ACK[i], internal_RETIRE_ACK[i]);
-	  }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Stat_List_unit,FUNCTION,"Method - constant");
+
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Stat_List_unit,FUNCTION,"Method - transition");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_constant.cpp	(revision 131)
@@ -0,0 +1,51 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_ooo_engine {
+namespace ooo_engine {
+namespace rename_unit {
+namespace register_translation_unit {
+namespace stat_list_unit {
+
+
+#undef  FUNCTION
+#define FUNCTION "Stat_List_unit::constant"
+  void Stat_List_unit::constant (void)
+  {
+    log_begin(Stat_List_unit,FUNCTION);
+    log_function(Stat_List_unit,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
+      {
+        internal_INSERT_ACK[i] = 1;
+        PORT_WRITE(out_INSERT_ACK[i], internal_INSERT_ACK[i]);
+      }
+    for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
+      {
+        internal_RETIRE_ACK[i] = 1;
+        PORT_WRITE(out_RETIRE_ACK[i], internal_RETIRE_ACK[i]);
+      }
+
+    log_end(Stat_List_unit,FUNCTION);
+  };
+
+}; // end namespace stat_list_unit
+}; // end namespace register_translation_unit
+}; // end namespace rename_unit
+}; // end namespace ooo_engine
+}; // end namespace multi_ooo_engine
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/SelfTest/src/test.cpp	(revision 131)
@@ -61,4 +61,5 @@
   sc_signal<Toperation_t      > ***  in_RENAME_OPERATION                 ;
   sc_signal<Tcontrol_t        > ***  in_RENAME_NO_EXECUTE                ;
+  sc_signal<Tcontrol_t        > ***  in_RENAME_LAST_EVENT                ;
   sc_signal<Tcontrol_t        > ***  in_RENAME_IS_DELAY_SLOT             ;
   sc_signal<Taddress_t        > ***  in_RENAME_ADDRESS                   ;
@@ -87,4 +88,6 @@
   sc_signal<Toperation_t      >  ** out_ISSUE_OPERATION                  ;
   sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_STORE_QUEUE_PTR_WRITE      ;
+  sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_STORE_QUEUE_PTR_READ       ;
+  sc_signal<Tcontrol_t        >  ** out_ISSUE_STORE_QUEUE_EMPTY          ;
   sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_LOAD_QUEUE_PTR_WRITE       ;
   sc_signal<Tcontrol_t        >  ** out_ISSUE_HAS_IMMEDIAT               ;
@@ -188,4 +191,5 @@
   ALLOC2_SC_SIGNAL( in_RENAME_OPERATION                 ," in_RENAME_OPERATION                 ",Toperation_t      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   ALLOC2_SC_SIGNAL( in_RENAME_NO_EXECUTE                ," in_RENAME_NO_EXECUTE                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
+  ALLOC2_SC_SIGNAL( in_RENAME_LAST_EVENT                ," in_RENAME_LAST_EVENT                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   ALLOC2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT             ," in_RENAME_IS_DELAY_SLOT             ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
 #ifdef DEBUG
@@ -216,4 +220,6 @@
   ALLOC1_SC_SIGNAL(out_ISSUE_OPERATION                  ,"out_ISSUE_OPERATION                  ",Toperation_t      ,_param->_nb_inst_issue);
   ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,"out_ISSUE_STORE_QUEUE_PTR_WRITE      ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
+  ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ       ,"out_ISSUE_STORE_QUEUE_PTR_READ       ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
+  ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_EMPTY          ,"out_ISSUE_STORE_QUEUE_EMPTY          ",Tcontrol_t        ,_param->_nb_inst_issue);
   ALLOC1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,"out_ISSUE_LOAD_QUEUE_PTR_WRITE       ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
   ALLOC1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT               ,"out_ISSUE_HAS_IMMEDIAT               ",Tcontrol_t        ,_param->_nb_inst_issue);
@@ -329,4 +335,5 @@
   INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NO_EXECUTE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
+  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_LAST_EVENT                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
 #ifdef DEBUG
@@ -360,4 +367,6 @@
   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_OPERATION                  ,_param->_nb_inst_issue);
   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue);
+  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_READ       ,_param->_nb_inst_issue);
+  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_EMPTY          ,_param->_nb_inst_issue);
   if (_param->_have_port_load_queue_ptr)
   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,_param->_nb_inst_issue);
@@ -517,4 +526,5 @@
   DELETE2_SC_SIGNAL( in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   DELETE2_SC_SIGNAL( in_RENAME_NO_EXECUTE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
+  DELETE2_SC_SIGNAL( in_RENAME_LAST_EVENT                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
   DELETE2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
 #ifdef DEBUG
@@ -545,4 +555,6 @@
   DELETE1_SC_SIGNAL(out_ISSUE_OPERATION                  ,_param->_nb_inst_issue);
   DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue);
+  DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ       ,_param->_nb_inst_issue);
+  DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_EMPTY          ,_param->_nb_inst_issue);
   DELETE1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,_param->_nb_inst_issue);
   DELETE1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT               ,_param->_nb_inst_issue);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h	(revision 131)
@@ -139,4 +139,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMoore                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit.cpp	(revision 131)
@@ -75,19 +75,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	// Constant
-	for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
-	  {
-	    internal_SPR_ACCESS_ACK [i] = 1;
-	    PORT_WRITE(out_SPR_ACCESS_ACK [i], internal_SPR_ACCESS_ACK [i]);
-	  }
+#ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	log_printf(INFO,Special_Register_unit,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
 
-	for (uint32_t i=0; i<_param->_nb_front_end; i++)
-	  for (uint32_t j=0; j<_param->_nb_context[i]; j++)
-	    {
-	      internal_SPR_COMMIT_ACK [i][j] = 1;
-	      internal_SPR_EVENT_ACK  [i][j] = 1;
-	      PORT_WRITE(out_SPR_COMMIT_ACK [i][j], internal_SPR_COMMIT_ACK [i][j]);
-	      PORT_WRITE(out_SPR_EVENT_ACK  [i][j], internal_SPR_EVENT_ACK  [i][j]);
-	    }
+	SC_METHOD (constant);
+// 	dont_initialize ();
+	
+# ifdef SYSTEMCASS_SPECIFIC
+	// List dependency information
+# endif    
+#endif
 
 	log_printf(INFO,Special_Register_unit,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit_constant.cpp	(revision 131)
@@ -0,0 +1,51 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h"
+
+namespace morpheo                    {
+namespace behavioural {
+namespace core {
+namespace multi_ooo_engine {
+namespace ooo_engine {
+namespace special_register_unit {
+
+
+#undef  FUNCTION
+#define FUNCTION "Special_Register_unit::constant"
+  void Special_Register_unit::constant (void)
+  {
+    log_begin(Special_Register_unit,FUNCTION);
+    log_function(Special_Register_unit,FUNCTION,_name.c_str());
+
+    for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
+      {
+        internal_SPR_ACCESS_ACK [i] = 1;
+        PORT_WRITE(out_SPR_ACCESS_ACK [i], internal_SPR_ACCESS_ACK [i]);
+      }
+    
+    for (uint32_t i=0; i<_param->_nb_front_end; i++)
+      for (uint32_t j=0; j<_param->_nb_context[i]; j++)
+        {
+          internal_SPR_COMMIT_ACK [i][j] = 1;
+          internal_SPR_EVENT_ACK  [i][j] = 1;
+          PORT_WRITE(out_SPR_COMMIT_ACK [i][j], internal_SPR_COMMIT_ACK [i][j]);
+          PORT_WRITE(out_SPR_EVENT_ACK  [i][j], internal_SPR_EVENT_ACK  [i][j]);
+        }
+    
+    log_end(Special_Register_unit,FUNCTION);
+  };
+
+}; // end namespace special_register_unit
+}; // end namespace ooo_engine
+}; // end namespace multi_ooo_engine
+}; // end namespace core
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp	(revision 131)
@@ -32,4 +32,6 @@
       exit (EXIT_FAILURE);
     }
+
+  _model.set_model(MODEL_SYSTEMC,true);
 
   Tusage_t _usage = USE_ALL;
@@ -123,5 +125,5 @@
   // Initialisation
 
-  sc_start(0);
+  SC_START(0);
   
   for (uint32_t i=0; i<_param->_nb_port_write; i++)
@@ -134,8 +136,14 @@
   NRESET.write(0);
 
-  sc_start(5);
+  SC_START(5);
 
   NRESET.write(1);
 
+  for (uint32_t i=0; i<_param->_nb_port_write; i++)
+    TEST(Tcontrol_t,WRITE_ACK [i],1);
+  for (uint32_t i=0; i<_param->_nb_port_read; i++)
+    TEST(Tcontrol_t,READ_ACK  [i],1);
+  for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
+    TEST(Tcontrol_t,READ_WRITE_ACK  [i],1);
 
   for (uint32_t nb_iteration=0; nb_iteration < NB_ITERATION; nb_iteration ++)
@@ -159,4 +167,5 @@
       while (nb_ack < _param->_nb_word)
 	{
+          
 	  cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
 
@@ -196,5 +205,5 @@
 	    }
 	  
-	  sc_start(1);
+	  SC_START(1);
 
 	  // reset write_val port
@@ -219,5 +228,5 @@
 	    }
 
-	  sc_start(0);
+// 	  SC_START(0);
 	}
       
@@ -266,5 +275,5 @@
 
 
-	  sc_start(1);
+	  SC_START(1);
 
 	  // reset write_val port
@@ -297,5 +306,5 @@
 	    }
 
-	  sc_start(0);
+// 	  SC_START(0);
 	}
     }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h	(revision 131)
@@ -114,4 +114,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void     constant                  (void);
   public  : void     transition                (void);
 //public  : void     genMoore                  (void) {/* empty */};
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp	(revision 131)
@@ -56,8 +56,16 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
+
+# ifdef SYSTEMCASS_SPECIFIC
+        constant();
+#else
+	SC_METHOD (constant);
+// 	dont_initialize ();
+#endif
+
 	SC_METHOD (transition);
 	dont_initialize ();
 	sensitive << (*(in_CLOCK)).pos();
-	
+
 	SC_METHOD (genMealy_read);
 	dont_initialize ();
@@ -93,11 +101,4 @@
 	  }
 # endif    
-	
-	for (uint32_t i=0; i<_param->_nb_port_read       ; i++)
-	  PORT_WRITE(out_READ_ACK        [i], 1);
-	for (uint32_t i=0; i<_param->_nb_port_write      ; i++)
-	  PORT_WRITE(out_WRITE_ACK       [i], 1);
-	for (uint32_t i=0; i<_param->_nb_port_read_write ; i++)
-	  PORT_WRITE(out_READ_WRITE_ACK  [i], 1);
       }
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_constant.cpp	(revision 131)
@@ -0,0 +1,39 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
+
+namespace morpheo                    {
+namespace behavioural                {
+namespace generic                    {
+namespace registerfile               {
+namespace registerfile_monolithic    {
+
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Monolithic::constant"
+  void RegisterFile_Monolithic::constant (void)
+  {
+    log_begin(RegisterFile_Monolithic,FUNCTION);
+    log_function(RegisterFile_Monolithic,FUNCTION,_name.c_str());
+    
+    for (uint32_t i=0; i<_param->_nb_port_read       ; i++)
+      PORT_WRITE(out_READ_ACK        [i], 1);
+    for (uint32_t i=0; i<_param->_nb_port_write      ; i++)
+      PORT_WRITE(out_WRITE_ACK       [i], 1);
+    for (uint32_t i=0; i<_param->_nb_port_read_write ; i++)
+      PORT_WRITE(out_READ_WRITE_ACK  [i], 1);
+
+    log_end(RegisterFile_Monolithic,FUNCTION);
+  };
+
+}; // end namespace registerfile_monolithic
+}; // end namespace registerfile 
+}; // end namespace generic
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp	(revision 131)
@@ -114,5 +114,5 @@
 
 #if defined(DEBUG_RegisterFile_Monolithic) and DEBUG_RegisterFile_Monolithic and (DEBUG >= DEBUG_TRACE)
-    if (0)
+# if 1
     {
       log_printf(TRACE,RegisterFile,FUNCTION,"  * Dump RegisterFile");
@@ -136,4 +136,5 @@
         }
     }
+# endif
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 131)
@@ -23,4 +23,6 @@
 #endif
 
+  _model.set_model(MODEL_SYSTEMC,true);
+
   Tusage_t _usage = USE_ALL;
 
@@ -30,5 +32,5 @@
 //   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
 //   _usage = usage_unset(_usage,USE_POSITION             );
-   _usage = usage_unset(_usage,USE_STATISTICS           );
+//    _usage = usage_unset(_usage,USE_STATISTICS           );
 //   _usage = usage_unset(_usage,USE_INFORMATION          );
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp	(revision 131)
@@ -21,4 +21,6 @@
   morpheo::behavioural::Parameters_Statistics * _param_stat = new morpheo::behavioural::Parameters_Statistics(5,50);
 #endif
+
+  _model.set_model(MODEL_SYSTEMC,true);
   
   Tusage_t _usage = USE_ALL;
@@ -170,5 +172,5 @@
 	    }
 
-	  SC_START(0);
+// 	  SC_START(0);
 	}
       
@@ -219,5 +221,5 @@
 		}
 	      
-	      SC_START(0);
+// 	      SC_START(0);
 	    }
 	}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp	(revision 131)
@@ -3,9 +3,10 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
 #include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -13,5 +14,4 @@
 namespace generic {
 namespace registerfile {
-
 
   void RegisterFile::allocation (
@@ -27,56 +27,38 @@
     log_printf(FUNC,RegisterFile,"allocation","Begin");
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#ifdef SYSTEMCASS_SPECIFIC
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      in_CLOCK              = new SC_CLOCK           ("in_CLOCK" );
-      in_NRESET             = new SC_IN (Tcontrol_t) ("in_NRESET");
+      __ALLOC0_SIGNAL(in_CLOCK ,"in_CLOCK" ,SC_CLOCK          );
+      __ALLOC0_SIGNAL(in_NRESET,"in_NRESET",SC_IN (Tcontrol_t));
     }
-    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      __ALLOC1_INTERFACE_BEGIN("READ",_param->_nb_port_read);
 
-     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
-    out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];
-    if (_param->_have_port_address == true)
-     in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read];
-    out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read];
+      __ALLOC1_SIGNAL_IN ( in_READ_VAL    ,"VAL"    ,Tcontrol_t);
+      __ALLOC1_SIGNAL_OUT(out_READ_ACK    ,"ACK"    ,Tcontrol_t);
+      if (_param->_have_port_address)
+      __ALLOC1_SIGNAL_IN ( in_READ_ADDRESS,"ADDRESS",Taddress_t);
+      __ALLOC1_SIGNAL_OUT(out_READ_DATA   ,"DATA"   ,Tdata_t   );
 
-    for (uint32_t i=0; i<_param->_nb_port_read; i++)
-      { 
-	rename =  "in_READ_"+toString(i)+"_VAL"    ;
-	 in_READ_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());   
-	rename = "out_READ_"+toString(i)+"_ACK"    ;
-	out_READ_ACK     [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
-	if (_param->_have_port_address == true)
-	  {
-	rename =  "in_READ_"+toString(i)+"_ADDRESS";
-	 in_READ_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
-	  }
-	rename = "out_READ_"+toString(i)+"_DATA"   ;
-	out_READ_DATA    [i]  = new SC_OUT(Tdata_t   ) (rename.c_str());
-      }
+      __ALLOC1_INTERFACE_END(_param->_nb_port_read);
+    }
 
-    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      __ALLOC1_INTERFACE_BEGIN("WRITE",_param->_nb_port_write);
 
-     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
-    out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write];
-    if (_param->_have_port_address == true)
-     in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param->_nb_port_write];
-     in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_write];
-    
-    for (uint32_t i=0; i<_param->_nb_port_write; i++)
-      {
-	rename =  "in_WRITE_"+toString(i)+"_VAL"    ;
-	 in_WRITE_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());
-	rename = "out_WRITE_"+toString(i)+"_ACK"    ;
-	out_WRITE_ACK     [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
-	if (_param->_have_port_address == true)
-	  {
-	rename =  "in_WRITE_"+toString(i)+"_ADDRESS";
-	 in_WRITE_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
-	  }
-	rename =  "in_WRITE_"+toString(i)+"_DATA"   ;
-	 in_WRITE_DATA    [i]  = new SC_IN (Tdata_t   ) (rename.c_str());
-      }
+      __ALLOC1_SIGNAL_IN ( in_WRITE_VAL    ,"VAL"    ,Tcontrol_t);
+      __ALLOC1_SIGNAL_OUT(out_WRITE_ACK    ,"ACK"    ,Tcontrol_t);
+      if (_param->_have_port_address)
+      __ALLOC1_SIGNAL_IN ( in_WRITE_ADDRESS,"ADDRESS",Taddress_t);
+      __ALLOC1_SIGNAL_IN ( in_WRITE_DATA   ,"DATA"   ,Tdata_t   );
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                
+      __ALLOC1_INTERFACE_END(_param->_nb_port_write);
+    }
+#endif
+
+     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                
     if (_param->_instance == instance_RegisterFile_Monolithic)
     // =====[ component_RegisterFile_Monolithic ]=========================
@@ -106,5 +88,6 @@
     // =====[ Component_RegisterFile_Monolithic - Instanciation ]=========
       {
-	(*(component_RegisterFile_Monolithic  ->in_CLOCK )) (*(in_CLOCK ));
+#ifdef SYSTEMCASS_SPECIFIC
+        (*(component_RegisterFile_Monolithic  ->in_CLOCK )) (*(in_CLOCK ));
 	(*(component_RegisterFile_Monolithic  ->in_NRESET)) (*(in_NRESET));
 	
@@ -126,8 +109,23 @@
 	    (*(component_RegisterFile_Monolithic  -> in_WRITE_DATA    [i])) (*( in_WRITE_DATA    [i]));
 	  }
+#else
+	 in_CLOCK         = component_RegisterFile_Monolithic-> in_CLOCK        ;
+	 in_NRESET        = component_RegisterFile_Monolithic-> in_NRESET       ;
+
+         in_READ_VAL      = component_RegisterFile_Monolithic-> in_READ_VAL     ;   
+        out_READ_ACK      = component_RegisterFile_Monolithic->out_READ_ACK     ;
+         in_READ_ADDRESS  = component_RegisterFile_Monolithic-> in_READ_ADDRESS ;
+        out_READ_DATA     = component_RegisterFile_Monolithic->out_READ_DATA    ;
+
+         in_WRITE_VAL     = component_RegisterFile_Monolithic-> in_WRITE_VAL    ;
+        out_WRITE_ACK     = component_RegisterFile_Monolithic->out_WRITE_ACK    ;
+         in_WRITE_ADDRESS = component_RegisterFile_Monolithic-> in_WRITE_ADDRESS;
+         in_WRITE_DATA    = component_RegisterFile_Monolithic-> in_WRITE_DATA   ;
+#endif
       }
     else
     // =====[ Component_RegisterFile_Multi_Banked - Instanciation ]=======
       {
+#ifdef SYSTEMCASS_SPECIFIC
 	(*(component_RegisterFile_Multi_Banked->in_CLOCK )) (*(in_CLOCK ));
 	(*(component_RegisterFile_Multi_Banked->in_NRESET)) (*(in_NRESET));
@@ -150,4 +148,19 @@
 	    (*(component_RegisterFile_Multi_Banked-> in_WRITE_DATA    [i])) (*( in_WRITE_DATA    [i]));
 	  }
+#else
+	 in_CLOCK         = component_RegisterFile_Multi_Banked-> in_CLOCK        ;
+	 in_NRESET        = component_RegisterFile_Multi_Banked-> in_NRESET       ;
+	
+         in_READ_VAL      = component_RegisterFile_Multi_Banked-> in_READ_VAL     ;   
+        out_READ_ACK      = component_RegisterFile_Multi_Banked->out_READ_ACK     ;
+         in_READ_ADDRESS  = component_RegisterFile_Multi_Banked-> in_READ_ADDRESS ;
+        out_READ_DATA     = component_RegisterFile_Multi_Banked->out_READ_DATA    ;
+        
+         in_WRITE_VAL     = component_RegisterFile_Multi_Banked-> in_WRITE_VAL    ;
+        out_WRITE_ACK     = component_RegisterFile_Multi_Banked->out_WRITE_ACK    ;
+         in_WRITE_ADDRESS = component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS;
+         in_WRITE_DATA    = component_RegisterFile_Multi_Banked-> in_WRITE_DATA   ;
+#endif
+
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_deallocation.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_deallocation.cpp	(revision 131)
@@ -3,5 +3,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -19,4 +19,5 @@
     log_printf(FUNC,RegisterFile,"deallocation","Begin");
 
+#ifdef SYSTEMCASS_SPECIFIC
     delete in_CLOCK;
     delete in_NRESET;
@@ -52,6 +53,7 @@
     delete []  in_WRITE_ADDRESS;
     delete []  in_WRITE_DATA   ;
+#endif
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
 //   delete _component;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp	(revision 131)
@@ -69,5 +69,5 @@
 	SC_METHOD (transition);
 	dont_initialize ();
-	sensitive_pos << *(in_CLOCK);
+	sensitive << (*(in_CLOCK)).pos();
 #  endif
 	
@@ -76,5 +76,4 @@
 	SC_METHOD (genMealy_entity);
 	dont_initialize ();
-	//sensitive_pos << *(in_CLOCK);
 	for (uint32_t i=0; i<_param->_nb_entity; i++)
 	  sensitive << *(in_VAL [i]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h	(revision 131)
@@ -116,4 +116,5 @@
 					       
 #ifdef SYSTEMC				       
+  public  : void     constant                  (void);
   public  : void     transition                (void);
   public  : void     genMealy                  (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp	(revision 131)
@@ -63,12 +63,13 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {	
-    // Constant - ack is always at one
-    for (uint32_t i=0; i<_param->_nb_access; i++)
-      {
-	internal_ACCESS_ACK [i] = 1;
-	PORT_WRITE (out_ACCESS_ACK [i], internal_ACCESS_ACK [i]);
-      }
+    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
 
-    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
+#ifdef SYSTEMCASS_SPECIFIC
+    constant();
+#else
+    SC_METHOD (constant);
+//     dont_initialize ();
+#endif
+
     SC_METHOD (transition);
     dont_initialize ();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_constant.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_constant.cpp	(revision 131)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_constant.cpp	(revision 131)
@@ -0,0 +1,32 @@
+#ifdef SYSTEMC
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace generic {
+namespace victim {
+namespace victim_pseudo_lru {
+
+  void Victim_Pseudo_LRU::constant (void)
+  {
+    for (uint32_t i=0; i<_param->_nb_access; i++)
+      {
+	internal_ACCESS_ACK [i] = 1;
+	PORT_WRITE (out_ACCESS_ACK [i], internal_ACCESS_ACK [i]);
+      }
+  };
+
+}; // end namespace victim_pseudo_lru
+}; // end namespace victim
+}; // end namespace generic
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_allocation.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_allocation.cpp	(revision 131)
@@ -28,9 +28,9 @@
     log_printf(FUNC,Victim,FUNCTION,"Begin");
 
-    
+#ifdef SYSTEMCASS_SPECIFIC
     // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     {
-      __ALLOC0_SIGNAL(in_CLOCK ,"in_CLOCK" ,SC_CLOCK          );
-      __ALLOC0_SIGNAL(in_NRESET,"in_NRESET",SC_IN (Tcontrol_t));
+      __ALLOC0_SIGNAL    (in_CLOCK ,"in_CLOCK" ,SC_CLOCK          );
+      __ALLOC0_SIGNAL    (in_NRESET,"in_NRESET",SC_IN(Tcontrol_t));
     }
 
@@ -49,4 +49,5 @@
       __ALLOC1_INTERFACE_END(_param->_nb_access);
     }
+#endif
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -88,4 +89,5 @@
       case VICTIM_PSEUDO_LRU  :
 	{
+#ifdef SYSTEMCASS_SPECIFIC
 	  {
 	    (*(_component_victim_pseudo_lru-> in_CLOCK )) (*( in_CLOCK));
@@ -103,5 +105,14 @@
 	      (*(_component_victim_pseudo_lru->out_ACCESS_VICTIM  [i])) (*(out_ACCESS_VICTIM  [i]));
 	    }
-
+#else
+           in_CLOCK          = _component_victim_pseudo_lru-> in_CLOCK         ;
+           in_NRESET         = _component_victim_pseudo_lru-> in_NRESET        ;
+           in_ACCESS_VAL     = _component_victim_pseudo_lru-> in_ACCESS_VAL    ;
+          out_ACCESS_ACK     = _component_victim_pseudo_lru->out_ACCESS_ACK    ;
+           in_ACCESS_ADDRESS = _component_victim_pseudo_lru-> in_ACCESS_ADDRESS;
+           in_ACCESS_HIT     = _component_victim_pseudo_lru-> in_ACCESS_HIT    ;
+           in_ACCESS_ENTITY  = _component_victim_pseudo_lru-> in_ACCESS_ENTITY ;
+          out_ACCESS_VICTIM  = _component_victim_pseudo_lru->out_ACCESS_VICTIM ;
+#endif
 	  break;
 	}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp	(revision 131)
@@ -35,4 +35,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
+#ifdef SYSTEMCASS_SPECIFIC
 	delete    in_CLOCK ;
 	delete    in_NRESET;
@@ -56,4 +57,5 @@
 	delete []  in_ACCESS_ENTITY ;
 	delete [] out_ACCESS_VICTIM ;
+#endif
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest	(revision 131)
@@ -25,9 +25,11 @@
 #MODELTECH_LIBRARY               = $(LIBRARY)
 
-EXEC_PREFIX 			= $(VALGRIND)
+EXEC_PREFIX 			= 
+#$(VALGRIND)
 EXEC_PARAMS 			= $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR_SYSTEMC))
 EXEC_LOG			= $(patsubst $(DIR_CFG_GEN)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_GEN)/*.cfg))	\
 				  $(patsubst $(DIR_CFG_USER)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_USER)/*.cfg))
-EXEC				= soft
+BIN				= Selftest.x
+EXEC				= $(DIR_BIN)/$(BIN)
 
 #-----[ Rules ]--------------------------------------------
@@ -41,5 +43,5 @@
 				@\
 				$(MAKE) library;\
-                                $(MAKE) $(DIR_BIN)/$(EXEC).x;
+                                $(MAKE) $(EXEC);
 
 execute_only                    : 
@@ -170,8 +172,8 @@
 				done;
 
-$(DIR_LOG)/%.exec.log		: %.cfg  $(EXEC).x
+$(DIR_LOG)/%.exec.log		: %.cfg  $(EXEC)
 				@\
 				$(ECHO) "Execute            : $*";\
-				export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)); $(EXEC_PREFIX) $(DIR_BIN)/$(EXEC).x $(EXEC_PARAMS) $* `$(CAT) $<` &> $@; \
+				export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)); $(EXEC_PREFIX) $(EXEC) $(EXEC_PARAMS) $* `$(CAT) $<` &> $@; \
 				declare timing=`$(GREP) -h "Timing"  $@`;		\
                                 $(GREP) -q "Timing"  $@; 				\
@@ -224,5 +226,5 @@
 				@$(RM) 	$(DIR_LOG)		\
 					$(DIR_CFG_USER)/*~	\
-					$(DIR_BIN)/$(EXEC).x	\
+					$(EXEC)                 \
 					*.vhdl			\
 					*.pos			\
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h	(revision 131)
@@ -42,4 +42,5 @@
 #else
 */
+
 # define PORT_MAP(x,a,b,c,d)						\
   do									\
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Model.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Model.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Model.h	(revision 131)
@@ -31,6 +31,6 @@
   class Model
   {
-  private : static const model_type_t default_type  = MODEL_SYSTEMC;
-  private : static const bool         default_debug = false;
+  private : model_type_t default_type ;
+  private : bool         default_debug;
 
   private : std::map<std::string,model_t> models;
@@ -38,4 +38,5 @@
   public  :               Model (void);
   public  :              ~Model (void);
+  public  : void         set_model (                       model_type_t type, bool debug);
   public  : void         set_model (std::string component, model_type_t type, bool debug);
   public  : model_type_t get_type  (std::string component);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h	(revision 131)
@@ -10,9 +10,9 @@
 #define MORPHEO_MAJOR_VERSION "0"
 #define MORPHEO_MINOR_VERSION "2"
-#define MORPHEO_REVISION      "130"
+#define MORPHEO_REVISION      "131"
 #define MORPHEO_CODENAME      "Castor"
 
-#define MORPHEO_DATE_DAY      "30"  
-#define MORPHEO_DATE_MONTH    "06"
+#define MORPHEO_DATE_DAY      "08"  
+#define MORPHEO_DATE_MONTH    "07"
 #define MORPHEO_DATE_YEAR     "2009" 
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp	(revision 131)
@@ -51,9 +51,12 @@
 
     // If all is ok, mapping
-    log_printf(TRACE,Behavioural,FUNCTION, _("Signal \"%s.%s\"\tlink with \"%s.%s\"")
-	       ,entity_src ->get_name().c_str()
-	       ,signal_src ->get_name().c_str()
-	       ,entity_dest->get_name().c_str()
-	       ,signal_dest->get_name().c_str());
+    log_printf(TRACE,Behavioural,FUNCTION, _("Signal \"%s.%s\" (0x%x) \tlink with \"%s.%s\" (0x%x)")
+	       ,     entity_src ->get_name().c_str()
+	       ,     signal_src ->get_name().c_str()
+	       ,(int)signal_src ->get_sc_signal()
+	       ,     entity_dest->get_name().c_str()
+	       ,     signal_dest->get_name().c_str()
+	       ,(int)signal_dest->get_sc_signal()
+               );
 
     // need an internal signal ?
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp	(revision 131)
@@ -18,4 +18,7 @@
 //     log_begin(Behavioural,FUNCTION);
 
+    default_type  = MODEL_SYSTEMC;
+    default_debug = false;
+
     set_model(NAME_true ,MODEL_SYSTEMC,true );
     set_model(NAME_false,MODEL_SYSTEMC,false);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp	(revision 131)
@@ -11,4 +11,16 @@
 namespace morpheo              {
 namespace behavioural          {
+
+#undef  FUNCTION
+#define FUNCTION "Model::set_model"
+  void Model::set_model (model_type_t type, bool debug)
+  {
+//     log_begin(Behavioural,FUNCTION);
+
+    default_type  = type ;
+    default_debug = debug;
+
+//     log_end(Behavioural,FUNCTION);
+  }
 
 #undef  FUNCTION
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp	(revision 131)
@@ -18,84 +18,99 @@
     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
 
-//     log_printf(TRACE,Behavioural,FUNCTION,"Connection between : %s with %s",get_name().c_str(),signal_dest->get_name().c_str());
-//     log_printf(ALL,Behavioural,FUNCTION," * source");
-//     log_printf(ALL,Behavioural,FUNCTION,"   * direction : %s",toString(_direction).c_str());
-//     log_printf(ALL,Behavioural,FUNCTION,"   * sc_signal : %.8x",_sc_signal);
-//     log_printf(ALL,Behavioural,FUNCTION,"   * type_info : %s",toString(_type_info).c_str());
-//     log_printf(ALL,Behavioural,FUNCTION," * destination");
-//     log_printf(ALL,Behavioural,FUNCTION,"   * direction : %s",toString(signal_dest->_direction).c_str());
-//     log_printf(ALL,Behavioural,FUNCTION,"   * sc_signal : %.8x",signal_dest->_sc_signal);
-//     log_printf(ALL,Behavioural,FUNCTION,"   * type_info : %s",toString(signal_dest->_type_info).c_str());
+    log_printf(TRACE,Behavioural,FUNCTION,"  * Connection between : %s with %s",get_name().c_str(),signal_dest->get_name().c_str());
+//     log_printf(ALL,Behavioural,FUNCTION,"    * source");
+//     log_printf(ALL,Behavioural,FUNCTION,"      * direction : %s",toString(_direction).c_str());
+//     log_printf(ALL,Behavioural,FUNCTION,"      * sc_signal : %.8x",_sc_signal);
+//     log_printf(ALL,Behavioural,FUNCTION,"      * type_info : %s",toString(_type_info).c_str());
+//     log_printf(ALL,Behavioural,FUNCTION,"    * destination");
+//     log_printf(ALL,Behavioural,FUNCTION,"      * direction : %s",toString(signal_dest->_direction).c_str());
+//     log_printf(ALL,Behavioural,FUNCTION,"      * sc_signal : %.8x",signal_dest->_sc_signal);
+//     log_printf(ALL,Behavioural,FUNCTION,"      * type_info : %s",toString(signal_dest->_type_info).c_str());
 
-    TEST_PTR(_sc_signal);
+    TEST_PTR(             _sc_signal);
     TEST_PTR(signal_dest->_sc_signal);
 
     if ((_direction == IN ) and (signal_dest->_direction == IN ))
-      switch (_type_info)
-	{
-	case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
-	case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
-	case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
-	case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
-	case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
-	default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
-	}
+      {
+        switch (_type_info)
+          {
+          case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
+          case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
+          case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
+          case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
+          case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
+          default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
+          }
+      }
     else
-      if ((_direction == IN ) and (signal_dest->_direction == OUT))
-	switch (_type_info)
-	  {
-	  case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
-	  case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
-	  case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
-	  case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
-	  case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
-	  default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
-	  }
-      else
-	if ((_direction == IN ) and (signal_dest->_direction == INTERNAL))
-	  switch (_type_info)
-	    {
-	    case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
-	    case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
-	    case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
-	    case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
-	    case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
-	    default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
-	    }
-	else
+      {
+        if ((_direction == IN ) and (signal_dest->_direction == OUT))
+          {
+            switch (_type_info)
+              {
+              case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
+              case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
+              case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
+              case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
+              case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
+              default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
+              }
+          }
+        else
+          {
+            if ((_direction == IN ) and (signal_dest->_direction == INTERNAL))
+              {
+                switch (_type_info)
+                  {
+                  case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
+                  case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
+                  case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
+                  case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
+                  case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
+                  default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
+                  }
+              }
+            else
+              {
 #ifdef SYSTEMCASS_SPECIFIC
-	  if ((_direction == OUT) and (signal_dest->_direction == IN ))
-	    switch (_type_info)
-	      {
-	      case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
-	      case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
-	      case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
-	      case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
-	      case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
-	      default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
-	      }
-	  else
+                if ((_direction == OUT) and (signal_dest->_direction == IN ))
+                  switch (_type_info)
+                    {
+                    case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
+                    case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
+                    case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
+                    case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
+                    case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
+                    default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
+                    }
+                else
 #endif
-	    if ((_direction == OUT) and (signal_dest->_direction == OUT))
-	      switch (_type_info)
-		{
-		case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
-		case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
-		case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
-		case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
-		case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
-		default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
-		}
-	    else
-	      if ((_direction == OUT) and (signal_dest->_direction == INTERNAL))
-		switch (_type_info)
-		  {
-		  case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
-		  case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
-		  case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
-		  case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
-		  case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
-		  default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
-		  }
+                  {
+                    if ((_direction == OUT) and (signal_dest->_direction == OUT))
+                      {
+                        switch (_type_info)
+                          {
+                          case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
+                          case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
+                          case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
+                          case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
+                          case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
+                          default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
+                          }
+                      }
+                    else
+                      {
+                        if ((_direction == OUT) and (signal_dest->_direction == INTERNAL))
+                          {
+                            switch (_type_info)
+                              {
+                              case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
+                              case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
+                              case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
+                              case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
+                              case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
+                              default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
+                              }
+                          }
 // 	      else
 // 		if ((_direction == INTERNAL) and (signal_dest->_direction == IN ))
@@ -131,6 +146,13 @@
 // 			default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
 // 			}
-		    else
-		      throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" can't been connected with signal \""+signal_dest->get_name()+"\" : illegal direction ("+toString(_direction)+" with "+toString(signal_dest->_direction)+")."));
+                        else
+                          {
+                            throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" can't been connected with signal \""+signal_dest->get_name()+"\" : illegal direction ("+toString(_direction)+" with "+toString(signal_dest->_direction)+")."));
+                          }
+                      }
+                  }
+              }
+          }
+      }
 
     log_printf(FUNC,Behavioural,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_link.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_link.cpp	(revision 130)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_link.cpp	(revision 131)
@@ -102,4 +102,6 @@
     if (not source_have_multi_consumer)
       connect (signal_dest);
+    else
+      msgWarning(_("Source have multi consumer !\n"));
 
     log_printf(FUNC,Behavioural,FUNCTION,"End");
