Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/Makefile.deps	(revision 72)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/Makefile.deps	(revision 78)
@@ -13,25 +13,41 @@
 include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
 endif
+ifndef Operation
+include                         $(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.deps
+endif
+ifndef Instruction
+include				$(DIR_MORPHEO)/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.deps
+endif
+
+#-----[ Directory ]----------------------------------------
+
+Custom_DIR			=	$(DIR_MORPHEO)/Behavioural/./Custom
 
 #-----[ Library ]------------------------------------------
-Custom_LIBRARY			= 	-lCustom	\
+
+Custom_LIBRARY			= 	-lCustom			\
+					$(Operation_LIBRARY)		\
+					$(Instruction_LIBRARY)		\
 					$(Behavioural_LIBRARY)	
 
-Custom_DIR_LIBRARY		=	-L$(DIR_MORPHEO)/Behavioural/./Custom/lib	\
+Custom_DIR_LIBRARY		=	-L$(Custom_DIR)/lib		\
+					$(Operation_DIR_LIBRARY)	\
+					$(Instruction_DIR_LIBRARY)	\
 					$(Behavioural_DIR_LIBRARY)
-
-Custom_DEPENDENCIES		=	Behavioural_library
-
-Custom_CLEAN        		=	Behavioural_library_clean
 
 #-----[ Rules ]--------------------------------------------
 
-#.NOTPARALLEL			: Custom_library Custom_library_clean
+Custom_library			:
+				@\
+				$(MAKE) Behavioural_library;		\
+				$(MAKE) Instruction_library;		\
+				$(MAKE) Operation_library;		\
+				$(MAKE) --directory=$(Custom_DIR) --makefile=Makefile;
 
-Custom_library			: $(Custom_DEPENDENCIES)
+
+Custom_library_clean		:
 				@\
-				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/./Custom --makefile=Makefile;
-
-Custom_library_clean		: $(Custom_CLEAN)
-				@\
-				$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/./Custom --makefile=Makefile clean;
+				$(MAKE) Behavioural_library_clean;	\
+				$(MAKE) Instruction_library_clean;	\
+				$(MAKE) Operation_library_clean;	\
+				$(MAKE) --directory=$(Custom_DIR) --makefile=Makefile clean;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom.h	(revision 72)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom.h	(revision 78)
@@ -15,6 +15,8 @@
 #include "Behavioural/include/Usage.h"
 #include "Behavioural/include/Constants.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Types.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Operation.h"
+#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Types.h"
+#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Instruction.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Operation.h"
 
 namespace morpheo {
@@ -23,6 +25,7 @@
 
   // TODO get_custom_vhdl
-  // TODO : complete the custom_decod_t type
-  typedef uint32_t custom_decod_t;
+  typedef uint32_t custom_vhdl_t;
+
+  typedef morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::function_decod_t custom_decod_t;
 
   typedef morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::function_execute_t           custom_execute_genMoore_t;
@@ -34,11 +37,13 @@
   typedef struct 
   {
-    bool                          (*_get_valid_group)               (uint32_t);
-    uint32_t                      (*_get_nb_register)               (uint32_t);
-    access_mode_t                 (*_get_access_mode)               (uint32_t, uint32_t);
-    custom_decod_t              * (*_get_custom_decod)              (uint32_t);
-    custom_execute_genMoore_t   * (*_get_custom_execute_genMoore)   (uint32_t);
+    bool                          (*_get_valid_group              ) (uint32_t);
+    uint32_t                      (*_get_nb_register              ) (uint32_t);
+    access_mode_t                 (*_get_access_mode              ) (uint32_t, uint32_t);
+    custom_decod_t              * (*_get_custom_decod             ) (Toperation_t);
+    custom_execute_genMoore_t   * (*_get_custom_execute_genMoore  ) (Toperation_t);
     custom_execute_transition_t * (*_get_custom_execute_transition) (uint32_t);
-    custom_execute_transition_t * (*_get_custom_execute_reset)      (uint32_t);
+    custom_execute_transition_t * (*_get_custom_execute_reset     ) (uint32_t);
+    custom_vhdl_t               * (*_get_vhdl_decod               ) (void);
+    custom_vhdl_t               * (*_get_vhdl_execute             ) (void);
   } custom_information_t;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_default.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_default.h	(revision 72)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_default.h	(revision 78)
@@ -23,4 +23,7 @@
   custom_execute_transition_t * default_get_custom_execute_transition (uint32_t     group);
   custom_execute_transition_t * default_get_custom_execute_reset      (uint32_t     group);
+  custom_vhdl_t               * default_get_vhdl_decod                (void);
+  custom_vhdl_t               * default_get_vhdl_execute              (void);
+  
   custom_information_t          default_get_custom_information        (uint32_t     context);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_example.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_example.h	(revision 72)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/include/Custom_example.h	(revision 78)
@@ -23,4 +23,7 @@
   custom_execute_transition_t * example_get_custom_execute_transition (uint32_t     group);
   custom_execute_transition_t * example_get_custom_execute_reset      (uint32_t     group);
+  custom_vhdl_t               * example_get_vhdl_decod                (void);
+  custom_vhdl_t               * example_get_vhdl_execute              (void);
+
   custom_information_t          example_get_custom_information        (uint32_t     context);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_default.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_default.cpp	(revision 72)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_default.cpp	(revision 78)
@@ -120,5 +120,5 @@
       }
 
-    return NULL; // unimplemented function
+    return &(morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::instruction_illegal); // unimplemented function
   }
 
