Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h	(revision 137)
@@ -75,4 +75,7 @@
   public    : SC_IN (Tcontext_t         )  **  in_DECOD_IN_CONTEXT_ID     ;//[nb_inst_decod]
   public    : SC_IN (Tdepth_t           )  **  in_DECOD_IN_DEPTH          ;//[nb_inst_decod]
+#ifdef STATISTICS
+  public    : SC_IN (uint32_t           )  **  in_DECOD_IN_INSTRUCTION    ;//[nb_inst_decod]
+#endif
   public    : SC_IN (Ttype_t            )  **  in_DECOD_IN_TYPE           ;//[nb_inst_decod]
   public    : SC_IN (Toperation_t       )  **  in_DECOD_IN_OPERATION      ;//[nb_inst_decod]
@@ -103,4 +106,7 @@
   public    : SC_OUT(Tcontext_t         )  ** out_DECOD_OUT_CONTEXT_ID    ;//[nb_inst_decod]
   public    : SC_OUT(Tdepth_t           )  ** out_DECOD_OUT_DEPTH         ;//[nb_inst_decod]
+#ifdef STATISTICS
+  public    : SC_OUT(uint32_t           )  ** out_DECOD_OUT_INSTRUCTION   ;//[nb_inst_decod]
+#endif
   public    : SC_OUT(Ttype_t            )  ** out_DECOD_OUT_TYPE          ;//[nb_inst_decod]
   public    : SC_OUT(Toperation_t       )  ** out_DECOD_OUT_OPERATION     ;//[nb_inst_decod]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h	(revision 137)
@@ -33,4 +33,7 @@
   public : Tcontext_t         * _context_id     ;
   public : Tdepth_t           * _depth          ;
+#ifdef STATISTICS
+  public : uint32_t           * _instruction    ;
+#endif
   public : Ttype_t            * _type           ;
   public : Toperation_t       * _operation      ;
@@ -62,4 +65,7 @@
       ALLOC1(_context_id     ,Tcontext_t         ,_nb_inst);
       ALLOC1(_depth          ,Tdepth_t           ,_nb_inst);
+#ifdef STATISTICS
+      ALLOC1(_instruction    ,uint32_t           ,_nb_inst);
+#endif
       ALLOC1(_type           ,Ttype_t            ,_nb_inst);
       ALLOC1(_operation      ,Toperation_t       ,_nb_inst);
@@ -94,4 +100,7 @@
       DELETE1(_context_id     ,_nb_inst);
       DELETE1(_depth          ,_nb_inst);
+#ifdef STATISTICS
+      DELETE1(_instruction    ,_nb_inst);
+#endif
       DELETE1(_type           ,_nb_inst);
       DELETE1(_operation      ,_nb_inst);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp	(revision 137)
@@ -63,4 +63,7 @@
       ALLOC1_SIGNAL_IN ( in_DECOD_IN_CONTEXT_ID     ,"context_id"   ,Tcontext_t         ,_param->_size_context_id            );
       ALLOC1_SIGNAL_IN ( in_DECOD_IN_DEPTH          ,"depth"        ,Tdepth_t           ,_param->_size_depth                 );
+#ifdef STATISTICS
+      ALLOC1_SIGNAL_IN ( in_DECOD_IN_INSTRUCTION    ,"instruction"  ,uint32_t           ,32                                  );
+#endif
       ALLOC1_SIGNAL_IN ( in_DECOD_IN_TYPE           ,"type"         ,Ttype_t            ,_param->_size_type                  );
       ALLOC1_SIGNAL_IN ( in_DECOD_IN_OPERATION      ,"operation"    ,Toperation_t       ,_param->_size_operation             );
@@ -97,4 +100,7 @@
       ALLOC1_SIGNAL_OUT(out_DECOD_OUT_CONTEXT_ID     ,"context_id"   ,Tcontext_t         ,_param->_size_context_id            );
       ALLOC1_SIGNAL_OUT(out_DECOD_OUT_DEPTH          ,"depth"        ,Tdepth_t           ,_param->_size_depth                 );
+#ifdef STATISTICS
+      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_INSTRUCTION    ,"instruction"  ,uint32_t           ,32                                  );
+#endif
       ALLOC1_SIGNAL_OUT(out_DECOD_OUT_TYPE           ,"type"         ,Ttype_t            ,_param->_size_type                  );
       ALLOC1_SIGNAL_OUT(out_DECOD_OUT_OPERATION      ,"operation"    ,Toperation_t       ,_param->_size_operation             );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp	(revision 137)
@@ -33,4 +33,7 @@
 	DELETE1_SIGNAL( in_DECOD_IN_CONTEXT_ID     ,_param->_nb_inst_decod,_param->_size_context_id            );
 	DELETE1_SIGNAL( in_DECOD_IN_DEPTH          ,_param->_nb_inst_decod,_param->_size_depth                 );
+#ifdef STATISTICS
+	DELETE1_SIGNAL( in_DECOD_IN_INSTRUCTION    ,_param->_nb_inst_decod,32);
+#endif
 	DELETE1_SIGNAL( in_DECOD_IN_TYPE           ,_param->_nb_inst_decod,_param->_size_type                  );
 	DELETE1_SIGNAL( in_DECOD_IN_OPERATION      ,_param->_nb_inst_decod,_param->_size_operation             );
