Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 15)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp	(revision 42)
@@ -17,60 +17,65 @@
   void Victim_Pseudo_LRU::allocation (void)
   {
-    in_CLOCK  = new SC_CLOCK           ("in_CLOCK");
-    in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET");
+#ifdef POSITION
+    _component   = new Component ();
 
-    // -----[ Interface access ]-------------------------------------------
-     in_ACCESS_VAL     = new SC_IN (Tcontrol_t) * [_param._nb_access];
-    out_ACCESS_ACK     = new SC_OUT(Tcontrol_t) * [_param._nb_access];
-    if (_param._size_table>1)
-      in_ACCESS_ADDRESS = new SC_IN (Taddress_t) * [_param._nb_access];
-    out_ACCESS_ENTITY  = new SC_OUT(Tentity_t ) * [_param._nb_access];
+    Entity * entity = _component->set_entity (_name                  ,
+					     "Select_Priority_Fixed",
+					     COMBINATORY            );
     
-    for (uint32_t i=0; i<_param._nb_access; i++)
-      {
-        string rename;
+    _interfaces = entity->set_interfaces();
+#else
+    _interfaces = new Interfaces();
+#endif
 
-	rename = "in_ACCESS_VAL["     + toString(i) + "]";
-	 in_ACCESS_VAL     [i] = new SC_IN (Tcontrol_t) (rename.c_str());
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+      Interface_fifo * interface = _interfaces->set_interface("", IN  ,WEST, "Generalist interface");
+      
+      in_CLOCK        = interface->set_signal_clk              ("clock" ,1);
+      in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1);
+    }
 
-	rename = "out_ACCESS_ACK["    + toString(i) + "]";
-	out_ACCESS_ACK     [i] = new SC_OUT(Tcontrol_t) (rename.c_str());
+    // ~~~~~[ Interface : "access" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    {
+       in_ACCESS_VAL     = new SC_IN (Tcontrol_t) * [_param._nb_access];
+      out_ACCESS_ACK     = new SC_OUT(Tcontrol_t) * [_param._nb_access];
+      if (_param._size_table>1)
+       in_ACCESS_ADDRESS = new SC_IN (Taddress_t) * [_param._nb_access];
+      out_ACCESS_ENTITY  = new SC_OUT(Tentity_t ) * [_param._nb_access];
+      
+      for (uint32_t i=0; i<_param._nb_access; i++)
+	{
+	  Interface_fifo * interface = _interfaces->set_interface("access_"+toString(i), IN  ,WEST, "Access");
 
-	if (_param._size_table>1)
-	  {
-	    rename = "in_ACCESS_ADDRESS[" + toString(i) + "]";
-	    in_ACCESS_ADDRESS [i] = new SC_IN (Taddress_t) (rename.c_str());
-	  }
-	rename = "out_ACCESS_ENTITY[" + toString(i) + "]";
-	out_ACCESS_ENTITY  [i] = new SC_OUT(Tentity_t ) (rename.c_str());
-      }
+	   in_ACCESS_VAL     [i] = interface->set_signal_valack_in        ("val"    , VAL);
+	  out_ACCESS_ACK     [i] = interface->set_signal_valack_out       ("ack"    , ACK);
+	  
+	  if (_param._size_table>1)
+	   in_ACCESS_ADDRESS [i] = interface->set_signal_in  <Taddress_t> ("address",static_cast<uint32_t>(log2(_param._size_table)));
+	  out_ACCESS_ENTITY  [i] = interface->set_signal_out <Tentity_t>  ("entity" ,static_cast<uint32_t>(log2(_param._nb_entity )));
+	}
+    }
 
-    // -----[ Interface update ]-------------------------------------------
-     in_UPDATE_VAL     = new SC_IN (Tcontrol_t) *  [_param._nb_update];
-    out_UPDATE_ACK     = new SC_OUT(Tcontrol_t) *  [_param._nb_update];
-    if (_param._size_table>1)
-      in_UPDATE_ADDRESS = new SC_IN (Taddress_t) *  [_param._nb_update];
-     in_UPDATE_ENTITY  = new SC_IN (Tentity_t ) *  [_param._nb_update];
+    // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    
+    {
+       in_UPDATE_VAL     = new SC_IN (Tcontrol_t) *  [_param._nb_update];
+      out_UPDATE_ACK     = new SC_OUT(Tcontrol_t) *  [_param._nb_update];
+      if (_param._size_table>1)
+       in_UPDATE_ADDRESS = new SC_IN (Taddress_t) *  [_param._nb_update];
+       in_UPDATE_ENTITY  = new SC_IN (Tentity_t ) *  [_param._nb_update];
+      
+      for (uint32_t i=0; i<_param._nb_update; i++)
+	{
+	  Interface_fifo * interface = _interfaces->set_interface("update_"+toString(i), IN  ,EAST, "Update");
 
-    for (uint32_t i=0; i<_param._nb_update; i++)
-      {
-        string rename;
-
-	rename = "in_UPDATE_VAL["     + toString(i) + "]";
- 	 in_UPDATE_VAL     [i] = new SC_IN (Tcontrol_t) (rename.c_str());
-
-	rename = "out_UPDATE_ACK["    + toString(i) + "]";;
-	out_UPDATE_ACK     [i] = new SC_OUT(Tcontrol_t) (rename.c_str());
-
-	if (_param._size_table>1)
-	  {
-	    rename = "in_UPDATE_ADDRESS[" + toString(i) + "]";
-	    in_UPDATE_ADDRESS [i] = new SC_IN (Taddress_t) (rename.c_str());
-	  }
-
-	rename = "in_UPDATE_ENTITY["  + toString(i) + "]";
-	 in_UPDATE_ENTITY  [i] = new SC_IN (Tentity_t ) (rename.c_str());
-      }
-
+ 	  in_UPDATE_VAL     [i] = interface->set_signal_valack_in        ("val"    , VAL);
+	 out_UPDATE_ACK     [i] = interface->set_signal_valack_out       ("ack"    , ACK);
+	 if (_param._size_table>1)
+	  in_UPDATE_ADDRESS [i] = interface->set_signal_in  <Taddress_t> ("address",static_cast<uint32_t>(log2(_param._size_table)));
+	  in_UPDATE_ENTITY  [i] = interface->set_signal_in  <Tentity_t>  ("entity" ,static_cast<uint32_t>(log2(_param._nb_entity )));
+	}
+    }
     // -----[ Register ]---------------------------------------------------
     reg_TABLE = new entry_t *  [_param._size_table];
@@ -81,4 +86,8 @@
     // -----[ Internal ]---------------------------------------------------
     internal_ACCESS_ENTITY = new Tentity_t [_param._nb_entity];
+
+#ifdef POSITION
+    _component->generate_file();
+#endif
   };
 
