Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp	(revision 88)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp	(revision 112)
@@ -7,4 +7,5 @@
 
 #include "Behavioural/Generic/Shifter/include/Shifter.h"
+#include "Behavioural/include/Allocation.h"
 
 namespace morpheo                    {
@@ -33,5 +34,5 @@
 							      , IN  
 							      , SOUTH
-							      , "Generalist interface"
+							      , _("Generalist interface")
 #endif
 							      );
@@ -43,49 +44,31 @@
     
     {
-      // Interface "shifter"
-       in_SHIFTER_DATA      = new SC_IN (Tdata_t)      * [_param->_nb_port];
+      ALLOC1_INTERFACE_BEGIN("shifter", IN, SOUTH,_("Generalist interface"),_param->_nb_port);
+      
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_DATA       ,"data"      ,Tdata_t     ,_param->_size_data);
       if (_param->_shift_value == 0)
-       in_SHIFTER_SHIFT     = new SC_IN (Tshift_t)     * [_param->_nb_port];
-      if (_param->_direction   == external_direction)
-       in_SHIFTER_DIRECTION = new SC_IN (Tdirection_t) * [_param->_nb_port];
-      if (_param->_rotate      == external_rotate)
-       in_SHIFTER_TYPE      = new SC_IN (Ttype_t)      * [_param->_nb_port];
-      if (_param->_carry       == external_carry)
-       in_SHIFTER_CARRY     = new SC_IN (Tcarry_t)     * [_param->_nb_port];
-      if (_param->_carry       == external_completion)
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_SHIFT      ,"shift"     ,Tshift_t    ,_param->_size_shift);
+      if (_param->_direction == external_direction)
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_DIRECTION  ,"direction" ,Tdirection_t,1);
+      if (_param->_rotate == external_rotate)
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_TYPE       ,"type"      ,Ttype_t     ,1);
+      if (_param->_carry == external_carry)
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_CARRY      ,"carry"     ,Tcarry_t    ,1);
+      if (_param->_carry == external_completion)
+      {
       if (_param->_type_completion_bool == true)
-       in_SHIFTER_CARRY_IN  = new SC_IN (Tcontrol_t)   * [_param->_nb_port];
+        {
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_CARRY_IN   ,"carry_in"  ,Tcontrol_t  ,1);
+        }
       else
-       in_SHIFTER_COMPLETION= new SC_IN (Tdata_t)      * [_param->_nb_port];
-      out_SHIFTER_DATA      = new SC_OUT(Tdata_t)      * [_param->_nb_port];
+        {
+      ALLOC1_SIGNAL_IN ( in_SHIFTER_COMPLETION ,"completion",Tdata_t     ,_param->_size_data_completion);
+        }
+      }
+      ALLOC1_SIGNAL_OUT(out_SHIFTER_DATA       ,"data"      ,Tdata_t     ,_param->_size_data);
       
-      for (uint32_t i=0; i<_param->_nb_port; i++)
-	{
-	  Interface_fifo * interface = _interfaces->set_interface("shifter_"+toString(i)
-#ifdef POSITION
-								  , IN  
-								  , SOUTH
-								  , "Generalist interface"
-#endif
-								  );
-	 
-	   in_SHIFTER_DATA       [i] = interface->set_signal_in  <Tdata_t     > ("data"      ,_param->_size_data);
-	  if (_param->_shift_value == 0)
-	   in_SHIFTER_SHIFT      [i] = interface->set_signal_in  <Tshift_t    > ("shift"     ,static_cast<uint32_t>(ceil(log2(_param->_size_data))));
-	  if (_param->_direction == external_direction)
-	   in_SHIFTER_DIRECTION  [i] = interface->set_signal_in  <Tdirection_t> ("direction" ,1);
-	  if (_param->_rotate  == external_rotate)
-	   in_SHIFTER_TYPE       [i] = interface->set_signal_in  <Ttype_t     > ("type"      ,1);
-	  if (_param->_carry == external_carry)
-	   in_SHIFTER_CARRY      [i] = interface->set_signal_in  <Tcarry_t    > ("carry"     ,1);
-	  if (_param->_carry       == external_completion)
-	  if (_param->_type_completion_bool == true)
-	   in_SHIFTER_CARRY_IN   [i] = interface->set_signal_in  <Tcontrol_t  > ("carry_in"  ,1);
-	  else
-	   in_SHIFTER_COMPLETION [i] = interface->set_signal_in  <Tdata_t     > ("completion",_param->_size_data_completion);
-	  out_SHIFTER_DATA       [i] = interface->set_signal_out <Tdata_t     > ("data"      ,_param->_size_data);
-	}
+      ALLOC1_INTERFACE_END(_param->_nb_port);
     }
-
+    
 #ifdef POSITION
     if (usage_is_set(_usage,USE_POSITION))
