Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp	(revision 88)
@@ -2,5 +2,5 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
@@ -8,5 +8,5 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
 
-namespace morpheo                    {
+namespace morpheo {
 namespace behavioural {
 namespace core {
@@ -14,6 +14,4 @@
 namespace execute_loop {
 namespace register_unit {
-
-
 
 #undef  FUNCTION
@@ -40,5 +38,5 @@
     _interfaces = entity->set_interfaces();
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
     Interface * interface = _interfaces->set_interface(""
@@ -53,5 +51,5 @@
     in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
 
-    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     in_GPR_READ_VAL                 = new SC_IN (Tcontrol_t        )   * [_param->_nb_gpr_read];
     out_GPR_READ_ACK                 = new SC_OUT(Tcontrol_t        )   * [_param->_nb_gpr_read];
@@ -75,5 +73,5 @@
 	out_GPR_READ_ACK           [i]= interface->set_signal_valack_out (ACK);
 	if (_param->_have_port_ooo_engine_id == true)
-	  in_GPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));
+	  in_GPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , _param->_size_ooo_engine_id);
 	in_GPR_READ_NUM_REG       [i]= interface->set_signal_in <Tgeneral_address_t> ("num_reg"       , _param->_size_gpr_address);
 	out_GPR_READ_DATA          [i]= interface->set_signal_out<Tgeneral_data_t   > ("data"          , _param->_size_general_data);
@@ -81,5 +79,5 @@
       }
 
-    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     in_GPR_WRITE_VAL                 = new SC_IN (Tcontrol_t        )   * [_param->_nb_gpr_write];
     out_GPR_WRITE_ACK                 = new SC_OUT(Tcontrol_t        )   * [_param->_nb_gpr_write];
@@ -102,10 +100,10 @@
 	out_GPR_WRITE_ACK           [i]= interface->set_signal_valack_out (ACK);
 	if (_param->_have_port_ooo_engine_id == true)
-	  in_GPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));
+	  in_GPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , _param->_size_ooo_engine_id);
 	in_GPR_WRITE_NUM_REG       [i]= interface->set_signal_in <Tgeneral_address_t> ("num_reg"       , _param->_size_gpr_address);
 	in_GPR_WRITE_DATA          [i]= interface->set_signal_in <Tgeneral_data_t   > ("data"          , _param->_size_general_data);
       }
 
-    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     in_SPR_READ_VAL                 = new SC_IN (Tcontrol_t        )   * [_param->_nb_spr_read];
     out_SPR_READ_ACK                 = new SC_OUT(Tcontrol_t        )   * [_param->_nb_spr_read];
@@ -129,5 +127,5 @@
 	out_SPR_READ_ACK           [i]= interface->set_signal_valack_out (ACK);
 	if (_param->_have_port_ooo_engine_id == true)
-	  in_SPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));
+	  in_SPR_READ_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , _param->_size_ooo_engine_id);
 	in_SPR_READ_NUM_REG       [i]= interface->set_signal_in <Tspecial_address_t> ("num_reg"       , _param->_size_spr_address);
 	out_SPR_READ_DATA          [i]= interface->set_signal_out<Tspecial_data_t   > ("data"          , _param->_size_special_data);
@@ -135,5 +133,5 @@
       }
 
-    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     in_SPR_WRITE_VAL                 = new SC_IN (Tcontrol_t        )   * [_param->_nb_spr_write];
     out_SPR_WRITE_ACK                 = new SC_OUT(Tcontrol_t        )   * [_param->_nb_spr_write];
@@ -156,10 +154,10 @@
 	out_SPR_WRITE_ACK           [i]= interface->set_signal_valack_out (ACK);
 	if (_param->_have_port_ooo_engine_id == true)
-	  in_SPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , log2(_param->_nb_ooo_engine));
+	  in_SPR_WRITE_OOO_ENGINE_ID [i]= interface->set_signal_in <Tcontext_t        > ("ooo_engine_id" , _param->_size_ooo_engine_id);
 	in_SPR_WRITE_NUM_REG       [i]= interface->set_signal_in <Tspecial_address_t> ("num_reg"       , _param->_size_spr_address);
 	in_SPR_WRITE_DATA          [i]= interface->set_signal_in <Tspecial_data_t   > ("data"          , _param->_size_special_data);
       }
 
-    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     in_INSERT_ROB_VAL        = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
     out_INSERT_ROB_ACK        = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
