Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Core_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Dcache_Access/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Dcache_Access/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Dcache_Access/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Dcache_Access
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Icache_Access/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Icache_Access/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Icache_Access/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Icache_Access
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Core
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Execute_loop_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/SelfTest/src/test.cpp	(revision 113)
@@ -48,4 +48,33 @@
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
   
+  sc_signal<Tcontrol_t        > **  in_GPR_WRITE_WRITE_UNIT_VAL               ;
+  sc_signal<Tcontrol_t        > ** out_GPR_WRITE_WRITE_UNIT_ACK               ;
+  sc_signal<Tcontext_t        > **  in_GPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID     ;
+  sc_signal<Tgeneral_address_t> **  in_GPR_WRITE_WRITE_UNIT_NUM_REG           ;
+  sc_signal<Tgeneral_data_t   > **  in_GPR_WRITE_WRITE_UNIT_DATA              ;
+  sc_signal<Tcontrol_t        > ** out_GPR_WRITE_REGISTER_FILE_VAL            ;
+  sc_signal<Tcontrol_t        > **  in_GPR_WRITE_REGISTER_FILE_ACK            ;
+  sc_signal<Tcontext_t        > ** out_GPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID  ;
+  sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_REGISTER_FILE_NUM_REG        ;
+  sc_signal<Tgeneral_data_t   > ** out_GPR_WRITE_REGISTER_FILE_DATA           ;
+  sc_signal<Tcontrol_t        > ** out_GPR_WRITE_READ_UNIT_VAL                ;
+  sc_signal<Tcontext_t        > ** out_GPR_WRITE_READ_UNIT_OOO_ENGINE_ID      ;
+  sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_READ_UNIT_NUM_REG            ;
+  sc_signal<Tgeneral_data_t   > ** out_GPR_WRITE_READ_UNIT_DATA               ;
+  sc_signal<Tcontrol_t        > **  in_SPR_WRITE_WRITE_UNIT_VAL               ;
+  sc_signal<Tcontrol_t        > ** out_SPR_WRITE_WRITE_UNIT_ACK               ;
+  sc_signal<Tcontext_t        > **  in_SPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID     ;
+  sc_signal<Tspecial_address_t> **  in_SPR_WRITE_WRITE_UNIT_NUM_REG           ;
+  sc_signal<Tspecial_data_t   > **  in_SPR_WRITE_WRITE_UNIT_DATA              ;
+  sc_signal<Tcontrol_t        > ** out_SPR_WRITE_REGISTER_FILE_VAL            ;
+  sc_signal<Tcontrol_t        > **  in_SPR_WRITE_REGISTER_FILE_ACK            ;
+  sc_signal<Tcontext_t        > ** out_SPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID  ;
+  sc_signal<Tspecial_address_t> ** out_SPR_WRITE_REGISTER_FILE_NUM_REG        ;
+  sc_signal<Tspecial_data_t   > ** out_SPR_WRITE_REGISTER_FILE_DATA           ;
+  sc_signal<Tcontrol_t        > ** out_SPR_WRITE_READ_UNIT_VAL                ;
+  sc_signal<Tcontext_t        > ** out_SPR_WRITE_READ_UNIT_OOO_ENGINE_ID      ;
+  sc_signal<Tspecial_address_t> ** out_SPR_WRITE_READ_UNIT_NUM_REG            ;
+  sc_signal<Tspecial_data_t   > ** out_SPR_WRITE_READ_UNIT_DATA               ;
+
   ALLOC1_SC_SIGNAL( in_GPR_WRITE_WRITE_UNIT_VAL               ," in_GPR_WRITE_WRITE_UNIT_VAL             ",Tcontrol_t        ,_param->_nb_gpr_write);
   ALLOC1_SC_SIGNAL(out_GPR_WRITE_WRITE_UNIT_ACK               ,"out_GPR_WRITE_WRITE_UNIT_ACK             ",Tcontrol_t        ,_param->_nb_gpr_write);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Execute_loop
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Functionnal_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Operation
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Load_store_unit
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/Memory.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/Memory.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/Memory.h	(revision 113)
@@ -147,5 +147,5 @@
     trace_memory_t trace;
 
-    trace._cycle    = sc_simulation_time();
+    trace._cycle    = simulation_cycle();
     trace._context  = context;
     trace._address  = address;
@@ -229,5 +229,5 @@
     trace_memory_t trace;
 
-    trace._cycle    = sc_simulation_time();
+    trace._cycle    = simulation_cycle();
     trace._context  = context;
     trace._address  = address;
@@ -247,5 +247,5 @@
     trace_memory_t trace;
 
-    trace._cycle    = sc_simulation_time();
+    trace._cycle    = simulation_cycle();
     trace._context  = context;
     trace._address  = address;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp	(revision 113)
@@ -270,5 +270,5 @@
 	    load_queue_use  [i] = false;
 
-	  double             current_cycle = sc_simulation_time();
+	  double             current_cycle = simulation_cycle();
 	  double             cycle_min     = current_cycle;
 
@@ -451,5 +451,5 @@
 	      in_MEMORY_IN_VAL ->write((not fifo_request.empty()) and 
 				       can_execute                and 
-				       (sc_simulation_time() >= fifo_request.top()._cycle));
+				       (simulation_cycle() >= fifo_request.top()._cycle));
 
 	      if (_param->_have_port_context_id)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp	(revision 113)
@@ -412,5 +412,5 @@
 	      if (not fifo_request.empty())
 		{
-		  can_execute = sc_simulation_time() >= fifo_request.top()._cycle;
+		  can_execute = simulation_cycle() >= fifo_request.top()._cycle;
 		  if (is_operation_memory_store(fifo_request.top()._operation))
 		    can_execute &= (not store_queue_use [fifo_request.top()._store_queue_ptr_write] and (nb_store_slot_use < _param->_size_store_queue-1)) or is_operation_memory_store_head(fifo_request.top()._operation);
@@ -512,6 +512,4 @@
 		    }
 		  
-		  std::cout << "kane - nb_request_memory_out : " << nb_request_memory_out << std::endl;
-
 		  // a lot of test
 		  TEST(Tpacket_t         , out_MEMORY_OUT_PACKET_ID    [0]->read(), tab_request[packet_id]._packet_id    );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Read_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Read_queue
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Reservation_station
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Execute_queue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/test.h	(revision 112)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test "RegisterFile"
- */
-
-#ifdef SYSTEMC
-#include "systemc.h"
-#endif
-
-#include <string>
-#include <iostream>
-#include <sys/time.h>
-
-#include "Common/include/Time.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h"
-
-using namespace std;
-using namespace morpheo;
-using namespace morpheo::behavioural;
-using namespace morpheo::behavioural::core;
-using namespace morpheo::behavioural::core::multi_execute_loop;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
-
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue;
-
-void test    (string name,
-	      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters * param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h	(revision 113)
@@ -0,0 +1,93 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test "Execute_queue"
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#define NB_ITERATION  16
+#define CYCLE_MAX     (1024*NB_ITERATION)
+
+#include "Common/include/Test.h"
+#include "Common/include/Time.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::core;
+using namespace morpheo::behavioural::core::multi_execute_loop;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
+
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue;
+
+SC_MODULE(top)
+{
+#ifdef SYSTEMC
+ private: sc_clock               *  in_CLOCK ;
+ private: sc_signal<Tcontrol_t>  *  in_NRESET;
+
+  private: sc_signal<Tcontrol_t        >    *  in_EXECUTE_QUEUE_IN_VAL           ;
+  private: sc_signal<Tcontrol_t        >    * out_EXECUTE_QUEUE_IN_ACK           ;
+  private: sc_signal<Tcontext_t        >    *  in_EXECUTE_QUEUE_IN_CONTEXT_ID    ;
+  private: sc_signal<Tcontext_t        >    *  in_EXECUTE_QUEUE_IN_FRONT_END_ID  ;
+  private: sc_signal<Tcontext_t        >    *  in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ;
+  private: sc_signal<Tpacket_t         >    *  in_EXECUTE_QUEUE_IN_PACKET_ID     ;
+//private: sc_signal<Toperation_t      >    *  in_EXECUTE_QUEUE_IN_OPERATION     ;
+//private: sc_signal<Ttype_t           >    *  in_EXECUTE_QUEUE_IN_TYPE          ;
+  private: sc_signal<Tspecial_data_t   >    *  in_EXECUTE_QUEUE_IN_FLAGS         ;
+  private: sc_signal<Texception_t      >    *  in_EXECUTE_QUEUE_IN_EXCEPTION     ;
+  private: sc_signal<Tcontrol_t        >    *  in_EXECUTE_QUEUE_IN_NO_SEQUENCE   ;
+  private: sc_signal<Taddress_t        >    *  in_EXECUTE_QUEUE_IN_ADDRESS       ;
+  private: sc_signal<Tgeneral_data_t   >    *  in_EXECUTE_QUEUE_IN_DATA          ;
+
+  private: sc_signal<Tcontrol_t        >    * out_EXECUTE_QUEUE_OUT_VAL          ;
+  private: sc_signal<Tcontrol_t        >    *  in_EXECUTE_QUEUE_OUT_ACK          ;
+  private: sc_signal<Tcontext_t        >    * out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ;
+  private: sc_signal<Tcontext_t        >    * out_EXECUTE_QUEUE_OUT_FRONT_END_ID ;
+  private: sc_signal<Tcontext_t        >    * out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;
+  private: sc_signal<Tpacket_t         >    * out_EXECUTE_QUEUE_OUT_PACKET_ID    ;
+//private: sc_signal<Toperation_t      >    * out_EXECUTE_QUEUE_OUT_OPERATION    ;
+//private: sc_signal<Ttype_t           >    * out_EXECUTE_QUEUE_OUT_TYPE         ;
+  private: sc_signal<Tspecial_data_t   >    * out_EXECUTE_QUEUE_OUT_FLAGS        ;
+  private: sc_signal<Texception_t      >    * out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
+  private: sc_signal<Tcontrol_t        >    * out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ;
+  private: sc_signal<Taddress_t        >    * out_EXECUTE_QUEUE_OUT_ADDRESS      ;
+  private: sc_signal<Tgeneral_data_t   >    * out_EXECUTE_QUEUE_OUT_DATA         ;
+
+#endif
+
+ private: std::string name;
+ private: Tusage_t _usage;
+ private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters * _param;
+#ifdef STATISTICS
+ private: morpheo::behavioural::Parameters_Statistics * _param_stat;
+#endif
+ private: Execute_queue * component;
+
+ private: void usage
+    (
+#ifdef MTI_SYSTEMC
+     int argc, const char * const * argv
+#else
+     int argc, char * argv[]
+#endif
+     );
+ private: void allocation   (void);
+ private: void deallocation (void);
+ public : void test         (void);
+
+#ifdef MTI_SYSTEMC
+  SC_CTOR(top::top);
+#else
+ public : top (sc_module_name module_name,int argc, char * argv[]);
+#endif
+ public : ~top(void);
+};
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/main.cpp	(revision 113)
@@ -2,76 +2,47 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/test.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h"
 
-#define NB_PARAMS 7
-
-void usage (int argc, char * argv[])
+#ifndef MTI_SYSTEMC
+# ifndef SYSTEMC
+int main    (int argc, char * argv[])
+# else
+int sc_main (int argc, char * argv[])
+# endif
 {
-  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
-  err (_("list_params is :\n"));
-  err (_(" * size_queue          (uint32_t)\n"));
-  err (_(" * nb_context          (uint32_t)\n"));
-  err (_(" * nb_front_end        (uint32_t)\n"));
-  err (_(" * nb_ooo_engine       (uint32_t)\n"));
-  err (_(" * nb_packet           (uint32_t)\n"));
-  err (_(" * size_general_data   (uint32_t)\n"));
-  err (_(" * size_special_data   (uint32_t)\n"));
-
-  exit (1);
-}
-
-#ifndef SYSTEMC
-int main    (int argc, char * argv[])
-#else
-int sc_main (int argc, char * argv[])
-#endif
-{
-  if (argc != 2+NB_PARAMS)
-    usage (argc, argv);
-
-  uint32_t       x = 1;
-
-  const string   name      =      argv[x++];
-  const uint32_t size_queue          = atoi(argv[x++]);
-  const uint32_t nb_context          = atoi(argv[x++]);
-  const uint32_t nb_front_end        = atoi(argv[x++]);
-  const uint32_t nb_ooo_engine       = atoi(argv[x++]);
-  const uint32_t nb_packet           = atoi(argv[x++]);
-  const uint32_t size_general_data   = atoi(argv[x++]);
-  const uint32_t size_special_data   = atoi(argv[x++]);
+  int _return = EXIT_SUCCESS;
 
   try 
     {
-      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters
-	(size_queue         ,
-	 nb_context         ,
-	 nb_front_end       ,
-	 nb_ooo_engine      ,
-	 nb_packet          ,
-	 size_general_data  ,
-	 size_special_data  ,
-         true // is_toplevel
-         );
-      
-      msg(_("%s"),param->print(1).c_str());
-      
-      test (name,param);
+      top * my_top = new top ("my_top",argc,argv);
+
+      my_top->test();
+
+      delete my_top;
     }
   catch (morpheo::ErrorMorpheo & error)
     {
-      msg (_("<%s> : %s.\n"),name.c_str(), error.what ());
-      exit (EXIT_FAILURE);
+      msgError(_("%s\n"),error.what ());
+      _return = EXIT_FAILURE;
     }
-  catch (...)
+  
+  try 
     {
-      err (_("<%s> : This test must generate a error.\n"),name.c_str());
-      exit (EXIT_FAILURE);
+      if (_return == EXIT_SUCCESS)
+	TEST_OK("Execute_queue : no error");
+      else
+	TEST_KO("Execute_queue : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//    msgError(_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
     }
 
-  return (EXIT_SUCCESS);
+  return _return;
 }
-
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top.cpp	(revision 113)
@@ -0,0 +1,79 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Selftest.h"
+
+#define NB_PARAMS 7
+
+#ifdef MTI_SYSTEMC
+SC_MODULE_EXPORT(top);
+#endif
+
+#ifdef MTI_SYSTEMC
+SC_CTOR(top::top)
+#else
+top::top (sc_module_name module_name, int argc, char * argv[])
+#endif
+{
+#ifdef MTI_SYSTEMC
+  // accessing command-line arguments with modelsim
+  int argc;
+  const char * const * argv;
+
+  argc = sc_argc ();
+  argv = sc_argv ();
+#endif
+
+  if (argc != 2+NB_PARAMS)
+    usage (argc, argv);
+
+  uint32_t x=1;
+
+  uint32_t size_queue       ;
+  uint32_t nb_context       ;
+  uint32_t nb_front_end     ;
+  uint32_t nb_ooo_engine    ;
+  uint32_t nb_packet        ;
+  uint32_t size_general_data;
+  uint32_t size_special_data;
+
+  SELFTEST0(name,string,argv,x);
+  SELFTEST0(size_queue       ,uint32_t,argv,x);
+  SELFTEST0(nb_context       ,uint32_t,argv,x);
+  SELFTEST0(nb_front_end     ,uint32_t,argv,x);
+  SELFTEST0(nb_ooo_engine    ,uint32_t,argv,x);
+  SELFTEST0(nb_packet        ,uint32_t,argv,x);
+  SELFTEST0(size_general_data,uint32_t,argv,x);
+  SELFTEST0(size_special_data,uint32_t,argv,x);
+
+  _param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters
+    (size_queue         ,
+     nb_context         ,
+     nb_front_end       ,
+     nb_ooo_engine      ,
+     nb_packet          ,
+     size_general_data  ,
+     size_special_data  ,
+     true
+     );
+  
+  // msg(_("%s"),_param.print(0).c_str());
+  
+  // Allocation component
+  allocation ();
+  
+#ifdef MTI_SYSTEMC
+  SC_THREAD(test);
+#endif
+}
+
+top::~top (void)
+{
+  deallocation ();
+  delete _param;
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_allocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_allocation.cpp	(revision 113)
@@ -0,0 +1,140 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::allocation (void)
+{
+  if (setlocale (LC_ALL, "") == NULL)
+    msgWarning(_("setlocale ko.\n"));
+
+  try 
+    {
+      _param->test();
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msgError(_("<%s> : %s"),name.c_str(),error.what());
+      return;
+    }
+  catch (...)
+    {
+      msgError(_("<%s> : This test must generate a error"),name.c_str());
+      exit (EXIT_FAILURE);
+    }
+
+  _usage = USE_ALL;
+//   _usage = usage_unset(_usage,USE_SYSTEMC              );
+//   _usage = usage_unset(_usage,USE_VHDL                 );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//   _usage = usage_unset(_usage,USE_POSITION             );
+//   _usage = usage_unset(_usage,USE_STATISTICS           );
+//   _usage = usage_unset(_usage,USE_INFORMATION          );
+
+#ifdef STATISTICS
+  if (usage_is_set(_usage,USE_STATISTICS))
+  _param_stat = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
+#endif
+
+  component = new Execute_queue 
+    (name.c_str(),
+#ifdef STATISTICS
+     _param_stat,
+#endif
+     _param,
+     _usage
+     );
+  
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+  /*********************************************************************
+   * Déclarations des signaux
+   *********************************************************************/
+  msgInformation(_("<%s> : Create signal.\n"),name.c_str());
+
+  in_CLOCK  = new sc_clock ("clock", TIME_PERIOD, TIME_UNIT, 0.5); //name,period,time_unit,duty_cycle
+
+  ALLOC0_SC_SIGNAL( in_NRESET        ," in_NRESET        ",Tcontrol_t);
+
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_VAL           ," in_EXECUTE_QUEUE_IN_VAL"           , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_IN_ACK           ,"out_EXECUTE_QUEUE_IN_ACK"           , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_CONTEXT_ID    ," in_EXECUTE_QUEUE_IN_CONTEXT_ID"    , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_FRONT_END_ID  ," in_EXECUTE_QUEUE_IN_FRONT_END_ID"  , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ," in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID" , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_PACKET_ID     ," in_EXECUTE_QUEUE_IN_PACKET_ID"     , Tpacket_t         );
+//ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     ," in_EXECUTE_QUEUE_IN_OPERATION"     , Toperation_t      );
+//ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          ," in_EXECUTE_QUEUE_IN_TYPE"          , Ttype_t           );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         ," in_EXECUTE_QUEUE_IN_FLAGS"         , Tspecial_data_t   );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     ," in_EXECUTE_QUEUE_IN_EXCEPTION"     , Texception_t      );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_NO_SEQUENCE   ," in_EXECUTE_QUEUE_IN_NO_SEQUENCE"   , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_ADDRESS       ," in_EXECUTE_QUEUE_IN_ADDRESS"       , Taddress_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_DATA          ," in_EXECUTE_QUEUE_IN_DATA"          , Tgeneral_data_t   );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_VAL          ,"out_EXECUTE_QUEUE_OUT_VAL"          , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_EXECUTE_QUEUE_OUT_ACK          ," in_EXECUTE_QUEUE_OUT_ACK"          , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID"   , Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_FRONT_END_ID ,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" , Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID", Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_PACKET_ID    ,"out_EXECUTE_QUEUE_OUT_PACKET_ID"    , Tpacket_t         );
+//ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    ,"out_EXECUTE_QUEUE_OUT_OPERATION"    , Toperation_t      );
+//ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         ,"out_EXECUTE_QUEUE_OUT_TYPE"         , Ttype_t           );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        ,"out_EXECUTE_QUEUE_OUT_FLAGS"        , Tspecial_data_t   );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,"out_EXECUTE_QUEUE_OUT_EXCEPTION"    , Texception_t      );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE"  , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_ADDRESS      ,"out_EXECUTE_QUEUE_OUT_ADDRESS"      , Taddress_t        );
+  ALLOC0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_DATA         ,"out_EXECUTE_QUEUE_OUT_DATA"         , Tgeneral_data_t   );
+  
+  /********************************************************
+   * Instanciation
+   ********************************************************/
+  
+  msgInformation(_("<%s> : Instanciation of _Execute_queue.\n"),name.c_str());
+
+  INSTANCE0_SC_SIGNAL(component, in_CLOCK         );
+  INSTANCE0_SC_SIGNAL(component, in_NRESET        );
+
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_VAL           );
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_IN_ACK           );
+  if (_param->_have_port_context_id)
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_CONTEXT_ID    );
+  if (_param->_have_port_front_end_id)
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_FRONT_END_ID  );
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID );
+  if (_param->_have_port_rob_ptr)
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_PACKET_ID     );
+//INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_OPERATION     );
+//INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_TYPE          );
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_FLAGS         );
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_EXCEPTION     );
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_NO_SEQUENCE   );
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_ADDRESS       );
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_IN_DATA          );
+
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_VAL          );
+  INSTANCE0_SC_SIGNAL(component,  in_EXECUTE_QUEUE_OUT_ACK          );
+  if (_param->_have_port_context_id)
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_CONTEXT_ID   );
+  if (_param->_have_port_front_end_id)
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_FRONT_END_ID );
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID);
+  if (_param->_have_port_rob_ptr)
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_PACKET_ID    );
+//INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_OPERATION    );
+//INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_TYPE         );
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_FLAGS        );
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_EXCEPTION    );
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  );
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_ADDRESS      );
+  INSTANCE0_SC_SIGNAL(component, out_EXECUTE_QUEUE_OUT_DATA         );
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_deallocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_deallocation.cpp	(revision 113)
@@ -0,0 +1,50 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::deallocation (void)
+{
+#ifdef SYSTEMC
+  delete             in_CLOCK;
+  DELETE0_SC_SIGNAL( in_NRESET);
+
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_VAL           );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_IN_ACK           );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_CONTEXT_ID    );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_FRONT_END_ID  );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_PACKET_ID     );
+//DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     );
+//DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_NO_SEQUENCE   );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_ADDRESS       );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_IN_DATA          );
+
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_VAL          );
+  DELETE0_SC_SIGNAL( in_EXECUTE_QUEUE_OUT_ACK          );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_CONTEXT_ID   );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_FRONT_END_ID );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID);
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_PACKET_ID    );
+//DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    );
+//DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_ADDRESS      );
+  DELETE0_SC_SIGNAL(out_EXECUTE_QUEUE_OUT_DATA         );
+#endif
+
+  delete component;
+#ifdef STATISTICS
+  delete _param_stat;
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_test.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_test.cpp	(revision 113)
@@ -0,0 +1,223 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+#include "Common/include/BitManipulation.h"
+
+  class entry_t
+  {
+  public  : Tcontext_t         _context_id   ;
+  public  : Tcontext_t         _front_end_id ;
+  public  : Tcontext_t         _ooo_engine_id;
+  public  : Tpacket_t          _packet_id    ;
+//public  : Toperation_t       _operation    ;
+//public  : Ttype_t            _type         ;
+  public  : Tspecial_data_t    _flags        ;
+  public  : Texception_t       _exception    ;
+  public  : Tcontrol_t         _no_sequence  ;
+  public  : Tgeneral_data_t    _address      ;
+  public  : Tgeneral_data_t    _data         ;
+    
+  public  : entry_t (Tcontext_t         context_id   ,
+		     Tcontext_t         front_end_id ,
+		     Tcontext_t         ooo_engine_id,
+		     Tpacket_t          packet_id    ,
+		     //Toperation_t       operation    ,
+		     //Ttype_t            type         ,
+		     Tspecial_data_t    flags        ,
+		     Texception_t       exception    ,
+		     Tcontrol_t         no_sequence  ,
+		     Tgeneral_data_t    address      ,
+		     Tgeneral_data_t    data         )
+    {
+      _context_id    = context_id   ;
+      _front_end_id  = front_end_id ;
+      _ooo_engine_id = ooo_engine_id;
+      _packet_id     = packet_id    ;
+    //_operation     = operation    ;
+    //_type          = type         ;
+      _flags         = flags        ;
+      _exception     = exception    ;
+      _no_sequence   = no_sequence  ;
+      _address       = address      ;
+      _data          = data         ;
+    };
+
+    friend std::ostream& operator<< (std::ostream& output_stream,
+				     entry_t & x)
+    {
+      output_stream << " * _context_id    : " << toString(x._context_id   ) << std::endl
+		    << " * _front_end_id  : " << toString(x._front_end_id ) << std::endl
+		    << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl
+		    << " * _packet_id     : " << toString(x._packet_id    ) << std::endl
+		  //<< " * _operation     : " << toString(x._operation    ) << std::endl
+		  //<< " * _type          : " << toString(x._type         ) << std::endl
+		    << " * _flags         : " << toString(x._flags        ) << std::endl
+		    << " * _exception     : " << toString(x._exception    ) << std::endl
+		    << " * _no_sequence   : " << toString(x._no_sequence  ) << std::endl
+		    << " * _address       : " << toString(x._address      ) << std::endl
+		    << " * _data          : " << toString(x._data         ) << std::endl;
+
+      return output_stream;
+    }
+  };
+
+void top::test (void)
+{
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+      msgInformation(_("<%s> : Start Simulation ............\n"),name.c_str());
+      
+      Time * _time = new Time();
+      
+      /********************************************************
+       * Simulation - Begin
+       ********************************************************/
+      
+  // Initialisation
+
+  const uint32_t seed = 0;
+//const uint32_t seed = static_cast<uint32_t>(time(NULL));
+
+  const  int32_t percent_transaction_execute_queue_in  = 75;
+  const  int32_t percent_transaction_execute_queue_out = 75;
+
+  entry_t *      request [_param->_nb_packet];
+
+  for (uint32_t i=0; i<_param->_nb_packet; ++i)
+    request[i] = NULL;
+
+  srand(seed);
+
+  SC_CYCLE(0);
+  LABEL("Initialisation");
+
+  LABEL("Reset");
+  in_NRESET->write(0);
+  SC_CYCLE(5);
+  in_NRESET->write(1);  
+
+  LABEL("Loop of Test");
+
+  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
+    {
+      LABEL("Iteration %d",iteration);
+
+      for (uint32_t i=0; i<_param->_nb_packet; i++)
+	{
+          if (request[i] != NULL)
+            delete request [i];
+
+	  request [i] = new entry_t (range<Tcontext_t        >(rand(),_param->_size_context_id      ),
+				     range<Tcontext_t        >(rand(),_param->_size_front_end_id    ),
+				     range<Tcontext_t        >(rand(),_param->_size_ooo_engine_id   ),
+				     i,
+				   //range<Toperation_t      >(rand(),_param->_size_operation       ),
+				   //range<Ttype_t           >(rand(),_param->_size_type            ),
+				     range<Tspecial_data_t   >(rand(),_param->_size_special_data    ),
+				     range<Texception_t      >(rand(),_param->_size_exception       ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tgeneral_data_t   >(rand(),_param->_size_general_data    ),
+				     range<Tgeneral_data_t   >(rand(),_param->_size_general_data    ));
+	}
+
+      uint32_t nb_request_in  = 0;
+      uint32_t nb_request_out = 0;
+      
+      while (nb_request_out < _param->_nb_packet)
+      {
+	bool val = (((rand()%100)<percent_transaction_execute_queue_in) and
+		    (nb_request_in < _param->_nb_packet));
+	
+	in_EXECUTE_QUEUE_IN_VAL          ->write(val);
+	if (val)
+	  {
+	    in_EXECUTE_QUEUE_IN_CONTEXT_ID   ->write(request [nb_request_in]->_context_id   );
+	    in_EXECUTE_QUEUE_IN_FRONT_END_ID ->write(request [nb_request_in]->_front_end_id );
+	    in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID->write(request [nb_request_in]->_ooo_engine_id);
+	    in_EXECUTE_QUEUE_IN_PACKET_ID    ->write(request [nb_request_in]->_packet_id    );
+	  //in_EXECUTE_QUEUE_IN_OPERATION    ->write(request [nb_request_in]->_operation    );
+	  //in_EXECUTE_QUEUE_IN_TYPE         ->write(request [nb_request_in]->_type         );
+	    in_EXECUTE_QUEUE_IN_FLAGS        ->write(request [nb_request_in]->_flags        );
+	    in_EXECUTE_QUEUE_IN_EXCEPTION    ->write(request [nb_request_in]->_exception    );
+	    in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ->write(request [nb_request_in]->_no_sequence  );
+	    in_EXECUTE_QUEUE_IN_ADDRESS      ->write(request [nb_request_in]->_address      );
+	    in_EXECUTE_QUEUE_IN_DATA         ->write(request [nb_request_in]->_data         );
+	  }
+	in_EXECUTE_QUEUE_OUT_ACK         ->write((rand()%100)<percent_transaction_execute_queue_out);
+	    
+	SC_CYCLE(0);
+
+	
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if ( in_EXECUTE_QUEUE_IN_VAL->read() and
+	    out_EXECUTE_QUEUE_IN_ACK->read())
+	  {
+	    LABEL(" * Accepted EXECUTE_QUEUE_IN  [%d]",nb_request_in);
+// 	    std::cout << *request [nb_request_in] << std::endl;
+
+	    nb_request_in ++;
+	  }
+	
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_EXECUTE_QUEUE_OUT_VAL->read() and
+	     in_EXECUTE_QUEUE_OUT_ACK->read())
+	  {
+	    Tcontext_t packet;
+	    if (_param->_have_port_rob_ptr)
+	      packet = out_EXECUTE_QUEUE_OUT_PACKET_ID->read();
+	    else
+	      packet = 0;
+
+	    LABEL(" * Accepted EXECUTE_QUEUE_OUT [%d]",packet);
+// 	    std::cout << *request [packet] << std::endl;
+
+	    if (_param->_have_port_context_id)
+	    TEST(Tcontext_t     , out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ->read(), request [packet]->_context_id   );
+	    if (_param->_have_port_front_end_id)
+	    TEST(Tcontext_t     , out_EXECUTE_QUEUE_OUT_FRONT_END_ID ->read(), request [packet]->_front_end_id );
+	    if (_param->_have_port_ooo_engine_id)
+	    TEST(Tcontext_t     , out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID->read(), request [packet]->_ooo_engine_id);
+	  //TEST(Toperation_t   , out_EXECUTE_QUEUE_OUT_OPERATION    ->read(), request [packet]->_operation    );
+	  //TEST(Ttype_t        , out_EXECUTE_QUEUE_OUT_TYPE         ->read(), request [packet]->_type         );
+	    TEST(Tcontrol_t     , out_EXECUTE_QUEUE_OUT_FLAGS        ->read(), request [packet]->_flags        );
+	    TEST(Texception_t   , out_EXECUTE_QUEUE_OUT_EXCEPTION    ->read(), request [packet]->_exception    );
+	    TEST(Tcontrol_t     , out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ->read(), request [packet]->_no_sequence  );
+	    TEST(Tgeneral_data_t, out_EXECUTE_QUEUE_OUT_ADDRESS      ->read(), request [packet]->_address      );
+	    TEST(Tgeneral_data_t, out_EXECUTE_QUEUE_OUT_DATA         ->read(), request [packet]->_data         );
+
+	    nb_request_out ++;
+	  }
+
+	SC_CYCLE(1);
+      }
+    }
+
+  for (uint32_t i=0; i<_param->_nb_packet; i++)
+    if (request[i] != NULL)
+      delete request [i];
+  
+      /********************************************************
+       * Simulation - End
+       ********************************************************/
+      
+      TEST_OK ("");
+      
+      sc_stop();
+      delete _time;
+      
+      msgInformation(_("<%s> : ............ Stop Simulation\n"),name.c_str());
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_usage.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_usage.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/top_usage.cpp	(revision 113)
@@ -0,0 +1,30 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h"
+
+void top::usage 
+(
+#ifdef MTI_SYSTEMC
+ int argc, const char * const * argv
+#else
+ int argc, char * argv[]
+#endif
+ )
+{
+  msgError (_("<Usage> %s name_instance list_params.\n"),argv[0]);
+  msgError (_("list_params is :\n"));
+  msgError (_(" * size_queue          (uint32_t)\n"));
+  msgError (_(" * nb_context          (uint32_t)\n"));
+  msgError (_(" * nb_front_end        (uint32_t)\n"));
+  msgError (_(" * nb_ooo_engine       (uint32_t)\n"));
+  msgError (_(" * nb_packet           (uint32_t)\n"));
+  msgError (_(" * size_general_data   (uint32_t)\n"));
+  msgError (_(" * size_special_data   (uint32_t)\n"));
+
+  exit (1);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h	(revision 113)
@@ -18,4 +18,5 @@
 #include "Common/include/Debug.h"
 
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h"
@@ -28,4 +29,7 @@
 #endif
 #include "Behavioural/include/Usage.h"
+#include "Behavioural/include/Simulation.h"
+
+#include "Behavioural/Generic/Queue/include/Queue.h"
 
 namespace morpheo {
@@ -47,5 +51,5 @@
   protected : const std::string  _name;
   protected : const Parameters * _param;
-  private   : const Tusage_t     _usage;
+  public    :       Tusage_t     _usage;
 
 #ifdef STATISTICS
@@ -95,6 +99,4 @@
   public    : SC_OUT(Taddress_t        )    * out_EXECUTE_QUEUE_OUT_ADDRESS      ;
   public    : SC_OUT(Tgeneral_data_t   )    * out_EXECUTE_QUEUE_OUT_DATA         ;
-
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
     
     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
@@ -103,4 +105,15 @@
   private   : Tcontrol_t                       internal_EXECUTE_QUEUE_IN_ACK ;
   private   : Tcontrol_t                       internal_EXECUTE_QUEUE_OUT_VAL;
+
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+# ifdef VHDL
+  private   : morpheo::behavioural::generic::queue::Parameters * _param_queue;
+  private   : morpheo::behavioural::generic::queue::Queue      * _component_queue;
+# endif
+#endif
+
+#ifdef MODELSIM_COSIMULATION
+    // ~~~~~[ Wrapper ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+  private   : Wrapper_Execute_queue * _wrapper;
 #endif
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h	(revision 113)
@@ -61,7 +61,9 @@
   public :        Parameters_test msg_error  (void);
 
-  public :        std::string   print      (uint32_t depth);
-  public : friend std::ostream& operator<< (std::ostream& output_stream,
-					    morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters & x);
+  public :        std::string     id         (void) const;
+
+  public :        std::string     print      (uint32_t depth);
+  public : friend std::ostream&   operator<< (std::ostream& output_stream,
+                                              morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters & x);
   };
 
@@ -72,5 +74,4 @@
 }; // end namespace multi_execute_loop
 }; // end namespace core
