Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h	(revision 115)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h	(revision 118)
@@ -24,34 +24,35 @@
 
 
+
   class Parameters : public morpheo::behavioural::Parameters
   {
     //-----[ fields ]------------------------------------------------------------
-  public : uint32_t              _size_queue                   ;
-  public : uint32_t              _nb_context                   ;
-  public : uint32_t              _nb_front_end                 ;
-  public : uint32_t              _nb_ooo_engine                ;
-  public : uint32_t              _nb_packet                    ;
-//public : uint32_t              _size_general_data            ;
-  public : uint32_t              _nb_general_register          ;
-//public : uint32_t              _size_special_data            ;
-  public : uint32_t              _nb_special_register          ;
-  public : uint32_t              _nb_bypass_write              ;
-  public : Twrite_queue_scheme_t _queue_scheme                 ;
-
-  public : uint32_t              _nb_gpr_write                 ;
-  public : uint32_t              _nb_spr_write                 ;
-			       
-//public : uint32_t              _size_context_id              ;
-//public : uint32_t              _size_front_end_id            ;
-//public : uint32_t              _size_ooo_engine_id           ;
-//public : uint32_t              _size_packet_id               ;
-//public : uint32_t              _size_general_register        ;
-//public : uint32_t              _size_special_register        ;
-  public : uint32_t              _size_internal_queue          ;
-			       
-//public : bool                  _have_port_context_id         ;
-//public : bool                  _have_port_front_end_id       ;
-//public : bool                  _have_port_ooo_engine_id      ;
-//public : bool                  _have_port_packet_id          ;
+  public : uint32_t               _size_queue             ;
+  public : uint32_t               _nb_context             ;
+  public : uint32_t               _nb_front_end           ;
+  public : uint32_t               _nb_ooo_engine          ;
+  public : uint32_t               _nb_packet              ;
+//public : uint32_t               _size_general_data      ;
+  public : uint32_t               _nb_general_register    ;
+//public : uint32_t               _size_special_data      ;
+  public : uint32_t               _nb_special_register    ;
+  public : uint32_t               _nb_bypass_write        ;
+  public : Twrite_queue_scheme_t  _queue_scheme           ;
+  public : Tbypass_write_scheme_t _bypass_write_scheme    ; 
+  public : uint32_t               _nb_gpr_write           ;
+  public : uint32_t               _nb_spr_write           ;
+			          
+//public : uint32_t               _size_context_id        ;
+//public : uint32_t               _size_front_end_id      ;
+//public : uint32_t               _size_ooo_engine_id     ;
+//public : uint32_t               _size_packet_id         ;
+//public : uint32_t               _size_general_register  ;
+//public : uint32_t               _size_special_register  ;
+  public : uint32_t               _size_internal_queue    ;
+			          
+//public : bool                   _have_port_context_id   ;
+//public : bool                   _have_port_front_end_id ;
+//public : bool                   _have_port_ooo_engine_id;
+//public : bool                   _have_port_packet_id    ;
 
     //-----[ methods ]-----------------------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h	(revision 115)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Types.h	(revision 118)
@@ -25,4 +25,10 @@
       ,WRITE_QUEUE_SCHEME_MEALY // Write register and pop can be in same cycle
     } Twrite_queue_scheme_t;
+
+  typedef enum
+    {
+      BYPASS_WRITE_FROM_ALU,
+      BYPASS_WRITE_FROM_QUEUE
+    } Tbypass_write_scheme_t;
 
   class write_queue_entry_t
@@ -108,4 +114,26 @@
   };
 
+  template<> inline std::string toString<morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t>(const morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t& x)
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_ALU   : return "alu"  ; break;
+      case morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_QUEUE : return "queue"; break;
+      default : return ""; break;
+      }
+  };
+
+  template<> inline morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t fromString<morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Tbypass_write_scheme_t>(const std::string& x)
+  {
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_ALU))) == 0) or
+         (x.compare("alu") == 0))
+      return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_ALU;
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_QUEUE))) == 0) or
+         (x.compare("queue") == 0))
+      return morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::BYPASS_WRITE_FROM_QUEUE;
+    
+    throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\""));
+  };
+
 }; // end namespace morpheo              
 
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 115)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h	(revision 118)
@@ -172,5 +172,6 @@
   public  : void     transition                (void);
   public  : void     genMoore                  (void);
-  public  : void     genMealy                  (void);
+  public  : void     genMealy_write            (void);
+  public  : void     genMealy_bypass           (void);
 #endif					       
 #ifdef STATISTICS
