Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h	(revision 29)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h	(revision 29)
@@ -0,0 +1,110 @@
+#ifndef morpheo_behavioural_Interface_h
+#define morpheo_behavioural_Interface_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#include <stdint.h>
+#include <iostream>
+#include <list>
+#include "Behavioural/include/Signal.h"
+#include "Behavioural/include/Direction.h"
+#include "Behavioural/include/Localisation.h"
+#ifdef VHDL
+#include "Behavioural/include/Vhdl.h"
+#endif
+#ifdef VHDL_TESTBENCH
+#include "Behavioural/include/Vhdl_Testbench.h"
+#endif
+#include "Include/ToString.h"
+#include "Include/Debug.h"
+
+using namespace std;
+
+namespace morpheo              {
+namespace behavioural          {
+
+  class Interface
+  {
+    // -----[ fields ]----------------------------------------------------
+  private   : const string          _name         ;
+  private   : const direction_t     _direction    ;
+  private   : const localisation_t  _localisation ;
+  private   :       string          _comment      ;
+  private   : list<Signal>          _list_signal  ;
+
+    // -----[ methods ]---------------------------------------------------
+  public    :                       Interface            (string         name        ,
+							  direction_t    direction   ,
+							  localisation_t localisation);
+
+  public    :                       ~Interface           ();
+
+  public    : void                  set_comment          (string comment);
+  public    : string                get_comment          (void          );
+
+  public    : string                set_signal           (Signal          signal   );
+  public    : string                set_signal           (string          name     ,
+							  direction_t     direction,
+							  uint32_t        size     ,
+							  presence_port_t presence_port = PORT_VHDL_YES_TESTBENCH_YES);
+
+#ifdef SYSTEMC
+  public    : sc_in_clk *           set_signal_clk       (string          name     ,
+							  uint32_t        size     ,
+							  presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
+    {
+      string str = set_signal (name, IN , size, presence_port);
+      sc_in_clk * signal = new sc_in_clk (str.c_str());
+      return signal;
+    };
+
+  public    : template <typename T>
+              sc_in <T> *           set_signal_in       (string          name     ,
+							 uint32_t        size     ,
+							 presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
+    {
+      string str = set_signal (name, IN , size, presence_port);
+      sc_in <T> * signal = new sc_in <T> (str.c_str());
+      return signal;
+    };
+
+  public    : template <typename T>
+              sc_out <T> *          set_signal_out      (string          name     ,
+							 uint32_t        size     ,
+							 presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
+    {
+      string str = set_signal (name, OUT , size, presence_port);
+      sc_out <T> * signal = new sc_out <T> (str.c_str());
+      return signal;
+    };
+#endif
+
+  public    : string                get_signal           (void);
+
+#ifdef VHDL
+  public    : void                  set_port             (Vhdl * & vhdl);
+#endif
+#ifdef VHDL_TESTBENCH
+  public    : void                  set_port             (Vhdl_Testbench * & vhdl_testbench);
+#endif
+
+  public    : XML                   toXML                (void);
+
+  public    : friend ostream&       operator<<           (ostream& output_stream,
+  					  		  morpheo::behavioural::Interface & x);
+
+  };
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h	(revision 29)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h	(revision 29)
@@ -0,0 +1,59 @@
+#ifndef morpheo_behavioural_Interfaces_h
+#define morpheo_behavioural_Interfaces_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include <stdint.h>
+#include <iostream>
+#include <list>
+#include "Behavioural/include/Interface.h"
+#include "Include/ToString.h"
+#include "Include/Debug.h"
+#ifdef VHDL
+#include "Behavioural/include/Vhdl.h"
+#endif
+#ifdef VHDL_TESTBENCH
+#include "Behavioural/include/Vhdl_Testbench.h"
+#endif
+
+using namespace std;
+
+namespace morpheo              {
+namespace behavioural          {
+
+  class Interfaces
+  {
+    // -----[ fields ]----------------------------------------------------
+  private   : list<Interface>       _list_interface;
+
+    // -----[ methods ]---------------------------------------------------
+  public    :                       Interfaces            (void);
+
+  public    :                       ~Interfaces           ();
+
+  public    : void                  set_interface         (Interface interface);
+  public    : string                get_interface         (void);
+
+#ifdef VHDL
+  public    : void                  set_port              (Vhdl           * & vhdl          );
+#endif
+#ifdef VHDL_TESTBENCH
+  public    : void                  set_port              (Vhdl_Testbench * & vhdl_testbench);
+#endif
+
+  public    : XML                   toXML                 (void);
+
+  public    : friend ostream&       operator<<            (ostream& output_stream,
+  					  		   morpheo::behavioural::Interfaces & x);
+
+  };
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Localisation.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Localisation.h	(revision 29)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Localisation.h	(revision 29)
@@ -0,0 +1,30 @@
+#ifdef VHDL
+
+#ifndef morpheo_behavioural_Localisation_h
+#define morpheo_behavioural_Localisation_h
+
+#include "Include/ToString.h"
+
+namespace morpheo              {
+namespace behavioural          {
+
+  typedef enum {NORTH, SOUTH, EAST, WEST} localisation_t;
+  
+}; // end namespace behavioural          
+  
+  template<>           inline std::string toString<morpheo::behavioural::localisation_t>(const morpheo::behavioural::localisation_t& x)
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::NORTH   : return "north" ; break;
+      case morpheo::behavioural::SOUTH   : return "south" ; break;
+      case morpheo::behavioural::EAST    : return "east"  ; break;
+      case morpheo::behavioural::WEST    : return "west"  ; break;
+      default                            : return ""      ; break;
+      }
+  }
+  
+}; // 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 29)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 29)
@@ -0,0 +1,65 @@
+#ifndef morpheo_behavioural_Signal_h
+#define morpheo_behavioural_Signal_h
+
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include <stdint.h>
+#include <iostream>
+#include "Behavioural/include/Direction.h"
+#include "Behavioural/include/XML.h"
+#include "Include/ToString.h"
+#include "Include/Debug.h"
+
+using namespace std;
+
+namespace morpheo              {
+namespace behavioural          {
+
+  typedef enum {PORT_VHDL_YES_TESTBENCH_YES,
+		PORT_VHDL_YES_TESTBENCH_NO ,
+		PORT_VHDL_NO_TESTBENCH_YES ,
+		PORT_VHDL_NO_TESTBENCH_NO  } presence_port_t;
+
+  class Signal
+  {
+    // -----[ fields ]----------------------------------------------------
+  public    : const string          _name         ;
+  public    : const direction_t     _direction    ;
+  public    : const uint32_t        _size         ;
+  public    : const presence_port_t _presence_port;
+
+    // -----[ methods ]---------------------------------------------------
+  public    :                   Signal          (string          name          ,
+						 direction_t     direction     ,
+						 uint32_t        size          ,
+						 presence_port_t presence_port = PORT_VHDL_YES_TESTBENCH_YES);
+  public    :                   ~Signal         ();
+
+  public    : XML               toXML           (void);
+
+  public    : friend ostream&   operator<<      (ostream& output_stream,
+						 morpheo::behavioural::Signal & x);
+
+  };
+}; // end namespace behavioural          
+
+  template<>           inline std::string toString<morpheo::behavioural::presence_port_t>(const morpheo::behavioural::presence_port_t& x)
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::PORT_VHDL_YES_TESTBENCH_YES : return "Port is in VHDL's model and TestBench's model" ; break;
+      case morpheo::behavioural::PORT_VHDL_YES_TESTBENCH_NO  : return "Port is in VHDL's model                      " ; break;
+      case morpheo::behavioural::PORT_VHDL_NO_TESTBENCH_YES  : return "Port is in                  TestBench's model" ; break;
+      case morpheo::behavioural::PORT_VHDL_NO_TESTBENCH_NO   : return "Port is in none model                        " ; break;
+      default                                                : return "";                                               break;
+      }
+  }
+
+}; // end namespace morpheo              
+
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Vhdl.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Vhdl.h	(revision 25)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Vhdl.h	(revision 29)
@@ -44,5 +44,5 @@
     // -----[ methods ]---------------------------------------------------
   public    :                  Vhdl                        (string name);
-  public    : virtual          ~Vhdl                       ();
+  public    :                  ~Vhdl                       ();
 						           
   public    : void             generate_file               (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/XML.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/XML.h	(revision 25)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/XML.h	(revision 29)
@@ -40,4 +40,5 @@
   public   : bool             singleton_end       (void);
   public   : bool             attribut            (string name, string value);
+  public   : bool             insert_XML          (XML    xml );
 
   public   : void             generate_file       (void);