-
 }; // end namespace behavioural
 }; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h	(revision 113)
@@ -0,0 +1,157 @@
+#ifndef morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_write_unit_write_unit_execute_queue_Wrapper_Execute_queue_h
+#define morpheo_behavioural_core_multi_execute_loop_execute_loop_multi_write_unit_write_unit_execute_queue_Wrapper_Execute_queue_h
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "systemc.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h"
+#include "Behavioural/include/Allocation.h"
+#include "Common/include/Environment.h"
+
+#ifdef MODELSIM_COSIMULATION
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_write_unit {
+namespace write_unit {
+namespace execute_queue {
+
+  class Wrapper_Execute_queue : public sc_foreign_module
+  {
+  protected : const Parameters * _param;
+
+    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // Interface
+  public    : SC_CLOCK             *  in_CLOCK ;
+  public    : SC_IN   (Tcontrol_t) *  in_NRESET;
+
+    // -----[ Interface "Execute_queue_in" ]------------------------------
+  public    : SC_IN (Tcontrol_t     ) *  in_EXECUTE_QUEUE_IN_VAL           ;
+  public    : SC_OUT(Tcontrol_t     ) * out_EXECUTE_QUEUE_IN_ACK           ;
+  public    : SC_IN (Tcontext_t     ) *  in_EXECUTE_QUEUE_IN_CONTEXT_ID    ;
+  public    : SC_IN (Tcontext_t     ) *  in_EXECUTE_QUEUE_IN_FRONT_END_ID  ;
+  public    : SC_IN (Tcontext_t     ) *  in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ;
+  public    : SC_IN (Tpacket_t      ) *  in_EXECUTE_QUEUE_IN_PACKET_ID     ;
+//public    : SC_IN (Toperation_t   ) *  in_EXECUTE_QUEUE_IN_OPERATION     ;
+//public    : SC_IN (Ttype_t        ) *  in_EXECUTE_QUEUE_IN_TYPE          ;
+  public    : SC_IN (Tspecial_data_t) *  in_EXECUTE_QUEUE_IN_FLAGS         ;
+  public    : SC_IN (Texception_t   ) *  in_EXECUTE_QUEUE_IN_EXCEPTION     ;
+  public    : SC_IN (Tcontrol_t     ) *  in_EXECUTE_QUEUE_IN_NO_SEQUENCE   ;
+  public    : SC_IN (Taddress_t     ) *  in_EXECUTE_QUEUE_IN_ADDRESS       ;
+  public    : SC_IN (Tgeneral_data_t) *  in_EXECUTE_QUEUE_IN_DATA          ;
+
+    // -----[ Interface "Execute_queue_out" ]-----------------------------
+  public    : SC_OUT(Tcontrol_t     ) * out_EXECUTE_QUEUE_OUT_VAL          ;
+  public    : SC_IN (Tcontrol_t     ) *  in_EXECUTE_QUEUE_OUT_ACK          ;
+  public    : SC_OUT(Tcontext_t     ) * out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ;
+  public    : SC_OUT(Tcontext_t     ) * out_EXECUTE_QUEUE_OUT_FRONT_END_ID ;
+  public    : SC_OUT(Tcontext_t     ) * out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;
+  public    : SC_OUT(Tpacket_t      ) * out_EXECUTE_QUEUE_OUT_PACKET_ID    ;
+//public    : SC_OUT(Toperation_t   ) * out_EXECUTE_QUEUE_OUT_OPERATION    ;
+//public    : SC_OUT(Ttype_t        ) * out_EXECUTE_QUEUE_OUT_TYPE         ;
+  public    : SC_OUT(Tspecial_data_t) * out_EXECUTE_QUEUE_OUT_FLAGS        ;
+  public    : SC_OUT(Texception_t   ) * out_EXECUTE_QUEUE_OUT_EXCEPTION    ;
+  public    : SC_OUT(Tcontrol_t     ) * out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ;
+  public    : SC_OUT(Taddress_t     ) * out_EXECUTE_QUEUE_OUT_ADDRESS      ;
+  public    : SC_OUT(Tgeneral_data_t) * out_EXECUTE_QUEUE_OUT_DATA         ;
+
+    // -----[ Methods ]---------------------------------------------------
+  public  :  Wrapper_Execute_queue             
+  (sc_module_name name_entity,
+   std::string    name_architecture,
+   std::string    name_library,
+   const Parameters *   param
+   ) :
+    sc_foreign_module (name_entity, (toString(name_library+"."+toString(name_entity)+"("+name_architecture+")").c_str())),
+    _param (param)
+    {
+      // caller affect interface signal
+
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_CLOCK                          ,""                 ,"clock"        ,Tcontrol_t        ,1                              );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_NRESET                         ,""                 ,"nreset"       ,Tcontrol_t        ,1                              );
+
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_VAL           ,"execute_queue_in" ,"val"          ,Tcontrol_t        ,1                              );         
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_IN_ACK           ,"execute_queue_in" ,"ack"          ,Tcontrol_t        ,1                              );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CONTEXT_ID    ,"execute_queue_in" ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FRONT_END_ID  ,"execute_queue_in" ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id     );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ,"execute_queue_in" ,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id    );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID     ,"execute_queue_in" ,"packet_id"    ,Tpacket_t         ,_param->_size_rob_ptr        );
+//    ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION     ,"execute_queue_in" ,"operation"    ,Toperation_t      ,_param->_size_operation        );
+//    ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE          ,"execute_queue_in" ,"type"         ,Ttype_t           ,_param->_size_type             );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS         ,"execute_queue_in" ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data     );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION     ,"execute_queue_in" ,"exception"    ,Texception_t      ,_param->_size_exception        );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE   ,"execute_queue_in" ,"no_sequence"  ,Tcontrol_t        ,1                              );
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_ADDRESS       ,"execute_queue_in" ,"address"      ,Taddress_t        ,_param->_size_instruction_address);
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA          ,"execute_queue_in" ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data     );
+
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_VAL          ,"execute_queue_out","val"          ,Tcontrol_t        ,1                              );         
+      ALLOC0_FOREIGN_SIGNAL_IN ( in_EXECUTE_QUEUE_OUT_ACK          ,"execute_queue_out","ack"          ,Tcontrol_t        ,1                              );         
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ,"execute_queue_out","context_id"   ,Tcontext_t        ,_param->_size_context_id   );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_FRONT_END_ID ,"execute_queue_out","front_end_id" ,Tcontext_t        ,_param->_size_front_end_id );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID,"execute_queue_out","ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_PACKET_ID    ,"execute_queue_out","packet_id"    ,Tpacket_t         ,_param->_size_rob_ptr    );
+//    ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_OPERATION    ,"execute_queue_out","operation"    ,Toperation_t      ,_param->_size_operation    );
+//    ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_TYPE         ,"execute_queue_out","type"         ,Ttype_t           ,_param->_size_type         );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_FLAGS        ,"execute_queue_out","flags"        ,Tspecial_data_t   ,_param->_size_special_data );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,"execute_queue_out","exception"    ,Texception_t      ,_param->_size_exception    );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ,"execute_queue_out","no_sequence"  ,Tcontrol_t        ,1                          );
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_ADDRESS      ,"execute_queue_out","address"      ,Taddress_t        ,_param->_size_instruction_address);
+      ALLOC0_FOREIGN_SIGNAL_OUT(out_EXECUTE_QUEUE_OUT_DATA         ,"execute_queue_out","data"         ,Tgeneral_data_t   ,_param->_size_general_data );
+
+      elaborate_foreign_module((toString(name_library+"."+toString(name_entity)+"("+name_architecture+")").c_str()));
+    }
+
+  public  : ~Wrapper_Execute_queue (void)
+    {
+      DELETE0_FOREIGN_SIGNAL( in_CLOCK                          ,1                              );
+      DELETE0_FOREIGN_SIGNAL( in_NRESET                         ,1                              );
+
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_VAL           ,1                              );         
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_IN_ACK           ,1                              );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_CONTEXT_ID    ,_param->_size_context_id       );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_FRONT_END_ID  ,_param->_size_front_end_id     );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ,_param->_size_ooo_engine_id    );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_PACKET_ID     ,_param->_size_rob_ptr        );
+//    DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_OPERATION     ,_param->_size_operation        );
+//    DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_TYPE          ,_param->_size_type             );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_FLAGS         ,_param->_size_special_data     );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_EXCEPTION     ,_param->_size_exception        );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_NO_SEQUENCE   ,1                              );
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_ADDRESS       ,_param->_size_instruction_address);
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_IN_DATA          ,_param->_size_general_data     );
+
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_VAL          ,1                              );         
+      DELETE0_FOREIGN_SIGNAL( in_EXECUTE_QUEUE_OUT_ACK          ,1                              );         
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_CONTEXT_ID   ,_param->_size_context_id   );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_FRONT_END_ID ,_param->_size_front_end_id );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID,_param->_size_ooo_engine_id);
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_PACKET_ID    ,_param->_size_rob_ptr    );
+//    DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_OPERATION    ,_param->_size_operation    );
+//    DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_TYPE         ,_param->_size_type         );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_FLAGS        ,_param->_size_special_data );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_EXCEPTION    ,_param->_size_exception    );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ,1                          );
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_ADDRESS      ,_param->_size_instruction_address);
+      DELETE0_FOREIGN_SIGNAL(out_EXECUTE_QUEUE_OUT_DATA         ,_param->_size_general_data );
+    }
+  };
+
+}; // end namespace execute_queue
+}; // end namespace write_unit
+}; // end namespace multi_write_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+}; // end namespace behavioural
+}; // end namespace morpheo              
+
+#endif
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp	(revision 113)
@@ -35,15 +35,42 @@
     _name              (name)
     ,_param            (param)
-    ,_usage            (usage)
   {
-    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
+    log_begin(Execute_queue,FUNCTION);
 
-#if DEBUG_Execute_queue == true
-    log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+    _usage = usage_environment(usage);
 
-    std::cout << *param << std::endl;
-#endif    
+// #if DEBUG_Execute_queue == true
+//     log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    log_printf(INFO,Execute_queue,FUNCTION,"Allocation");
+//     std::cout << *param << std::endl;
+// #endif    
+
+#ifdef MODELSIM_COSIMULATION
+    {
+      std::string param_id = param->id();
+      
+      if ((_model.get_type(_param->_type) == MODEL_VHDL) and
+          (param_id != "")
+          )
+        {
+          std::string vhdl_id = vhdl_get_id(_name);
+          
+          if (vhdl_id == param_id)
+            {
+              msgInformation(_("<%s> Use VHDL model\n"),_name.c_str());
+              _usage = usage_cosimulation(_usage);
+            }
+          else
+            {
+              log_printf(TRACE,Execute_queue,FUNCTION,"get_id : %s",vhdl_id.c_str());
+              log_printf(TRACE,Execute_queue,FUNCTION,"id     : %s",param_id.c_str());
+            
+              msgWarning(_("<%s> Can't load VHDL model, continue with SystemC model\n"),_name.c_str());
+            }
+        }
+    }
+#endif
+
+    log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Allocation"),_name.c_str());
     allocation ();
 
@@ -51,5 +78,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Execute_queue,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Execute_queue,FUNCTION,("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -61,5 +88,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Execute_queue,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -68,7 +95,7 @@
 
 #ifdef SYSTEMC
-    if (usage_is_set(_usage,USE_SYSTEMC))
+    if (usage_is_set(_usage,USE_SYSTEMC_BODY))
       {
-	log_printf(INFO,Execute_queue,FUNCTION,"Method - transition");
+	log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -80,5 +107,5 @@
 # endif    
 
-	log_printf(INFO,Execute_queue,FUNCTION,"Method - genMoore");
+	log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
 
 	SC_METHOD (genMoore);
@@ -89,8 +116,7 @@
 	// List dependency information
 # endif    
-	
+      }
 #endif
-      }
-    log_printf(FUNC,Execute_queue,FUNCTION,"End");
+    log_end(Execute_queue,FUNCTION);
   };
     
@@ -99,10 +125,10 @@
   Execute_queue::~Execute_queue (void)
   {
-    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
+    log_begin(Execute_queue,FUNCTION);
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Execute_queue,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -110,8 +136,8 @@
 #endif
 
-    log_printf(INFO,Execute_queue,FUNCTION,"Deallocation");
+    log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Execute_queue,FUNCTION,"End");
+    log_end(Execute_queue,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp	(revision 113)
@@ -2,8 +2,9 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h"
 #include "Behavioural/include/Allocation.h"
@@ -27,5 +28,5 @@
 
     Entity * entity = _component->set_entity (_name       
-					      ,"Execute_queue"
+					      ,_param->_type
 #ifdef POSITION
 					      ,COMBINATORY 
@@ -35,5 +36,5 @@
     _interfaces = entity->set_interfaces();
 
-    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
       Interface * interface = _interfaces->set_interface(""
@@ -54,15 +55,15 @@
        ALLOC0_VALACK_IN ( in_EXECUTE_QUEUE_IN_VAL,VAL);
        ALLOC0_VALACK_OUT(out_EXECUTE_QUEUE_IN_ACK,ACK);
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id     );
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id    );
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID    ,"packet_id"    ,Tpacket_t         ,_param->_size_rob_ptr        );
-//     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
-//     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type             );
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS        ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data     );
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception        );
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ,"no_sequence"  ,Tcontrol_t        ,1                              );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id         );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id       );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id      );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID    ,"packet_id"    ,Tpacket_t         ,_param->_size_rob_ptr            );
+//     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation          );
+//     ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type               );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS        ,"flags"        ,Tspecial_data_t   ,_param->_size_special_data       );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception          );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE  ,"no_sequence"  ,Tcontrol_t        ,1                                );
        ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_ADDRESS      ,"address"      ,Taddress_t        ,_param->_size_instruction_address);
-       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data     );
+       ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data       );
 
        ALLOC0_INTERFACE_END();
@@ -90,13 +91,121 @@
      }
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-
-     _queue = new std::list<execute_queue_entry_t *>;
+     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+     if (usage_is_set(_usage,USE_SYSTEMC_BODY))
+       {
+         _queue = new std::list<execute_queue_entry_t *>;
+       }
+
+     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+#ifdef VHDL
+    if (usage_is_set(_usage,USE_VHDL))
+      {
+        _param_queue = new morpheo::behavioural::generic::queue::Parameters
+          (_param->_size_queue,
+           _param->_size_internal_queue,
+           0,
+           false,
+           false
+           );
+        
+        std::string queue_name = _name + "_queue";
+        _component_queue = new morpheo::behavioural::generic::queue::Queue
+          (queue_name.c_str()
+# ifdef STATISTICS
+           ,NULL
+# endif
+           ,_param_queue
+           ,USE_VHDL);
+        
+        _component->set_component(_component_queue->_component
+# ifdef POSITION
+                                  , 0, 0, 0, 0
+# endif
+                                  , INSTANCE_LIBRARY
+                                  );
+      }
+#endif
 
 #ifdef POSITION