@@ -60,4 +63,7 @@
 	DELETE1_SIGNAL(out_DECOD_OUT_CONTEXT_ID    ,_param->_nb_inst_decod,_param->_size_context_id            );
 	DELETE1_SIGNAL(out_DECOD_OUT_DEPTH         ,_param->_nb_inst_decod,_param->_size_depth                 );
+#ifdef STATISTICS
+	DELETE1_SIGNAL(out_DECOD_OUT_INSTRUCTION   ,_param->_nb_inst_decod,32);
+#endif
 	DELETE1_SIGNAL(out_DECOD_OUT_TYPE          ,_param->_nb_inst_decod,_param->_size_type                  );
 	DELETE1_SIGNAL(out_DECOD_OUT_OPERATION     ,_param->_nb_inst_decod,_param->_size_operation             );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp	(revision 137)
@@ -55,4 +55,7 @@
 	        if (_param->_have_port_depth)
 	        PORT_WRITE(out_DECOD_OUT_DEPTH         [i],reg_QUEUE[num_bank].front()->_depth         [0]);
+#ifdef STATISTICS
+	        PORT_WRITE(out_DECOD_OUT_INSTRUCTION   [i],reg_QUEUE[num_bank].front()->_instruction   [0]);
+#endif
 	        PORT_WRITE(out_DECOD_OUT_TYPE          [i],reg_QUEUE[num_bank].front()->_type          [0]);
 	        PORT_WRITE(out_DECOD_OUT_OPERATION     [i],reg_QUEUE[num_bank].front()->_operation     [0]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp	(revision 137)
@@ -74,4 +74,7 @@
 		entry->_context_id    [0] = context;
 		entry->_depth         [0] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0;
+#ifdef STATISTICS
+		entry->_instruction   [0] = PORT_READ(in_DECOD_IN_INSTRUCTION   [i]);
+#endif
 		entry->_type          [0] = PORT_READ(in_DECOD_IN_TYPE          [i]);
 		entry->_operation     [0] = PORT_READ(in_DECOD_IN_OPERATION     [i]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp	(revision 137)
@@ -55,4 +55,7 @@
 	  if (_param->_have_port_depth)
 	  PORT_WRITE(out_DECOD_OUT_DEPTH         [i],reg_QUEUE->front()->_depth         [index]);
+#ifdef STATISTICS
+	  PORT_WRITE(out_DECOD_OUT_INSTRUCTION   [i],reg_QUEUE->front()->_instruction   [index]);
+#endif
 	  PORT_WRITE(out_DECOD_OUT_TYPE          [i],reg_QUEUE->front()->_type          [index]);
 	  PORT_WRITE(out_DECOD_OUT_OPERATION     [i],reg_QUEUE->front()->_operation     [index]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp	(revision 137)
@@ -77,4 +77,7 @@
 		entry->_context_id    [i] = context;
 		entry->_depth         [i] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0;
+#ifdef STATISTICS
+		entry->_instruction   [i] = PORT_READ(in_DECOD_IN_INSTRUCTION   [i]);
+#endif
 		entry->_type          [i] = PORT_READ(in_DECOD_IN_TYPE          [i]);
 		entry->_operation     [i] = PORT_READ(in_DECOD_IN_OPERATION     [i]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp	(revision 136)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp	(revision 137)
@@ -42,32 +42,4 @@
     test();
 
-    _size_internal_queue = 
-      (1                            + // _val
-       _size_context_id             + // _context_id
-       _size_depth                  + // _depth
-       _size_type                   + // _type    
-       _size_operation              + // _operation
-       1                            + // _no_execute
-       1                            + // _is_delay_slot
-#ifdef DEBUG
-       _size_instruction_address    + // _address
-#endif
-       _size_instruction_address    + // _address_next
-       1                            + // _has_immediat
-       _size_general_data           + // _immediat
-       1                            + // _read_ra
-       _size_general_register_logic + // _num_reg_ra
-       1                            + // _read_rb
-       _size_general_register_logic + // _num_reg_rb
-       1                            + // _read_rc
-       _size_special_register_logic + // _num_reg_rc
-       1                            + // _write_rd
-       _size_general_register_logic + // _num_reg_rd
-       1                            + // _write_re
-       _size_special_register_logic + // _num_reg_re
-       _size_exception_use          + // _exception_use
-       _size_exception_decod          // _exception
-       ) * _nb_inst_decod;
-
     if (is_toplevel)
       {
@@ -111,4 +83,32 @@
     log_begin(Decod_queue,FUNCTION);
 
+    _size_internal_queue = 
+      (1                            + // _val
+       _size_context_id             + // _context_id
+       _size_depth                  + // _depth
+       _size_type                   + // _type    
+       _size_operation              + // _operation
+       1                            + // _no_execute
+       1                            + // _is_delay_slot
+#ifdef DEBUG
+       _size_instruction_address    + // _address
+#endif
+       _size_instruction_address    + // _address_next
+       1                            + // _has_immediat
+       _size_general_data           + // _immediat
+       1                            + // _read_ra
+       _size_general_register_logic + // _num_reg_ra
+       1                            + // _read_rb
+       _size_general_register_logic + // _num_reg_rb
+       1                            + // _read_rc
+       _size_special_register_logic + // _num_reg_rc
+       1                            + // _write_rd
+       _size_general_register_logic + // _num_reg_rd
+       1                            + // _write_re
+       _size_special_register_logic + // _num_reg_re
+       _size_exception_use          + // _exception_use
+       _size_exception_decod          // _exception
+       ) * _nb_inst_decod;
+
     log_end(Decod_queue,FUNCTION);
   };