@@ -201,55 +199,56 @@
       }
 
-    // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    in_RETIRE_ROB_VAL            = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
-    out_RETIRE_ROB_ACK            = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RD_OLD_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RD_OLD_NUM_REG = new SC_IN (Tgeneral_address_t)  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RE_OLD_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RE_OLD_NUM_REG = new SC_IN (Tspecial_address_t)  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RD_NEW_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RD_NEW_NUM_REG = new SC_IN (Tgeneral_address_t)  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RE_NEW_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
-    in_RETIRE_ROB_RE_NEW_NUM_REG = new SC_IN (Tspecial_address_t)  ** [_param->_nb_ooo_engine];
-
-    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-      {
-	uint32_t x=_param->_nb_inst_retire_rob [i];
-
-	in_RETIRE_ROB_VAL            [i] = new SC_IN (Tcontrol_t        )  * [x];
-	out_RETIRE_ROB_ACK            [i] = new SC_OUT(Tcontrol_t        )  * [x];
-	in_RETIRE_ROB_RD_OLD_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
-	in_RETIRE_ROB_RD_OLD_NUM_REG [i] = new SC_IN (Tgeneral_address_t)  * [x];
-	in_RETIRE_ROB_RE_OLD_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
-	in_RETIRE_ROB_RE_OLD_NUM_REG [i] = new SC_IN (Tspecial_address_t)  * [x];
-	in_RETIRE_ROB_RD_NEW_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
-	in_RETIRE_ROB_RD_NEW_NUM_REG [i] = new SC_IN (Tgeneral_address_t)  * [x];
-	in_RETIRE_ROB_RE_NEW_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
-	in_RETIRE_ROB_RE_NEW_NUM_REG [i] = new SC_IN (Tspecial_address_t)  * [x];
-
-	for (uint32_t j=0; j<x; j++)
-	  {
-	    Interface_fifo * interface = _interfaces->set_interface("retire_rob_"+toString(i)+"_"+toString(j)
-#ifdef POSITION
-								    ,IN
-								    ,WEST
-								    ,"Interface to update status (retire)"
-#endif
-								    );
-
-
-	    in_RETIRE_ROB_VAL            [i][j] = interface->set_signal_valack_in  (VAL);
-	   out_RETIRE_ROB_ACK            [i][j] = interface->set_signal_valack_out (ACK);
-	    in_RETIRE_ROB_RD_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_old_use"    , 1);
-	    in_RETIRE_ROB_RD_OLD_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_old_num_reg", _param->_size_gpr_address);
-	    in_RETIRE_ROB_RE_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("re_old_use"    , 1);
-	    in_RETIRE_ROB_RE_OLD_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_old_num_reg", _param->_size_spr_address);
-	    in_RETIRE_ROB_RD_NEW_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_new_use"    , 1);
-	    in_RETIRE_ROB_RD_NEW_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_new_num_reg", _param->_size_gpr_address);
-	    in_RETIRE_ROB_RE_NEW_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("re_new_use"    , 1);
-	    in_RETIRE_ROB_RE_NEW_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_new_num_reg", _param->_size_spr_address);
-	  }
-      }
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+//     in_RETIRE_ROB_VAL            = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
+//     out_RETIRE_ROB_ACK            = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RD_OLD_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RD_OLD_NUM_REG = new SC_IN (Tgeneral_address_t)  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RE_OLD_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RE_OLD_NUM_REG = new SC_IN (Tspecial_address_t)  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RD_NEW_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RD_NEW_NUM_REG = new SC_IN (Tgeneral_address_t)  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RE_NEW_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
+//     in_RETIRE_ROB_RE_NEW_NUM_REG = new SC_IN (Tspecial_address_t)  ** [_param->_nb_ooo_engine];
+
+//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+//       {
+// 	uint32_t x=_param->_nb_inst_retire_rob [i];
+
+// 	in_RETIRE_ROB_VAL            [i] = new SC_IN (Tcontrol_t        )  * [x];
+// 	out_RETIRE_ROB_ACK            [i] = new SC_OUT(Tcontrol_t        )  * [x];
+// 	in_RETIRE_ROB_RD_OLD_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
+// 	in_RETIRE_ROB_RD_OLD_NUM_REG [i] = new SC_IN (Tgeneral_address_t)  * [x];
+// 	in_RETIRE_ROB_RE_OLD_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
+// 	in_RETIRE_ROB_RE_OLD_NUM_REG [i] = new SC_IN (Tspecial_address_t)  * [x];
+// 	in_RETIRE_ROB_RD_NEW_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
+// 	in_RETIRE_ROB_RD_NEW_NUM_REG [i] = new SC_IN (Tgeneral_address_t)  * [x];
+// 	in_RETIRE_ROB_RE_NEW_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
+// 	in_RETIRE_ROB_RE_NEW_NUM_REG [i] = new SC_IN (Tspecial_address_t)  * [x];
+
+// 	for (uint32_t j=0; j<x; j++)
+// 	  {
+// 	    Interface_fifo * interface = _interfaces->set_interface("retire_rob_"+toString(i)+"_"+toString(j)
+// #ifdef POSITION
+// 								    ,IN
+// 								    ,WEST
+// 								    ,"Interface to update status (retire)"
+// #endif
+// 								    );
+
+
+// 	    in_RETIRE_ROB_VAL            [i][j] = interface->set_signal_valack_in  (VAL);
+// 	   out_RETIRE_ROB_ACK            [i][j] = interface->set_signal_valack_out (ACK);
+// 	    in_RETIRE_ROB_RD_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_old_use"    , 1);
+// 	    in_RETIRE_ROB_RD_OLD_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_old_num_reg", _param->_size_gpr_address);
+// 	    in_RETIRE_ROB_RE_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("re_old_use"    , 1);
+// 	    in_RETIRE_ROB_RE_OLD_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_old_num_reg", _param->_size_spr_address);
+// 	    in_RETIRE_ROB_RD_NEW_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_new_use"    , 1);
+// 	    in_RETIRE_ROB_RD_NEW_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_new_num_reg", _param->_size_gpr_address);
+// 	    in_RETIRE_ROB_RE_NEW_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("re_new_use"    , 1);
+// 	    in_RETIRE_ROB_RE_NEW_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_new_num_reg", _param->_size_spr_address);
+// 	  }
+//       }
+
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
     std::string name;