-     if (usage_is_set(_usage,USE_POSITION))
-       _component->generate_file();
-#endif
-
+    if (usage_is_set(_usage,USE_POSITION))
+      _component->generate_file();
+#endif
+  
+#ifdef MODELSIM_COSIMULATION
+    if (usage_is_set(_usage,USE_COSIMULATION))
+      {
+        log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Create Wrapper"),_name.c_str());
+
+        _wrapper = new Wrapper_Execute_queue(_name.c_str(),"morpheo_behavioural","/dsk/l1/misc/Morpheo/work",_param);
+//      _wrapper = new Wrapper_Execute_queue(_name.c_str(),"morpheo_behavioural","work");
+
+        log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Wrapper Instanciation"),_name.c_str());
+
+//         INSTANCE0_FOREIGN_SIGNAL_CLOCK(_wrapper, in_CLOCK                                              , "in_CLOCK"                           ,1);
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_NRESET                          ,Tcontrol_t        , "in_NRESET"                          ,1);
+                                                                                                                     
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_VAL            ,Tcontrol_t        , "in_EXECUTE_QUEUE_IN_VAL"            ,1                                );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_IN_ACK            ,Tcontrol_t        ,"out_EXECUTE_QUEUE_IN_ACK"            ,1                                );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_CONTEXT_ID     ,Tcontext_t        , "in_EXECUTE_QUEUE_IN_CONTEXT_ID"     ,_param->_size_context_id         );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_FRONT_END_ID   ,Tcontext_t        , "in_EXECUTE_QUEUE_IN_FRONT_END_ID"   ,_param->_size_front_end_id       );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID  ,Tcontext_t        , "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"  ,_param->_size_ooo_engine_id      );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_PACKET_ID      ,Tpacket_t         , "in_EXECUTE_QUEUE_IN_PACKET_ID"      ,_param->_size_rob_ptr            );
+// //      INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_OPERATION      ,Toperation_t      , "in_EXECUTE_QUEUE_IN_OPERATION"      ,_param->_size_operation          );
+// //      INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_TYPE           ,Ttype_t           , "in_EXECUTE_QUEUE_IN_TYPE"           ,_param->_size_type               );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_FLAGS          ,Tspecial_data_t   , "in_EXECUTE_QUEUE_IN_FLAGS"          ,_param->_size_special_data       );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_EXCEPTION      ,Texception_t      , "in_EXECUTE_QUEUE_IN_EXCEPTION"      ,_param->_size_exception          );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_NO_SEQUENCE    ,Tcontrol_t        , "in_EXECUTE_QUEUE_IN_NO_SEQUENCE"    ,1                                );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_ADDRESS        ,Taddress_t        , "in_EXECUTE_QUEUE_IN_ADDRESS"        ,_param->_size_instruction_address);
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_IN_DATA           ,Tgeneral_data_t   , "in_EXECUTE_QUEUE_IN_DATA"           ,_param->_size_general_data       );
+                                                                                                                     
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_VAL           ,Tcontrol_t        ,"out_EXECUTE_QUEUE_OUT_VAL"           ,1                                );
+//         INSTANCE0_FOREIGN_SIGNAL_IN   (_wrapper, in_EXECUTE_QUEUE_OUT_ACK           ,Tcontrol_t        , "in_EXECUTE_QUEUE_OUT_ACK"           ,1                                );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_CONTEXT_ID    ,Tcontext_t        ,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID"    ,_param->_size_context_id         );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_FRONT_END_ID  ,Tcontext_t        ,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID"  ,_param->_size_front_end_id       );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID ,Tcontext_t        ,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID" ,_param->_size_ooo_engine_id      );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_PACKET_ID     ,Tpacket_t         ,"out_EXECUTE_QUEUE_OUT_PACKET_ID"     ,_param->_size_rob_ptr            );
+// //      INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_OPERATION     ,Toperation_t      ,"out_EXECUTE_QUEUE_OUT_OPERATION"     ,_param->_size_operation          );
+// //      INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_TYPE          ,Ttype_t           ,"out_EXECUTE_QUEUE_OUT_TYPE"          ,_param->_size_type               );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_FLAGS         ,Tspecial_data_t   ,"out_EXECUTE_QUEUE_OUT_FLAGS"         ,_param->_size_special_data       );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_EXCEPTION     ,Texception_t      ,"out_EXECUTE_QUEUE_OUT_EXCEPTION"     ,_param->_size_exception          );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_NO_SEQUENCE   ,Tcontrol_t        ,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE"   ,1                                );
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_ADDRESS       ,Taddress_t        ,"out_EXECUTE_QUEUE_OUT_ADDRESS"       ,_param->_size_instruction_address);
+//         INSTANCE0_FOREIGN_SIGNAL_OUT  (_wrapper,out_EXECUTE_QUEUE_OUT_DATA          ,Tgeneral_data_t   ,"out_EXECUTE_QUEUE_OUT_DATA"          ,_param->_size_general_data       );
+
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_CLOCK                           ,Tcontrol_t     , "in_CLOCK"                           ,1);
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_NRESET                          ,Tcontrol_t     , "in_NRESET"                          ,1);
+                                                                                            
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_VAL            ,Tcontrol_t     , "in_EXECUTE_QUEUE_IN_VAL"            ,1                                );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_IN_ACK            ,Tcontrol_t     ,"out_EXECUTE_QUEUE_IN_ACK"            ,1                                );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_CONTEXT_ID     ,Tcontext_t     , "in_EXECUTE_QUEUE_IN_CONTEXT_ID"     ,_param->_size_context_id         );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_FRONT_END_ID   ,Tcontext_t     , "in_EXECUTE_QUEUE_IN_FRONT_END_ID"   ,_param->_size_front_end_id       );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID  ,Tcontext_t     , "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"  ,_param->_size_ooo_engine_id      );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_PACKET_ID      ,Tpacket_t      , "in_EXECUTE_QUEUE_IN_PACKET_ID"      ,_param->_size_rob_ptr            );
+//      INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_OPERATION      ,Toperation_t   , "in_EXECUTE_QUEUE_IN_OPERATION"      ,_param->_size_operation          );
+//      INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_TYPE           ,Ttype_t        , "in_EXECUTE_QUEUE_IN_TYPE"           ,_param->_size_type               );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_FLAGS          ,Tspecial_data_t, "in_EXECUTE_QUEUE_IN_FLAGS"          ,_param->_size_special_data       );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_EXCEPTION      ,Texception_t   , "in_EXECUTE_QUEUE_IN_EXCEPTION"      ,_param->_size_exception          );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_NO_SEQUENCE    ,Tcontrol_t     , "in_EXECUTE_QUEUE_IN_NO_SEQUENCE"    ,1                                );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_ADDRESS        ,Taddress_t     , "in_EXECUTE_QUEUE_IN_ADDRESS"        ,_param->_size_instruction_address);
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_DATA           ,Tgeneral_data_t, "in_EXECUTE_QUEUE_IN_DATA"           ,_param->_size_general_data       );
+                                                                                            
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_VAL           ,Tcontrol_t     ,"out_EXECUTE_QUEUE_OUT_VAL"           ,1                                );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_OUT_ACK           ,Tcontrol_t     , "in_EXECUTE_QUEUE_OUT_ACK"           ,1                                );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_CONTEXT_ID    ,Tcontext_t     ,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID"    ,_param->_size_context_id         );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_FRONT_END_ID  ,Tcontext_t     ,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID"  ,_param->_size_front_end_id       );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID ,Tcontext_t     ,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID" ,_param->_size_ooo_engine_id      );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_PACKET_ID     ,Tpacket_t      ,"out_EXECUTE_QUEUE_OUT_PACKET_ID"     ,_param->_size_rob_ptr            );
+//      INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_OPERATION     ,Toperation_t   ,"out_EXECUTE_QUEUE_OUT_OPERATION"     ,_param->_size_operation          );
+//      INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_TYPE          ,Ttype_t        ,"out_EXECUTE_QUEUE_OUT_TYPE"          ,_param->_size_type               );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_FLAGS         ,Tspecial_data_t,"out_EXECUTE_QUEUE_OUT_FLAGS"         ,_param->_size_special_data       );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_EXCEPTION     ,Texception_t   ,"out_EXECUTE_QUEUE_OUT_EXCEPTION"     ,_param->_size_exception          );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_NO_SEQUENCE   ,Tcontrol_t     ,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE"   ,1                                );
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_ADDRESS       ,Taddress_t     ,"out_EXECUTE_QUEUE_OUT_ADDRESS"       ,_param->_size_instruction_address);
+        INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_DATA          ,Tgeneral_data_t,"out_EXECUTE_QUEUE_OUT_DATA"          ,_param->_size_general_data       );
+
+        log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Wrapper Instanciation end"),_name.c_str());
+      }
+#endif
+      
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp	(revision 113)
@@ -25,5 +25,5 @@
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
 
-    if (usage_is_set(_usage,USE_SYSTEMC))
+    if (usage_is_set(_usage,USE_SYSTEMC_INTERFACE))
       {
 	delete    in_CLOCK ;
@@ -60,12 +60,30 @@
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
-    while (not _queue->empty())
+    if (usage_is_set(_usage,USE_SYSTEMC_BODY))
       {
-	delete _queue->front();
-	_queue->pop_front();
+        while (not _queue->empty())
+          {
+            delete _queue->front();
+            _queue->pop_front();
+          }
+        delete _queue;
       }
-    delete _queue;
 
     delete _component;
+
+#ifdef VHDL
+    if (usage_is_set(_usage,USE_VHDL))
+      {
+        delete _component_queue;
+        delete _param_queue;
+      }
+#endif
+
+#ifdef MODELSIM_COSIMULATION
+    if (usage_is_set(_usage,USE_COSIMULATION))
+      {
+        delete _wrapper;
+      }
+#endif
 
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_statistics_declaration.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_statistics_declaration.cpp	(revision 113)
@@ -26,5 +26,5 @@
 
     _stat = new Stat (static_cast<std::string>(_name),
-		      "Execute_queue",
+		      _param->_type,
 		      param_statistics);
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl.cpp	(revision 113)
@@ -9,5 +9,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h"
 #include "Behavioural/include/Vhdl.h"
-#include "Behavioural/Generic/Queue/include/Queue.h"
 
 namespace morpheo                    {
@@ -23,38 +22,9 @@
 #undef  FUNCTION
 #define FUNCTION "Execute_queue::vhdl"
-  void Execute_queue::vhdl (void)
+  void Execute_queue::vhdl (void) 
   {
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
 
-    //----- Queue -----
-   
-    morpheo::behavioural::generic::queue::Parameters * param_queue;
-    morpheo::behavioural::generic::queue::Queue      * queue;
-    
-    param_queue = new morpheo::behavioural::generic::queue::Parameters
-      (_param->_size_queue,
-       _param->_size_internal_queue,
-       0,
-       false,
-       false
-       );
-    
-    std::string queue_name = _name + "_queue";
-    queue = new morpheo::behavioural::generic::queue::Queue
-      (queue_name.c_str()
-#ifdef STATISTICS
-       ,NULL
-#endif
-       ,param_queue
-       ,USE_VHDL);
-    
-    _component->set_component(queue->_component
-#ifdef POSITION
-                              , 0, 0, 0, 0
-#endif
-                              , INSTANCE_LIBRARY
-                              );
-
-    Vhdl * vhdl = new Vhdl (_name);
+    Vhdl * vhdl = new Vhdl (_name,_param->id());
 
     _interfaces->set_port(vhdl);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_body.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_body.cpp	(revision 113)
@@ -57,5 +57,5 @@
     size = _param->_size_context_id;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_CONTEXT_ID;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_CONTEXT_ID "+std_logic_range(size)+";");
     min = max+1;
       }
@@ -64,5 +64,5 @@
     size = _param->_size_front_end_id;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FRONT_END_ID;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FRONT_END_ID"+std_logic_range(size)+";");
     min = max+1;
       }
@@ -71,5 +71,5 @@
     size = _param->_size_ooo_engine_id;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"+std_logic_range(size)+";");
     min = max+1;
       }
@@ -78,5 +78,5 @@
     size = _param->_size_rob_ptr;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_PACKET_ID;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_PACKET_ID"+std_logic_range(size)+";");
     min = max+1;
       }
@@ -84,35 +84,35 @@
 //  size = _param->_size_operation;
 //  max = min-1+size;
-//  vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OPERATION;");
+//  vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OPERATION"+std_logic_range(size)+";");
 //  min = max+1;
 //
 //  size = _param->_size_type;
 //  max = min-1+size;
-//  vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_TYPE;");
+//  vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_TYPE"+std_logic_range(size)+";");
 //  min = max+1;
 
     size = _param->_size_special_data;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FLAGS;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FLAGS"+std_logic_range(size)+";");
     min = max+1;
 
     size = _param->_size_exception;    
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_EXCEPTION;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_EXCEPTION"+std_logic_range(size)+";");
     min = max+1;
 
     size = 1;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE"+std_logic_range(size)+";");
     min = max+1;
 
     size = _param->_size_instruction_address;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_ADDRESS;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_ADDRESS"+std_logic_range(size)+";");
     min = max+1;
 
     size = _param->_size_general_data;
     max = min-1+size;
-    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_DATA;");
+    vhdl->set_body   (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_DATA"+std_logic_range(size)+";");
     min = max+1;
     }
@@ -125,224 +125,25 @@
 
     if(_param->_have_port_context_id)
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID    <= internal_EXECUTE_QUEUE_OUT_CONTEXT_ID   ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID    "+std_logic_range(_param->_size_context_id         )+" <= internal_EXECUTE_QUEUE_OUT_CONTEXT_ID   ;");
     if(_param->_have_port_front_end_id)
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID  <= internal_EXECUTE_QUEUE_OUT_FRONT_END_ID ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID  "+std_logic_range(_param->_size_front_end_id       )+" <= internal_EXECUTE_QUEUE_OUT_FRONT_END_ID ;");
     if(_param->_have_port_ooo_engine_id)
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID <= internal_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID "+std_logic_range(_param->_size_ooo_engine_id      )+" <= internal_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;");
     if(_param->_have_port_rob_ptr)
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_PACKET_ID     <= internal_EXECUTE_QUEUE_OUT_PACKET_ID    ;");
-//  vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_OPERATION     <= internal_EXECUTE_QUEUE_OUT_OPERATION    ;");
-//  vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_TYPE          <= internal_EXECUTE_QUEUE_OUT_TYPE         ;");
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_FLAGS         <= internal_EXECUTE_QUEUE_OUT_FLAGS        ;");
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_EXCEPTION     <= internal_EXECUTE_QUEUE_OUT_EXCEPTION    ;");
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE   <= internal_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ;");
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_ADDRESS       <= internal_EXECUTE_QUEUE_OUT_ADDRESS      ;");
-    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_DATA          <= internal_EXECUTE_QUEUE_OUT_DATA         ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_PACKET_ID     "+std_logic_range(_param->_size_rob_ptr            )+" <= internal_EXECUTE_QUEUE_OUT_PACKET_ID    ;");
+//  vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_OPERATION     "+std_logic_range(_param->_size_operation          )+" <= internal_EXECUTE_QUEUE_OUT_OPERATION    ;");
+//  vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_TYPE          "+std_logic_range(_param->_size_type               )+" <= internal_EXECUTE_QUEUE_OUT_TYPE         ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_FLAGS         "+std_logic_range(_param->_size_special_data       )+" <= internal_EXECUTE_QUEUE_OUT_FLAGS        ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_EXCEPTION     "+std_logic_range(_param->_size_exception          )+" <= internal_EXECUTE_QUEUE_OUT_EXCEPTION    ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE   "+std_logic_range(1                                )+" <= internal_EXECUTE_QUEUE_OUT_NO_SEQUENCE  ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_ADDRESS       "+std_logic_range(_param->_size_instruction_address)+" <= internal_EXECUTE_QUEUE_OUT_ADDRESS      ;");
+    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_DATA          "+std_logic_range(_param->_size_general_data       )+" <= internal_EXECUTE_QUEUE_OUT_DATA         ;");
 
-
-//     vhdl->set_body (0,"");
-//     vhdl->set_body (0,"process (in_CLOCK)");
-//     vhdl->set_body (0,"begin");
-//     vhdl->set_body (1,"if in_CLOCK'event and in_CLOCK = '1' then");
-// //     vhdl->set_body (2,"if in_NRESET = '0' then");
-// //     vhdl->set_body (3,"reg_CURRENT_STATE <= STATE_0;");
-// //     vhdl->set_body (2,"else");
-//     vhdl->set_body (3,"reg_CURRENT_STATE <= sig_NEXT_STATE;");
-// //     vhdl->set_body (2,"end if;");
-
-//     for (uint32_t i = 0; i <_param->_size_queue - 1; i++)
-//       {
-//      vhdl->set_body (2,"if sig_WEN_"+toString(i)+" = '1' then");
-//      vhdl->set_body (3,"if sig_SEL_"+toString(i)+" = '0' then");
-//      if (_param->_have_port_context_id)
-//      vhdl->set_body (4,"reg_CONTEXT_ID_"+toString(i)+"    <= in_EXECUTE_QUEUE_IN_CONTEXT_ID;");
-//      if (_param->_have_port_front_end_id)
-//      vhdl->set_body (4,"reg_FRONT_END_ID_"+toString(i)+"  <= in_EXECUTE_QUEUE_IN_FRONT_END_ID;");
-//      if (_param->_have_port_ooo_engine_id)
-//      vhdl->set_body (4,"reg_OOO_ENGINE_ID_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;");
-//      if (_param->_have_port_rob_ptr)
-//         vhdl->set_body (4,"reg_PACKET_ID_"+toString(i)+"     <= in_EXECUTE_QUEUE_IN_PACKET_ID;");
-//      vhdl->set_body (4, "reg_FLAGS_"+toString(i)+"        <= in_EXECUTE_QUEUE_IN_FLAGS;");
-//      vhdl->set_body (4, "reg_EXCEPTION_"+toString(i)+"    <= in_EXECUTE_QUEUE_IN_EXCEPTION;");
-//      vhdl->set_body (4, "reg_NO_SEQUENCE_"+toString(i)+"  <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE;");
-//      vhdl->set_body (4, "reg_ADDRESS_"+toString(i)+"      <= in_EXECUTE_QUEUE_IN_ADDRESS;");
-//      vhdl->set_body (4, "reg_DATA_"+toString(i)+"         <= in_EXECUTE_QUEUE_IN_DATA;");
-
-//      vhdl->set_body (3, "else");
-//      if (_param->_have_port_context_id)
-//      vhdl->set_body (4,"reg_CONTEXT_ID_"+toString(i)+"    <= reg_CONTEXT_ID_"+toString(i+1)+";");
-//      if (_param->_have_port_front_end_id)
-//      vhdl->set_body (4,"reg_FRONT_END_ID_"+toString(i)+"  <= reg_FRONT_END_ID_"+toString(i+1)+";");
-//      if (_param->_have_port_ooo_engine_id)
-//      vhdl->set_body (4,"reg_OOO_ENGINE_ID_"+toString(i)+" <= reg_OOO_ENGINE_ID_"+toString(i+1)+";");
-//      if (_param->_have_port_rob_ptr)
-//         vhdl->set_body (4,"reg_PACKET_ID_"+toString(i)+"     <= reg_PACKET_ID_"+toString(i+1)+";");
-//      vhdl->set_body (4, "reg_FLAGS_"+toString(i)+"        <= reg_FLAGS_"+toString(i+1)+";");
-//      vhdl->set_body (4, "reg_EXCEPTION_"+toString(i)+"    <= reg_EXCEPTION_"+toString(i+1)+";");
-//      vhdl->set_body (4, "reg_NO_SEQUENCE_"+toString(i)+"  <= reg_NO_SEQUENCE_"+toString(i+1)+";");
-//      vhdl->set_body (4, "reg_ADDRESS_"+toString(i)+"      <= reg_ADDRESS_"+toString(i+1)+";");
-//      vhdl->set_body (4, "reg_DATA_"+toString(i)+"         <= reg_DATA_"+toString(i+1)+";");
-        
-//      vhdl->set_body (3,"end if;");
-
-//      vhdl->set_body (2,"end if;");
-//       }
-
-//     vhdl->set_body (2,"if sig_WEN_"+toString(_param->_size_queue-1)+" = '1' then");
-//     if (_param->_have_port_context_id)
-//       vhdl->set_body (3,"reg_CONTEXT_ID_"+toString(_param->_size_queue-1)+"    <= in_EXECUTE_QUEUE_IN_CONTEXT_ID;");
-//     if (_param->_have_port_front_end_id)
-//       vhdl->set_body (3,"reg_FRONT_END_ID_"+toString(_param->_size_queue-1)+"  <= in_EXECUTE_QUEUE_IN_FRONT_END_ID;");
-//     if (_param->_have_port_ooo_engine_id)
-//       vhdl->set_body (3,"reg_OOO_ENGINE_ID_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;");
-//     if (_param->_have_port_rob_ptr)
-//       vhdl->set_body (3,"reg_PACKET_ID_"+toString(_param->_size_queue-1)+"     <= in_EXECUTE_QUEUE_IN_PACKET_ID;");
-//     vhdl->set_body (3, "reg_FLAGS_"+toString(_param->_size_queue-1)+"        <= in_EXECUTE_QUEUE_IN_FLAGS;");
-//     vhdl->set_body (3, "reg_EXCEPTION_"+toString(_param->_size_queue-1)+"    <= in_EXECUTE_QUEUE_IN_EXCEPTION;");
-//     vhdl->set_body (3, "reg_NO_SEQUENCE_"+toString(_param->_size_queue-1)+"  <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE;");
-//     vhdl->set_body (3, "reg_ADDRESS_"+toString(_param->_size_queue-1)+"      <= in_EXECUTE_QUEUE_IN_ADDRESS;");
-//     vhdl->set_body (3, "reg_DATA_"+toString(_param->_size_queue-1)+"         <= in_EXECUTE_QUEUE_IN_DATA;");
-//     vhdl->set_body (2,"end if;");
-
-
-//     vhdl->set_body (1,"end if;");
-//     vhdl->set_body (0,"end process;");
-
-
-//     vhdl->set_body (0,"");
-//     vhdl->set_body (0,"");
-//     vhdl->set_body (0,"");
-
-//     vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_VAL <= sig_OUT_VAL;");
-//     vhdl->set_body (0,"out_EXECUTE_QUEUE_IN_ACK <= sig_IN_ACK;");
-//     if (_param->_have_port_context_id)
-//     vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID <= reg_CONTEXT_ID_0;");
-//     if (_param->_have_port_front_end_id)
-//     vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID <= reg_FRONT_END_ID_0;");
-//     if (_param->_have_port_ooo_engine_id)
-//     vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID <= reg_OOO_ENGINE_ID_0;");
-//     if (_param->_have_port_rob_ptr)
-//     vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_PACKET_ID <= reg_PACKET_ID_0;");
-//     vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_FLAGS <= reg_FLAGS_0;");
-//     vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_EXCEPTION <= reg_EXCEPTION_0;");
-//     vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_NO_SEQUENCE <= reg_NO_SEQUENCE_0;");
-//     vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_ADDRESS <= reg_ADDRESS_0;");
-//     vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_DATA <= reg_DATA_0;");
-
-
-//     vhdl->set_body (0,"");
-
-//     vhdl->set_body (0,"process (reg_CURRENT_STATE, in_EXECUTE_QUEUE_OUT_ACK, in_EXECUTE_QUEUE_IN_VAL, in_NRESET)");
-//     vhdl->set_body (0,"begin");
-//     vhdl->set_body (1,"if in_NRESET = '0' then");
-//     vhdl->set_body (2,"sig_NEXT_STATE <= STATE_0;");
-//     vhdl->set_body (1,"else");
-//     vhdl->set_body (2,"case reg_CURRENT_STATE is");
-//     for (uint32_t i = 0; i <_param->_size_queue + 1; i++)
-//       {
-//      vhdl->set_body (3,"when STATE_"+toString(i)+" =>");
-//      if (i == 0)
-//        {
-//          vhdl->set_body (4,"if in_EXECUTE_QUEUE_IN_VAL = '1' then");
-//          vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE ("+toString(_param->_size_queue-1)+" downto 0) & '0';");
-//          vhdl->set_body (4,"else");
-//          vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE;");
-//          vhdl->set_body (4,"end if;");
-//          continue;
-//        }
-//      if (i == (_param->_size_queue))
-//        {
-//          vhdl->set_body (4,"if in_EXECUTE_QUEUE_OUT_ACK = '1' then");
-//          vhdl->set_body (5,"sig_NEXT_STATE <= '0' & reg_CURRENT_STATE ("+toString(_param->_size_queue)+" downto 1);");
-//          vhdl->set_body (4,"else");
-//          vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE;");
-//          vhdl->set_body (4,"end if;");
-//          continue;
-//        }
-//      vhdl->set_body (4,"if in_EXECUTE_QUEUE_IN_VAL = '1' and in_EXECUTE_QUEUE_OUT_ACK = '0' then");
-//      vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE ("+toString(_param->_size_queue-1)+" downto 0) & '0';");
-//      vhdl->set_body (4,"elsif in_EXECUTE_QUEUE_IN_VAL = '0' and in_EXECUTE_QUEUE_OUT_ACK = '1' then");
-//      vhdl->set_body (5,"sig_NEXT_STATE <= '0' & reg_CURRENT_STATE ("+toString(_param->_size_queue)+" downto 1);");
-//      vhdl->set_body (4,"else");
-//      vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE;");
-//      vhdl->set_body (4,"end if;");
-//       }
-//     vhdl->set_body (3,"when others => assert false report \"wrong state\" severity failure;");
-//     vhdl->set_body (2,"end case;");
-//     vhdl->set_body (1,"end if;");
-
-//     vhdl->set_body (2,"case reg_CURRENT_STATE is");
-//     for (uint32_t i = 0; i <_param->_size_queue + 1; i++)
-//       {
-//      vhdl->set_body (3,"when STATE_"+toString(i)+" =>");
-//      if (i == 0)
-//        {
-//          vhdl->set_body (4,"sig_OUT_VAL <= '0';");
-//          vhdl->set_body (4,"sig_IN_ACK <= '1';");
-//          for (uint32_t j = 0; j <_param->_size_queue; j++)
-//            {
-//              if (i == j)
-//                {
-//                  vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';");
-//                  vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_IN_VAL;");
-//                }
-//              else
-//                {
-//                  if (j < (_param->_size_queue - 1))
-//                    vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';");
-//                  vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= '0';");
-//                }
-//            }
-//          continue;
-//        }
-//      if (i == (_param->_size_queue))
-//        {
-//          vhdl->set_body (4,"sig_OUT_VAL <= '1';");
-//          vhdl->set_body (4,"sig_IN_ACK <= '0';");
-//          for (uint32_t j = 0; j <_param->_size_queue; j++)
-//            {
-//              if (j == (i - 1))
-//                {
-//                  vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= '0';");
-//                }
-//              else
-//                {
-//                  vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;");
-//                  vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;");
-//                }
-//            }
-//          continue;
-//        }
-//      vhdl->set_body (4,"sig_OUT_VAL <= '1';");
-//      vhdl->set_body (4,"sig_IN_ACK <= '1';");
-//      for (uint32_t j = 0; j <_param->_size_queue; j++)
-//        {
-//          if (j < (i - 1))
-//            {
-//              vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;");
-//              vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;");
-//            }
-//          if (j == (i - 1))
-//            {
-//              vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';");
-//              vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK and in_EXECUTE_QUEUE_IN_VAL;");
-//            }
-//          if (j == i)
-//            {
-//              if (j < (_param->_size_queue - 1))
-//                vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';");
-//              vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_IN_VAL and not in_EXECUTE_QUEUE_OUT_ACK;");
-//            }
-//          if (j > i)
-//            {
-//              if (j < (_param->_size_queue - 1))
-//                vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';");
-//              vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= '0';");
-//            }
-//        }
-//       }
-//     vhdl->set_body (3,"when others =>");
-//     vhdl->set_body (2,"end case;");
-//     vhdl->set_body (0,"end process;");
+    vhdl->set_debug  ("in_CLOCK = 'U'","GLOP1: Clock = 'U'");
+    vhdl->set_debug  ("in_CLOCK = 'X'","GLOP2: Clock = 'X'");
+    vhdl->set_debug  ("in_CLOCK = 'Z'","GLOP3: Clock = 'Z'");
+    vhdl->set_debug  ("in_CLOCK = 'W'","GLOP4: Clock = 'W'");
+    vhdl->set_debug  ("in_CLOCK = '1'","KANE : Clock = '1'");
+    vhdl->set_debug  ("in_CLOCK = '0'","SETH : Clock = '0'");
 
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp	(revision 113)
@@ -27,5 +27,6 @@
 			  uint32_t size_general_data  ,
 			  uint32_t size_special_data  ,
