Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h	(revision 145)
@@ -14,17 +14,21 @@
 // =====[ ALLOCATION / DELETE of ARRAY ]=================================
 // ======================================================================
-#define ALLOC0(var,type)                        \
+#define ALLOC0_COND(var,type,cond)              \
   do                                            \
     {                                           \
-      var = new type;                           \
-    } while (0)
-
-#define ALLOC1(var,type,s1)                     \
+      if (cond)                                 \
+        var = new type;                         \
+    } while (0)
+
+
+#define ALLOC1_COND(var,type,s1,cond)           \
   do                                            \
     {                                           \
-      var = new type [s1];                      \
-    } while (0)
-
-#define ALLOC2(var,type,s1,s2)                   \
+      if (cond)                                 \
+        var = new type [s1];                    \
+    } while (0)
+
+
+#define ALLOC2_COND(var,type,s1,s2,cond)         \
   do                                             \
     {                                            \
@@ -32,9 +36,10 @@
       for (uint32_t it1=0; it1<s1; ++it1)        \
         {                                        \
-          var [it1] = new type [s2];             \
+          if (cond)                              \
+            var [it1] = new type [s2];           \
         }                                        \
     } while (0)
 
-#define ALLOC3(var,type,s1,s2,s3)                \
+#define ALLOC3_COND(var,type,s1,s2,s3,cond)      \
   do                                             \
     {                                            \
@@ -45,50 +50,62 @@
           for (uint32_t it2=0; it2<s2; ++it2)    \
             {                                    \
-              var [it1][it2] = new type [s3];    \
+              if (cond)                          \
+                var [it1][it2] = new type [s3];  \
             }                                    \
         }                                        \
     } while (0)
 
-#define ALLOC4(var,type,s1,s2,s3,s4)                    \
-  do                                                    \
-    {                                                   \
-      var = new type *** [s1];                          \
-      for (uint32_t it1=0; it1<s1; ++it1)               \
-        {                                               \
-          var [it1] = new type ** [s2];                 \
-          for (uint32_t it2=0; it2<s2; ++it2)           \
-            {                                           \
-              var [it1][it2] = new type * [s3];         \
-              for (uint32_t it3=0; it3<s3; ++it3)       \
-                {                                       \
-                  var [it1][it2][it3] = new type [s4];  \
-                }                                       \
-            }                                           \
-        }                                               \
-    } while (0)
-
-#define DELETE0(var)                            \
+#define ALLOC4_COND(var,type,s1,s2,s3,s4,cond)                  \
+  do                                                            \
+    {                                                           \
+      var = new type *** [s1];                                  \
+      for (uint32_t it1=0; it1<s1; ++it1)                       \
+        {                                                       \
+          var [it1] = new type ** [s2];                         \
+          for (uint32_t it2=0; it2<s2; ++it2)                   \
+            {                                                   \
+              var [it1][it2] = new type * [s3];                 \
+              for (uint32_t it3=0; it3<s3; ++it3)               \
+                {                                               \
+                  if (cond)                                     \
+                    var [it1][it2][it3] = new type [s4];        \
+                }                                               \
+            }                                                   \
+        }                                                       \
+    } while (0)
+
+#define ALLOC0(var,type)             ALLOC0_COND(var,type,true)
+#define ALLOC1(var,type,s1)          ALLOC1_COND(var,type,s1,true)
+#define ALLOC2(var,type,s1,s2)       ALLOC2_COND(var,type,s1,s2,true)
+#define ALLOC3(var,type,s1,s2,s3)    ALLOC3_COND(var,type,s1,s2,s3,true)
+#define ALLOC4(var,type,s1,s2,s3,s4) ALLOC4_COND(var,type,s1,s2,s3,s4,true)
+
+
+#define DELETE0_COND(var,cond)                  \
   do                                            \
     {                                           \
-      delete var;                               \
-    } while (0)
-
-#define DELETE1(var,s1)                         \
+      if (cond)                                 \
+        delete var;                             \
+    } while (0)
+
+#define DELETE1_COND(var,s1,cond)               \
   do                                            \
     {                                           \
-      delete [] var;                            \
-    } while (0)
-
-#define DELETE2(var,s1,s2)                      \
+      if (cond)                                 \
+        delete [] var;                          \
+    } while (0)
+
+#define DELETE2_COND(var,s1,s2,cond)            \
   do                                            \
     {                                            \
       for (uint32_t it1=0; it1<s1; ++it1)        \
         {                                        \
-          delete [] var [it1];                   \
+          if (cond)                              \
+            delete [] var [it1];                 \
         }                                        \
       delete [] var;                             \
     } while (0)
 