@@ -208,4 +208,18 @@
 
 #undef  FUNCTION
+#define FUNCTION "custom::default_get_vhdl_decod"
+  custom_vhdl_t * default_get_vhdl_decod (void)
+  {
+    return NULL; // unimplemented function
+  }
+
+#undef  FUNCTION
+#define FUNCTION "custom::default_get_vhdl_execute"
+  custom_vhdl_t * default_get_vhdl_execute (void)
+  {
+    return NULL; // unimplemented function
+  }
+
+#undef  FUNCTION
 #define FUNCTION "custom::default_get_custom_information"
   custom_information_t default_get_custom_information (uint32_t context)
@@ -220,4 +234,6 @@
     info._get_custom_execute_transition = &morpheo::behavioural::custom::default_get_custom_execute_transition;
     info._get_custom_execute_reset      = &morpheo::behavioural::custom::default_get_custom_execute_reset     ;
+    info._get_vhdl_decod                = &morpheo::behavioural::custom::default_get_vhdl_decod               ;
+    info._get_vhdl_execute              = &morpheo::behavioural::custom::default_get_vhdl_execute             ;
     return info;
   }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_example.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_example.cpp	(revision 72)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Custom/src/Custom_example.cpp	(revision 78)
@@ -147,6 +147,5 @@
       }
 
-    return NULL; // unimplemented function
-
+    return &(morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::instruction_illegal); // unimplemented function
   }
 
@@ -251,4 +250,18 @@
 
 #undef  FUNCTION
+#define FUNCTION "custom::example_get_vhdl_decod"
+  custom_vhdl_t * example_get_vhdl_decod (void)
+  {
+    return NULL; // unimplemented function
+  }
+
+#undef  FUNCTION
+#define FUNCTION "custom::example_get_vhdl_execute"
+  custom_vhdl_t * example_get_vhdl_execute (void)
+  {
+    return NULL; // unimplemented function
+  }
+
+#undef  FUNCTION
 #define FUNCTION "custom::example_get_custom_information"
   custom_information_t example_get_custom_information (uint32_t context)
@@ -265,4 +278,6 @@
     info._get_custom_execute_transition = &morpheo::behavioural::custom::example_get_custom_execute_transition;
     info._get_custom_execute_reset      = &morpheo::behavioural::custom::example_get_custom_execute_reset     ;
+    info._get_vhdl_decod                = &morpheo::behavioural::custom::example_get_vhdl_decod               ;
+    info._get_vhdl_execute              = &morpheo::behavioural::custom::example_get_vhdl_execute             ;
     return info;
   }
