Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_log2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_log2.cfg	(revision 68)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_log2.cfg	(revision 68)
@@ -0,0 +1,3 @@
+Queue
+1	32 	*2	#_size_queue	
+32	32	*2	#_size_data 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_no_log2.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_no_log2.cfg	(revision 68)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/config_size_queue_no_log2.cfg	(revision 68)
@@ -0,0 +1,3 @@
+Queue
+3	256	*4	#_size_queue	
+32	32	*2	#_size_data 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/configuration.cfg	(revision 67)
+++ 	(revision )
@@ -1,3 +1,0 @@
-Queue
-3	256	*4	#_size_queue	
-32	32	*2	#_size_data 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/mkf.info
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/mkf.info	(revision 67)
+++ 	(revision )
@@ -1,26 +1,0 @@
-
-# Queue_0
-target_dep	all	Queue_0.ngc
-target_dep	Queue_0.ngc	Queue_0.prj
-target_dep	Queue_0.prj	Queue_0.vhdl Queue_0_Pack.vhdl
-
-# Queue_1
-target_dep	all	Queue_1.ngc
-target_dep	Queue_1.ngc	Queue_1.prj
-target_dep	Queue_1.prj	Queue_1.vhdl Queue_1_Pack.vhdl
-
-# Queue_2
-target_dep	all	Queue_2.ngc
-target_dep	Queue_2.ngc	Queue_2.prj
-target_dep	Queue_2.prj	Queue_2.vhdl Queue_2_Pack.vhdl
-
-# Queue_3
-target_dep	all	Queue_3.ngc
-target_dep	Queue_3.ngc	Queue_3.prj
-target_dep	Queue_3.prj	Queue_3.vhdl Queue_3_Pack.vhdl
-
-# Queue_4
-target_dep	all	Queue_4.ngc
-target_dep	Queue_4.ngc	Queue_4.prj
-target_dep	Queue_4.prj	Queue_4.vhdl Queue_4_Pack.vhdl
-
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 67)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue.cpp	(revision 68)
@@ -42,43 +42,50 @@
 
 #ifdef STATISTICS
-    log_printf(INFO,Queue,FUNCTION,"Allocation of statistics");
-
-    // Allocation of statistics
-    _stat = new Statistics (static_cast<string>(_name),
-			    param_statistics          ,
-			    param);
+    if (_usage & USE_STATISTICS)
+      {	
+	log_printf(INFO,Queue,FUNCTION,"Allocation of statistics");
+	
+	// Allocation of statistics
+	_stat = new Statistics (static_cast<string>(_name),
+				param_statistics          ,
+				param);
+      }
 #endif
 
 #ifdef VHDL
-    // generate the vhdl
-    log_printf(INFO,Queue,FUNCTION,"Generate the vhdl");
-
-    vhdl();
+    if (_usage & USE_VHDL)
+      {
+	// generate the vhdl
+	log_printf(INFO,Queue,FUNCTION,"Generate the vhdl");
+	
+	vhdl();
+      }
 #endif
 
 #ifdef SYSTEMC
-//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
-    log_printf(INFO,Queue,FUNCTION,"Method - transition");
-
-    SC_METHOD (transition);
-    dont_initialize ();
-    sensitive << (*(in_CLOCK)).pos();
-//#endif
-
+    if (_usage & USE_SYSTEMC)
+      {
+	log_printf(INFO,Queue,FUNCTION,"Method - transition");
+	
+	SC_METHOD (transition);
+	dont_initialize ();
+	sensitive << (*(in_CLOCK)).pos();
+	
 # ifdef SYSTEMCASS_SPECIFIC
-    // List dependency information
+	// List dependency information
 # endif    
-
-    log_printf(INFO,Queue,FUNCTION,"Method - genMoore");
-
-    SC_METHOD (genMoore);
-    dont_initialize ();
-    sensitive << (*(in_CLOCK)).neg();
-
+	
+	log_printf(INFO,Queue,FUNCTION,"Method - genMoore");
+	
+	SC_METHOD (genMoore);
+	dont_initialize ();
+	sensitive << (*(in_CLOCK)).neg();
+	
 # ifdef SYSTEMCASS_SPECIFIC
-    // List dependency information
+	// List dependency information
 # endif    
-
+	
 #endif
+      }
     log_printf(FUNC,Queue,FUNCTION,"End");
   };
@@ -91,8 +98,11 @@
 
 #ifdef STATISTICS
-    log_printf(INFO,Queue,FUNCTION,"Generate Statistics file");
-
-    _stat->generate_file(statistics(0));
-    delete _stat;
+    if (_usage & USE_STATISTICS)
+      {
+	log_printf(INFO,Queue,FUNCTION,"Generate Statistics file");
+	
+	_stat->generate_file(statistics(0));
+	delete _stat;
+      }
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 67)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_allocation.cpp	(revision 68)
@@ -23,5 +23,5 @@
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
-    _component   = new Component ();
+    _component   = new Component (_usage);
 
     Entity * entity = _component->set_entity (_name       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp	(revision 67)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_deallocation.cpp	(revision 68)
@@ -20,15 +20,18 @@
     log_printf(FUNC,Queue,FUNCTION,"Begin");
 
-    delete    in_CLOCK ;
-    delete    in_NRESET;
-
-    delete    in_INSERT_VAL ;
-    delete   out_INSERT_ACK ;
-    delete    in_INSERT_DATA;
-
-    delete   out_RETIRE_VAL ;
-    delete    in_RETIRE_ACK ;
-    delete   out_RETIRE_DATA;
-
+    if (_usage & USE_SYSTEMC)
+      { 
+	delete    in_CLOCK ;
+	delete    in_NRESET;
+	
+	delete    in_INSERT_VAL ;
+	delete   out_INSERT_ACK ;
+	delete    in_INSERT_DATA;
+	
+	delete   out_RETIRE_VAL ;
+	delete    in_RETIRE_ACK ;
+	delete   out_RETIRE_DATA;
+	
+      }
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
     delete _queue_control;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_vhdl_body.cpp	(revision 67)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Queue_vhdl_body.cpp	(revision 68)
@@ -62,5 +62,9 @@
 	if (is_log2(_param->_size_queue) == false)
 	  vhdl->set_body ("\tconst_PTR_INIT when reg_PTR_READ  = const_PTR_MAX else");
-	vhdl->set_body ("\treg_PTR_READ +'1';");
+
+	if (_param->_size_queue > 2)
+	  vhdl->set_body ("\treg_PTR_READ +'1';");
+	else
+	  vhdl->set_body ("\tnot reg_PTR_READ;");
       }
     vhdl->set_body ("");
@@ -73,5 +77,8 @@
 	if (is_log2(_param->_size_queue) == false)
 	  vhdl->set_body ("\tconst_PTR_INIT when reg_PTR_WRITE = const_PTR_MAX else");
-	vhdl->set_body ("\treg_PTR_WRITE+'1';");
+	if (_param->_size_queue > 2)
+	  vhdl->set_body ("\treg_PTR_WRITE+'1';");
+	else
+	  vhdl->set_body ("\tnot reg_PTR_WRITE;");
       }
     vhdl->set_body ("");
