Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp	(revision 88)
@@ -38,22 +38,36 @@
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
 
+#if DEBUG_Register_unit_Glue == true
+    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+
+    std::cout << *param << std::endl;
+#endif    
+
     log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
     allocation ();
 
 #ifdef STATISTICS
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
-
-    // Allocation of statistics
-    statistics_declaration(param_statistics);
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {
+        log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
+        
+        // Allocation of statistics
+        statistics_declaration(param_statistics);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
-
-    vhdl();
+    if (usage_is_set(_usage,USE_VHDL))
+      {
+        // generate the vhdl
+        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
+        
+        vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
+    if (usage_is_set(_usage,USE_SYSTEMC))
+      {
     // Constant
 
@@ -473,62 +487,62 @@
 #endif    
 
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
-
-    SC_METHOD (genMealy_retire);
-    dont_initialize ();
-//     sensitive_neg << *(in_CLOCK);
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_retire_rob [i];
-	for (uint32_t j=0; j<x; j++)
-	  sensitive << *( in_RETIRE_ROB_VAL                [i][j])
-		    << *( in_RETIRE_ROB_RD_OLD_USE         [i][j]) 
-		    << *( in_RETIRE_ROB_RD_NEW_USE         [i][j])
-		    << *( in_RETIRE_ROB_RE_OLD_USE         [i][j]) 
-		    << *( in_RETIRE_ROB_RE_NEW_USE         [i][j])
-		    << *( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j])
-		    << *( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j])
-		    << *( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j])
-		    << *( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
-      }
-#ifdef SYSTEMCASS_SPECIFIC
-    // List dependency information
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_retire_rob [i];
-	for (uint32_t j=0; j<x; j++)
-	  {
-	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
-	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
-
-	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
-	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RD_OLD_USE         [i][j])); 
-	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
-
-	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j])); 
-	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RD_NEW_USE         [i][j]));
-	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
-	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
-
-	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j])); 
-	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RE_OLD_USE         [i][j]));
-	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
-	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
-
-	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j])); 
-	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RE_NEW_USE         [i][j]));
-	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
-	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
-	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
-	  }
-      }
-#endif    
-
+//     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
+
+//     SC_METHOD (genMealy_retire);
+//     dont_initialize ();
+// //     sensitive_neg << *(in_CLOCK);
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_retire_rob [i];
+// 	for (uint32_t j=0; j<x; j++)
+// 	  sensitive << *( in_RETIRE_ROB_VAL                [i][j])
+// 		    << *( in_RETIRE_ROB_RD_OLD_USE         [i][j]) 
+// 		    << *( in_RETIRE_ROB_RD_NEW_USE         [i][j])
+// 		    << *( in_RETIRE_ROB_RE_OLD_USE         [i][j]) 
+// 		    << *( in_RETIRE_ROB_RE_NEW_USE         [i][j])
+// 		    << *( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j])
+// 		    << *( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j])
+// 		    << *( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j])
+// 		    << *( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
+//       }
+// #ifdef SYSTEMCASS_SPECIFIC
+//     // List dependency information
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_retire_rob [i];
+// 	for (uint32_t j=0; j<x; j++)
+// 	  {
+// 	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
+
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RD_OLD_USE         [i][j])); 
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
+
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j])); 
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RD_NEW_USE         [i][j]));
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
+
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j])); 
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RE_OLD_USE         [i][j]));
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
+
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j])); 
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RE_NEW_USE         [i][j]));
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
+// 	    (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
+// 	  }
+//       }
+// #endif    
+      }
 #endif
     log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
@@ -542,7 +556,10 @@
 
 #ifdef STATISTICS
-    log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
-
-    delete _stat;
+    if (usage_is_set(_usage,USE_STATISTICS))
+      {
+        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
+        
+        delete _stat;
+      }
 #endif
 
