Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp	(revision 106)
@@ -17,7 +17,10 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::full_crossbar_genMealy_read"
   void RegisterFile_Multi_Banked::full_crossbar_genMealy_read (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
     bool read_port_use [_param->_nb_bank][_param->_nb_port_read_by_bank];
@@ -32,5 +35,5 @@
 	bool ack = false;
 
-	log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","read[%d] : %d",i,val);
+	log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * read [%d] : %d",i,val);
 
 	if (val == true)
@@ -43,7 +46,7 @@
 	      address = 0;
 
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * address   : %d",address);
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank      : %d",bank   );
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
 
 	    // Search loop
@@ -59,10 +62,10 @@
 		    Taddress_t num_reg = address_num_reg (address);
 
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * num_reg   : %d",num_reg);
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank_port : %d",j);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j);
 
 		    Tdata_t    data    = reg_DATA[bank][num_reg];
 		    
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * data      : %d",data);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * data      : %d",data);
 
 		    PORT_WRITE(out_READ_DATA [i], data);
@@ -77,5 +80,5 @@
       }
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp	(revision 106)
@@ -17,7 +17,10 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::full_crossbar_genMealy_write"
   void RegisterFile_Multi_Banked::full_crossbar_genMealy_write (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
     bool write_port_use [_param->_nb_bank][_param->_nb_port_write_by_bank];
@@ -32,5 +35,5 @@
 	bool ack = false;
 
-	log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write","write[%d] : %d",i,val);
+	log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * write [%d] : %d",i,val);
 
 	if (val == true)
@@ -43,7 +46,7 @@
 	    else
 	      address = 0;
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * address   : %d",address);
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * bank      : %d",bank   );
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
 
 	    // Search loop
@@ -60,6 +63,6 @@
 		    Taddress_t num_reg = address_num_reg (address);
 
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * num_reg   : %d",num_reg);
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * bank_port : %d",j      );
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j      );
 		    		    
 		    internal_WRITE_NUM_REG [i] = num_reg;
@@ -77,5 +80,5 @@
       }
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_transition.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_transition.cpp	(revision 106)
@@ -17,9 +17,12 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::full_crossbar_genMealy_transition"
   void RegisterFile_Multi_Banked::full_crossbar_transition (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_transition","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"full_crossbar_transition","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_read.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_read.cpp	(revision 106)
@@ -17,13 +17,15 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::genMealy_read"
   void RegisterFile_Multi_Banked::genMealy_read (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_read","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
     // call function pointer
     (this->*function_genMealy_read) ();
 
-
-    log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_read","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_write.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_genMealy_write.cpp	(revision 106)
@@ -17,12 +17,15 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::genMealy_write"
   void RegisterFile_Multi_Banked::genMealy_write (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_write","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
     // call function pointer
     (this->*function_genMealy_write) ();
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"genMealy_write","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp	(revision 106)
@@ -17,7 +17,10 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::partial_crossbar_genMealy_read"
   void RegisterFile_Multi_Banked::partial_crossbar_genMealy_read (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_read","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
     bool read_port_use [_param->_nb_bank][_param->_nb_port_read_by_bank];
@@ -32,5 +35,5 @@
 	bool ack = false;
 
-	log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read","read[%d] : %d",i,val);
+	log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * read [%d] : %d",i,val);
 
 	if (val == true)
@@ -42,7 +45,7 @@
 	    else
 	      address = 0;
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * address   : %d",address);
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank      : %d",bank   );
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
 
 // 	    // Search loop
@@ -61,10 +64,10 @@
 		    Taddress_t num_reg = address_num_reg (address);
 
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * num_reg   : %d",num_reg);
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * bank_port : %d",j);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j);
 
 		    Tdata_t    data    = reg_DATA[bank][num_reg];
 		    
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * data      : %d",data);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * data      : %d",data);
 
 		    PORT_WRITE(out_READ_DATA [i], data);
@@ -79,5 +82,5 @@
       }
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_read","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp	(revision 106)
@@ -17,7 +17,10 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::partial_crossbar_genMealy_write"
   void RegisterFile_Multi_Banked::partial_crossbar_genMealy_write (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
     bool write_port_use [_param->_nb_bank][_param->_nb_port_write_by_bank];
@@ -31,5 +34,5 @@
 	bool ack = false;
 
-	log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write","write[%d] : %d",i,val);
+	log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"  * write [%d] : %d",i,val);
 
 	if (val == true)
@@ -42,7 +45,7 @@
 	    else
 	      address = 0;
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * address   : %d",address);
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
-	    log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * bank      : %d",bank   );
+	    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank      : %d",bank   );
 
 // 	    // Search loop
@@ -61,6 +64,6 @@
 		    Taddress_t num_reg = address_num_reg (address);
 
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * num_reg   : %d",num_reg);
-		    log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * bank_port : %d",j      );
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * num_reg   : %d",num_reg);
+		    log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION,"    * bank_port : %d",j      );
 		    		    
 		    internal_WRITE_NUM_REG [i] = num_reg;
@@ -79,5 +82,5 @@
       }
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_transition.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_transition.cpp	(revision 106)
@@ -17,9 +17,12 @@
 
 
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::partial_crossbar_transition"
   void RegisterFile_Multi_Banked::partial_crossbar_transition (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_transition","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"partial_crossbar_transition","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp	(revision 106)
@@ -16,8 +16,10 @@
 namespace registerfile_multi_banked {
 
-
+#undef  FUNCTION
+#define FUNCTION "RegisterFile_Multi_Banked::transition"
   void RegisterFile_Multi_Banked::transition (void)
   {
-    log_printf(FUNC,RegisterFile_Multi_Banked,"transition","Begin");
+    log_begin(RegisterFile_Multi_Banked,FUNCTION);
+    log_function(RegisterFile_Multi_Banked,FUNCTION,_name.c_str());
     
     // call function pointer
@@ -35,9 +37,39 @@
       }
 
+#if defined(DEBUG_RegisterFile_Multi_Banked) and DEBUG_RegisterFile_Multi_Banked and (DEBUG >= DEBUG_TRACE)
+    {
+      log_printf(TRACE,RegisterFile,FUNCTION,"  * Dump RegisterFile");
+
+      uint32_t limit = 4;
+      
+      for (uint32_t i=0; i<_param->_nb_bank; i++)
+        {
+          
+          log_printf(TRACE,RegisterFile,FUNCTION,"  Bank %d",i);
+
+          for (uint32_t j=0; j<_param->_nb_word_by_bank; j+=limit)
+            {
+              std::string str = "";
+              
+              for (uint32_t k=0; k<limit; k++)
+                {
+                  uint32_t index = j+k;
+                  if (index >= _param->_nb_word)
+                    break;
+                  else
+                    str+=toString("[%.4d] %.8x ",index,reg_DATA[i][index]);
+                }
+              
+              log_printf(TRACE,RegisterFile,FUNCTION,"  %s",str.c_str());
+            }
+        }
+    }
+#endif
+
 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     end_cycle();
 #endif
 
-    log_printf(FUNC,RegisterFile_Multi_Banked,"transition","End");
+    log_end(RegisterFile_Multi_Banked,FUNCTION);
   };
 
