Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h	(revision 56)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h	(revision 57)
@@ -20,4 +20,5 @@
 #include "Common/include/ToString.h"
 #include "Common/include/Debug.h"
+#include "Behavioural/include/Usage.h"
 
 using namespace std;
@@ -26,12 +27,27 @@
 namespace behavioural          {
 
+  typedef uint8_t Tinstance_t;
+
+#define INSTANCE_NONE         0x0
+#define INSTANCE_LIBRARY      0x1
+#define INSTANCE_COMPONENT    0x2
+#define INSTANCE_POSITION     0x4
+#define INSTANCE_ALL          0x7
+
+  typedef struct
+  {
+    public : Tinstance_t _instance;
+    public : Entity         * _entity  ;
+  } Tcomponent_t;    
+  
   class Component
   {
     // -----[ fields ]----------------------------------------------------
+  private   : const Tusage_t        _usage;
   private   : Entity              * _entity        ;
-  private   : list<Entity *>      * _list_component;
-    
+  private   : list<Tcomponent_t*> * _list_component;
+
     // -----[ methods ]---------------------------------------------------
-  public    :                       Component         (void);
+  public    :                       Component         (Tusage_t usage=USE_ALL);
   public    :                       Component         (const Component & component);
   public    :                       ~Component        ();
@@ -52,4 +68,5 @@
 						       ,uint32_t   size_y 
 #endif
+						       ,Tinstance_t instance=INSTANCE_ALL 
 						       );
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h	(revision 56)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h	(revision 57)
@@ -18,4 +18,5 @@
 #include "Common/include/ToString.h"
 #include "Common/include/Debug.h"
+#include "Behavioural/include/Usage.h"
 
 using namespace std;
@@ -32,4 +33,6 @@
   private   : const schema_t        _schema       ;
 #endif
+  private   : const Tusage_t        _usage;
+
   private   : Interfaces          * _interfaces   ;
 
@@ -50,4 +53,5 @@
 						       ,schema_t      schema 
 #endif
+							,Tusage_t       usage=USE_ALL
 							);
   public    :                        Entity           (const Entity & entity);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h	(revision 56)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h	(revision 57)
@@ -25,4 +25,5 @@
 #include "Common/include/ErrorMorpheo.h"
 #include "Common/include/Debug.h"
+#include "Behavioural/include/Usage.h"
 
 using namespace std;
@@ -38,4 +39,8 @@
   protected : const direction_t     _direction    ;
   protected : const localisation_t  _localisation ;
+#endif
+  protected : const Tusage_t        _usage;
+
+#ifdef POSITION
   protected :       string          _comment      ;
 #endif
@@ -59,4 +64,5 @@
 							  ,localisation_t localisation
 #endif
+							  ,Tusage_t       usage=USE_ALL
 							  );
 
@@ -97,7 +103,15 @@
 
       Signal    * sig  = set_signal (name, IN , size, presence_port);
-      sc_in_clk * port = new sc_in_clk (sig->_name.c_str());
-
-      sig->alloc<bool> (static_cast<void *>(port));
+      sc_in_clk * port;
+
+      if (_usage & USE_SYSTEMC)
+	{
+	  port = new sc_in_clk (sig->_name.c_str());
+	  sig->alloc<bool> (static_cast<void *>(port));
+	}
+      else
+	{
+	  port = NULL;
+	}
 
       log_printf(FUNC,Behavioural,"set_signal_clk","End");
@@ -118,7 +132,15 @@
 
       Signal    * sig  = set_signal (name, IN , size, presence_port);
-      sc_in <T> * port = new sc_in <T> (sig->_name.c_str());
-
-      sig->alloc<T> (static_cast<void *>(port));
+      sc_in <T> * port;
+
+      if (_usage & USE_SYSTEMC)
+	{
+	  port = new sc_in <T> (sig->_name.c_str());
+	  sig->alloc<T> (static_cast<void *>(port));
+	}
+      else
+	{
+	  port = NULL;
+	}
 
       log_printf(FUNC,Behavioural,"set_signal_in","End");
