Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_test_map.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_test_map.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_test_map.cpp	(revision 139)
@@ -14,32 +14,32 @@
 #undef  FUNCTION
 #define FUNCTION "Component::test_map"
+  // bool Component::test_map (bool recursive)
+  // {
+  //   log_printf(INFO,Behavioural,FUNCTION, "Test port map and interface.");
+  //   return test_map (0, recursive);
+  // }
+
   bool Component::test_map (bool recursive)
-  {
-    log_printf(INFO,Behavioural,FUNCTION, "Test port map and interface.");
-    return test_map (0, recursive);
-  }
-
-  bool Component::test_map (uint32_t depth, bool recursive)
   {
     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
 
-    std::string tab  = morpheo::tab(depth);
+    // std::string tab  = morpheo::tab(depth);
     std::string name = _entity->get_name();
     bool test_ok = true;
 
     bool is_behavioural = _list_component->empty ();
-    if (is_behavioural)
-      {
-	log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a behavioural description",tab.c_str(),name.c_str());
-      }
-    else
-      {
-	log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a structural description",tab.c_str(),name.c_str());
-      }
+    // if (is_behavioural)
+    //   {
+    //     log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a behavioural description",tab.c_str(),name.c_str());
+    //   }
+    // else
+    //   {
+    //     log_printf(INFO,Interface,FUNCTION, "%s* Component \"%s\" is a structural description",tab.c_str(),name.c_str());
+    //   }
 
     
     // 	log_printf(INFO,Behavioural,FUNCTION, "%s* Test port I/O",tab.c_str());
     
-    test_ok &= _entity->test_map(depth+1,true,is_behavioural);
+    test_ok &= _entity->test_map(true,is_behavioural);
     
     // 	log_printf(INFO,Behavioural,FUNCTION, "%s* Test all internal component",tab.c_str());
@@ -50,9 +50,9 @@
       if (((*i)->_instance & INSTANCE_COMPONENT) != 0)
         {
-          test_ok &= (*i)->_entity->test_map(depth+1,false,is_behavioural);
+          test_ok &= (*i)->_entity->test_map(false,is_behavioural);
           if (recursive)
             try 
               {
-                test_ok &= (*i)->_component->test_map(depth+1,recursive);
+                test_ok &= (*i)->_component->test_map(recursive);
               }
             catch (morpheo::ErrorMorpheo & error)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Entity_test_map.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Entity_test_map.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Entity_test_map.cpp	(revision 139)
@@ -15,20 +15,13 @@
 #undef  FUNCTION
 #define FUNCTION "Entity::test_map"
-  bool Entity::test_map (uint32_t depth, bool top_level, bool is_behavioural)
+  bool Entity::test_map (bool top_level, bool is_behavioural)
   {
     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
   
-    std::string tab=morpheo::tab(depth);
+    // std::string tab=morpheo::tab(depth);
 
-    log_printf(INFO,Interface,FUNCTION,"%s* Entity \"%s\"",tab.c_str(),_name.c_str());
+    // log_printf(INFO,Interface,FUNCTION,"%s* Entity \"%s\"",tab.c_str(),_name.c_str());
   
-    bool _return = _interfaces->test_map(depth+1,top_level, is_behavioural);
-
-#ifndef DEBUG
-    if (_return == false)
-      {
-	std::cerr << "In entity \"" << _name << "\" (type : \"" << _type << "\"), a lot of port is not connected !" << std::endl;
-      }
-#endif
+    bool _return = _interfaces->test_map(top_level, is_behavioural);
 
     log_printf(FUNC,Behavioural,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_test_map.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_test_map.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_test_map.cpp	(revision 139)
@@ -14,17 +14,17 @@
 #undef  FUNCTION
 #define FUNCTION "Interface::test_map"
-  bool Interface::test_map (uint32_t depth, bool top_level, bool is_behavioural)
+  bool Interface::test_map (std::string name_interfaces, bool top_level, bool is_behavioural)
   {
     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
 
-    std::string tab  = morpheo::tab(depth);
+    // std::string tab  = morpheo::tab(depth);
     bool _return = true;
 
-    log_printf(INFO,Interface,FUNCTION, "%s* Interface \"%s\"",tab.c_str(),_name.c_str());
+    // log_printf(INFO,Interface,FUNCTION, "%s* Interface \"%s\"",tab.c_str(),_name.c_str());
     
     for (std::list<Signal*>::iterator i  = _list_signal->begin();
 	 i != _list_signal->end();
 	 ++i)
-      _return &= (*i)->test_map(depth+1,top_level, is_behavioural);
+      _return &= (*i)->test_map(name_interfaces+"."+_name,top_level, is_behavioural);
 
     log_printf(FUNC,Behavioural,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_test_map.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_test_map.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_test_map.cpp	(revision 139)
@@ -14,18 +14,18 @@
 #undef  FUNCTION
 #define FUNCTION "Interfaces::test_map"
-  bool Interfaces::test_map (uint32_t depth, bool top_level, bool is_behavioural)
+  bool Interfaces::test_map (bool top_level, bool is_behavioural)
   {
     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
 
-    std::string tab  = morpheo::tab(depth);
+    // std::string tab  = morpheo::tab(depth);
 
     bool _return = true;
 
-    log_printf(INFO,Interface,FUNCTION, "%s* Interfaces \"%s\"",tab.c_str(),_name.c_str());
+    // log_printf(INFO,Interface,FUNCTION, "%s* Interfaces \"%s\"",tab.c_str(),_name.c_str());
     
     for (std::list<Interface_fifo*>::iterator i  = _list_interface->begin();
 	 i != _list_interface->end();
 	 ++i)
-      _return &= (*i)->test_map(depth+1, top_level, is_behavioural);
+      _return &= (*i)->test_map(_name, top_level, is_behavioural);
 
     log_printf(FUNC,Behavioural,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_test_map.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_test_map.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_test_map.cpp	(revision 139)
@@ -14,10 +14,11 @@
 #undef  FUNCTION
 #define FUNCTION "Signal::test_map"
-  bool Signal::test_map (uint32_t depth, bool top_level, bool is_behavioural)
+  bool Signal::test_map (std::string name_interface,bool top_level, bool is_behavioural)
   {
     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
 
+    std::string signame = name_interface+"."+_name;
     std::string str     = "";
-    std::string tab     = morpheo::tab(depth);
+//  std::string tab     = morpheo::tab(depth);
     bool        _return = true;
 
@@ -49,5 +50,5 @@
 		    _return = false;
 		    
-		    str = "Signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
+		    str = "Signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
 		  }
 		break;
@@ -58,5 +59,5 @@
 		  {
 		    _return = false;
-		    str = "Signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
+		    str = "Signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
 		  }
 		break;
@@ -68,5 +69,5 @@
 		    _return = false;
 		    
-		    str = "Internal signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
+		    str = "Internal signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
 		  }
 		
@@ -78,5 +79,5 @@
 		    _return = false;
 		    
-		    str += "Internal signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
+		    str += "Internal signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
 		  }
 		
@@ -101,5 +102,5 @@
 		    _return = false;
 		    
-		    str = "Signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
+		    str = "Signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
 		  }
 		break;
@@ -111,5 +112,5 @@
 		    _return = false;
 		    
-		    str = "Signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
+		    str = "Signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
 		  }
 		break;
@@ -121,5 +122,5 @@
 		    _return = false;
 		    
-		    str = "Internal signal \""+_name+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
+		    str = "Internal signal \""+signame+"\" is not mapped with an outpout port top-level's interface or a input port component's interface.";
 		  }
 		
@@ -131,5 +132,5 @@
 		    _return = false;
 		    
-		    str += "Internal signal \""+_name+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
+		    str += "Internal signal \""+signame+"\" is not mapped with an input port top-level's interface or a output port component's interface.";
 		  }
 		
@@ -143,13 +144,9 @@
     if (_return == false)
       {
-#ifndef DEBUG
-	std::cerr << str << std::endl;
-#else
-	log_printf(INFO,Interface,FUNCTION, "%s* %s",tab.c_str(),str.c_str());
-#endif
+	msgError("%s\n",str.c_str());
       }
     else
       {
-// 	log_printf(INFO,Interface,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),_name.c_str());
+// 	log_printf(INFO,Interface,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),signame.c_str());
       }
 
@@ -181,5 +178,5 @@
 //     else
 //       {
-// // 	log_printf(INFO,Behavioural,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),_name.c_str());
+// // 	log_printf(INFO,Behavioural,FUNCTION, "%s* Signal \"%s\" is OK.",tab.c_str(),signame.c_str());
 //       }
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat.cpp	(revision 139)
@@ -5,6 +5,6 @@
 namespace behavioural {
 
-  Stat::Stat (std::string name_instance,
-	      std::string name_component,
+  Stat::Stat (std::string             name_instance,
+	      std::string             name_component,
 	      Parameters_Statistics * param):
     _name_instance         (name_instance),
@@ -16,18 +16,19 @@
     _generate_file = true;
 
-    _list_operand  = new std::map<std::string, var_t>;
-    _list_expr     = new std::list<expr_t>;
-    _list_stat     = new std::list<Stat *>;
-    _list_counters = new std::list<counters_t *>;
+    _list_operand         = new std::map<std::string, var_t>;
+    _list_expr_per_cycle  = new std::list<expr_t>;
+    _list_expr_per_period = new std::list<expr_t>;
+    _list_stat            = new std::list<Stat *>;
+    _list_counters        = new std::list<counters_t *>;
 
-    _cycle         = create_variable("cycle");
-//  _cycle         = create_counter("cycle","","");
-    *_cycle        = 0; // for the first period
+    _cycle                = create_variable("cycle");
+//  _cycle                = create_counter("cycle","","");
+    *_cycle               = 0; // for the first period
   }
 
   Stat::Stat (std::string name_instance,
 	      std::string name_component,
-	      cycle_t nb_cycle_before_begin,
-	      cycle_t period):
+	      cycle_t     nb_cycle_before_begin,
+	      cycle_t     period):
     _name_instance         (name_instance),
     _name_component        (name_component),
@@ -38,12 +39,13 @@
     _generate_file = true;
 
-    _list_operand  = new std::map<std::string, var_t>;
-    _list_expr     = new std::list<expr_t>;
-    _list_stat     = new std::list<Stat *>;
-    _list_counters = new std::list<counters_t *>;
+    _list_operand         = new std::map<std::string, var_t>;
+    _list_expr_per_cycle  = new std::list<expr_t>;
+    _list_expr_per_period = new std::list<expr_t>;
+    _list_stat            = new std::list<Stat *>;
+    _list_counters        = new std::list<counters_t *>;
 
-    _cycle         = create_variable("cycle");
-//  _cycle         = create_counter("cycle","","");
-    *_cycle        = 0; // for the first period
+    _cycle                = create_variable("cycle");
+//  _cycle                = create_counter("cycle","","");
+    *_cycle               = 0; // for the first period
   }
 
@@ -63,11 +65,19 @@
 
     // parcourir la liste et desallouer les arbres
-    for (std::list<expr_t>::iterator i=_list_expr->begin();
-	 i!= _list_expr->end();
+    for (std::list<expr_t>::iterator i=_list_expr_per_cycle->begin();
+	 i!= _list_expr_per_cycle->end();
 	 ++i)
       {
 	delete i->expression;
       }
-    delete _list_expr;
+    delete _list_expr_per_cycle;
+
+    for (std::list<expr_t>::iterator i=_list_expr_per_period->begin();
+	 i!= _list_expr_per_period->end();
+	 ++i)
+      {
+	delete i->expression;
+      }
+    delete _list_expr_per_period;
 
     // parcourir la liste et desallouer les arbres
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_create_expr.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_create_expr.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_create_expr.cpp	(revision 139)
@@ -18,7 +18,10 @@
     expression.variable   = (*_list_operand) [varname].counter;
     expression.expression = string2tree(expr);
-    expression.each_cycle = each_cycle;
+//  expression.each_cycle = each_cycle;
 
-    _list_expr->push_back(expression);
+    if (each_cycle)
+      _list_expr_per_cycle ->push_back(expression);
+    else
+      _list_expr_per_period->push_back(expression);
   }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_eval_exprs.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_eval_exprs.cpp	(revision 138)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_eval_exprs.cpp	(revision 139)
@@ -7,11 +7,14 @@
   {
     // parcourir la liste et desallouer les counters
-    for (std::list<expr_t>::iterator i=_list_expr->begin();
-	 i!= _list_expr->end();
+    for (std::list<expr_t>::iterator i=_list_expr_per_cycle->begin();
+	 i!= _list_expr_per_cycle->end();
 	 ++i)
-      {
-	if (i->each_cycle == only_each_cycle)
-	  eval_expr (*i);
-      }
+      eval_expr (*i);
+
+    if (not only_each_cycle)
+      for (std::list<expr_t>::iterator i=_list_expr_per_period->begin();
+           i!= _list_expr_per_period->end();
+           ++i)
+        eval_expr (*i);
   }
 };  
