Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h	(revision 62)
@@ -38,5 +38,5 @@
   {
     public : Tinstance_t _instance;
-    public : Entity         * _entity  ;
+    public : Entity    * _entity  ;
   } Tcomponent_t;    
   
@@ -74,6 +74,6 @@
 
   private   : Entity *              find_entity       (string name);
-  private   : Interface *           find_interface    (string   name  , 
-						       Entity * entity);
+//private   : Interface *           find_interface    (string   name  , 
+//						       Entity * entity);
 
 #ifdef VHDL
@@ -81,8 +81,16 @@
 #endif
 
+
+  private   : Signal *              signal_internal   (Entity * entity_productor,
+						       Signal * signal_productor);
+
   public    : void                  port_map          (string component_src ,
 						       string port_src      ,
 						       string component_dest,
 						       string port_dest    );
+  public    : void                  port_map          (string component_src ,
+						       string port_src      );
+
+  public    : bool                  test_map          (void);
 
 #ifdef POSITION
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h	(revision 62)
@@ -131,4 +131,27 @@
 #define EXCEPTION_MEMORY_BUS_ERROR               0x4  // Access at a invalid physical address
 #define EXCEPTION_MEMORY_MISS_SPECULATION        0x5  // Load miss speculation
+
+  //==================================================[ dcache_type ]=====
+#  define DCACHE_LOAD                    0x0      // 0000
+#  define DCACHE_LOCK                    0x1      // 0001
+#  define DCACHE_INVALIDATE              0x2      // 0010
+#  define DCACHE_PREFETCH                0x3      // 0011
+//#define DCACHE_                        0x4      // 0100
+//#define DCACHE_                        0x5      // 0101
+#  define DCACHE_FLUSH                   0x6      // 0110
+#  define DCACHE_SYNCHRONIZATION         0x7      // 0111
+
+#  define DCACHE_STORE_8                 0x8      // 1000
+#  define DCACHE_STORE_16                0x9      // 1001
+#  define DCACHE_STORE_32                0xa      // 1010
+#  define DCACHE_STORE_64                0xb      // 1011
+//#define DCACHE_                        0xc      // 1100
+//#define DCACHE_                        0xd      // 1101
+//#define DCACHE_                        0xe      // 1110
+//#define DCACHE_                        0xf      // 1111
+
+
+// just take the 4 less significative bits.
+#define operation_to_dcache_type(x) (x&0xf)
 
   /*
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h	(revision 62)
@@ -25,4 +25,6 @@
 #define             DEBUG_Read_queue                              false
 #define             DEBUG_Reservation_station                     false
+#define         DEBUG_Register_unit				  true
+#define           DEBUG_Register_unit_Glue			  false
 #define     DEBUG_Multi_Front_end                                 false
 #define       DEBUG_Front_end                                     false
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h	(revision 62)
@@ -80,4 +80,6 @@
 #endif
 
+  public    : bool                  test_map          (bool top_level);
+
 #ifdef POSITION
   public    : XML                   toXML             (void);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h	(revision 62)
@@ -22,4 +22,5 @@
 #include "Behavioural/include/Vhdl.h"
 #endif
+#include "Common/include/ChangeCase.h"
 #include "Common/include/ToString.h"
 #include "Common/include/ErrorMorpheo.h"
@@ -230,4 +231,6 @@
 #endif
 
+  public    : bool                  test_map             (bool top_level);
+
 #ifdef POSITION
   public    : void                  interface_map        (void * entity,
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h	(revision 62)
@@ -80,4 +80,7 @@
   public    : XML                   toXML_mapping         (void);
 #endif
+
+  public    : bool                  test_map              (bool top_level);
+
   public    : friend ostream&       operator<<            (ostream& output_stream,
   					  		   morpheo::behavioural::Interfaces & x);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h	(revision 62)
@@ -15,4 +15,5 @@
 #include "Common/include/ErrorMorpheo.h"
 #include "Common/include/ToString.h"
+#include "Common/include/Log2.h"
 #include "Common/include/Debug.h"
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 62)
@@ -53,19 +53,20 @@
 
     // -----[ fields ]----------------------------------------------------
-  private   : const string          _name         ;
-  private   : const direction_t     _direction    ;
-  private   : const uint32_t        _size         ;
-  private   : const presence_port_t _presence_port;
+  private   : const string          _name          ;
+  private   : const direction_t     _direction     ;
+  private   : const uint32_t        _size          ;
+  private   : const presence_port_t _presence_port ;
 
   private   : Signal *              _connect_to_signal;   // the actual implementaion, this signal link with one signal (but if signal is an output, it can be connect with many signal ...)
   private   : Signal *              _connect_from_signal; // producter of signal. If NULL, then producteur is the current entity
-  private   : bool                  _is_allocate  ; // Have allocate a sc_in or sc_out port
-  private   : void *                _sc_signal    ; // sc_in or sc_out associated at this signal
-  private   : bool                  _is_map       ; 
-  private   : void *                _sc_signal_map; // sc_out generated this signal
-  private   : type_info_t           _type_info    ;
+  private   : bool                  _is_allocate   ; // Have allocate a sc_in or sc_out port
+  private   : void *                _sc_signal     ; // sc_in or sc_out associated at this signal
+  private   : void *                _sc_signal_map ; // sc_out generated this signal
+  private   : bool                  _is_map_as_src ; 
+  private   : bool                  _is_map_as_dest;
+  private   : type_info_t           _type_info     ;
 
 #ifdef VHDL_TESTBENCH
-  private   : list<string>        * _list_value   ;
+  private   : list<string>        * _list_value    ;
 #endif
 
@@ -78,17 +79,20 @@
   public    :                   ~Signal         ();
 
-  public    : string            get_name        (void);
-  public    : uint32_t          get_size        (void);
-  public    : bool              get_is_map      (void);
-  public    : Signal *          get_connect_to_signal (void);
+  public    : string            get_name                (void);
+  public    : uint32_t          get_size                (void);
+  public    : Signal *          get_connect_to_signal   (void);
   public    : Signal *          get_connect_from_signal (void);
-  public    : direction_t       get_direction   (void);
-
-  public    : bool              presence_vhdl      (void);
-  public    : bool              presence_testbench (void);
-
-//   public    : void              mapping         (Signal * signal);
-  public    : void              link            (Signal * signal  ,
-						 bool     is_port_component);
+  public    : direction_t       get_direction           (void);
+  public    : type_info_t       get_type_info           (void);
+
+  public    : bool              presence_vhdl           (void);
+  public    : bool              presence_testbench      (void);
+
+  public    : bool              test_map                (bool top_level);
+
+  public    : void              link                    (Signal * signal_dest,
+							 bool     signal_dest_is_port);
+
+  public    : void              connect                 (Signal * signal_dest);
 
 #ifdef SYSTEMC         
