Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_genMealy.cpp	(revision 2)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Counter_genMealy.cpp	(revision 3)
@@ -21,19 +21,24 @@
     for (uint32_t i=0; i<_param._nb_port; i++)
       {
-	Tdata_t data = PORT_READ(in_COUNTER_DATA [i]);
+	Tcontrol_t addsub  = PORT_READ(in_COUNTER_ADDSUB [i]);
+	Tdata_t    data_in = PORT_READ(in_COUNTER_DATA   [i]);
+	Tdata_t    data_out= data_in;
+	log_printf(TRACE,Counter,"genMealy","before : %d %s = %d",data_in,((addsub==1)?"++":"--"),data_out);
 
 	// Staturate counter
-	if (PORT_READ(in_COUNTER_ADDSUB [i]) == 1)
+	if (addsub == 1)
 	  {
-	    if (data < _param._data_max)
-	      data ++;
+	    if (data_out < _param._data_max)
+	      data_out++;
 	  }
 	else
 	  {
-	    if (data > 0)
-	      data --;
+	    if (data_out > 0)
+	      data_out--;
 	  }
 
-	PORT_WRITE(out_COUNTER_DATA[i], data);
+	log_printf(TRACE,Counter,"genMealy","after   : %d %s = %d",data_in,((addsub==1)?"++":"--"),data_out);
+    
+	PORT_WRITE(out_COUNTER_DATA[i], data_out);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_print.cpp	(revision 2)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters_print.cpp	(revision 3)
@@ -7,5 +7,5 @@
 
 #include "Behavioural/Generic/Counter/include/Parameters.h"
-#include <sstream>
+#include "Behavioural/include/XML.h"
 using namespace std;
 
@@ -20,14 +20,18 @@
     log_printf(FUNC,Counter,"print","Begin");
 
-    string tab = string(depth,'\t');
-    ostringstream msg;
-    msg << tab << "<counter>" << endl
-	<< tab << "\t<size_data value=\"" << _size_data << "\" />" << endl
-	<< tab << "\t<nb_port   value=\"" << _nb_port   << "\" />" << endl
-	<< tab << "</counter>" << endl;
+    XML xml ("counter");
+
+    xml.balise_open("counter");
+    xml.  singleton_begin("size_data");
+    xml.    attribut("value",toString(_size_data));
+    xml.  singleton_end();
+    xml.  singleton_begin("nb_port  ");
+    xml.    attribut("value",toString(_nb_port));
+    xml.  singleton_end();
+    xml.balise_close();
 
     log_printf(FUNC,Counter,"print","End");
     
-    return msg.str();
+    return xml.get_body(depth);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_genMealy_read.cpp	(revision 2)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_genMealy_read.cpp	(revision 3)
@@ -27,10 +27,14 @@
  	if ( PORT_READ(in_READ_ENABLE[i]) == 1)
  	  {
-	    log_printf(TRACE,Register_File,"genMealy_read","Read  [%d] : Have transaction, Reg[%d] -> %x",i,PORT_READ(in_READ_ADDRESS[i]),REGISTER_READ(reg_DATA[PORT_READ(in_READ_ADDRESS[i])]));
+	    Taddress_t address = PORT_READ(in_READ_ADDRESS[i]);
+	    Tdata_t    data    = REGISTER_READ(reg_DATA[address]);
+
+	    log_printf(TRACE,Register_File,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
+
 #ifdef STATISTICS
 	    _stat_nb_read ++;
 #endif    
 	    // Write in registerFile
-	    PORT_WRITE(out_READ_DATA[i],REGISTER_READ(reg_DATA[PORT_READ(in_READ_ADDRESS[i])]));
+	    PORT_WRITE(out_READ_DATA[i],data);
  	  }
 	else
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_transition.cpp	(revision 2)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_transition.cpp	(revision 3)
@@ -26,6 +26,4 @@
  	if ( PORT_READ(in_WRITE_ENABLE[i]) == true)
  	  {
-	    log_printf(TRACE,Register_File,"transition","Write [%d] : Have transaction, Reg[%d] <- %x",i,PORT_READ(in_WRITE_ADDRESS[i]),PORT_READ(in_WRITE_DATA   [i]));
-	    
 #ifdef STATISTICS
 	    _stat_nb_write ++;
@@ -35,4 +33,6 @@
 	    Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
 	    
+	    log_printf(TRACE,Register_File,"transition","[%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
+
 	    // Write in registerFile
 	    REGISTER_WRITE(reg_DATA[address],data);
