Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component.cpp	(revision 113)
@@ -29,9 +29,15 @@
     _name              (name)
     ,_param            (param)
-    ,_usage            (usage)
   {
     log_begin(@COMPONENT,FUNCTION);
 
-    usage_environment(_usage);
+    _usage = usage_environment(usage);
+
+#ifdef MODELSIM_COSIMULATION
+    if (_model.get_type(_param->_type) == MODEL_VHDL)
+      {
+        _usage = usage_cosimulation(_usage);
+      }
+#endif
 
     log_printf(INFO,@COMPONENT,FUNCTION,_("<%s> : Allocation"),_name.c_str());
@@ -63,5 +69,5 @@
 
 #ifdef SYSTEMC
-    if (usage_is_set(_usage,USE_SYSTEMC))
+    if (usage_is_set(_usage,USE_SYSTEMC_BODY))
       {
 	log_printf(INFO,@COMPONENT,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
@@ -85,6 +91,7 @@
 // # endif    
 	
+      }
 #endif
-      }
+
     log_end(@COMPONENT,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_allocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_allocation.cpp	(revision 113)
@@ -10,5 +10,5 @@
 #include "Common/include/Max.h"
 
-namespace morpheo                    {
+namespace morpheo {
 namespace behavioural {
 @NAMESPACE_BEGIN
@@ -30,5 +30,5 @@
 
     Entity * entity = _component->set_entity (_name       
-					      ,"@COMPONENT"
+					      ,_param->_type
 #ifdef POSITION
 					      ,COMBINATORY 
@@ -58,4 +58,13 @@
 #endif
 
+#ifdef MODELSIM_COSIMULATION
+    if (usage_is_set(_usage,USE_COSIMULATION))
+      {
+        log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Create Wrapper"),_name.c_str());
+
+        _wrapper = new Wrapper_@COMPONENT (_name.c_str(),"morpheo_behavioural","work");
+      }
+#endif
+
     log_end(@COMPONENT,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_deallocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_deallocation.cpp	(revision 113)
@@ -19,12 +19,19 @@
     log_begin(@COMPONENT,FUNCTION);
 
-    if (usage_is_set(_usage,USE_SYSTEMC))
-      {
-	delete    in_CLOCK ;
-	delete    in_NRESET;
+//    if (usage_is_set(_usage,USE_SYSTEMC_INTERFACE))
+      { 
+        DELETE0_SIGNAL( in_CLOCK ,1);
+        DELETE0_SIGNAL( in_NRESET,1);
       }
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
     delete _component;
+
+#ifdef MODELSIM_COSIMULATION
+    if (usage_is_set(_usage,USE_COSIMULATION))
+      {
+        delete _wrapper;
+      }
+#endif
 
     log_end(@COMPONENT,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics_allocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/New_Component_statistics_allocation.cpp	(revision 113)
@@ -20,5 +20,5 @@
 
     _stat = new Stat (static_cast<std::string>(_name),
-		      "@COMPONENT",
+		      _param->_type,
 		      param_statistics);
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters.cpp	(revision 113)
@@ -14,5 +14,6 @@
 #undef  FUNCTION
 #define FUNCTION "@COMPONENT::Parameters"
-  Parameters::Parameters (bool is_toplevel)
+  Parameters::Parameters (bool is_toplevel):
+    behavioural::Parameters ("@COMPONENT")
   {
     log_begin(@COMPONENT,FUNCTION);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_id.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_id.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_id.cpp	(revision 113)
@@ -0,0 +1,31 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/@DIRECTORY/include/Parameters.h"
+
+namespace morpheo                    {
+namespace behavioural {
+@NAMESPACE_BEGIN
+
+#undef  FUNCTION
+#define FUNCTION "@COMPONENT::id"
+  std::string Parameters::id (void)
+  {
+    log_begin(@COMPONENT,FUNCTION);
+
+    std::string id = 
+      (
+       );
+
+    log_end(@COMPONENT,FUNCTION);
+    
+    return id;
+  };
+
+@NAMESPACE_END
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_msg_error.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/src/Parameters_msg_error.cpp	(revision 113)
@@ -20,5 +20,5 @@
     log_begin(@COMPONENT,FUNCTION);
 
-    Parameters_test test ("@COMPONENT");
+    Parameters_test test (_type);
 
     log_end(@COMPONENT,FUNCTION);