-                          bool     is_toplevel        )
+                          bool     is_toplevel        ):
+    behavioural::Parameters("Execute_queue")
   {
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
@@ -57,18 +58,4 @@
         copy();
       }
-
-    _size_internal_queue = 
-      (_size_context_id          +
-       _size_front_end_id        +
-       _size_ooo_engine_id       +
-       _size_rob_ptr             +      
-//     _size_operation           +
-//     _size_type                +
-       _size_special_data        +
-       _size_exception           +
-       1                         +
-       _size_general_data        +
-       _size_general_data 
-       );
 
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
@@ -114,4 +101,19 @@
   {
     log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
+
+    _size_internal_queue = 
+      (_size_context_id          +
+       _size_front_end_id        +
+       _size_ooo_engine_id       +
+       _size_rob_ptr             +      
+//     _size_operation           +
+//     _size_type                +
+       _size_special_data        +
+       _size_exception           +
+       1                         +
+       _size_general_data        +
+       _size_general_data 
+       );
+
     log_printf(FUNC,Execute_queue,FUNCTION,"End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters_id.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters_id.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters_id.cpp	(revision 113)
@@ -0,0 +1,46 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h"
+
+namespace morpheo {
+namespace behavioural {
+namespace core {
+namespace multi_execute_loop {
+namespace execute_loop {
+namespace multi_write_unit {
+namespace write_unit {
+namespace execute_queue {
+
+#undef  FUNCTION
+#define FUNCTION "Parameters::get_id"
+  std::string Parameters::id (void) const
+  {
+    log_begin(Execute_queue,FUNCTION);
+
+    std::string _return = 
+      (toString(_size_queue       ) +"_"+
+       toString(_nb_context       ) +"_"+
+       toString(_nb_front_end     ) +"_"+
+       toString(_nb_ooo_engine    ) +"_"+
+       toString(_nb_packet        ) +"_"+
+       toString(_size_general_data) +"_"+
+       toString(_size_special_data) );
+
+    log_end(Execute_queue,FUNCTION);
+
+    return _return;
+  };
+
+}; // end namespace execute_queue
+}; // end namespace write_unit
+}; // end namespace multi_write_unit
+}; // end namespace execute_loop
+}; // end namespace multi_execute_loop
+}; // end namespace core
+}; // end namespace behavioural
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Write_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/test.h	(revision 112)
+++ 	(revision )
@@ -1,31 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test "RegisterFile"
- */
-
-#ifdef SYSTEMC
-#include "systemc.h"
-#endif
-
-#include <string>
-#include <iostream>
-#include <sys/time.h>
-
-#include "Common/include/Time.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h"
-
-using namespace std;
-using namespace morpheo;
-using namespace morpheo::behavioural;
-using namespace morpheo::behavioural::core;
-using namespace morpheo::behavioural::core::multi_execute_loop;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
-
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
-
-void test    (string name,
-	      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h	(revision 113)
@@ -0,0 +1,115 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test "Write_unit"
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#define NB_ITERATION  1
+#define CYCLE_MAX     (2048*NB_ITERATION)
+
+#include "Common/include/Test.h"
+#include "Common/include/Time.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::core;
+using namespace morpheo::behavioural::core::multi_execute_loop;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
+
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
+
+SC_MODULE(top)
+{
+#ifdef SYSTEMC
+ private: sc_clock               *  in_CLOCK ;
+ private: sc_signal<Tcontrol_t>  *  in_NRESET;
+
+  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_VAL          ;
+  private: sc_signal<Tcontrol_t        >    * out_WRITE_UNIT_IN_ACK          ;
+  private: sc_signal<Tcontext_t        >    *  in_WRITE_UNIT_IN_CONTEXT_ID   ;
+  private: sc_signal<Tcontext_t        >    *  in_WRITE_UNIT_IN_FRONT_END_ID ;
+  private: sc_signal<Tcontext_t        >    *  in_WRITE_UNIT_IN_OOO_ENGINE_ID;
+  private: sc_signal<Tpacket_t         >    *  in_WRITE_UNIT_IN_PACKET_ID    ;
+//private: sc_signal<Toperation_t      >    *  in_WRITE_UNIT_IN_OPERATION    ;
+//private: sc_signal<Ttype_t           >    *  in_WRITE_UNIT_IN_TYPE         ;
+  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_WRITE_RD     ;
+  private: sc_signal<Tgeneral_address_t>    *  in_WRITE_UNIT_IN_NUM_REG_RD   ;
+  private: sc_signal<Tgeneral_data_t   >    *  in_WRITE_UNIT_IN_DATA_RD      ;
+  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_WRITE_RE     ;
+  private: sc_signal<Tspecial_address_t>    *  in_WRITE_UNIT_IN_NUM_REG_RE   ;
+  private: sc_signal<Tspecial_data_t   >    *  in_WRITE_UNIT_IN_DATA_RE      ;
+  private: sc_signal<Texception_t      >    *  in_WRITE_UNIT_IN_EXCEPTION    ;
+  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_IN_NO_SEQUENCE  ;
+  private: sc_signal<Taddress_t        >    *  in_WRITE_UNIT_IN_ADDRESS      ;
+
+  private: sc_signal<Tcontrol_t        >    * out_WRITE_UNIT_OUT_VAL          ;
+  private: sc_signal<Tcontrol_t        >    *  in_WRITE_UNIT_OUT_ACK          ;
+  private: sc_signal<Tcontext_t        >    * out_WRITE_UNIT_OUT_CONTEXT_ID   ;
+  private: sc_signal<Tcontext_t        >    * out_WRITE_UNIT_OUT_FRONT_END_ID ;
+  private: sc_signal<Tcontext_t        >    * out_WRITE_UNIT_OUT_OOO_ENGINE_ID;
+  private: sc_signal<Tpacket_t         >    * out_WRITE_UNIT_OUT_PACKET_ID    ;
+//private: sc_signal<Toperation_t      >    * out_WRITE_UNIT_OUT_OPERATION    ;
+//private: sc_signal<Ttype_t           >    * out_WRITE_UNIT_OUT_TYPE         ;
+  private: sc_signal<Tspecial_data_t   >    * out_WRITE_UNIT_OUT_FLAGS        ;
+  private: sc_signal<Texception_t      >    * out_WRITE_UNIT_OUT_EXCEPTION    ;
+  private: sc_signal<Tcontrol_t        >    * out_WRITE_UNIT_OUT_NO_SEQUENCE  ;
+  private: sc_signal<Taddress_t        >    * out_WRITE_UNIT_OUT_ADDRESS      ;
+  private: sc_signal<Tgeneral_data_t   >    * out_WRITE_UNIT_OUT_DATA         ;
+
+  private: sc_signal<Tcontrol_t        >   ** out_GPR_WRITE_VAL               ;
+  private: sc_signal<Tcontrol_t        >   **  in_GPR_WRITE_ACK               ;
+  private: sc_signal<Tcontext_t        >   ** out_GPR_WRITE_OOO_ENGINE_ID     ;
+  private: sc_signal<Tgeneral_address_t>   ** out_GPR_WRITE_NUM_REG           ;
+  private: sc_signal<Tgeneral_data_t   >   ** out_GPR_WRITE_DATA              ;
+
+  private: sc_signal<Tcontrol_t        >   ** out_SPR_WRITE_VAL               ;
+  private: sc_signal<Tcontrol_t        >   **  in_SPR_WRITE_ACK               ;
+  private: sc_signal<Tcontext_t        >   ** out_SPR_WRITE_OOO_ENGINE_ID     ;
+  private: sc_signal<Tspecial_address_t>   ** out_SPR_WRITE_NUM_REG           ;
+  private: sc_signal<Tspecial_data_t   >   ** out_SPR_WRITE_DATA              ;
+
+  private: sc_signal<Tcontext_t        >   ** out_BYPASS_WRITE_OOO_ENGINE_ID ;
+  private: sc_signal<Tcontrol_t        >   ** out_BYPASS_WRITE_GPR_VAL       ;
+  private: sc_signal<Tgeneral_address_t>   ** out_BYPASS_WRITE_GPR_NUM_REG   ; // RD
+  private: sc_signal<Tgeneral_data_t   >   ** out_BYPASS_WRITE_GPR_DATA      ;
+  private: sc_signal<Tcontrol_t        >   ** out_BYPASS_WRITE_SPR_VAL       ;
+  private: sc_signal<Tspecial_address_t>   ** out_BYPASS_WRITE_SPR_NUM_REG   ; // RE
+  private: sc_signal<Tspecial_data_t   >   ** out_BYPASS_WRITE_SPR_DATA      ;
+#endif
+
+ private: std::string name;
+ private: Tusage_t _usage;
+ private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * _param;
+#ifdef STATISTICS
+ private: morpheo::behavioural::Parameters_Statistics * _param_stat;
+#endif
+ private: Write_unit * component;
+
+ private: void usage
+    (
+#ifdef MTI_SYSTEMC
+     int argc, const char * const * argv
+#else
+     int argc, char * argv[]
+#endif
+     );
+ private: void allocation   (void);
+ private: void deallocation (void);
+ public : void test         (void);
+
+#ifdef MTI_SYSTEMC
+  SC_CTOR(top::top);
+#else
+ public : top (sc_module_name module_name,int argc, char * argv[]);
+#endif
+ public : ~top(void);
+};
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/main.cpp	(revision 113)
@@ -6,84 +6,43 @@
  */
 
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/test.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
 
-#define NB_PARAMS 11
-
-void usage (int argc, char * argv[])
+#ifndef MTI_SYSTEMC
+# ifndef SYSTEMC
+int main    (int argc, char * argv[])
+# else
+int sc_main (int argc, char * argv[])
+# endif
 {
-  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
-  err (_("list_params is :\n"));
-  err (_(" * size_write_queue    (uint32_t)\n"));
-  err (_(" * size_execute_queue  (uint32_t)\n"));
-  err (_(" * nb_context          (uint32_t)\n"));
-  err (_(" * nb_front_end        (uint32_t)\n"));
-  err (_(" * nb_ooo_engine       (uint32_t)\n"));
-  err (_(" * nb_packet           (uint32_t)\n"));
-  err (_(" * size_general_data   (uint32_t)\n"));
-  err (_(" * nb_general_register (uint32_t)\n"));
-  err (_(" * size_special_data   (uint32_t)\n"));
-  err (_(" * nb_special_register (uint32_t)\n"));
-  err (_(" * nb_bypass_write     (uint32_t)\n"));
-
-  exit (1);
-}
-
-#ifndef SYSTEMC
-int main    (int argc, char * argv[])
-#else
-int sc_main (int argc, char * argv[])
-#endif
-{
-  if (argc != 2+NB_PARAMS)
-    usage (argc, argv);
-
-  uint32_t       x = 1;
-
-  const string   name                =      argv[x++];
-  const uint32_t size_write_queue    = atoi(argv[x++]);
-  const uint32_t size_execute_queue  = atoi(argv[x++]);
-  const uint32_t nb_context          = atoi(argv[x++]);
-  const uint32_t nb_front_end        = atoi(argv[x++]);
-  const uint32_t nb_ooo_engine       = atoi(argv[x++]);
-  const uint32_t nb_packet           = atoi(argv[x++]);
-  const uint32_t size_general_data   = atoi(argv[x++]);
-  const uint32_t nb_general_register = atoi(argv[x++]);
-  const uint32_t size_special_data   = atoi(argv[x++]);
-  const uint32_t nb_special_register = atoi(argv[x++]);
-  const uint32_t nb_bypass_write     = atoi(argv[x++]);
+  int _return = EXIT_SUCCESS;
 
   try 
     {
-      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters
-	(size_write_queue   ,
-	 size_execute_queue ,
-	 nb_context         ,
-	 nb_front_end       ,
-	 nb_ooo_engine      ,
-	 nb_packet          ,
-	 size_general_data  ,
-	 nb_general_register,
-	 size_special_data  ,
-	 nb_special_register,
-	 nb_bypass_write    ,
-         true // is_toplevel
-         );
-      
-      msg(_("%s"),param->print(1).c_str());
-      
-      test (name,param);
+      top * my_top = new top ("my_top",argc,argv);
+
+      my_top->test();
+
+      delete my_top;
     }
   catch (morpheo::ErrorMorpheo & error)
     {
-      msg (_("<%s> : %s.\n"),name.c_str(), error.what ());
-      exit (EXIT_FAILURE);
+      msgError(_("%s\n"),error.what ());
+      _return = EXIT_FAILURE;
     }
-  catch (...)
+  
+  try 
     {
-      err (_("<%s> : This test must generate a error.\n"),name.c_str());
-      exit (EXIT_FAILURE);
+      if (_return == EXIT_SUCCESS)
+	TEST_OK("Write_unit : no error");
+      else
+	TEST_KO("Write_unit : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//    msgError(_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
     }
 
-  return (EXIT_SUCCESS);
+  return _return;
 }
-
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top.cpp	(revision 113)
@@ -0,0 +1,91 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
+#include "Behavioural/include/Selftest.h"
+
+#define NB_PARAMS 11
+
+#ifdef MTI_SYSTEMC
+SC_MODULE_EXPORT(top);
+#endif
+
+#ifdef MTI_SYSTEMC
+SC_CTOR(top::top)
+#else
+top::top (sc_module_name module_name, int argc, char * argv[])
+#endif
+{
+#ifdef MTI_SYSTEMC
+  // accessing command-line arguments with modelsim
+  int argc;
+  const char * const * argv;
+
+  argc = sc_argc ();
+  argv = sc_argv ();
+#endif
+
+  if (argc != 2+NB_PARAMS)
+    usage (argc, argv);
+
+  uint32_t x=1;
+
+  uint32_t size_write_queue    ;
+  uint32_t size_execute_queue  ;
+  uint32_t nb_context          ;
+  uint32_t nb_front_end        ;
+  uint32_t nb_ooo_engine       ;
+  uint32_t nb_packet           ;
+  uint32_t size_general_data   ;
+  uint32_t nb_general_register ;
+  uint32_t size_special_data   ;
+  uint32_t nb_special_register ;
+  uint32_t nb_bypass_write     ;
+
+  SELFTEST0(name,string,argv,x);
+  SELFTEST0(size_write_queue    ,uint32_t,argv,x);
+  SELFTEST0(size_execute_queue  ,uint32_t,argv,x);
+  SELFTEST0(nb_context          ,uint32_t,argv,x);
+  SELFTEST0(nb_front_end        ,uint32_t,argv,x);
+  SELFTEST0(nb_ooo_engine       ,uint32_t,argv,x);
+  SELFTEST0(nb_packet           ,uint32_t,argv,x);
+  SELFTEST0(size_general_data   ,uint32_t,argv,x);
+  SELFTEST0(nb_general_register ,uint32_t,argv,x);
+  SELFTEST0(size_special_data   ,uint32_t,argv,x);
+  SELFTEST0(nb_special_register ,uint32_t,argv,x);
+  SELFTEST0(nb_bypass_write     ,uint32_t,argv,x);
+
+  _param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters
+    (size_write_queue   ,
+     size_execute_queue ,
+     nb_context         ,
+     nb_front_end       ,
+     nb_ooo_engine      ,
+     nb_packet          ,
+     size_general_data  ,
+     nb_general_register,
+     size_special_data  ,
+     nb_special_register,
+     nb_bypass_write    ,
+     true
+     );
+  
+  // msg(_("%s"),_param.print(0).c_str());
+  
+  // Allocation component
+  allocation ();
+  
+#ifdef MTI_SYSTEMC
+  SC_THREAD(test);
+#endif
+}
+
+top::~top (void)
+{
+  deallocation ();
+  delete _param;
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_allocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_allocation.cpp	(revision 113)
@@ -0,0 +1,198 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+#include "Behavioural/include/Simulation.h"
+
+void top::allocation (void)
+{
+  if (setlocale (LC_ALL, "") == NULL)
+    msgWarning(_("setlocale ko.\n"));
+
+  try 
+    {
+      _param->test();
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msgError(_("<%s> : %s"),name.c_str(),error.what());
+      return;
+    }
+  catch (...)
+    {
+      msgError(_("<%s> : This test must generate a error"),name.c_str());
+      exit (EXIT_FAILURE);
+    }
+
+  _usage = USE_ALL;
+//   _usage = usage_unset(_usage,USE_SYSTEMC              );
+//   _usage = usage_unset(_usage,USE_VHDL                 );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//   _usage = usage_unset(_usage,USE_POSITION             );
+//   _usage = usage_unset(_usage,USE_STATISTICS           );
+//   _usage = usage_unset(_usage,USE_INFORMATION          );
+
+  _model.set_model("Write_unit"   ,MODEL_SYSTEMC, DEBUG_NONE);
+  _model.set_model("Write_queue"  ,MODEL_SYSTEMC, DEBUG_NONE);
+  _model.set_model("Execute_queue",MODEL_VHDL   , DEBUG_NONE);
+  _model.print();
+
+#ifdef STATISTICS
+  if (usage_is_set(_usage,USE_STATISTICS))
+  _param_stat = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
+#endif
+
+  try 
+    {
+      component = new Write_unit 
+        (name.c_str(),
+#ifdef STATISTICS
+         _param_stat,
+#endif
+         _param,
+         _usage
+         );
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msgError(_("<%s> : %s"),name.c_str(),error.what());
+      throw error;
+    }
+  
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+  /*********************************************************************
+   * Déclarations des signaux
+   *********************************************************************/
+  msgInformation(_("<%s> : Create signal.\n"),name.c_str());
+
+  in_CLOCK  = new sc_clock ("clock", TIME_PERIOD, TIME_UNIT, 0.5); //name,period,time_unit,duty_cycle
+
+  ALLOC0_SC_SIGNAL( in_NRESET        ," in_NRESET        ",Tcontrol_t);
+
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_VAL           ," in_WRITE_UNIT_IN_VAL"           , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_IN_ACK           ,"out_WRITE_UNIT_IN_ACK"           , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_CONTEXT_ID    ," in_WRITE_UNIT_IN_CONTEXT_ID"    , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_FRONT_END_ID  ," in_WRITE_UNIT_IN_FRONT_END_ID"  , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_OOO_ENGINE_ID ," in_WRITE_UNIT_IN_OOO_ENGINE_ID" , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_PACKET_ID     ," in_WRITE_UNIT_IN_PACKET_ID"     , Tpacket_t         );
+//ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_OPERATION     ," in_WRITE_UNIT_IN_OPERATION"     , Toperation_t      );
+//ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_TYPE          ," in_WRITE_UNIT_IN_TYPE"          , Ttype_t           );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_WRITE_RD      ," in_WRITE_UNIT_IN_WRITE_RD"      , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RD    ," in_WRITE_UNIT_IN_NUM_REG_RD"    , Tgeneral_address_t);
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_DATA_RD       ," in_WRITE_UNIT_IN_DATA_RD"       , Tgeneral_data_t   );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_WRITE_RE      ," in_WRITE_UNIT_IN_WRITE_RE"      , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RE    ," in_WRITE_UNIT_IN_NUM_REG_RE"    , Tspecial_address_t);
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_DATA_RE       ," in_WRITE_UNIT_IN_DATA_RE"       , Tspecial_data_t   );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_EXCEPTION     ," in_WRITE_UNIT_IN_EXCEPTION"     , Texception_t      );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_NO_SEQUENCE   ," in_WRITE_UNIT_IN_NO_SEQUENCE"   , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_IN_ADDRESS       ," in_WRITE_UNIT_IN_ADDRESS"       , Taddress_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_VAL          ,"out_WRITE_UNIT_OUT_VAL"          , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_UNIT_OUT_ACK          ," in_WRITE_UNIT_OUT_ACK"          , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_CONTEXT_ID   ,"out_WRITE_UNIT_OUT_CONTEXT_ID"   , Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_FRONT_END_ID ,"out_WRITE_UNIT_OUT_FRONT_END_ID" , Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_OOO_ENGINE_ID,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID", Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_PACKET_ID    ,"out_WRITE_UNIT_OUT_PACKET_ID"    , Tpacket_t         );
+//ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_OPERATION    ,"out_WRITE_UNIT_OUT_OPERATION"    , Toperation_t      );
+//ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_TYPE         ,"out_WRITE_UNIT_OUT_TYPE"         , Ttype_t           );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_FLAGS        ,"out_WRITE_UNIT_OUT_FLAGS"        , Tspecial_data_t   );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_EXCEPTION    ,"out_WRITE_UNIT_OUT_EXCEPTION"    , Texception_t      );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_NO_SEQUENCE  ,"out_WRITE_UNIT_OUT_NO_SEQUENCE"  , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_ADDRESS      ,"out_WRITE_UNIT_OUT_ADDRESS"      , Taddress_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_UNIT_OUT_DATA         ,"out_WRITE_UNIT_OUT_DATA"         , Tgeneral_data_t   );
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_VAL                ,"out_GPR_WRITE_VAL"                , Tcontrol_t        , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL( in_GPR_WRITE_ACK                ," in_GPR_WRITE_ACK"                , Tcontrol_t        , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_OOO_ENGINE_ID      ,"out_GPR_WRITE_OOO_ENGINE_ID"      , Tcontext_t        , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_NUM_REG            ,"out_GPR_WRITE_NUM_REG"            , Tgeneral_address_t, _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_DATA               ,"out_GPR_WRITE_DATA"               , Tgeneral_data_t   , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_VAL                ,"out_SPR_WRITE_VAL"                , Tcontrol_t        , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL( in_SPR_WRITE_ACK                ," in_SPR_WRITE_ACK"                , Tcontrol_t        , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_OOO_ENGINE_ID      ,"out_SPR_WRITE_OOO_ENGINE_ID"      , Tcontext_t        , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_NUM_REG            ,"out_SPR_WRITE_NUM_REG"            , Tspecial_address_t, _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_DATA               ,"out_SPR_WRITE_DATA"               , Tspecial_data_t   , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_OOO_ENGINE_ID   ,"out_BYPASS_WRITE_OOO_ENGINE_ID"   , Tcontext_t        , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_GPR_VAL         ,"out_BYPASS_WRITE_GPR_VAL"         , Tcontrol_t        , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_GPR_NUM_REG     ,"out_BYPASS_WRITE_GPR_NUM_REG"     , Tgeneral_address_t, _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_GPR_DATA        ,"out_BYPASS_WRITE_GPR_DATA"        , Tgeneral_data_t   , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_SPR_VAL         ,"out_BYPASS_WRITE_SPR_VAL"         , Tcontrol_t        , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_SPR_NUM_REG     ,"out_BYPASS_WRITE_SPR_NUM_REG"     , Tspecial_address_t, _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_SPR_DATA        ,"out_BYPASS_WRITE_SPR_DATA"        , Tspecial_data_t   , _param->_nb_bypass_write);
+  
+  /********************************************************
+   * Instanciation
+   ********************************************************/
+  
+  msgInformation(_("<%s> : Instanciation of _Write_unit.\n"),name.c_str());
+
+  INSTANCE0_SC_SIGNAL(component, in_CLOCK         );
+  INSTANCE0_SC_SIGNAL(component, in_NRESET        );
+
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_VAL           );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_IN_ACK           );
+  if (_param->_have_port_context_id)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_CONTEXT_ID    );
+  if (_param->_have_port_front_end_id)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_FRONT_END_ID  );
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_OOO_ENGINE_ID );
+  if (_param->_have_port_rob_ptr)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_PACKET_ID     );
+//INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_OPERATION     );
+//INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_TYPE          );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_WRITE_RD      );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_NUM_REG_RD    );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_DATA_RD       );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_WRITE_RE      );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_NUM_REG_RE    );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_DATA_RE       );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_EXCEPTION     );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_NO_SEQUENCE   );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_IN_ADDRESS       );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_VAL          );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_UNIT_OUT_ACK          );
+  if (_param->_have_port_context_id)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_CONTEXT_ID   );
+  if (_param->_have_port_front_end_id)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_FRONT_END_ID );
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_OOO_ENGINE_ID);
+  if (_param->_have_port_rob_ptr)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_PACKET_ID    );
+//INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_OPERATION    );
+//INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_TYPE         );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_FLAGS        );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_EXCEPTION    );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_NO_SEQUENCE  );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_ADDRESS      );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_UNIT_OUT_DATA         );
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_VAL                , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component,  in_GPR_WRITE_ACK                , _param->_nb_gpr_write);
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_OOO_ENGINE_ID      , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_NUM_REG            , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_DATA               , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_VAL                , _param->_nb_spr_write);
+  INSTANCE1_SC_SIGNAL(component,  in_SPR_WRITE_ACK                , _param->_nb_spr_write);
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_OOO_ENGINE_ID      , _param->_nb_spr_write);
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_NUM_REG            , _param->_nb_spr_write);
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_DATA               , _param->_nb_spr_write);
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_OOO_ENGINE_ID   , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_GPR_VAL         , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_GPR_NUM_REG     , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_GPR_DATA        , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_SPR_VAL         , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_SPR_NUM_REG     , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_SPR_DATA        , _param->_nb_bypass_write);
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_deallocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_deallocation.cpp	(revision 113)
@@ -0,0 +1,70 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::deallocation (void)
+{
+#ifdef SYSTEMC
+  delete             in_CLOCK;
+  DELETE0_SC_SIGNAL( in_NRESET);
+
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_VAL           );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_IN_ACK           );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_CONTEXT_ID    );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_FRONT_END_ID  );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_OOO_ENGINE_ID );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_PACKET_ID     );
+//DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_OPERATION     );
+//DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_TYPE          );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_WRITE_RD      );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RD    );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_DATA_RD       );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_WRITE_RE      );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_NUM_REG_RE    );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_DATA_RE       );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_EXCEPTION     );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_NO_SEQUENCE   );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_IN_ADDRESS       );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_VAL          );
+  DELETE0_SC_SIGNAL( in_WRITE_UNIT_OUT_ACK          );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_CONTEXT_ID   );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_FRONT_END_ID );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_OOO_ENGINE_ID);
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_PACKET_ID    );
+//DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_OPERATION    );
+//DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_TYPE         );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_FLAGS        );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_EXCEPTION    );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_NO_SEQUENCE  );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_ADDRESS      );
+  DELETE0_SC_SIGNAL(out_WRITE_UNIT_OUT_DATA         );
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_VAL               , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL( in_GPR_WRITE_ACK               , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_OOO_ENGINE_ID     , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_NUM_REG           , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_DATA              , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_VAL               , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL( in_SPR_WRITE_ACK               , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_OOO_ENGINE_ID     , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_NUM_REG           , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_DATA              , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_OOO_ENGINE_ID  , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_VAL        , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_NUM_REG    , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_DATA       , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_VAL        , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_NUM_REG    , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_DATA       , _param->_nb_bypass_write);
+#endif
+
+  delete component;
+#ifdef STATISTICS
+  delete _param_stat;
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_test.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_test.cpp	(revision 113)
@@ -0,0 +1,371 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+#include "Common/include/BitManipulation.h"
+
+  class entry_t
+  {
+  public  : Tcontext_t         _context_id   ;
+  public  : Tcontext_t         _front_end_id ;
+  public  : Tcontext_t         _ooo_engine_id;
+  public  : Tpacket_t          _packet_id    ;
+//public  : Toperation_t       _operation    ;
+//public  : Ttype_t            _type         ;
+  public  : Tcontrol_t         _write_rd     ;
+  public  : Tgeneral_address_t _num_reg_rd   ;
+  public  : Tgeneral_data_t    _data_rd      ;
+  public  : Tcontrol_t         _write_re     ;
+  public  : Tspecial_address_t _num_reg_re   ;
+  public  : Tspecial_data_t    _data_re      ;
+  public  : Texception_t       _exception    ;
+  public  : Tcontrol_t         _no_sequence  ;
+  public  : Tgeneral_data_t    _address      ;
+    
+  public  : entry_t (Tcontext_t         context_id   ,
+		     Tcontext_t         front_end_id ,
+		     Tcontext_t         ooo_engine_id,
+		     Tpacket_t          packet_id    ,
+// 		     Toperation_t       operation    ,
+// 		     Ttype_t            type         ,
+		     Tcontrol_t         write_rd     ,
+		     Tgeneral_address_t num_reg_rd   ,
+		     Tgeneral_data_t    data_rd      ,
+		     Tcontrol_t         write_re     ,
+		     Tspecial_address_t num_reg_re   ,
+		     Tspecial_data_t    data_re      ,
+		     Texception_t       exception    ,
+		     Tcontrol_t         no_sequence  ,
+		     Tgeneral_data_t    address      )
+    {
+      _context_id    = context_id   ;
+      _front_end_id  = front_end_id ;
+      _ooo_engine_id = ooo_engine_id;
+      _packet_id     = packet_id    ;
+//    _operation     = operation    ;
+//    _type          = type         ;
+      _write_rd      = write_rd     ;
+      _num_reg_rd    = num_reg_rd   ;
+      _data_rd       = data_rd      ;
+      _write_re      = write_re     ;
+      _num_reg_re    = num_reg_re   ;
+      _data_re       = data_re      ;
+      _exception     = exception    ;
+      _no_sequence   = no_sequence  ;
+      _address       = address      ;
+    };
+
+    friend std::ostream& operator<< (std::ostream& output_stream,
+				     entry_t & x)
+    {
+      output_stream << " * _context_id    : " << toString(x._context_id   ) << std::endl
+		    << " * _front_end_id  : " << toString(x._front_end_id ) << std::endl
+		    << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl
+		    << " * _packet_id     : " << toString(x._packet_id    ) << std::endl
+		  //<< " * _operation     : " << toString(x._operation    ) << std::endl
+		  //<< " * _type          : " << toString(x._type         ) << std::endl
+		    << " * _write_rd      : " << toString(x._write_rd     ) << std::endl
+		    << " * _num_reg_rd    : " << toString(x._num_reg_rd   ) << std::endl
+		    << " * _data_rd       : " << toString(x._data_rd      ) << std::endl
+		    << " * _write_re      : " << toString(x._write_re     ) << std::endl
+		    << " * _num_reg_re    : " << toString(x._num_reg_re   ) << std::endl
+		    << " * _data_re       : " << toString(x._data_re      ) << std::endl
+		    << " * _exception     : " << toString(x._exception    ) << std::endl
+		    << " * _no_sequence   : " << toString(x._no_sequence  ) << std::endl
+		    << " * _address       : " << toString(x._address      ) << std::endl;
+
+      return output_stream;
+    }
+  };
+
+void top::test (void)
+{
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+      msgInformation(_("<%s> : Start Simulation ............\n"),name.c_str());
+      
+      Time * _time = new Time();
+      
+      /********************************************************
+       * Simulation - Begin
+       ********************************************************/
+      
+  // Initialisation
+
+  const uint32_t seed = 0;
+//const uint32_t seed = static_cast<uint32_t>(time(NULL));
+
+  srand(seed);
+  
+  const  int32_t percent_transaction_write_unit_in  = 75;
+  const  int32_t percent_transaction_write_unit_out = 75;
+  const  int32_t percent_transaction_gpr             = 75;
+  const  int32_t percent_transaction_spr             = 75;
+
+  bool            gpr_val [_param->_nb_ooo_engine][_param->_nb_general_register];
+  bool            gpr_use [_param->_nb_ooo_engine][_param->_nb_general_register];
+  Tgeneral_data_t gpr     [_param->_nb_ooo_engine][_param->_nb_general_register];
+  bool            spr_val [_param->_nb_ooo_engine][_param->_nb_special_register];
+  bool            spr_use [_param->_nb_ooo_engine][_param->_nb_special_register];
+  Tgeneral_data_t spr     [_param->_nb_ooo_engine][_param->_nb_special_register];
+
+  entry_t *       request [_param->_nb_packet];
+
+  for (uint32_t i=0; i<_param->_nb_packet; ++i)
+    request [i] = NULL;
+  
+  SC_CYCLE(0);
+  LABEL("Initialisation");
+
+  LABEL("Reset");
+  in_NRESET->write(0);
+  SC_CYCLE(5);
+  in_NRESET->write(1);  
+
+  LABEL("Loop of Test");
+
+  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
+    {
+      LABEL("Iteration %d",iteration);
+
+      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	{
+	  for (uint32_t j=0; j<_param->_nb_general_register; j++)
+	    {
+	      gpr_val [i][j] = 0;
+	      gpr_use [i][j] = 0;
+	      gpr     [i][j] = rand();
+	    }
+	  for (uint32_t j=0; j<_param->_nb_special_register; j++)
+	    {
+	      spr_val [i][j] = 0;
+	      spr_use [i][j] = 0;
+	      spr     [i][j] = rand();
+	    }
+	}
+
+      for (uint32_t i=0; i<_param->_nb_packet; i++)
+	{
+          if (request [i] == NULL)
+            delete request [i];
+
+	  request [i] = new entry_t (range<Tcontext_t        >(rand(),_param->_size_context_id      ),
+				     range<Tcontext_t        >(rand(),_param->_size_front_end_id    ),
+				     range<Tcontext_t        >(rand(),_param->_size_ooo_engine_id   ),
+				     i,
+				   //range<Toperation_t      >(rand(),_param->_size_operation       ),
+				   //range<Ttype_t           >(rand(),_param->_size_type            ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tgeneral_address_t>(rand(),_param->_size_general_register),
+				     range<Tgeneral_data_t   >(rand(),_param->_size_general_data    ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tspecial_address_t>(rand(),_param->_size_special_register),
+				     range<Tspecial_data_t   >(rand(),_param->_size_special_data    ),
+				     range<Texception_t      >(rand(),0                             ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tgeneral_data_t   >(rand(),_param->_size_general_data    ));
+	}
+
+      uint32_t nb_request_in  = 0;
+      uint32_t nb_request_out = 0;
+
+      while (nb_request_out < _param->_nb_packet)
+      {
+	bool val = (((rand()%100)<percent_transaction_write_unit_in) and
+		    (nb_request_in < _param->_nb_packet) and
+		    not (request [nb_request_in]->_write_rd and 
+			 gpr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd]) and
+		    not (request [nb_request_in]->_write_re and 
+			 spr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re]));
+	
+	in_WRITE_UNIT_IN_VAL          ->write(val);
+	if (val)
+	  {
+	    in_WRITE_UNIT_IN_CONTEXT_ID   ->write(request [nb_request_in]->_context_id   );
+	    in_WRITE_UNIT_IN_FRONT_END_ID ->write(request [nb_request_in]->_front_end_id );
+	    in_WRITE_UNIT_IN_OOO_ENGINE_ID->write(request [nb_request_in]->_ooo_engine_id);
+	    in_WRITE_UNIT_IN_PACKET_ID    ->write(request [nb_request_in]->_packet_id    );
+	  //in_WRITE_UNIT_IN_OPERATION    ->write(request [nb_request_in]->_operation    );
+	  //in_WRITE_UNIT_IN_TYPE         ->write(request [nb_request_in]->_type         );
+	    in_WRITE_UNIT_IN_WRITE_RD     ->write(request [nb_request_in]->_write_rd     );
+	    in_WRITE_UNIT_IN_NUM_REG_RD   ->write(request [nb_request_in]->_num_reg_rd   );
+	    in_WRITE_UNIT_IN_DATA_RD      ->write(request [nb_request_in]->_data_rd      );
+	    in_WRITE_UNIT_IN_WRITE_RE     ->write(request [nb_request_in]->_write_re     );
+	    in_WRITE_UNIT_IN_NUM_REG_RE   ->write(request [nb_request_in]->_num_reg_re   );
+	    in_WRITE_UNIT_IN_DATA_RE      ->write(request [nb_request_in]->_data_re      );
+	    in_WRITE_UNIT_IN_EXCEPTION    ->write(request [nb_request_in]->_exception    );
+	    in_WRITE_UNIT_IN_NO_SEQUENCE  ->write(request [nb_request_in]->_no_sequence  );
+	    in_WRITE_UNIT_IN_ADDRESS      ->write(request [nb_request_in]->_address      );
+	  }
+	in_WRITE_UNIT_OUT_ACK         ->write((rand()%100)<percent_transaction_write_unit_out);
+	in_GPR_WRITE_ACK [0]           ->write((rand()%100)<percent_transaction_gpr);
+	in_SPR_WRITE_ACK [0]           ->write((rand()%100)<percent_transaction_spr);
+	    
+	SC_CYCLE(0);
+
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_GPR_WRITE_VAL [0]->read() and
+	     in_GPR_WRITE_ACK [0]->read())
+	  {
+	    Tcontext_t         ooo_engine_id = (_param->_have_port_ooo_engine_id)?out_GPR_WRITE_OOO_ENGINE_ID[0]->read():0;
+	    Tgeneral_address_t num_reg       = out_GPR_WRITE_NUM_REG      [0]->read();
+	    Tgeneral_data_t    data          = out_GPR_WRITE_DATA         [0]->read();
+	    
+	    LABEL(" * Accepted GPR_WRITE     in register [%d][%d]", ooo_engine_id,num_reg);
+
+	    TEST(bool           , gpr_val [ooo_engine_id][num_reg], 0);
+	    TEST(bool           , gpr_use [ooo_engine_id][num_reg], 1);
+	    TEST(Tgeneral_data_t, gpr     [ooo_engine_id][num_reg], data);
+	    
+	    gpr_val [ooo_engine_id][num_reg] = 1;
+	  }
+
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_SPR_WRITE_VAL [0]->read() and
+	     in_SPR_WRITE_ACK [0]->read())
+	  {
+	    Tcontext_t         ooo_engine_id = (_param->_have_port_ooo_engine_id)?out_SPR_WRITE_OOO_ENGINE_ID[0]->read():0;
+	    Tspecial_address_t num_reg       = out_SPR_WRITE_NUM_REG      [0]->read();
+	    Tspecial_data_t    data          = out_SPR_WRITE_DATA         [0]->read();
+	    
+	    LABEL(" * Accepted SPR_WRITE     in register [%d][%d]", ooo_engine_id,num_reg);
+
+	    TEST(bool           , spr_val [ooo_engine_id][num_reg], 0);
+	    TEST(bool           , spr_use [ooo_engine_id][num_reg], 1);
+	    TEST(Tgeneral_data_t, spr     [ooo_engine_id][num_reg], data);
+	    
+	    spr_val [ooo_engine_id][num_reg] = 1;
+	  }
+
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	for (uint32_t i=0; i<_param->_nb_bypass_write; i++)
+	  {
+	    Tcontext_t         ooo_engine_id  = (_param->_have_port_ooo_engine_id)?out_BYPASS_WRITE_OOO_ENGINE_ID[i]->read():0;
+	    
+	    if (out_BYPASS_WRITE_GPR_VAL      [i]->read())
+	      {
+		Tgeneral_address_t num_reg    = out_BYPASS_WRITE_GPR_NUM_REG  [i]->read(); // RD
+		Tgeneral_data_t    data       = out_BYPASS_WRITE_GPR_DATA     [i]->read();
+
+		LABEL(" * Accepted BYPASS_WRITE  in register [%d][%d] (GPR)", ooo_engine_id,num_reg);
+			    
+
+		TEST(bool           , gpr_use [ooo_engine_id][num_reg], 1);
+		TEST(Tgeneral_data_t, gpr     [ooo_engine_id][num_reg], data);
+	      }
+	    if (out_BYPASS_WRITE_SPR_VAL      [i]->read())
+	      {
+		Tspecial_address_t num_reg    = out_BYPASS_WRITE_SPR_NUM_REG  [i]->read(); // RE
+		Tspecial_data_t    data       = out_BYPASS_WRITE_SPR_DATA     [i]->read();
+
+		LABEL(" * Accepted BYPASS_WRITE  in register [%d][%d] (SPR)", ooo_engine_id,num_reg);
+
+		TEST(bool           , spr_use [ooo_engine_id][num_reg], 1);
+		TEST(Tspecial_data_t, spr     [ooo_engine_id][num_reg], data);
+	      }
+	  }
+	
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if ( in_WRITE_UNIT_IN_VAL->read() and
+	    out_WRITE_UNIT_IN_ACK->read())
+	  {
+	    LABEL(" * Accepted WRITE_UNIT_IN  [%d]",nb_request_in);
+// 	    std::cout << *request [nb_request_in] << std::endl;
+
+	    if (request [nb_request_in]->_write_rd)
+	      {
+		gpr_val [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd] = 0;
+		gpr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd] = 1;
+		gpr     [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd] = request [nb_request_in]->_data_rd;
+	      }
+	    if (request [nb_request_in]->_write_re)
+	      {
+		spr_val [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re] = 0;
+		spr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re] = 1;
+		spr     [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re] = request [nb_request_in]->_data_re;
+	      }
+	    nb_request_in ++;
+	  }
+	
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_WRITE_UNIT_OUT_VAL->read() and
+	     in_WRITE_UNIT_OUT_ACK->read())
+	  {
+	    Tcontext_t packet;
+	    if (_param->_have_port_rob_ptr)
+	      packet = out_WRITE_UNIT_OUT_PACKET_ID->read();
+	    else
+	      packet = 0;
+
+	    LABEL(" * Accepted WRITE_UNIT_OUT [%d]",packet);
+// 	    std::cout << *request [packet] << std::endl;
+
+	    if (request [packet]->_write_rd)
+	      {
+		TEST(bool, gpr_val [request [packet]->_ooo_engine_id][request [packet]->_num_reg_rd], 1);
+		TEST(bool, gpr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_rd], 1);
+		gpr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_rd] = 0;
+	      }
+	    if (request [packet]->_write_re)
+	      {
+		TEST(bool, spr_val [request [packet]->_ooo_engine_id][request [packet]->_num_reg_re], 1);
+		TEST(bool, spr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_re], 1);
+		spr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_re] = 0;
+	      }
+
+	    if (_param->_have_port_context_id)
+	    TEST(Tcontext_t     , out_WRITE_UNIT_OUT_CONTEXT_ID   ->read(), request [packet]->_context_id   );
+	    if (_param->_have_port_front_end_id)
+	    TEST(Tcontext_t     , out_WRITE_UNIT_OUT_FRONT_END_ID ->read(), request [packet]->_front_end_id );
+	    if (_param->_have_port_ooo_engine_id)
+	    TEST(Tcontext_t     , out_WRITE_UNIT_OUT_OOO_ENGINE_ID->read(), request [packet]->_ooo_engine_id);
+	    
+	  //TEST(Toperation_t   , out_WRITE_UNIT_OUT_OPERATION    ->read(), request [packet]->_operation    );
+	  //TEST(Ttype_t        , out_WRITE_UNIT_OUT_TYPE         ->read(), request [packet]->_type         );
+	    TEST(Tcontrol_t     , out_WRITE_UNIT_OUT_FLAGS        ->read(), request [packet]->_data_re      );
+	    TEST(Texception_t   , out_WRITE_UNIT_OUT_EXCEPTION    ->read(), request [packet]->_exception    );
+	    TEST(Tcontrol_t     , out_WRITE_UNIT_OUT_NO_SEQUENCE  ->read(), request [packet]->_no_sequence  );
+	    TEST(Tgeneral_data_t, out_WRITE_UNIT_OUT_ADDRESS      ->read(), request [packet]->_address      );
+	    TEST(Tgeneral_data_t, out_WRITE_UNIT_OUT_DATA         ->read(), request [packet]->_data_rd      );
+
+	    nb_request_out ++;
+	  }
+
+	SC_CYCLE(1);
+      }
+
+      for (uint32_t i=0; i<_param->_nb_packet; i++)
+        if (request [i] == NULL)
+          delete request [i];
+    }
+      
+      /********************************************************
+       * Simulation - End
+       ********************************************************/
+      
+      TEST_OK ("");
+      
+      sc_stop();
+      delete _time;
+      
+      msgInformation(_("<%s> : ............ Stop Simulation\n"),name.c_str());
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_usage.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_usage.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/top_usage.cpp	(revision 113)
@@ -0,0 +1,34 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h"
+
+void top::usage 
+(
+#ifdef MTI_SYSTEMC
+ int argc, const char * const * argv
+#else
+ int argc, char * argv[]
+#endif
+ )
+{
+  msgError (_("<Usage> %s name_instance list_params.\n"),argv[0]);
+  msgError (_("list_params is :\n"));
+  msgError (_(" * size_write_queue    (uint32_t)\n"));
+  msgError (_(" * size_execute_queue  (uint32_t)\n"));
+  msgError (_(" * nb_context          (uint32_t)\n"));
+  msgError (_(" * nb_front_end        (uint32_t)\n"));
+  msgError (_(" * nb_ooo_engine       (uint32_t)\n"));
+  msgError (_(" * nb_packet           (uint32_t)\n"));
+  msgError (_(" * size_general_data   (uint32_t)\n"));
+  msgError (_(" * nb_general_register (uint32_t)\n"));
+  msgError (_(" * size_special_data   (uint32_t)\n"));
+  msgError (_(" * nb_special_register (uint32_t)\n"));
+  msgError (_(" * nb_bypass_write     (uint32_t)\n"));
+
+  exit (1);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Write_queue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/test.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/test.h	(revision 112)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/*
- * $Id$
- *
- * [ Description ]
- * 
- * Test "RegisterFile"
- */
-
-#ifdef SYSTEMC
-#include "systemc.h"
-#endif
-
-#include <string>
-#include <iostream>
-#include <sys/time.h>
-
-#include "Common/include/Time.h"
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h"
-
-using namespace std;
-using namespace morpheo;
-using namespace morpheo::behavioural;
-using namespace morpheo::behavioural::core;
-using namespace morpheo::behavioural::core::multi_execute_loop;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
-
-using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue;
-
-void test    (string name,
-	      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * param);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h	(revision 113)
@@ -0,0 +1,115 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test "Write_queue"
+ */
+
+#ifdef SYSTEMC
+#include "systemc.h"
+#endif
+
+#define NB_ITERATION  1
+#define CYCLE_MAX     (1024*NB_ITERATION)
+
+#include "Common/include/Test.h"
+#include "Common/include/Time.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h"
+
+using namespace std;
+using namespace morpheo;
+using namespace morpheo::behavioural;
+using namespace morpheo::behavioural::core;
+using namespace morpheo::behavioural::core::multi_execute_loop;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit;
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit;
+
+using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue;
+
+SC_MODULE(top)
+{
+#ifdef SYSTEMC
+ private: sc_clock               *  in_CLOCK ;
+ private: sc_signal<Tcontrol_t>  *  in_NRESET;
+
+  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_VAL           ;
+  private: sc_signal<Tcontrol_t        >  * out_WRITE_QUEUE_IN_ACK           ;
+  private: sc_signal<Tcontext_t        >  *  in_WRITE_QUEUE_IN_CONTEXT_ID    ;
+  private: sc_signal<Tcontext_t        >  *  in_WRITE_QUEUE_IN_FRONT_END_ID  ;
+  private: sc_signal<Tcontext_t        >  *  in_WRITE_QUEUE_IN_OOO_ENGINE_ID ;
+  private: sc_signal<Tpacket_t         >  *  in_WRITE_QUEUE_IN_PACKET_ID     ;
+//private: sc_signal<Toperation_t      >  *  in_WRITE_QUEUE_IN_OPERATION     ;
+//private: sc_signal<Ttype_t           >  *  in_WRITE_QUEUE_IN_TYPE          ;
+  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_WRITE_RD      ;
+  private: sc_signal<Tgeneral_address_t>  *  in_WRITE_QUEUE_IN_NUM_REG_RD    ;
+  private: sc_signal<Tgeneral_data_t   >  *  in_WRITE_QUEUE_IN_DATA_RD       ;
+  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_WRITE_RE      ;
+  private: sc_signal<Tspecial_address_t>  *  in_WRITE_QUEUE_IN_NUM_REG_RE    ;
+  private: sc_signal<Tspecial_data_t   >  *  in_WRITE_QUEUE_IN_DATA_RE       ;
+  private: sc_signal<Texception_t      >  *  in_WRITE_QUEUE_IN_EXCEPTION     ;
+  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_IN_NO_SEQUENCE   ;
+  private: sc_signal<Taddress_t        >  *  in_WRITE_QUEUE_IN_ADDRESS       ;
+  private: sc_signal<Tcontrol_t        >  * out_WRITE_QUEUE_OUT_VAL          ;
+  private: sc_signal<Tcontrol_t        >  *  in_WRITE_QUEUE_OUT_ACK          ;
+  private: sc_signal<Tcontext_t        >  * out_WRITE_QUEUE_OUT_CONTEXT_ID   ;
+  private: sc_signal<Tcontext_t        >  * out_WRITE_QUEUE_OUT_FRONT_END_ID ;
+  private: sc_signal<Tcontext_t        >  * out_WRITE_QUEUE_OUT_OOO_ENGINE_ID;
+  private: sc_signal<Tpacket_t         >  * out_WRITE_QUEUE_OUT_PACKET_ID    ;
+//private: sc_signal<Toperation_t      >  * out_WRITE_QUEUE_OUT_OPERATION    ;
+//private: sc_signal<Ttype_t           >  * out_WRITE_QUEUE_OUT_TYPE         ;
+  private: sc_signal<Tspecial_data_t   >  * out_WRITE_QUEUE_OUT_FLAGS        ;
+  private: sc_signal<Texception_t      >  * out_WRITE_QUEUE_OUT_EXCEPTION    ;
+  private: sc_signal<Tcontrol_t        >  * out_WRITE_QUEUE_OUT_NO_SEQUENCE  ;
+  private: sc_signal<Tgeneral_data_t   >  * out_WRITE_QUEUE_OUT_ADDRESS      ;
+  private: sc_signal<Taddress_t        >  * out_WRITE_QUEUE_OUT_DATA         ;
+  private: sc_signal<Tcontrol_t        > ** out_GPR_WRITE_VAL                ;
+  private: sc_signal<Tcontrol_t        > **  in_GPR_WRITE_ACK                ;
+  private: sc_signal<Tcontext_t        > ** out_GPR_WRITE_OOO_ENGINE_ID      ;
+  private: sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_NUM_REG            ;
+  private: sc_signal<Tgeneral_data_t   > ** out_GPR_WRITE_DATA               ;
+  private: sc_signal<Tcontrol_t        > ** out_SPR_WRITE_VAL                ;
+  private: sc_signal<Tcontrol_t        > **  in_SPR_WRITE_ACK                ;
+  private: sc_signal<Tcontext_t        > ** out_SPR_WRITE_OOO_ENGINE_ID      ;
+  private: sc_signal<Tspecial_address_t> ** out_SPR_WRITE_NUM_REG            ;
+  private: sc_signal<Tspecial_data_t   > ** out_SPR_WRITE_DATA               ;
+  private: sc_signal<Tcontext_t        > ** out_BYPASS_WRITE_OOO_ENGINE_ID   ;
+  private: sc_signal<Tcontrol_t        > ** out_BYPASS_WRITE_GPR_VAL         ;
+  private: sc_signal<Tgeneral_address_t> ** out_BYPASS_WRITE_GPR_NUM_REG     ;
+  private: sc_signal<Tgeneral_data_t   > ** out_BYPASS_WRITE_GPR_DATA        ;
+  private: sc_signal<Tcontrol_t        > ** out_BYPASS_WRITE_SPR_VAL         ;
+  private: sc_signal<Tspecial_address_t> ** out_BYPASS_WRITE_SPR_NUM_REG     ;
+  private: sc_signal<Tspecial_data_t   > ** out_BYPASS_WRITE_SPR_DATA        ;
+
+#endif
+
+ private: std::string name;
+ private: Tusage_t _usage;
+ private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * _param;
+#ifdef STATISTICS
+ private: morpheo::behavioural::Parameters_Statistics * _param_stat;
+#endif
+ private: Write_queue * component;
+
+ private: void usage
+    (
+#ifdef MTI_SYSTEMC
+     int argc, const char * const * argv
+#else
+     int argc, char * argv[]
+#endif
+     );
+ private: void allocation   (void);
+ private: void deallocation (void);
+ public : void test         (void);
+
+#ifdef MTI_SYSTEMC
+  SC_CTOR(top::top);
+#else
+ public : top (sc_module_name module_name,int argc, char * argv[]);
+#endif
+ public : ~top(void);
+};
+
+  
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/main.cpp	(revision 113)
@@ -2,85 +2,47 @@
  * $Id$
  *
- * [ Description ]
+ * [ Description ]
  * 
  */
 
-#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/test.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h"
 
-#define NB_PARAMS 10
-
-void usage (int argc, char * argv[])
+#ifndef MTI_SYSTEMC
+# ifndef SYSTEMC
+int main    (int argc, char * argv[])
+# else
+int sc_main (int argc, char * argv[])
+# endif
 {
-  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
-  err (_("list_params is :\n"));
-  err (_(" * size_queue          (uint32_t)\n"));
-  err (_(" * nb_context          (uint32_t)\n"));
-  err (_(" * nb_front_end        (uint32_t)\n"));
-  err (_(" * nb_ooo_engine       (uint32_t)\n"));
-  err (_(" * nb_packet           (uint32_t)\n"));
-  err (_(" * size_general_data   (uint32_t)\n"));
-  err (_(" * nb_general_register (uint32_t)\n"));
-  err (_(" * size_special_data   (uint32_t)\n"));
-  err (_(" * nb_special_register (uint32_t)\n"));
-  err (_(" * nb_bypass_write     (uint32_t)\n"));
-
-  exit (1);
-}
-
-#ifndef SYSTEMC
-int main    (int argc, char * argv[])
-#else
-int sc_main (int argc, char * argv[])
-#endif
-{
-  if (argc != 2+NB_PARAMS)
-    usage (argc, argv);
-
-  uint32_t       x = 1;
-
-  const string   name                =      argv[x++];
-  const uint32_t size_queue          = atoi(argv[x++]);
-  const uint32_t nb_context          = atoi(argv[x++]);
-  const uint32_t nb_front_end        = atoi(argv[x++]);
-  const uint32_t nb_ooo_engine       = atoi(argv[x++]);
-  const uint32_t nb_packet           = atoi(argv[x++]);
-  const uint32_t size_general_data   = atoi(argv[x++]);
-  const uint32_t nb_general_register = atoi(argv[x++]);
-  const uint32_t size_special_data   = atoi(argv[x++]);
-  const uint32_t nb_special_register = atoi(argv[x++]);
-  const uint32_t nb_bypass_write     = atoi(argv[x++]);
+  int _return = EXIT_SUCCESS;
 
   try 
     {
-      morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters
-	(size_queue         ,
-	 nb_context         ,
-	 nb_front_end       ,
-	 nb_ooo_engine      ,
-	 nb_packet          ,
-	 size_general_data  ,
-	 nb_general_register,
-	 size_special_data  ,
-	 nb_special_register,
-	 nb_bypass_write    ,
-         true // is_toplevel
-         );
-      
-      msg(_("%s"),param->print(1).c_str());
-      
-      test (name,param);
+      top * my_top = new top ("my_top",argc,argv);
+
+      my_top->test();
+
+      delete my_top;
     }
   catch (morpheo::ErrorMorpheo & error)
     {
-      msg (_("<%s> : %s.\n"),name.c_str(), error.what ());
-      exit (EXIT_FAILURE);
+      msg(_("%s"),error.what ());
+      _return = EXIT_FAILURE;
     }
-  catch (...)
+  
+  try 
     {
-      err (_("<%s> : This test must generate a error.\n"),name.c_str());
-      exit (EXIT_FAILURE);
+      if (_return == EXIT_SUCCESS)
+	TEST_OK("Write_queue : no error");
+      else
+	TEST_KO("Write_queue : a lot of error");
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+//    msgError(_("<%s> :\n%s"),name.c_str(), error.what ());
+      _return = EXIT_FAILURE;
     }
 
-  return (EXIT_SUCCESS);
+  return _return;
 }
-
+#endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top.cpp	(revision 113)
@@ -0,0 +1,87 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Selftest.h"
+
+#define NB_PARAMS 10
+
+#ifdef MTI_SYSTEMC
+SC_MODULE_EXPORT(top);
+#endif
+
+#ifdef MTI_SYSTEMC
+SC_CTOR(top::top)
+#else
+top::top (sc_module_name module_name, int argc, char * argv[])
+#endif
+{
+#ifdef MTI_SYSTEMC
+  // accessing command-line arguments with modelsim
+  int argc;
+  const char * const * argv;
+
+  argc = sc_argc ();
+  argv = sc_argv ();
+#endif
+
+  if (argc != 2+NB_PARAMS)
+    usage (argc, argv);
+
+  uint32_t size_queue         ;
+  uint32_t nb_context         ;
+  uint32_t nb_front_end       ;
+  uint32_t nb_ooo_engine      ;
+  uint32_t nb_packet          ;
+  uint32_t size_general_data  ;
+  uint32_t nb_general_register;
+  uint32_t size_special_data  ;
+  uint32_t nb_special_register;
+  uint32_t nb_bypass_write    ;
+
+  uint32_t x=1;
+  SELFTEST0(name               ,string  ,argv,x);
+  SELFTEST0(size_queue         ,uint32_t,argv,x);
+  SELFTEST0(nb_context         ,uint32_t,argv,x);
+  SELFTEST0(nb_front_end       ,uint32_t,argv,x);
+  SELFTEST0(nb_ooo_engine      ,uint32_t,argv,x);
+  SELFTEST0(nb_packet          ,uint32_t,argv,x);
+  SELFTEST0(size_general_data  ,uint32_t,argv,x);
+  SELFTEST0(nb_general_register,uint32_t,argv,x);
+  SELFTEST0(size_special_data  ,uint32_t,argv,x);
+  SELFTEST0(nb_special_register,uint32_t,argv,x);
+  SELFTEST0(nb_bypass_write    ,uint32_t,argv,x);
+
+  _param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters
+    (size_queue         ,
+     nb_context         ,
+     nb_front_end       ,
+     nb_ooo_engine      ,
+     nb_packet          ,
+     size_general_data  ,
+     nb_general_register,
+     size_special_data  ,
+     nb_special_register,
+     nb_bypass_write    ,
+     true
+     );
+  
+  // msg(_("%s"),_param.print(0).c_str());
+  
+  // Allocation component
+  allocation ();
+  
+#ifdef MTI_SYSTEMC
+  SC_THREAD(test);
+#endif
+}
+
+top::~top (void)
+{
+  deallocation ();
+  delete _param;
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_allocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_allocation.cpp	(revision 113)
@@ -0,0 +1,184 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::allocation (void)
+{
+  if (setlocale (LC_ALL, "") == NULL)
+    msgWarning(_("setlocale ko.\n"));
+
+  try 
+    {
+      _param->test();
+    }
+  catch (morpheo::ErrorMorpheo & error)
+    {
+      msgError(_("<%s> : %s"),name.c_str(),error.what());
+      return;
+    }
+  catch (...)
+    {
+      msgError(_("<%s> : This test must generate a error"),name.c_str());
+      exit (EXIT_FAILURE);
+    }
+
+  _usage = USE_ALL;
+//   _usage = usage_unset(_usage,USE_SYSTEMC              );
+//   _usage = usage_unset(_usage,USE_VHDL                 );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
+//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
+//   _usage = usage_unset(_usage,USE_POSITION             );
+//   _usage = usage_unset(_usage,USE_STATISTICS           );
+//   _usage = usage_unset(_usage,USE_INFORMATION          );
+
+#ifdef STATISTICS
+  if (usage_is_set(_usage,USE_STATISTICS))
+  _param_stat = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
+#endif
+
+  component = new Write_queue 
+    (name.c_str(),
+#ifdef STATISTICS
+     _param_stat,
+#endif
+     _param,
+     _usage
+     );
+  
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+  /*********************************************************************
+   * Déclarations des signaux
+   *********************************************************************/
+  msgInformation(_("<%s> : Create signal.\n"),name.c_str());
+
+  in_CLOCK  = new sc_clock ("clock", TIME_PERIOD, TIME_UNIT, 0.5); //name,period,time_unit,duty_cycle
+
+  ALLOC0_SC_SIGNAL( in_NRESET        ," in_NRESET        ",Tcontrol_t);
+
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_VAL           ," in_WRITE_QUEUE_IN_VAL"           , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_IN_ACK           ,"out_WRITE_QUEUE_IN_ACK"           , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_CONTEXT_ID    ," in_WRITE_QUEUE_IN_CONTEXT_ID"    , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_FRONT_END_ID  ," in_WRITE_QUEUE_IN_FRONT_END_ID"  , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_OOO_ENGINE_ID ," in_WRITE_QUEUE_IN_OOO_ENGINE_ID" , Tcontext_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_PACKET_ID     ," in_WRITE_QUEUE_IN_PACKET_ID"     , Tpacket_t         );
+//ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_OPERATION     ," in_WRITE_QUEUE_IN_OPERATION"     , Toperation_t      );
+//ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_TYPE          ," in_WRITE_QUEUE_IN_TYPE"          , Ttype_t           );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_WRITE_RD      ," in_WRITE_QUEUE_IN_WRITE_RD"      , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_NUM_REG_RD    ," in_WRITE_QUEUE_IN_NUM_REG_RD"    , Tgeneral_address_t);
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_DATA_RD       ," in_WRITE_QUEUE_IN_DATA_RD"       , Tgeneral_data_t   );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_WRITE_RE      ," in_WRITE_QUEUE_IN_WRITE_RE"      , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_NUM_REG_RE    ," in_WRITE_QUEUE_IN_NUM_REG_RE"    , Tspecial_address_t);
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_DATA_RE       ," in_WRITE_QUEUE_IN_DATA_RE"       , Tspecial_data_t   );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_EXCEPTION     ," in_WRITE_QUEUE_IN_EXCEPTION"     , Texception_t      );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_NO_SEQUENCE   ," in_WRITE_QUEUE_IN_NO_SEQUENCE"   , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_IN_ADDRESS       ," in_WRITE_QUEUE_IN_ADDRESS"       , Taddress_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_VAL          ,"out_WRITE_QUEUE_OUT_VAL"          , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL( in_WRITE_QUEUE_OUT_ACK          ," in_WRITE_QUEUE_OUT_ACK"          , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_CONTEXT_ID   ,"out_WRITE_QUEUE_OUT_CONTEXT_ID"   , Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_FRONT_END_ID ,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_OOO_ENGINE_ID,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", Tcontext_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_PACKET_ID    ,"out_WRITE_QUEUE_OUT_PACKET_ID"    , Tpacket_t         );
+//ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_OPERATION    ,"out_WRITE_QUEUE_OUT_OPERATION"    , Toperation_t      );
+//ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_TYPE         ,"out_WRITE_QUEUE_OUT_TYPE"         , Ttype_t           );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_FLAGS        ,"out_WRITE_QUEUE_OUT_FLAGS"        , Tspecial_data_t   );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_EXCEPTION    ,"out_WRITE_QUEUE_OUT_EXCEPTION"    , Texception_t      );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_NO_SEQUENCE  ,"out_WRITE_QUEUE_OUT_NO_SEQUENCE"  , Tcontrol_t        );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_ADDRESS      ,"out_WRITE_QUEUE_OUT_ADDRESS"      , Tgeneral_data_t   );
+  ALLOC0_SC_SIGNAL(out_WRITE_QUEUE_OUT_DATA         ,"out_WRITE_QUEUE_OUT_DATA"         , Taddress_t        );
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_VAL                ,"out_GPR_WRITE_VAL"                , Tcontrol_t        , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL( in_GPR_WRITE_ACK                ," in_GPR_WRITE_ACK"                , Tcontrol_t        , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_OOO_ENGINE_ID      ,"out_GPR_WRITE_OOO_ENGINE_ID"      , Tcontext_t        , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_NUM_REG            ,"out_GPR_WRITE_NUM_REG"            , Tgeneral_address_t, _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_GPR_WRITE_DATA               ,"out_GPR_WRITE_DATA"               , Tgeneral_data_t   , _param->_nb_gpr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_VAL                ,"out_SPR_WRITE_VAL"                , Tcontrol_t        , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL( in_SPR_WRITE_ACK                ," in_SPR_WRITE_ACK"                , Tcontrol_t        , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_OOO_ENGINE_ID      ,"out_SPR_WRITE_OOO_ENGINE_ID"      , Tcontext_t        , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_NUM_REG            ,"out_SPR_WRITE_NUM_REG"            , Tspecial_address_t, _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_SPR_WRITE_DATA               ,"out_SPR_WRITE_DATA"               , Tspecial_data_t   , _param->_nb_spr_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_OOO_ENGINE_ID   ,"out_BYPASS_WRITE_OOO_ENGINE_ID"   , Tcontext_t        , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_GPR_VAL         ,"out_BYPASS_WRITE_GPR_VAL"         , Tcontrol_t        , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_GPR_NUM_REG     ,"out_BYPASS_WRITE_GPR_NUM_REG"     , Tgeneral_address_t, _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_GPR_DATA        ,"out_BYPASS_WRITE_GPR_DATA"        , Tgeneral_data_t   , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_SPR_VAL         ,"out_BYPASS_WRITE_SPR_VAL"         , Tcontrol_t        , _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_SPR_NUM_REG     ,"out_BYPASS_WRITE_SPR_NUM_REG"     , Tspecial_address_t, _param->_nb_bypass_write);
+  ALLOC1_SC_SIGNAL(out_BYPASS_WRITE_SPR_DATA        ,"out_BYPASS_WRITE_SPR_DATA"        , Tspecial_data_t   , _param->_nb_bypass_write);
+  
+  /********************************************************
+   * Instanciation
+   ********************************************************/
+  
+  msgInformation(_("<%s> : Instanciation of _Write_queue.\n"),name.c_str());
+
+  INSTANCE0_SC_SIGNAL(component, in_CLOCK         );
+  INSTANCE0_SC_SIGNAL(component, in_NRESET        );
+
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_VAL           );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_IN_ACK           );
+  if (_param->_have_port_context_id)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_CONTEXT_ID    );
+  if (_param->_have_port_front_end_id)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_FRONT_END_ID  );
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_OOO_ENGINE_ID );
+  if (_param->_have_port_rob_ptr  )
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_PACKET_ID     );
+//INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_OPERATION     );
+//INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_TYPE          );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_WRITE_RD      );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_NUM_REG_RD    );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_DATA_RD       );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_WRITE_RE      );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_NUM_REG_RE    );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_DATA_RE       );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_EXCEPTION     );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_NO_SEQUENCE   );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_IN_ADDRESS       );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_VAL          );
+  INSTANCE0_SC_SIGNAL(component,  in_WRITE_QUEUE_OUT_ACK          );
+  if (_param->_have_port_context_id)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_CONTEXT_ID   );
+  if (_param->_have_port_front_end_id)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_FRONT_END_ID );
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_OOO_ENGINE_ID);
+  if (_param->_have_port_rob_ptr  )
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_PACKET_ID    );
+//INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_OPERATION    );
+//INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_TYPE         );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_FLAGS        );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_EXCEPTION    );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_NO_SEQUENCE  );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_ADDRESS      );
+  INSTANCE0_SC_SIGNAL(component, out_WRITE_QUEUE_OUT_DATA         );
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_VAL                , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component,  in_GPR_WRITE_ACK                , _param->_nb_gpr_write);
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_OOO_ENGINE_ID      , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_NUM_REG            , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component, out_GPR_WRITE_DATA               , _param->_nb_gpr_write);
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_VAL                , _param->_nb_spr_write);
+  INSTANCE1_SC_SIGNAL(component,  in_SPR_WRITE_ACK                , _param->_nb_spr_write);
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_OOO_ENGINE_ID      , _param->_nb_spr_write);
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_NUM_REG            , _param->_nb_spr_write);
+  INSTANCE1_SC_SIGNAL(component, out_SPR_WRITE_DATA               , _param->_nb_spr_write);
+  if (_param->_have_port_ooo_engine_id)
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_OOO_ENGINE_ID   , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_GPR_VAL         , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_GPR_NUM_REG     , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_GPR_DATA        , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_SPR_VAL         , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_SPR_NUM_REG     , _param->_nb_bypass_write);
+  INSTANCE1_SC_SIGNAL(component, out_BYPASS_WRITE_SPR_DATA        , _param->_nb_bypass_write);
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_deallocation.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_deallocation.cpp	(revision 113)
@@ -0,0 +1,69 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+
+void top::deallocation (void)
+{
+#ifdef SYSTEMC
+  delete             in_CLOCK;
+  DELETE0_SC_SIGNAL( in_NRESET);
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_VAL           );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_IN_ACK           );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_CONTEXT_ID    );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_FRONT_END_ID  );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_OOO_ENGINE_ID );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_PACKET_ID     );
+//DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_OPERATION     );
+//DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_TYPE          );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_WRITE_RD      );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_NUM_REG_RD    );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_DATA_RD       );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_WRITE_RE      );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_NUM_REG_RE    );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_DATA_RE       );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_EXCEPTION     );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_NO_SEQUENCE   );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_IN_ADDRESS       );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_VAL          );
+  DELETE0_SC_SIGNAL( in_WRITE_QUEUE_OUT_ACK          );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_CONTEXT_ID   );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_FRONT_END_ID );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_OOO_ENGINE_ID);
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_PACKET_ID    );
+//DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_OPERATION    );
+//DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_TYPE         );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_FLAGS        );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_EXCEPTION    );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_NO_SEQUENCE  );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_ADDRESS      );
+  DELETE0_SC_SIGNAL(out_WRITE_QUEUE_OUT_DATA         );
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_VAL                , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL( in_GPR_WRITE_ACK                , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_OOO_ENGINE_ID      , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_NUM_REG            , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_GPR_WRITE_DATA               , _param->_nb_gpr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_VAL                , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL( in_SPR_WRITE_ACK                , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_OOO_ENGINE_ID      , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_NUM_REG            , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_SPR_WRITE_DATA               , _param->_nb_spr_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_OOO_ENGINE_ID   , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_VAL         , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_NUM_REG     , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_GPR_DATA        , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_VAL         , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_NUM_REG     , _param->_nb_bypass_write);
+  DELETE1_SC_SIGNAL(out_BYPASS_WRITE_SPR_DATA        , _param->_nb_bypass_write);
+#endif
+
+  delete component;
+#ifdef STATISTICS
+  delete _param_stat;
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_test.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_test.cpp	(revision 113)
@@ -0,0 +1,365 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ * Test
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h"
+#include "Behavioural/include/Allocation.h"
+#include "Common/include/BitManipulation.h"
+
+  class entry_t
+  {
+  public  : Tcontext_t         _context_id   ;
+  public  : Tcontext_t         _front_end_id ;
+  public  : Tcontext_t         _ooo_engine_id;
+  public  : Tpacket_t          _packet_id    ;
+//public  : Toperation_t       _operation    ;
+//public  : Ttype_t            _type         ;
+  public  : Tcontrol_t         _write_rd     ;
+  public  : Tgeneral_address_t _num_reg_rd   ;
+  public  : Tgeneral_data_t    _data_rd      ;
+  public  : Tcontrol_t         _write_re     ;
+  public  : Tspecial_address_t _num_reg_re   ;
+  public  : Tspecial_data_t    _data_re      ;
+  public  : Texception_t       _exception    ;
+  public  : Tcontrol_t         _no_sequence  ;
+  public  : Tgeneral_data_t    _address      ;
+    
+  public  : entry_t (Tcontext_t         context_id   ,
+		     Tcontext_t         front_end_id ,
+		     Tcontext_t         ooo_engine_id,
+		     Tpacket_t          packet_id    ,
+// 		     Toperation_t       operation    ,
+// 		     Ttype_t            type         ,
+		     Tcontrol_t         write_rd     ,
+		     Tgeneral_address_t num_reg_rd   ,
+		     Tgeneral_data_t    data_rd      ,
+		     Tcontrol_t         write_re     ,
+		     Tspecial_address_t num_reg_re   ,
+		     Tspecial_data_t    data_re      ,
+		     Texception_t       exception    ,
+		     Tcontrol_t         no_sequence  ,
+		     Tgeneral_data_t    address      )
+    {
+      _context_id    = context_id   ;
+      _front_end_id  = front_end_id ;
+      _ooo_engine_id = ooo_engine_id;
+      _packet_id     = packet_id    ;
+    //_operation     = operation    ;
+    //_type          = type         ;
+      _write_rd      = write_rd     ;
+      _num_reg_rd    = num_reg_rd   ;
+      _data_rd       = data_rd      ;
+      _write_re      = write_re     ;
+      _num_reg_re    = num_reg_re   ;
+      _data_re       = data_re      ;
+      _exception     = exception    ;
+      _no_sequence   = no_sequence  ;
+      _address       = address      ;
+    };
+
+    friend std::ostream& operator<< (std::ostream& output_stream,
+				     entry_t & x)
+    {
+      output_stream << " * _context_id    : " << toString(x._context_id   ) << std::endl
+		    << " * _front_end_id  : " << toString(x._front_end_id ) << std::endl
+		    << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl
+		    << " * _packet_id     : " << toString(x._packet_id    ) << std::endl
+		  //<< " * _operation     : " << toString(x._operation    ) << std::endl
+		  //<< " * _type          : " << toString(x._type         ) << std::endl
+		    << " * _write_rd      : " << toString(x._write_rd     ) << std::endl
+		    << " * _num_reg_rd    : " << toString(x._num_reg_rd   ) << std::endl
+		    << " * _data_rd       : " << toString(x._data_rd      ) << std::endl
+		    << " * _write_re      : " << toString(x._write_re     ) << std::endl
+		    << " * _num_reg_re    : " << toString(x._num_reg_re   ) << std::endl
+		    << " * _data_re       : " << toString(x._data_re      ) << std::endl
+		    << " * _exception     : " << toString(x._exception    ) << std::endl
+		    << " * _no_sequence   : " << toString(x._no_sequence  ) << std::endl
+		    << " * _address       : " << toString(x._address      ) << std::endl;
+
+      return output_stream;
+    }
+  };
+
+void top::test (void)
+{
+#ifdef SYSTEMC
+  if (usage_is_set(_usage,USE_SYSTEMC))
+    {
+      msgInformation(_("<%s> : Start Simulation ............\n"),name.c_str());
+      
+      Time * _time = new Time();
+      
+      /********************************************************
+       * Simulation - Begin
+       ********************************************************/
+
+  // Initialisation
+
+  const uint32_t seed = 0;
+//const uint32_t seed = static_cast<uint32_t>(time(NULL));
+
+  srand(seed);
+  
+  const  int32_t percent_transaction_write_queue_in  = 75;
+  const  int32_t percent_transaction_write_queue_out = 75;
+  const  int32_t percent_transaction_gpr             = 75;
+  const  int32_t percent_transaction_spr             = 75;
+
+  bool            gpr_val [_param->_nb_ooo_engine][_param->_nb_general_register];
+  bool            gpr_use [_param->_nb_ooo_engine][_param->_nb_general_register];
+  Tgeneral_data_t gpr     [_param->_nb_ooo_engine][_param->_nb_general_register];
+  bool            spr_val [_param->_nb_ooo_engine][_param->_nb_special_register];
+  bool            spr_use [_param->_nb_ooo_engine][_param->_nb_special_register];
+  Tgeneral_data_t spr     [_param->_nb_ooo_engine][_param->_nb_special_register];
+
+  entry_t *       request [_param->_nb_packet];
+  
+  SC_CYCLE(0);
+  LABEL("Initialisation");
+
+  LABEL("Reset");
+  in_NRESET->write(0);
+  SC_CYCLE(5);
+  in_NRESET->write(1);  
+
+  LABEL("Loop of Test");
+
+  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
+    {
+      LABEL("Iteration %d",iteration);
+
+      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
+	{
+	  for (uint32_t j=0; j<_param->_nb_general_register; j++)
+	    {
+	      gpr_val [i][j] = 0;
+	      gpr_use [i][j] = 0;
+	      gpr     [i][j] = rand();
+	    }
+	  for (uint32_t j=0; j<_param->_nb_special_register; j++)
+	    {
+	      spr_val [i][j] = 0;
+	      spr_use [i][j] = 0;
+	      spr     [i][j] = rand();
+	    }
+	}
+
+      for (uint32_t i=0; i<_param->_nb_packet; i++)
+	{
+	  request [i] = new entry_t (range<Tcontext_t        >(rand(),_param->_size_context_id      ),
+				     range<Tcontext_t        >(rand(),_param->_size_front_end_id    ),
+				     range<Tcontext_t        >(rand(),_param->_size_ooo_engine_id   ),
+				     i,
+				   //range<Toperation_t      >(rand(),_param->_size_operation       ),
+				   //range<Ttype_t           >(rand(),_param->_size_type            ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tgeneral_address_t>(rand(),_param->_size_general_register),
+				     range<Tgeneral_data_t   >(rand(),_param->_size_general_data    ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tspecial_address_t>(rand(),_param->_size_special_register),
+				     range<Tspecial_data_t   >(rand(),_param->_size_special_data    ),
+				     range<Texception_t      >(rand(),0                             ),
+				     range<Tcontrol_t        >(rand(),1                             ),
+				     range<Tgeneral_data_t   >(rand(),_param->_size_general_data    ));
+	}
+
+      uint32_t nb_request_in  = 0;
+      uint32_t nb_request_out = 0;
+
+      while (nb_request_out < _param->_nb_packet)
+      {
+	bool val = (((rand()%100)<percent_transaction_write_queue_in) and
+		    (nb_request_in < _param->_nb_packet) and
+		    not (request [nb_request_in]->_write_rd and 
+			 gpr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd]) and
+		    not (request [nb_request_in]->_write_re and 
+			 spr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re]));
+	
+	in_WRITE_QUEUE_IN_VAL          ->write(val);
+	if (val)
+	  {
+	    in_WRITE_QUEUE_IN_CONTEXT_ID   ->write(request [nb_request_in]->_context_id   );
+	    in_WRITE_QUEUE_IN_FRONT_END_ID ->write(request [nb_request_in]->_front_end_id );
+	    in_WRITE_QUEUE_IN_OOO_ENGINE_ID->write(request [nb_request_in]->_ooo_engine_id);
+	    in_WRITE_QUEUE_IN_PACKET_ID    ->write(request [nb_request_in]->_packet_id    );
+	  //in_WRITE_QUEUE_IN_OPERATION    ->write(request [nb_request_in]->_operation    );
+	  //in_WRITE_QUEUE_IN_TYPE         ->write(request [nb_request_in]->_type         );
+	    in_WRITE_QUEUE_IN_WRITE_RD     ->write(request [nb_request_in]->_write_rd     );
+	    in_WRITE_QUEUE_IN_NUM_REG_RD   ->write(request [nb_request_in]->_num_reg_rd   );
+	    in_WRITE_QUEUE_IN_DATA_RD      ->write(request [nb_request_in]->_data_rd      );
+	    in_WRITE_QUEUE_IN_WRITE_RE     ->write(request [nb_request_in]->_write_re     );
+	    in_WRITE_QUEUE_IN_NUM_REG_RE   ->write(request [nb_request_in]->_num_reg_re   );
+	    in_WRITE_QUEUE_IN_DATA_RE      ->write(request [nb_request_in]->_data_re      );
+	    in_WRITE_QUEUE_IN_EXCEPTION    ->write(request [nb_request_in]->_exception    );
+	    in_WRITE_QUEUE_IN_NO_SEQUENCE  ->write(request [nb_request_in]->_no_sequence  );
+	    in_WRITE_QUEUE_IN_ADDRESS      ->write(request [nb_request_in]->_address      );
+	  }
+	in_WRITE_QUEUE_OUT_ACK         ->write((rand()%100)<percent_transaction_write_queue_out);
+	in_GPR_WRITE_ACK [0]           ->write((rand()%100)<percent_transaction_gpr);
+	in_SPR_WRITE_ACK [0]           ->write((rand()%100)<percent_transaction_spr);
+	    
+	SC_CYCLE(0);
+
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_GPR_WRITE_VAL [0]->read() and
+	     in_GPR_WRITE_ACK [0]->read())
+	  {
+	    Tcontext_t         ooo_engine_id = (_param->_have_port_ooo_engine_id)?out_GPR_WRITE_OOO_ENGINE_ID[0]->read():0;
+	    Tgeneral_address_t num_reg       = out_GPR_WRITE_NUM_REG      [0]->read();
+	    Tgeneral_data_t    data          = out_GPR_WRITE_DATA         [0]->read();
+	    
+	    LABEL(" * Accepted GPR_WRITE     in register [%d][%d]", ooo_engine_id,num_reg);
+
+	    TEST(bool           , gpr_val [ooo_engine_id][num_reg], 0);
+	    TEST(bool           , gpr_use [ooo_engine_id][num_reg], 1);
+	    TEST(Tgeneral_data_t, gpr     [ooo_engine_id][num_reg], data);
+	    
+	    gpr_val [ooo_engine_id][num_reg] = 1;
+	  }
+
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_SPR_WRITE_VAL [0]->read() and
+	     in_SPR_WRITE_ACK [0]->read())
+	  {
+	    Tcontext_t         ooo_engine_id = (_param->_have_port_ooo_engine_id)?out_SPR_WRITE_OOO_ENGINE_ID[0]->read():0;
+	    Tspecial_address_t num_reg       = out_SPR_WRITE_NUM_REG      [0]->read();
+	    Tspecial_data_t    data          = out_SPR_WRITE_DATA         [0]->read();
+	    
+	    LABEL(" * Accepted SPR_WRITE     in register [%d][%d]", ooo_engine_id,num_reg);
+
+	    TEST(bool           , spr_val [ooo_engine_id][num_reg], 0);
+	    TEST(bool           , spr_use [ooo_engine_id][num_reg], 1);
+	    TEST(Tgeneral_data_t, spr     [ooo_engine_id][num_reg], data);
+	    
+	    spr_val [ooo_engine_id][num_reg] = 1;
+	  }
+
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	for (uint32_t i=0; i<_param->_nb_bypass_write; i++)
+	  {
+	    Tcontext_t         ooo_engine_id  = (_param->_have_port_ooo_engine_id)?out_BYPASS_WRITE_OOO_ENGINE_ID[i]->read():0;
+	    
+	    if (out_BYPASS_WRITE_GPR_VAL      [i]->read())
+	      {
+		Tgeneral_address_t num_reg    = out_BYPASS_WRITE_GPR_NUM_REG  [i]->read(); // RD
+		Tgeneral_data_t    data       = out_BYPASS_WRITE_GPR_DATA     [i]->read();
+
+		LABEL(" * Accepted BYPASS_WRITE  in register [%d][%d] (GPR)", ooo_engine_id,num_reg);
+			    
+
+		TEST(bool           , gpr_use [ooo_engine_id][num_reg], 1);
+		TEST(Tgeneral_data_t, gpr     [ooo_engine_id][num_reg], data);
+	      }
+	    if (out_BYPASS_WRITE_SPR_VAL      [i]->read())
+	      {
+		Tspecial_address_t num_reg    = out_BYPASS_WRITE_SPR_NUM_REG  [i]->read(); // RE
+		Tspecial_data_t    data       = out_BYPASS_WRITE_SPR_DATA     [i]->read();
+
+		LABEL(" * Accepted BYPASS_WRITE  in register [%d][%d] (SPR)", ooo_engine_id,num_reg);
+
+		TEST(bool           , spr_use [ooo_engine_id][num_reg], 1);
+		TEST(Tspecial_data_t, spr     [ooo_engine_id][num_reg], data);
+	      }
+	  }
+	
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if ( in_WRITE_QUEUE_IN_VAL->read() and
+	    out_WRITE_QUEUE_IN_ACK->read())
+	  {
+	    LABEL(" * Accepted WRITE_QUEUE_IN  [%d]",nb_request_in);
+// 	    std::cout << *request [nb_request_in] << std::endl;
+
+	    if (request [nb_request_in]->_write_rd)
+	      {
+		gpr_val [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd] = 0;
+		gpr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd] = 1;
+		gpr     [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_rd] = request [nb_request_in]->_data_rd;
+	      }
+	    if (request [nb_request_in]->_write_re)
+	      {
+		spr_val [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re] = 0;
+		spr_use [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re] = 1;
+		spr     [request [nb_request_in]->_ooo_engine_id][request [nb_request_in]->_num_reg_re] = request [nb_request_in]->_data_re;
+	      }
+	    nb_request_in ++;
+	  }
+	
+	// ======================================================================
+	// ======================================================================
+	// ======================================================================
+	if (out_WRITE_QUEUE_OUT_VAL->read() and
+	     in_WRITE_QUEUE_OUT_ACK->read())
+	  {
+	    Tcontext_t packet;
+	    if (_param->_have_port_rob_ptr)
+	      packet = out_WRITE_QUEUE_OUT_PACKET_ID->read();
+	    else
+	      packet = 0;
+
+	    LABEL(" * Accepted WRITE_QUEUE_OUT [%d]",packet);
+// 	    std::cout << *request [packet] << std::endl;
+
+	    if (request [packet]->_write_rd)
+	      {
+		TEST(bool, gpr_val [request [packet]->_ooo_engine_id][request [packet]->_num_reg_rd], 1);
+		TEST(bool, gpr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_rd], 1);
+		gpr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_rd] = 0;
+	      }
+	    if (request [packet]->_write_re)
+	      {
+		TEST(bool, spr_val [request [packet]->_ooo_engine_id][request [packet]->_num_reg_re], 1);
+		TEST(bool, spr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_re], 1);
+		spr_use [request [packet]->_ooo_engine_id][request [packet]->_num_reg_re] = 0;
+	      }
+
+	    if (_param->_have_port_context_id)
+	    TEST(Tcontext_t     , out_WRITE_QUEUE_OUT_CONTEXT_ID   ->read(), request [packet]->_context_id   );
+	    if (_param->_have_port_front_end_id)
+	    TEST(Tcontext_t     , out_WRITE_QUEUE_OUT_FRONT_END_ID ->read(), request [packet]->_front_end_id );
+	    if (_param->_have_port_ooo_engine_id)
+	    TEST(Tcontext_t     , out_WRITE_QUEUE_OUT_OOO_ENGINE_ID->read(), request [packet]->_ooo_engine_id);
+	    
+	  //TEST(Toperation_t   , out_WRITE_QUEUE_OUT_OPERATION    ->read(), request [packet]->_operation    );
+	  //TEST(Ttype_t        , out_WRITE_QUEUE_OUT_TYPE         ->read(), request [packet]->_type         );
+	    TEST(Tcontrol_t     , out_WRITE_QUEUE_OUT_FLAGS        ->read(), request [packet]->_data_re      );
+	    TEST(Texception_t   , out_WRITE_QUEUE_OUT_EXCEPTION    ->read(), request [packet]->_exception    );
+	    TEST(Tcontrol_t     , out_WRITE_QUEUE_OUT_NO_SEQUENCE  ->read(), request [packet]->_no_sequence  );
+	    TEST(Tgeneral_data_t, out_WRITE_QUEUE_OUT_ADDRESS      ->read(), request [packet]->_address      );
+	    TEST(Tgeneral_data_t, out_WRITE_QUEUE_OUT_DATA         ->read(), request [packet]->_data_rd      );
+
+	    nb_request_out ++;
+	  }
+
+	SC_CYCLE(1);
+      }
+
+      for (uint32_t i=0; i<_param->_nb_packet; i++)
+	delete request [i];
+
+    }
+      
+      /********************************************************
+       * Simulation - End
+       ********************************************************/
+      
+      TEST_OK ("");
+      
+      sc_stop();
+      delete _time;
+      
+      msgInformation(_("<%s> : ............ Stop Simulation\n"),name.c_str());
+    }
+#endif
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_usage.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_usage.cpp	(revision 113)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/top_usage.cpp	(revision 113)
@@ -0,0 +1,33 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h"
+
+void top::usage 
+(
+#ifdef MTI_SYSTEMC
+ int argc, const char * const * argv
+#else
+ int argc, char * argv[]
+#endif
+ )
+{
+  msgError (_("<Usage> %s name_instance list_params.\n"),argv[0]);
+  msgError (_("list_params is :\n"));
+  msgError (_(" * size_queue          (uint32_t)\n"));
+  msgError (_(" * nb_context          (uint32_t)\n"));
+  msgError (_(" * nb_front_end        (uint32_t)\n"));
+  msgError (_(" * nb_ooo_engine       (uint32_t)\n"));
+  msgError (_(" * nb_packet           (uint32_t)\n"));
+  msgError (_(" * size_general_data   (uint32_t)\n"));
+  msgError (_(" * nb_general_register (uint32_t)\n"));
+  msgError (_(" * size_special_data   (uint32_t)\n"));
+  msgError (_(" * nb_special_register (uint32_t)\n"));
+  msgError (_(" * nb_bypass_write     (uint32_t)\n"));
+
+  exit (1);
+}
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h	(revision 113)
@@ -30,4 +30,6 @@
 #include "Behavioural/include/Usage.h"
 
