Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h	(revision 88)
@@ -38,5 +38,6 @@
 		UINT64_T                   } type_info_t;
 
-  typedef enum {PORT_VHDL_YES_TESTBENCH_YES,
+  typedef enum {PORT_SYSTEMC_NO            , // also, vhdl_no and testbench_no
+                PORT_VHDL_YES_TESTBENCH_YES,
 		PORT_VHDL_YES_TESTBENCH_NO ,
 		PORT_VHDL_NO_TESTBENCH_YES ,
@@ -72,10 +73,10 @@
 
     // -----[ methods ]---------------------------------------------------
-  public    :                   Signal          (std::string          name          ,
-						 direction_t     direction     ,
-						 uint32_t        size          ,
-						 presence_port_t presence_port = PORT_VHDL_YES_TESTBENCH_YES);
-  public    :                   Signal          (const Signal &);
-  public    :                   ~Signal         ();
+  public    :                   Signal                  (std::string     name          ,
+						         direction_t     direction     ,
+						         uint32_t        size          ,
+						         presence_port_t presence_port = PORT_VHDL_YES_TESTBENCH_YES);
+  public    :                   Signal                  (const Signal &);
+  public    :                   ~Signal                 ();
 
   public    : std::string       get_name                (void);
@@ -93,5 +94,5 @@
 
   public    : bool              test_map                (uint32_t depth, bool top_level, bool is_behavioural);
-//   public    : bool              test_equi               (uint32_t depth);
+//public    : bool              test_equi               (uint32_t depth);
 
   public    : void              link                    (Signal * signal_dest,
@@ -108,5 +109,5 @@
 	case IN  : {return read_in  <T>();}
 	case OUT : {return read_out <T>();}
-	default  : throw (ErrorMorpheo ("Signal \""+_name+"\" : direction unknow."));
+	default  : throw (ErrorMorpheo ("Signal \""+_name+"\" : direction unknow.\n"));
 	}
     }
@@ -122,5 +123,5 @@
 	case UINT32_T : return (static_cast<sc_in  <uint32_t> *>(_sc_signal_map)->read()); 
 	case UINT64_T : return (static_cast<sc_in  <uint64_t> *>(_sc_signal_map)->read()); 
-	default       : throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow."));
+	default       : throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.\n"));
 	}
     }
@@ -136,5 +137,5 @@
 	case UINT32_T : return (static_cast<sc_out <uint32_t> *>(_sc_signal_map)->read()); 
 	case UINT64_T : return (static_cast<sc_out <uint64_t> *>(_sc_signal_map)->read()); 
-	default       : throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow."));
+	default       : throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.\n"));
 	}
     }
@@ -148,8 +149,8 @@
 
       if (_type_info != UNKNOW)
-	throw (ErrorMorpheo ("Signal \""+_name+"\" : already allocate."));
+	throw (ErrorMorpheo (toString(_("Signal \"%s\" : already allocate.\n"),_name.c_str())));
 
       if (test<T>(_size) == false)
-	throw (ErrorMorpheo ("Signal \""+_name+"\" : size is too small to the associate type."));
+	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;
@@ -157,6 +158,4 @@
       _sc_signal_map  = sc_signal;
 
-      log_printf(TRACE,Behavioural,FUNCTION, "Allocation of %s - %.8x", _name.c_str(), (uint32_t)(_sc_signal_map));
-
       if (typeid(T) == typeid(bool    ))
 	_type_info = BOOL;
@@ -175,4 +174,6 @@
       else
 	_type_info = UNKNOW;
+
+      log_printf(TRACE,Behavioural,FUNCTION, "Allocation of %s (%s, 0x%.8x)", _name.c_str(),toString(_type_info).c_str(), static_cast<uint32_t>(reinterpret_cast<uint64_t>(_sc_signal_map)));
 
       log_printf(FUNC,Behavioural,FUNCTION,"End");
@@ -204,4 +205,7 @@
   };
 }; // end namespace behavioural          
+
+
+
 
   template<>           inline std::string toString<morpheo::behavioural::presence_port_t>(const morpheo::behavioural::presence_port_t& x)
@@ -221,4 +225,25 @@
   }
 
+  typedef enum {UNKNOW                     ,
+		BOOL                       ,
+		UINT8_T                    ,
+		UINT16_T                   ,
+		UINT32_T                   ,
+		UINT64_T                   } type_info_t;
+
+  template<>           inline std::string toString<morpheo::behavioural::type_info_t>(const morpheo::behavioural::type_info_t& x)
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::BOOL     : return "bool"    ; break;
+      case morpheo::behavioural::UINT8_T  : return "uint8_t" ; break;
+      case morpheo::behavioural::UINT16_T : return "uint16_t"; break;
+      case morpheo::behavioural::UINT32_T : return "uint32_t"; break;
+      case morpheo::behavioural::UINT64_T : return "uint64_t"; break;
+      case morpheo::behavioural::UNKNOW   :
+      default                             : return "unknow"  ; break;
+      }
+  }
+
 }; // end namespace morpheo              
 