@@ -263,4 +262,5 @@
       {
 	name = _name+"_gpr_"+toString(i);
+        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 
 	component_gpr        [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 
@@ -284,4 +284,5 @@
 
 	name = _name+"_gpr_status_"+toString(i);
+        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 
 	component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
@@ -305,4 +306,5 @@
 
 	name = _name+"_spr_"+toString(i);
+        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 	 
 	component_spr        [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile 
@@ -325,4 +327,5 @@
 
 	name = _name+"_spr_status_"+toString(i);
+        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
 
 	component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
@@ -347,4 +350,5 @@
 
     name = _name+"_glue";
+    log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
      
     component_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue     
@@ -373,5 +377,5 @@
 	name_component = _name+"_gpr_"+toString(i);
 	
-	std::cout << "Instance : " << name_component << std::endl;
+        log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str());
 	
 #ifdef POSITION
@@ -430,5 +434,5 @@
 	  name_component = _name+"_gpr_status_"+toString(i);
 	  
-	  std::cout << "Instance : " << name_component << std::endl;
+	  log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str());
 	  
 #ifdef POSITION
@@ -516,54 +520,54 @@
 	    }
 
-	  for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++)
-	    {
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_VAL" ,
-				   _name+"_glue",
-				   "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL");
-	      _component->port_map(name_component,
-				   "out_WRITE_"+toString(x)+"_ACK",
-				   _name+"_glue",
-				   "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_DATA" ,
-				   _name+"_glue",
-				   "out_CONST_0");
-	      _component->port_map(_name+"_glue",
-				   "out_CONST_0",
-				   name_component,
-				   "in_WRITE_"+toString(x)+"_DATA" );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x++)+"_ADDRESS",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG");
+// 	  for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++)
+// 	    {
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_VAL" ,
+// 				   _name+"_glue",
+// 				   "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "out_WRITE_"+toString(x)+"_ACK",
+// 				   _name+"_glue",
+// 				   "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA" ,
+// 				   _name+"_glue",
+// 				   "out_CONST_0");
+// 	      _component->port_map(_name+"_glue",
+// 				   "out_CONST_0",
+// 				   name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA" );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x++)+"_ADDRESS",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_NUM_REG");
 	      
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_VAL" ,
-				   _name+"_glue",
-				   "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL");
-	      _component->port_map(name_component,
-				   "out_WRITE_"+toString(x)+"_ACK",
-				   _name+"_glue",
-				   "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_DATA" ,
-				   _name+"_glue",
-				   "out_CONST_1"
-				   );
-	      _component->port_map(_name+"_glue",
-				   "out_CONST_1",
-				   name_component,
-				   "in_WRITE_"+toString(x)+"_DATA"
-				   );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x++)+"_ADDRESS",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG");
-	    }
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_VAL" ,
+// 				   _name+"_glue",
+// 				   "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "out_WRITE_"+toString(x)+"_ACK",
+// 				   _name+"_glue",
+// 				   "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA" ,
+// 				   _name+"_glue",
+// 				   "out_CONST_1"
+// 				   );
+// 	      _component->port_map(_name+"_glue",
+// 				   "out_CONST_1",
+// 				   name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA"
+// 				   );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x++)+"_ADDRESS",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_NUM_REG");
+// 	    }
 
 	}