-#define DELETE3(var,s1,s2,s3)                    \
+#define DELETE3_COND(var,s1,s2,s3,cond)          \
   do                                             \
     {                                            \
@@ -97,5 +114,6 @@
           for (uint32_t it2=0; it2<s2; ++it2)    \
             {                                    \
-              delete [] var [it1][it2];          \
+              if (cond)                          \
+                delete [] var [it1][it2];        \
             }                                    \
           delete [] var [it1];                   \
@@ -104,5 +122,5 @@
     } while (0)
 
-#define DELETE4(var,s1,s2,s3,s4)                        \
+#define DELETE4_COND(var,s1,s2,s3,s4,cond)              \
   do                                                    \
     {                                                   \
@@ -113,5 +131,6 @@
               for (uint32_t it3=0; it3<s3; ++it3)       \
                 {                                       \
-                  delete [] var [it1][it2][it3];        \
+                  if (cond)                             \
+                    delete [] var [it1][it2][it3];      \
                 }                                       \
               delete [] var [it1][it2];                 \
@@ -121,4 +140,10 @@
       delete [] var;                                    \
     } while (0)
+
+#define DELETE0(var)             DELETE1_COND(var,true)
+#define DELETE1(var,s1)          DELETE1_COND(var,s1,true)
+#define DELETE2(var,s1,s2)       DELETE2_COND(var,s1,s2,true)
+#define DELETE3(var,s1,s2,s3)    DELETE3_COND(var,s1,s2,s3,true)
+#define DELETE4(var,s1,s2,s3,s4) DELETE4_COND(var,s1,s2,s3,s4,true)
 
 // ======================================================================
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h	(revision 145)
@@ -19,4 +19,5 @@
 #  define       DEBUG_Queue_Control                               true 
 #  define       DEBUG_RegisterFile                                true
+#  define         DEBUG_RegisterFile_Internal_Banked              true 
 #  define         DEBUG_RegisterFile_Monolithic                   true 
 #  define         DEBUG_RegisterFile_Multi_Banked                 true
@@ -119,4 +120,5 @@
 #  define NAME_Queue_Control                              "Queue_Control"
 #  define NAME_RegisterFile                               "RegisterFile"
+#  define NAME_RegisterFile_Internal_Banked               "RegisterFile_Internal_Banked"
 #  define NAME_RegisterFile_Monolithic                    "RegisterFile_Monolithic"
 #  define NAME_RegisterFile_Multi_Banked                  "RegisterFile_Multi_Banked"
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Function_pointer.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Function_pointer.h	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Function_pointer.h	(revision 145)
@@ -0,0 +1,37 @@
+#ifndef morpheo_behavioural_Function_pointer_h
+#define morpheo_behavioural_Function_pointer_h
+# if 0
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include <list>
+#include "systemc.h"
+
+namespace morpheo     {
+namespace behavioural {
+  
+  typedef void(sc_process_host::*f_t)(void);
+
+  class Function_pointer
+  {
+  private : std::list<f_t> * _transition;
+  private : std::list<f_t> * _genMoore  ;
+
+  public  :       Function_pointer (void);
+  public  :      ~Function_pointer (void);
+  public  : void transition_add    (f_t f);
+  public  : void transition_exec   (void);
+  public  : void genMoore_add      (f_t f);
+  public  : void genMoore_exec     (void);
+  };
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+# endif
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 144)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 145)
@@ -158,5 +158,5 @@
 
       if (test<T>(_size) == false)
-	throw (ErrorMorpheo (toString(_("Signal \"%s\" : size is too small (%d bits) to the associate type (%d bits).\n"),_name.c_str(),_size,8*sizeof(T))));
+        throw (ErrorMorpheo (toString(_("Signal \"%s\" : size is too small (%d bits) to the associate type (%d bits).\n"),_name.c_str(),_size,8*sizeof(T))));
 
       _is_allocate    = true;