@@ -139,7 +161,15 @@
 
       Signal * sig = set_signal (name, OUT , size, presence_port);
-      sc_out <T> * port = new sc_out <T> (sig->_name.c_str());
-
-      sig->alloc<T> (static_cast<void *>(port));
+      sc_out <T> * port;
+
+      if (_usage & USE_SYSTEMC)
+	{
+	  port = new sc_out <T> (sig->_name.c_str());
+	  sig->alloc<T> (static_cast<void *>(port));
+	}
+      else
+	{
+	  port = NULL;
+	}
 
       log_printf(FUNC,Behavioural,"set_signal_out","End");
@@ -155,7 +185,15 @@
 
       Signal * sig = set_signal (name, INTERNAL , size, PORT_VHDL_NO_TESTBENCH_NO);
-      sc_signal <T> * port = new sc_signal <T> (sig->_name.c_str());
-
-      sig->alloc<T> (static_cast<void *>(port));
+      sc_signal <T> * port;
+
+      if (_usage & USE_SYSTEMC)
+	{
+	  port = new sc_signal <T> (sig->_name.c_str());
+	  sig->alloc<T> (static_cast<void *>(port));
+	}
+      else
+	{
+	  port = NULL;
+	}
 
       log_printf(FUNC,Behavioural,"set_signal_internal","End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface_fifo.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface_fifo.h	(revision 56)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface_fifo.h	(revision 57)
@@ -45,4 +45,5 @@
 							  ,localisation_t localisation
 #endif
+							  ,Tusage_t       usage=USE_ALL
 							  );
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h	(revision 56)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h	(revision 57)
@@ -18,4 +18,5 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
+#include "Behavioural/include/Usage.h"
 
 using namespace std;
@@ -28,8 +29,10 @@
     // -----[ fields ]----------------------------------------------------
   private   : const string               _name;
+  private   : const Tusage_t             _usage;
   private   : list<Interface_fifo*>    * _list_interface;
 
     // -----[ methods ]---------------------------------------------------
-  public    :                       Interfaces            (string name);
+  public    :                       Interfaces            (string name, 
+							   Tusage_t usage=USE_ALL);
   public    :                       Interfaces            (const Interfaces & interfaces);
   public    :                       ~Interfaces           ();
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h	(revision 57)
@@ -0,0 +1,31 @@
+#ifndef morpheo_behavioural_Types_h
+#define morpheo_behavioural_Types_h
+
+#include "Common/include/Types.h"
+
+namespace morpheo {
+namespace behavioural {
+  
+  typedef bool          Tcontrol_t;
+  typedef uint8_t       Toperation_t;
+//typedef uint8_t       Tdestination1_t;
+//typedef uint8_t       Tdestination2_t;
+//typedef uint8_t       Texec_flag_t;
+//typedef bool          Texec_excep_t;
+//typedef uint8_t       Tcondition_t;
+//typedef uint8_t       Tbranch_state_t;
+
+  typedef uint8_t       Tcontext_t;
+  typedef uint8_t       Tpacket_t;
+  typedef uint8_t       Ttype_t;
+  typedef uint8_t       Tlsq_ptr_t;
+
+  typedef uint8_t       Tgeneral_address_t;
+  typedef uint32_t      Tgeneral_data_t;
+  typedef uint8_t       Tspecial_address_t;
+  typedef uint32_t      Tspecial_data_t;
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Usage.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Usage.h	(revision 57)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Usage.h	(revision 57)
@@ -0,0 +1,20 @@
+#ifndef morpheo_behavioural_Usage_h
+#define morpheo_behavioural_Usage_h
+
+namespace morpheo {
+namespace behavioural {
+
+  typedef uint8_t Tusage_t;
+
+#define USE_SYSTEMC        0x01
+#define USE_VHDL           0x02
+#define USE_VHDL_TESTBENCH 0x04
+#define USE_STATISTICS     0x08
+#define USE_POSITION       0x10
+#define USE_ALL            0x1F
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+
+#endif
+