@@ -574,5 +578,5 @@
 	name_component = _name+"_spr_"+toString(i);
 	
-	std::cout << "Instance : " << name_component << std::endl;
+	log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str());
 	
 #ifdef POSITION
@@ -631,6 +635,6 @@
 	  name_component = _name+"_spr_status_"+toString(i);
 	  
-	  std::cout << "Instance : " << name_component << std::endl;
-	  
+	  log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str());	
+  
 #ifdef POSITION
 	  _component->interface_map (name_component,"",
@@ -717,55 +721,55 @@
 	    }
 
-	  for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++)
-	    {
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_VAL" ,
-				   _name+"_glue",
-				   "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL");
-	      _component->port_map(name_component,
-				   "out_WRITE_"+toString(x)+"_ACK",
-				   _name+"_glue",
-				   "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_DATA" ,
-				   _name+"_glue",
-				   "out_CONST_0");
-	      _component->port_map(_name+"_glue",
-				   "out_CONST_0",
-				   name_component,
-				   "in_WRITE_"+toString(x)+"_DATA"
-				   );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x++)+"_ADDRESS",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG");
+// 	  for (uint32_t j=0; j<_param->_nb_inst_retire_rob [i]; j++)
+// 	    {
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_VAL" ,
+// 				   _name+"_glue",
+// 				   "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "out_WRITE_"+toString(x)+"_ACK",
+// 				   _name+"_glue",
+// 				   "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK" );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA" ,
+// 				   _name+"_glue",
+// 				   "out_CONST_0");
+// 	      _component->port_map(_name+"_glue",
+// 				   "out_CONST_0",
+// 				   name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA"
+// 				   );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x++)+"_ADDRESS",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_NUM_REG");
 	      
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_VAL" ,
-				   _name+"_glue",
-				   "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL");
-	      _component->port_map(name_component,
-				   "out_WRITE_"+toString(x)+"_ACK",
-				   _name+"_glue",
-				   "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x)+"_DATA" ,
-				   _name+"_glue",
-				   "out_CONST_1"
-				   );
-	      _component->port_map(_name+"_glue",
-				   "out_CONST_1",
-				   name_component,
-				   "in_WRITE_"+toString(x)+"_DATA"
-				   );
-
-	      _component->port_map(name_component,
-				   "in_WRITE_"+toString(x++)+"_ADDRESS",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG");
-	    }
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_VAL" ,
+// 				   _name+"_glue",
+// 				   "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "out_WRITE_"+toString(x)+"_ACK",
+// 				   _name+"_glue",
+// 				   "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK" );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA" ,
+// 				   _name+"_glue",
+// 				   "out_CONST_1"
+// 				   );
+// 	      _component->port_map(_name+"_glue",
+// 				   "out_CONST_1",
+// 				   name_component,
+// 				   "in_WRITE_"+toString(x)+"_DATA"
+// 				   );
+
+// 	      _component->port_map(name_component,
+// 				   "in_WRITE_"+toString(x++)+"_ADDRESS",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_NUM_REG");
+// 	    }
 
 	}
@@ -775,6 +779,6 @@
       name_component = _name+"_glue";
      
-      std::cout << "Instance : " << name_component << std::endl;
-     
+      log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),name_component.c_str());  
+   
 #ifdef POSITION
       _component->interface_map (name_component,"",
@@ -1010,77 +1014,80 @@
 	}
 