+#include "Behavioural/Generic/Queue/include/Queue.h"
+
 namespace morpheo {
 namespace behavioural {
@@ -48,5 +50,5 @@
   protected : const std::string  _name;
   protected : const Parameters * _param;
-  private   : const Tusage_t     _usage;
+  public    :       Tusage_t     _usage;
 
 #ifdef STATISTICS
@@ -126,4 +128,6 @@
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+  private   : morpheo::behavioural::generic::queue::Parameters * _param_queue;
+  private   : morpheo::behavioural::generic::queue::Queue      * _component_queue;
 
     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp	(revision 113)
@@ -30,5 +30,6 @@
 			  uint32_t nb_special_register,
 			  uint32_t nb_bypass_write    ,
-                          bool     is_toplevel)
+                          bool     is_toplevel):
+    behavioural::Parameters ("Write_queue")
   {
     log_printf(FUNC,Write_queue,FUNCTION,"Begin");
@@ -67,20 +68,4 @@
         copy();
       }
-
-    _size_internal_queue = 
-      ( _size_context_id          +  
-        _size_front_end_id        +  
-        _size_ooo_engine_id       +  
-        _size_rob_ptr             + 
-        1                         +
-        _size_general_register    +
-        _size_general_data        +
-        1                         +
-        _size_special_register    +
-        _size_special_data        +
-        _size_exception           +
-        1                         +
-        _size_instruction_address
-       );
 
     log_printf(FUNC,Write_queue,FUNCTION,"End");
@@ -134,4 +119,21 @@
   {
     log_printf(FUNC,Write_queue,FUNCTION,"Begin");
+
+    _size_internal_queue = 
+      ( _size_context_id          +  
+        _size_front_end_id        +  
+        _size_ooo_engine_id       +  
+        _size_rob_ptr             + 
+        1                         +
+        _size_general_register    +
+        _size_general_data        +
+        1                         +
+        _size_special_register    +
+        _size_special_data        +
+        _size_exception           +
+        1                         +
+        _size_instruction_address
+       );
+
     log_printf(FUNC,Write_queue,FUNCTION,"End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp	(revision 113)
@@ -26,8 +26,8 @@
     log_printf(FUNC,Write_queue,FUNCTION,"Begin");
 
-    Parameters_test test ("Write_queue");
+    Parameters_test test (_type);
 
     if (_nb_bypass_write > _size_queue)
-      test.error("The write_queue can't have more bypass_write than entry in the queue.");
+      test.error("The write_queue can't have more bypass_write than entry in the queue.\n");
 
     log_printf(FUNC,Write_queue,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue.cpp	(revision 113)
@@ -37,13 +37,13 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Write_queue,FUNCTION,"Begin");
+    log_begin(Write_queue,FUNCTION);
 
-#if DEBUG_Write_queue == true
-    log_printf(INFO,Write_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Write_queue == true
+//     log_printf(INFO,Write_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
-    log_printf(INFO,Write_queue,FUNCTION,"Allocation");
+    log_printf(INFO,Write_queue,FUNCTION,_("<%s> Allocation"),_name.c_str());
     allocation ();
 
@@ -51,5 +51,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Write_queue,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Write_queue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -61,5 +61,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Write_queue,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Write_queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -70,5 +70,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Write_queue,FUNCTION,"Method - transition");
+	log_printf(INFO,Write_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -80,5 +80,5 @@
 # endif    
 
-	log_printf(INFO,Write_queue,FUNCTION,"Method - genMoore");
+	log_printf(INFO,Write_queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
 
 	SC_METHOD (genMoore);
@@ -92,5 +92,5 @@
 #endif
       }
-    log_printf(FUNC,Write_queue,FUNCTION,"End");
+    log_end(Write_queue,FUNCTION);
   };
     
@@ -99,10 +99,10 @@
   Write_queue::~Write_queue (void)
   {
-    log_printf(FUNC,Write_queue,FUNCTION,"Begin");
+    log_begin(Write_queue,FUNCTION);
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Write_queue,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Write_queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 	
 	delete _stat;
@@ -110,8 +110,8 @@
 #endif
 
-    log_printf(INFO,Write_queue,FUNCTION,"Deallocation");
+    log_printf(INFO,Write_queue,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Write_queue,FUNCTION,"End");
+    log_end(Write_queue,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp	(revision 113)
@@ -28,5 +28,5 @@
 
     Entity * entity = _component->set_entity (_name       
-					      ,"Write_queue"
+					      ,_param->_type
 #ifdef POSITION
 					      ,COMBINATORY 
@@ -136,7 +136,32 @@
      }
 
-    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
 
      _queue = new std::list<write_queue_entry_t *>;
+
+    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
+    _param_queue = new morpheo::behavioural::generic::queue::Parameters
+      (_param->_size_queue,
+       _param->_size_internal_queue,
+       _param->_nb_bypass_write,
+       false,
+       false
+       );
+
+    std::string queue_name = _name + "_queue";
+    _component_queue = new morpheo::behavioural::generic::queue::Queue
+      (queue_name.c_str()
+#ifdef STATISTICS
+       ,NULL
+#endif
+       ,_param_queue
+       ,USE_VHDL);
+    
+    _component->set_component(_component_queue->_component
+#ifdef POSITION
+                              , 50, 50, 50, 50
+#endif
+                              , INSTANCE_LIBRARY
+                              );
 
 #ifdef POSITION
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp	(revision 113)
@@ -92,4 +92,6 @@
 
     delete _component;
+    delete _component_queue;
+    delete _param_queue;
 
     log_printf(FUNC,Write_queue,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_statistics_declaration.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_statistics_declaration.cpp	(revision 113)
@@ -26,5 +26,5 @@
 
     _stat = new Stat (static_cast<std::string>(_name),
-		      "Write_queue",
+		      _param->_type,
 		      param_statistics);
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl.cpp	(revision 113)
@@ -9,5 +9,4 @@
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h"
 #include "Behavioural/include/Vhdl.h"
-#include "Behavioural/Generic/Queue/include/Queue.h"
 
 namespace morpheo                    {
@@ -26,35 +25,4 @@
   {
     log_printf(FUNC,Write_queue,FUNCTION,"Begin");
-
-    morpheo::behavioural::generic::queue::Parameters * param_queue;
-    morpheo::behavioural::generic::queue::Queue      * queue;
-    
-    param_queue = new morpheo::behavioural::generic::queue::Parameters
-      (_param->_size_queue,
-       _param->_size_internal_queue,
-       _param->_nb_bypass_write,
-       false,
-       false
-       );
-
-    std::cout << "size internal queue :" << _param->_size_internal_queue << "." << std::endl;
-
-    std::string queue_name = _name + "_queue";
-    queue = new morpheo::behavioural::generic::queue::Queue
-      (queue_name.c_str()
-#ifdef STATISTICS
-       ,NULL
-#endif
-       ,param_queue
-       ,USE_VHDL);
-    
-    _component->set_component(queue->_component
-#ifdef POSITION
-                              , 50, 50, 50, 50
-#endif
-                              , INSTANCE_LIBRARY
-                              );
-
-
 
     Vhdl * vhdl = new Vhdl (_name);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl_declaration.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl_declaration.cpp	(revision 113)
@@ -54,5 +54,5 @@
     uint32_t min = 0;
     uint32_t max, size;
-    uint32_t min_ooo, max_ooo;
+    uint32_t min_ooo, max_ooo = 0;
     uint32_t pos_write_rd, min_gpr_num_reg, max_gpr_num_reg, min_gpr_data, max_gpr_data;
     uint32_t pos_write_re, min_spr_num_reg, max_spr_num_reg, min_spr_data, max_spr_data;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h	(revision 113)
@@ -48,5 +48,5 @@
   protected : const std::string  _name;
   protected : const Parameters * _param;
-  private   : const Tusage_t     _usage;
+  public    :       Tusage_t     _usage;
 
 #ifdef STATISTICS
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters.cpp	(revision 113)
@@ -30,5 +30,6 @@
 			  uint32_t nb_special_register,
 			  uint32_t nb_bypass_write    ,
-                          bool     is_toplevel        )
+                          bool     is_toplevel        ):
+    behavioural::Parameters("Write_unit")
   {
     log_printf(FUNC,Write_unit,FUNCTION,"Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit.cpp	(revision 113)
@@ -36,13 +36,13 @@
     ,_usage            (usage)
   {
-    log_printf(FUNC,Write_unit,FUNCTION,"Begin");
+    log_begin(Write_unit,FUNCTION);
 
-#if DEBUG_Write_unit == true
-    log_printf(INFO,Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
+// #if DEBUG_Write_unit == true
+//     log_printf(INFO,Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
 
-    std::cout << *param << std::endl;
-#endif    
+//     std::cout << *param << std::endl;
+// #endif    
 
-    log_printf(INFO,Write_unit,FUNCTION,"Allocation");
+    log_printf(INFO,Write_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
 
     allocation (
@@ -55,5 +55,5 @@
     if (usage_is_set(_usage,USE_STATISTICS))
       {	
-	log_printf(INFO,Write_unit,FUNCTION,"Allocation of statistics");
+	log_printf(INFO,Write_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
 
 	statistics_declaration(param_statistics);
@@ -65,5 +65,5 @@
       {
 	// generate the vhdl
-	log_printf(INFO,Write_unit,FUNCTION,"Generate the vhdl");
+	log_printf(INFO,Write_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
 	
 	vhdl();
@@ -74,5 +74,5 @@
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
-	log_printf(INFO,Write_unit,FUNCTION,"Method - transition");
+	log_printf(INFO,Write_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
 
 	SC_METHOD (transition);
@@ -86,5 +86,5 @@
 #endif
       }
-    log_printf(FUNC,Write_unit,FUNCTION,"End");
+    log_end(Write_unit,FUNCTION);
   };
     
@@ -93,10 +93,10 @@
   Write_unit::~Write_unit (void)
   {
-    log_printf(FUNC,Write_unit,FUNCTION,"Begin");
+    log_begin(Write_unit,FUNCTION);
 
 #ifdef STATISTICS
     if (usage_is_set(_usage,USE_STATISTICS))
       {
-	log_printf(INFO,Write_unit,FUNCTION,"Generate Statistics file");
+	log_printf(INFO,Write_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
 
 	delete _stat;
@@ -104,8 +104,8 @@
 #endif
 
-    log_printf(INFO,Write_unit,FUNCTION,"Deallocation");
+    log_printf(INFO,Write_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
     deallocation ();
 
-    log_printf(FUNC,Write_unit,FUNCTION,"End");
+    log_end(Write_unit,FUNCTION);
   };
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp	(revision 113)
@@ -34,5 +34,5 @@
 
     Entity * entity = _component->set_entity (_name       
-                                              ,"Write_unit"
+                                              ,_param->_type
 #ifdef POSITION
                                               ,COMBINATORY 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_statistics_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_statistics_declaration.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_statistics_declaration.cpp	(revision 113)
@@ -25,9 +25,11 @@
 
     _stat       = new Stat (static_cast<std::string>(_name),
-			    "Write_unit",
+			    _param->_type,
 			    param_statistics);
 
-    _stat->add_stat(component_write_queue->_stat);
-    if (_param->_have_component_execute_queue)
+    if (usage_is_set(component_write_queue->_usage,USE_STATISTICS))
+      _stat->add_stat(component_write_queue->_stat);
+    
+    if (_param->_have_component_execute_queue and (usage_is_set(component_execute_queue->_usage,USE_STATISTICS)))
       _stat->add_stat(component_execute_queue->_stat);
 	
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Execute_unit_to_Write_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Read_unit_to_Execution_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Register_unit
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/Makefile.defs	(revision 113)
@@ -2,10 +2,12 @@
 # $Id$
 # 
-# [ Description ]
+# [ Description ]
 # 
 # Makefile
 # 
 
-#-----[ Directory ]----------------------------------------
+ENTITY                          = Register_unit_Glue
+
+#-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
 DIR_MORPHEO			= $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Context_State
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Instruction
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Decod
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp	(revision 113)
@@ -51,4 +51,62 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t         > ***  in_IFETCH_VAL                         ;//[nb_context][nb_inst_fetch]
+  sc_signal<Tcontrol_t         > *** out_IFETCH_ACK                         ;//[nb_context][nb_inst_fetch]
+  sc_signal<Tinstruction_t     > ***  in_IFETCH_INSTRUCTION                 ;//[nb_context][nb_inst_fetch]
+  sc_signal<Tcontext_t         >  **  in_IFETCH_CONTEXT_ID                  ;//[nb_context]
+  sc_signal<Tgeneral_address_t >  **  in_IFETCH_ADDRESS                     ;//[nb_context]
+//sc_signal<Tgeneral_address_t >  **  in_IFETCH_ADDRESS_NEXT                ;//[nb_context]
+  sc_signal<Tinst_ifetch_ptr_t >  **  in_IFETCH_INST_IFETCH_PTR             ;//[nb_context]
+  sc_signal<Tbranch_state_t    >  **  in_IFETCH_BRANCH_STATE                ;//[nb_context]
+  sc_signal<Tprediction_ptr_t  >  **  in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ;//[nb_context]
+  sc_signal<Texception_t       >  **  in_IFETCH_EXCEPTION                   ;//[nb_context]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_VAL                          ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_ACK                          ;//[nb_inst_decod]
+  sc_signal<Tcontext_t         >  ** out_DECOD_CONTEXT_ID                   ;//[nb_inst_decod]
+  sc_signal<Tdepth_t           >  ** out_DECOD_DEPTH                        ;//[nb_inst_decod]
+  sc_signal<Ttype_t            >  ** out_DECOD_TYPE                         ;//[nb_inst_decod]
+  sc_signal<Toperation_t       >  ** out_DECOD_OPERATION                    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_NO_EXECUTE                   ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_IS_DELAY_SLOT                ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_DECOD_ADDRESS                      ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_DECOD_ADDRESS_NEXT                 ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_HAS_IMMEDIAT                 ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_DECOD_IMMEDIAT                     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_READ_RA                      ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  ** out_DECOD_NUM_REG_RA                   ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_READ_RB                      ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  ** out_DECOD_NUM_REG_RB                   ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_READ_RC                      ;//[nb_inst_decod]
+  sc_signal<Tspecial_address_t >  ** out_DECOD_NUM_REG_RC                   ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_WRITE_RD                     ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  ** out_DECOD_NUM_REG_RD                   ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_WRITE_RE                     ;//[nb_inst_decod]
+  sc_signal<Tspecial_address_t >  ** out_DECOD_NUM_REG_RE                   ;//[nb_inst_decod]
+  sc_signal<Texception_t       >  ** out_DECOD_EXCEPTION_USE                ;//[nb_inst_decod]
+  sc_signal<Texception_t       >  ** out_DECOD_EXCEPTION                    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_PREDICT_VAL                        ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_PREDICT_ACK                        ;//[nb_inst_decod]
+  sc_signal<Tcontext_t         >  ** out_PREDICT_CONTEXT_ID                 ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_PREDICT_MATCH_INST_IFETCH_PTR      ;//[nb_inst_decod]
+  sc_signal<Tbranch_state_t    >  ** out_PREDICT_BRANCH_STATE               ;//[nb_inst_decod]
+  sc_signal<Tprediction_ptr_t  >  ** out_PREDICT_BRANCH_UPDATE_PREDICTION_ID;//[nb_inst_decod]
+  sc_signal<Tbranch_condition_t>  ** out_PREDICT_BRANCH_CONDITION           ;//[nb_inst_decod]
+//sc_signal<Tcontrol_t         >  ** out_PREDICT_BRANCH_STACK_WRITE         ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_PREDICT_BRANCH_DIRECTION           ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_PREDICT_ADDRESS_SRC                ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_PREDICT_ADDRESS_DEST               ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_PREDICT_CAN_CONTINUE               ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_CONTEXT_DECOD_ENABLE               ;//[nb_context]
+  sc_signal<Tcontrol_t         >  **  in_CONTEXT_DEPTH_VAL                  ;//[nb_context]
+  sc_signal<Tdepth_t           >  **  in_CONTEXT_DEPTH                      ;//[nb_context]
+  sc_signal<Tcontrol_t         >   * out_CONTEXT_EVENT_VAL                  ;
+  sc_signal<Tcontrol_t         >   *  in_CONTEXT_EVENT_ACK                  ;
+  sc_signal<Tcontext_t         >   * out_CONTEXT_EVENT_CONTEXT_ID           ;
+  sc_signal<Tdepth_t           >   * out_CONTEXT_EVENT_DEPTH                ;
+  sc_signal<Tevent_type_t      >   * out_CONTEXT_EVENT_TYPE                 ;
+  sc_signal<Tcontrol_t         >   * out_CONTEXT_EVENT_IS_DELAY_SLOT        ;
+  sc_signal<Tgeneral_data_t    >   * out_CONTEXT_EVENT_ADDRESS              ;
+  sc_signal<Tgeneral_data_t    >   * out_CONTEXT_EVENT_ADDRESS_EPCR         ;
 
   ALLOC2_SC_SIGNAL( in_IFETCH_VAL                         ," in_IFETCH_VAL                         ",Tcontrol_t         ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Decod_queue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/test.cpp	(revision 113)
@@ -51,4 +51,57 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_VAL            ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_IN_ACK            ;//[nb_inst_decod]
+  sc_signal<Tcontext_t         >  **  in_DECOD_IN_CONTEXT_ID     ;//[nb_inst_decod]
+  sc_signal<Tdepth_t           >  **  in_DECOD_IN_DEPTH          ;//[nb_inst_decod]
+  sc_signal<Ttype_t            >  **  in_DECOD_IN_TYPE           ;//[nb_inst_decod]
+  sc_signal<Toperation_t       >  **  in_DECOD_IN_OPERATION      ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_NO_EXECUTE     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_IS_DELAY_SLOT  ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  **  in_DECOD_IN_ADDRESS        ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  **  in_DECOD_IN_ADDRESS_NEXT   ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_HAS_IMMEDIAT   ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  **  in_DECOD_IN_IMMEDIAT       ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_READ_RA        ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  **  in_DECOD_IN_NUM_REG_RA     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_READ_RB        ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  **  in_DECOD_IN_NUM_REG_RB     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_READ_RC        ;//[nb_inst_decod]
+  sc_signal<Tspecial_address_t >  **  in_DECOD_IN_NUM_REG_RC     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_WRITE_RD       ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  **  in_DECOD_IN_NUM_REG_RD     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_IN_WRITE_RE       ;//[nb_inst_decod]
+  sc_signal<Tspecial_address_t >  **  in_DECOD_IN_NUM_REG_RE     ;//[nb_inst_decod]
+  sc_signal<Texception_t       >  **  in_DECOD_IN_EXCEPTION_USE  ;//[nb_inst_decod]
+  sc_signal<Texception_t       >  **  in_DECOD_IN_EXCEPTION      ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_VAL           ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  **  in_DECOD_OUT_ACK           ;//[nb_inst_decod]
+  sc_signal<Tcontext_t         >  ** out_DECOD_OUT_CONTEXT_ID    ;//[nb_inst_decod]
+  sc_signal<Tdepth_t           >  ** out_DECOD_OUT_DEPTH         ;//[nb_inst_decod]
+  sc_signal<Ttype_t            >  ** out_DECOD_OUT_TYPE          ;//[nb_inst_decod]
+  sc_signal<Toperation_t       >  ** out_DECOD_OUT_OPERATION     ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_NO_EXECUTE    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_IS_DELAY_SLOT ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_DECOD_OUT_ADDRESS       ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_DECOD_OUT_ADDRESS_NEXT  ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_HAS_IMMEDIAT  ;//[nb_inst_decod]
+  sc_signal<Tgeneral_data_t    >  ** out_DECOD_OUT_IMMEDIAT      ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_READ_RA       ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  ** out_DECOD_OUT_NUM_REG_RA    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_READ_RB       ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  ** out_DECOD_OUT_NUM_REG_RB    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_READ_RC       ;//[nb_inst_decod]
+  sc_signal<Tspecial_address_t >  ** out_DECOD_OUT_NUM_REG_RC    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_WRITE_RD      ;//[nb_inst_decod]
+  sc_signal<Tgeneral_address_t >  ** out_DECOD_OUT_NUM_REG_RD    ;//[nb_inst_decod]
+  sc_signal<Tcontrol_t         >  ** out_DECOD_OUT_WRITE_RE      ;//[nb_inst_decod]
+  sc_signal<Tspecial_address_t >  ** out_DECOD_OUT_NUM_REG_RE    ;//[nb_inst_decod]
+  sc_signal<Texception_t       >  ** out_DECOD_OUT_EXCEPTION_USE ;//[nb_inst_decod]
+  sc_signal<Texception_t       >  ** out_DECOD_OUT_EXCEPTION     ;//[nb_inst_decod]
+  sc_signal<Tdepth_t           >  **  in_DEPTH_MIN               ;//[nb_context]
+  sc_signal<Tdepth_t           >  **  in_DEPTH_MAX               ;//[nb_context]
+  sc_signal<Tcontrol_t         >  **  in_DEPTH_FULL              ;//[nb_context]
+  sc_signal<Tcounter_t         >  ** out_NB_INST_ALL             ;//[nb_context]
 
   ALLOC1_SC_SIGNAL( in_DECOD_IN_VAL            ," in_DECOD_IN_VAL           ",Tcontrol_t         ,_param->_nb_inst_decod);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Decod_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Front_end_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Address_management
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp	(revision 113)
@@ -50,4 +50,30 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t        >    * out_ADDRESS_VAL                         ;
+  sc_signal<Tcontrol_t        >    *  in_ADDRESS_ACK                         ; //icache_req_ack and ifetch_queue_ack
+  sc_signal<Tgeneral_address_t>    * out_ADDRESS_INSTRUCTION_ADDRESS         ;
+  sc_signal<Tcontrol_t        >   ** out_ADDRESS_INSTRUCTION_ENABLE          ; //[nb_instruction]
+  sc_signal<Tinst_ifetch_ptr_t>    * out_ADDRESS_INST_IFETCH_PTR             ;
+  sc_signal<Tbranch_state_t   >    * out_ADDRESS_BRANCH_STATE                ;
+  sc_signal<Tprediction_ptr_t >    * out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID ;
+  sc_signal<Tcontrol_t        >    * out_PREDICT_VAL                         ;
+  sc_signal<Tcontrol_t        >    *  in_PREDICT_ACK                         ;
+  sc_signal<Tgeneral_address_t>    * out_PREDICT_PC_PREVIOUS                 ;
+  sc_signal<Tgeneral_address_t>    * out_PREDICT_PC_CURRENT                  ;
+  sc_signal<Tcontrol_t        >    * out_PREDICT_PC_CURRENT_IS_DS_TAKE       ;
+  sc_signal<Tgeneral_address_t>    *  in_PREDICT_PC_NEXT                     ;
+  sc_signal<Tcontrol_t        >    *  in_PREDICT_PC_NEXT_IS_DS_TAKE          ;
+  sc_signal<Tcontrol_t        >   **  in_PREDICT_INSTRUCTION_ENABLE          ; //[nb_instruction]
+//sc_signal<Tcontrol_t        >    *  in_PREDICT_BRANCH_IS_CURRENT           ;
+  sc_signal<Tbranch_state_t   >    *  in_PREDICT_BRANCH_STATE                ;
+  sc_signal<Tprediction_ptr_t >    *  in_PREDICT_BRANCH_UPDATE_PREDICTION_ID ;
+  sc_signal<Tinst_ifetch_ptr_t>    *  in_PREDICT_INST_IFETCH_PTR             ;
+  sc_signal<Tcontrol_t        >    *  in_EVENT_VAL                           ;
+  sc_signal<Tcontrol_t        >    * out_EVENT_ACK                           ;
+  sc_signal<Tgeneral_address_t>    *  in_EVENT_ADDRESS                       ;
+  sc_signal<Tgeneral_address_t>    *  in_EVENT_ADDRESS_NEXT                  ;
+  sc_signal<Tcontrol_t        >    *  in_EVENT_ADDRESS_NEXT_VAL              ;
+  sc_signal<Tcontrol_t        >    *  in_EVENT_IS_DS_TAKE                    ;
 
   ALLOC0_SC_SIGNAL (out_ADDRESS_VAL                        ,"out_ADDRESS_VAL                        ",Tcontrol_t        );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Ifetch_queue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/main.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/main.cpp	(revision 113)
@@ -7,5 +7,5 @@
 
 #include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/include/test.h"
-
+#include "Behavioural/include/Selftest.h"
 #define NB_PARAMS 4
 
@@ -33,10 +33,15 @@
   uint32_t x = 1;
 
-  string name = argv[x++];
-  
-  uint32_t _size_queue                    = fromString<uint32_t>(argv[x++]);
-  uint32_t _nb_instruction                = fromString<uint32_t>(argv[x++]);
-  uint32_t _size_branch_update_prediction = fromString<uint32_t>(argv[x++]);
-  uint32_t _size_general_data             = fromString<uint32_t>(argv[x++]);
+  string   name;
+  uint32_t _size_queue                   ;
+  uint32_t _nb_instruction               ;
+  uint32_t _size_branch_update_prediction;
+  uint32_t _size_general_data            ;
+
+  SELFTEST0( name                         ,string ,argv,x);
+  SELFTEST0(_size_queue                   ,uint32_t,argv,x);
+  SELFTEST0(_nb_instruction               ,uint32_t,argv,x);
+  SELFTEST0(_size_branch_update_prediction,uint32_t,argv,x);
+  SELFTEST0(_size_general_data            ,uint32_t,argv,x);
 
   int _return = EXIT_SUCCESS;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp	(revision 113)
@@ -67,4 +67,28 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t            >  *  in_ADDRESS_VAL                         ;
+  sc_signal<Tcontrol_t            >  * out_ADDRESS_ACK                         ;
+  sc_signal<Tifetch_queue_ptr_t   >  * out_ADDRESS_IFETCH_QUEUE_ID             ;
+  sc_signal<Tcontrol_t            > **  in_ADDRESS_INSTRUCTION_ENABLE          ;//[nb_instruction]
+  sc_signal<Tgeneral_address_t    >  *  in_ADDRESS_INSTRUCTION_ADDRESS         ;
+  sc_signal<Tinst_ifetch_ptr_t    >  *  in_ADDRESS_INST_IFETCH_PTR             ;
+  sc_signal<Tbranch_state_t       >  *  in_ADDRESS_BRANCH_STATE                ;
+  sc_signal<Tprediction_ptr_t     >  *  in_ADDRESS_BRANCH_UPDATE_PREDICTION_ID ;
+  sc_signal<Tcontrol_t            > ** out_DECOD_VAL                           ;//[nb_instruction]
+  sc_signal<Tcontrol_t            > **  in_DECOD_ACK                           ;//[nb_instruction]
+  sc_signal<Tinstruction_t        > ** out_DECOD_INSTRUCTION                   ;//[nb_instruction]
+  sc_signal<Tgeneral_address_t    >  * out_DECOD_ADDRESS                       ;
+  sc_signal<Tinst_ifetch_ptr_t    >  * out_DECOD_INST_IFETCH_PTR               ;
+  sc_signal<Tbranch_state_t       >  * out_DECOD_BRANCH_STATE                  ;
+  sc_signal<Tprediction_ptr_t     >  * out_DECOD_BRANCH_UPDATE_PREDICTION_ID   ;
+  sc_signal<Texception_t          >  * out_DECOD_EXCEPTION                     ;
+  sc_signal<Tcontrol_t            >  *  in_ICACHE_RSP_VAL                      ;
+  sc_signal<Tcontrol_t            >  * out_ICACHE_RSP_ACK                      ;
+  sc_signal<Tpacket_t             >  *  in_ICACHE_RSP_PACKET_ID                ;
+  sc_signal<Ticache_instruction_t > **  in_ICACHE_RSP_INSTRUCTION              ;//[nb_instruction]
+  sc_signal<Ticache_error_t       >  *  in_ICACHE_RSP_ERROR                    ;
+  sc_signal<Tcontrol_t            >  *  in_EVENT_RESET_VAL                     ;// val if : miss_speculation, exception, synchronization
+  sc_signal<Tcontrol_t            >  * out_EVENT_RESET_ACK                     ;
 
   ALLOC0_SC_SIGNAL( in_ADDRESS_VAL                        ," in_ADDRESS_VAL                        ",Tcontrol_t           );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Parameters_msg_error.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Parameters_msg_error.cpp	(revision 113)
@@ -18,5 +18,4 @@
 namespace ifetch_queue {
 
-
 #undef  FUNCTION
 #define FUNCTION "Ifetch_queue::msg_error"
@@ -28,8 +27,8 @@
 
     if (not is_multiple (_nb_instruction_in_queue,_nb_instruction))
-      test.error("Size of ifetch queue must be a multiple of nb_instruction.\n");
+      test.error(_("Size of ifetch queue must be a multiple of nb_instruction.\n"));
 
     if (_size_queue == 1)
-      test.warning("To best perfomance, size_queue must be > 1.\n");
+      test.warning(_("To best perfomance, size_queue must be > 1.\n"));
     
     log_printf(FUNC,Ifetch_queue,FUNCTION,"End");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Ifetch_unit_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Ifetch_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Front_end
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Branch_Target_Buffer_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Branch_Target_Buffer_Register
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h	(revision 113)
@@ -137,4 +137,5 @@
    morpheo::behavioural::Tusage_t                usage
    );
+
   public  :          ~Branch_Target_Buffer_Register             (void);
 					       
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp	(revision 113)
@@ -8,5 +8,5 @@
 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h"
 
-namespace morpheo                    {
+namespace morpheo {
 namespace behavioural {
 namespace core {
@@ -16,5 +16,4 @@
 namespace branch_target_buffer {
 namespace branch_target_buffer_register {
-
 
 #undef  FUNCTION
@@ -33,7 +32,7 @@
    morpheo::behavioural::Tusage_t usage
    ):
-    _name              (name)
-    ,_param            (param)
-    ,_usage            (usage)
+    _name  (name)
+   ,_param (param)
+   ,_usage (usage)
   {
     log_printf(FUNC,Branch_Target_Buffer_Register,FUNCTION,"Begin");
@@ -160,20 +159,20 @@
 	  }
 
-# ifdef SYSTEMCASS_SPECIFIC
-	// List dependency information
-	for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
-	  {
-	    (*(out_DECOD_HIT [i])) (*(in_DECOD_VAL         [i]));
-	    (*(out_DECOD_HIT [i])) (*(in_DECOD_ADDRESS_SRC [i]));
-	    if (_param->_have_port_context_id)
-	    (*(out_DECOD_HIT [i])) (*(in_DECOD_CONTEXT_ID  [i]));
-
-	    (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_VAL         [i]));
-	    (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_ADDRESS_SRC [i]));
-	    if (_param->_have_port_context_id)
-	    (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_CONTEXT_ID  [i]));
-	  }
-	  }
-#endif
+// # ifdef SYSTEMCASS_SPECIFIC
+// 	// List dependency information
+// 	for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
+// 	  {
+// 	    (*(out_DECOD_HIT [i])) (*(in_DECOD_VAL         [i]));
+// 	    (*(out_DECOD_HIT [i])) (*(in_DECOD_ADDRESS_SRC [i]));
+// 	    if (_param->_have_port_context_id)
+// 	    (*(out_DECOD_HIT [i])) (*(in_DECOD_CONTEXT_ID  [i]));
+
+// 	    (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_VAL         [i]));
+// 	    (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_ADDRESS_SRC [i]));
+// 	    if (_param->_have_port_context_id)
+// 	    (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_CONTEXT_ID  [i]));
+// 	  }
+// #endif
+ 	  }
 
 	if (_param->_have_port_victim)
@@ -192,20 +191,20 @@
 	  }
 
-# ifdef SYSTEMCASS_SPECIFIC
-	// List dependency information
-	for (uint32_t i=0; i<_param->_nb_inst_update; i++)
-	  {
-	    (*(out_UPDATE_HIT [i])) (*(in_UPDATE_VAL         [i]));
-	    (*(out_UPDATE_HIT [i])) (*(in_UPDATE_ADDRESS_SRC [i]));
-	    if (_param->_have_port_context_id)
-	    (*(out_UPDATE_HIT [i])) (*(in_UPDATE_CONTEXT_ID  [i]));
-
-	    (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_VAL         [i]));
-	    (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_ADDRESS_SRC [i]));
-	    if (_param->_have_port_context_id)
-	    (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_CONTEXT_ID  [i]));
-	  }
-	  }
-# endif
+// # ifdef SYSTEMCASS_SPECIFIC
+// 	// List dependency information
+// 	for (uint32_t i=0; i<_param->_nb_inst_update; i++)
+// 	  {
+// 	    (*(out_UPDATE_HIT [i])) (*(in_UPDATE_VAL         [i]));
+// 	    (*(out_UPDATE_HIT [i])) (*(in_UPDATE_ADDRESS_SRC [i]));
+// 	    if (_param->_have_port_context_id)
+// 	    (*(out_UPDATE_HIT [i])) (*(in_UPDATE_CONTEXT_ID  [i]));
+
+// 	    (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_VAL         [i]));
+// 	    (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_ADDRESS_SRC [i]));
+// 	    if (_param->_have_port_context_id)
+// 	    (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_CONTEXT_ID  [i]));
+// 	  }
+// # endif
+ 	  }
 #endif
 
@@ -229,5 +228,4 @@
     log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Deallocation");
     deallocation ();
-
     log_printf(FUNC,Branch_Target_Buffer_Register,FUNCTION,"End");
   };
@@ -239,5 +237,4 @@
 }; // end namespace multi_front_end
 }; // end namespace core
-
 }; // end namespace behavioural
-}; // end namespace morpheo              
+}; // end namespace morpheo
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Branch_Target_Buffer
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Direction_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Direction
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Meta_Predictor
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Meta_Predictor_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Two_Level_Branch_Predictor
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Prediction_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Prediction_unit_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Return_Address_Stack
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Update_Prediction_Table
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp	(revision 113)
@@ -1276,7 +1276,4 @@
 //                    TEST(Tcontrol_t         ,out_UPDATE_RAS_FLUSH             [port]->read(),0);
                       TEST(Tcontrol_t         ,out_UPDATE_RAS_PUSH              [port]->read(),push_ras  (it_ufpt->condition));
-                      LABEL("KANE : out_UPDATE_RAS_ADDRESS [port]->read() : %.8x",out_UPDATE_RAS_ADDRESS [port]->read());
-                      LABEL("KANE : it_ufpt->ras_address                  : %.8x",it_ufpt->ras_address);
-
                       TEST(Taddress_t         ,out_UPDATE_RAS_ADDRESS           [port]->read(),it_ufpt->ras_address);
                       TEST(Tptr_t             ,out_UPDATE_RAS_INDEX             [port]->read(),it_ufpt->ras_index);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp	(revision 113)
@@ -117,5 +117,5 @@
                         << std::dec
                         <<         reg_UPDATE_PREDICTION_TABLE [i][bottom]._good_take         << " - "
-                        << "["  << sc_simulation_time() << "] " << " "
+                        << "["  << simulation_cycle() << "] " << " "
                         <<         reg_UPDATE_PREDICTION_TABLE [i][bottom]._miss_prediction   << " "
                         <<         reg_UPDATE_PREDICTION_TABLE [i][bottom]._ifetch_prediction << " "
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Commit_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp	(revision 113)
@@ -175,6 +175,6 @@
 		  entry->address_next            = PORT_READ(in_INSERT_ADDRESS_NEXT          [x][y]);
 #ifdef DEBUG
-                  entry->cycle_rob_in            = sc_simulation_time();
-                  entry->cycle_commit            = sc_simulation_time();
+                  entry->cycle_rob_in            = simulation_cycle();
+                  entry->cycle_commit            = simulation_cycle();
 #endif
 
@@ -352,5 +352,5 @@
 
 #ifdef DEBUG
-                  entry->cycle_commit            = sc_simulation_time();
+                  entry->cycle_commit            = simulation_cycle();
 #endif
 		  }
@@ -426,5 +426,5 @@
                 // log file
                 instruction_log_file [num_thread] 
-                  << "[" << sc_simulation_time() << "] "
+                  << "[" << simulation_cycle() << "] "
                   << "{" << ((retire_ok)?" OK ":"!KO!") << "} "
                   << std::hex
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Issue_queue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = OOO_Engine
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = OOO_Engine_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Reexecute_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Load_Store_pointer_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Rename_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Dependency_checking_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Free_List_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/SelfTest/src/test.cpp	(revision 113)
@@ -49,4 +49,17 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t        > **  in_POP_VAL        ;
+  sc_signal<Tcontrol_t        > ** out_POP_ACK        ;
+  sc_signal<Tcontrol_t        > **  in_POP_GPR_VAL    ; // write_rd
+  sc_signal<Tgeneral_address_t> ** out_POP_GPR_NUM_REG; // num_reg_rd
+  sc_signal<Tcontrol_t        > **  in_POP_SPR_VAL    ; // write_re
+  sc_signal<Tspecial_address_t> ** out_POP_SPR_NUM_REG; // num_reg_re
+  sc_signal<Tcontrol_t        > **  in_PUSH_GPR_VAL    ; // gpr_free (cf stat_list)
+  sc_signal<Tcontrol_t        > ** out_PUSH_GPR_ACK    ;
+  sc_signal<Tgeneral_address_t> **  in_PUSH_GPR_NUM_REG;
+  sc_signal<Tcontrol_t        > **  in_PUSH_SPR_VAL    ; // spr_free (cf stat_list)
+  sc_signal<Tcontrol_t        > ** out_PUSH_SPR_ACK    ;
+  sc_signal<Tspecial_address_t> **  in_PUSH_SPR_NUM_REG;
 
   ALLOC1_SC_SIGNAL( in_POP_VAL         ," in_POP_VAL         ",Tcontrol_t        ,_param->_nb_pop );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Register_translation_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Register_Address_Translation_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Register_translation_unit_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Stat_List_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/SelfTest/src/test.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/SelfTest/src/test.cpp	(revision 113)
@@ -60,4 +60,40 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+
+  sc_signal<Tcontrol_t        >   **  in_INSERT_VAL               ;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   ** out_INSERT_ACK               ;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RA           ;//[nb_inst_insert]
+  sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RA_PHY    ;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RB           ;//[nb_inst_insert]
+  sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RB_PHY    ;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RC           ;//[nb_inst_insert]
+  sc_signal<Tspecial_address_t>   **  in_INSERT_NUM_REG_RC_PHY    ;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   **  in_INSERT_WRITE_RD          ;//[nb_inst_insert]
+  sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RD_PHY_NEW;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   **  in_INSERT_WRITE_RE          ;//[nb_inst_insert]
+  sc_signal<Tspecial_address_t>   **  in_INSERT_NUM_REG_RE_PHY_NEW;//[nb_inst_insert]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_VAL               ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   ** out_RETIRE_ACK               ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_RESTORE           ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
+  sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
+  sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
+  sc_signal<Tspecial_address_t>   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_WRITE_RD          ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire]
+  sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RD_PHY_OLD;//[nb_inst_retire]
+  sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RD_PHY_NEW;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_WRITE_RE          ;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   **  in_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire]
+  sc_signal<Tspecial_address_t>   **  in_RETIRE_NUM_REG_RE_PHY_OLD;//[nb_inst_retire]
+  sc_signal<Tspecial_address_t>   **  in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire]
+  sc_signal<Tcontrol_t        >   ** out_PUSH_GPR_VAL             ;//[nb_reg_free]
+  sc_signal<Tcontrol_t        >   **  in_PUSH_GPR_ACK             ;//[nb_reg_free]
+  sc_signal<Tgeneral_address_t>   ** out_PUSH_GPR_NUM_REG         ;//[nb_reg_free]
+  sc_signal<Tcontrol_t        >   ** out_PUSH_SPR_VAL             ;//[nb_reg_free]
+  sc_signal<Tcontrol_t        >   **  in_PUSH_SPR_ACK             ;//[nb_reg_free]
+  sc_signal<Tspecial_address_t>   ** out_PUSH_SPR_NUM_REG         ;//[nb_reg_free]
 
   ALLOC1_SC_SIGNAL( in_INSERT_VAL               ," in_INSERT_VAL               ",Tcontrol_t        ,_param->_nb_inst_insert);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Rename_select
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Rename_unit_Glue
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../../..
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.defs
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.defs	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.defs	(revision 113)
@@ -7,4 +7,6 @@
 # 
 
+ENTITY                          = Special_Register_unit
+
 #-----[ Directory ]----------------------------------------
 DIR_COMPONENT_MORPHEO		= ../../../../..