-      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
-	{
-	  uint32_t x     =_param->_nb_inst_retire_rob [i];
-	  uint32_t gpr_j = _param->_nb_gpr_write + _param->_nb_inst_insert_rob [i];
-	  uint32_t spr_j = _param->_nb_spr_write + _param->_nb_inst_insert_rob [i];
-
-	  for (uint32_t j=0; j<x; j++)
-	    {
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
-	      _component->port_map(name_component,
-				   "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
-				   _name,
-				   "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE",
-				   _name, 
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE",
-				   _name,
-				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE");
+//       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+// 	{
+// 	  uint32_t x     =_param->_nb_inst_retire_rob [i];
+// 	  uint32_t gpr_j = _param->_nb_gpr_write + _param->_nb_inst_insert_rob [i];
+// 	  uint32_t spr_j = _param->_nb_spr_write + _param->_nb_inst_insert_rob [i];
+
+// 	  for (uint32_t j=0; j<x; j++)
+// 	    {
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
+// 				   _name,
+// 				   "out_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_OLD_USE");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RD_NEW_USE");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE",
+// 				   _name, 
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_OLD_USE");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE",
+// 				   _name,
+// 				   "in_RETIRE_ROB_"+toString(i)+"_"+toString(j)+"_RE_NEW_USE");
 	    
-	      _component->port_map(name_component,
-				   "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL",
-				   _name+"_gpr_status_"+toString(i),
-				   "in_WRITE_"+toString(gpr_j)+"_VAL");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK",
-				   _name+"_gpr_status_"+toString(i),
-				   "out_WRITE_"+toString(gpr_j++)+"_ACK");
-	      _component->port_map(name_component,
-				   "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL",
-				   _name+"_gpr_status_"+toString(i),
-				   "in_WRITE_"+toString(gpr_j)+"_VAL");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK",
-				   _name+"_gpr_status_"+toString(i),
-				   "out_WRITE_"+toString(gpr_j++)+"_ACK");
-	      _component->port_map(name_component,
-				   "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL",
-				   _name+"_spr_status_"+toString(i),
-				   "in_WRITE_"+toString(spr_j)+"_VAL");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK",
-				   _name+"_spr_status_"+toString(i),
-				   "out_WRITE_"+toString(spr_j++)+"_ACK");
-	      _component->port_map(name_component,
-				   "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL",
-				   _name+"_spr_status_"+toString(i),
-				   "in_WRITE_"+toString(spr_j)+"_VAL");
-	      _component->port_map(name_component,
-				   "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK",
-				   _name+"_spr_status_"+toString(i),
-				   "out_WRITE_"+toString(spr_j++)+"_ACK");
-	    }
-	}
+// 	      _component->port_map(name_component,
+// 				   "out_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL",
+// 				   _name+"_gpr_status_"+toString(i),
+// 				   "in_WRITE_"+toString(gpr_j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_GPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK",
+// 				   _name+"_gpr_status_"+toString(i),
+// 				   "out_WRITE_"+toString(gpr_j++)+"_ACK");
+// 	      _component->port_map(name_component,
+// 				   "out_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL",
+// 				   _name+"_gpr_status_"+toString(i),
+// 				   "in_WRITE_"+toString(gpr_j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_GPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK",
+// 				   _name+"_gpr_status_"+toString(i),
+// 				   "out_WRITE_"+toString(gpr_j++)+"_ACK");
+// 	      _component->port_map(name_component,
+// 				   "out_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_VAL",
+// 				   _name+"_spr_status_"+toString(i),
+// 				   "in_WRITE_"+toString(spr_j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_SPR_STATUS_OLD_"+toString(i)+"_"+toString(j)+"_ACK",
+// 				   _name+"_spr_status_"+toString(i),
+// 				   "out_WRITE_"+toString(spr_j++)+"_ACK");
+// 	      _component->port_map(name_component,
+// 				   "out_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_VAL",
+// 				   _name+"_spr_status_"+toString(i),
+// 				   "in_WRITE_"+toString(spr_j)+"_VAL");
+// 	      _component->port_map(name_component,
+// 				   "in_RETIRE_ROB_SPR_STATUS_NEW_"+toString(i)+"_"+toString(j)+"_ACK",
+// 				   _name+"_spr_status_"+toString(i),
+// 				   "out_WRITE_"+toString(spr_j++)+"_ACK");
+// 	    }
+// 	}
     }// glue
 
-//     _component->test_map ();
-
-#ifdef POSITION
-    _component->generate_file();
+#if DEBUG_Register_unit == true
+    _component->test_map ();
+#endif
+
+#ifdef POSITION
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
 #endif
 
