Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h	(revision 138)
@@ -208,10 +208,10 @@
 
     // ~~~~~[ Interface "event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_IN (Tcontrol_t        )  ***  in_EVENT_VAL                        ;//[nb_front_end][nb_context]
-  public    : SC_OUT(Tcontrol_t        )  *** out_EVENT_ACK                        ;//[nb_front_end][nb_context]
-  public    : SC_IN (Taddress_t        )  ***  in_EVENT_ADDRESS                    ;//[nb_front_end][nb_context]
-  public    : SC_IN (Taddress_t        )  ***  in_EVENT_ADDRESS_NEXT               ;//[nb_front_end][nb_context] 
-  public    : SC_IN (Tcontrol_t        )  ***  in_EVENT_ADDRESS_NEXT_VAL           ;//[nb_front_end][nb_context]
-  public    : SC_IN (Tcontrol_t        )  ***  in_EVENT_IS_DS_TAKE                 ;//[nb_front_end][nb_context]
+  public    : SC_IN (Tcontrol_t         ) ***  in_EVENT_VAL                        ;//[nb_front_end][nb_context]
+  public    : SC_OUT(Tcontrol_t         ) *** out_EVENT_ACK                        ;//[nb_front_end][nb_context]
+  public    : SC_IN (Taddress_t         ) ***  in_EVENT_ADDRESS                    ;//[nb_front_end][nb_context]
+  public    : SC_IN (Taddress_t         ) ***  in_EVENT_ADDRESS_NEXT               ;//[nb_front_end][nb_context] 
+  public    : SC_IN (Tcontrol_t         ) ***  in_EVENT_ADDRESS_NEXT_VAL           ;//[nb_front_end][nb_context]
+  public    : SC_IN (Tcontrol_t         ) ***  in_EVENT_IS_DS_TAKE                 ;//[nb_front_end][nb_context]
 
     // ~~~~~[ Interface : "nb_inst" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	   
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Parameters.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Parameters.h	(revision 138)
@@ -24,81 +24,82 @@
   {
     //-----[ fields ]------------------------------------------------------------
-  public : uint32_t            _nb_front_end                       ;
-  public : uint32_t          * _nb_context                         ;//[nb_front_end]
-  public : uint32_t            _nb_rename_unit                     ;
-  public : uint32_t            _size_queue                         ;
-  public : uint32_t            _nb_bank                            ;
-  public : uint32_t          * _nb_inst_insert                     ;//[nb_rename_unit]
-  public : uint32_t          * _nb_inst_retire	                   ;//[nb_rename_unit]
-  public : uint32_t            _nb_inst_commit                     ;
-  public : uint32_t            _nb_inst_reexecute                  ;
-  public : uint32_t            _nb_inst_branch_complete            ;
-  public : uint32_t         ** _nb_branch_speculated               ;//[nb_front_end][nb_context]
-//public : uint32_t            _size_general_data                  ;
-//public : uint32_t            _size_store_queue_ptr               ;
-//public : uint32_t            _size_load_queue_ptr                ;
-//public : uint32_t            _size_general_register              ;
-//public : uint32_t            _size_special_register              ;
-  public : Tpriority_t         _priority                           ;
-  public : Tload_balancing_t   _load_balancing                     ;
-  public : uint32_t            _nb_rename_unit_select              ;
-  public : uint32_t            _nb_thread                          ;
-  public : uint32_t         ** _translate_num_context_to_num_thread; //[nb_front_end][nb_context]
-  public : const uint32_t      _nb_bank_access_commit              ;
-  public : const retire_ooo_t  _retire_ooo                         ;
-
-  public : uint32_t            _max_nb_context          ;
-  public : uint32_t            _max_nb_inst_insert      ;
-  public : uint32_t            _max_nb_inst_retire      ;
-//public : uint32_t            _size_address            ;
-//public : uint32_t            _size_front_end_id       ;
-//public : uint32_t            _size_context_id         ;
-  public : uint32_t            _size_rename_unit_id     ;    
-  public : uint32_t            _size_bank               ;
-//public : uint32_t            _size_nb_inst            ;
-//public : uint32_t            _size_packet_id          ;
-  public : uint32_t         ** _array_size_depth        ;//[nb_front_end][nb_context]
-//public : uint32_t            _max_size_depth          ;
-
-//public : Tpacket_t           _shift_num_bank          ;
-  public : Tpacket_t           _mask_num_bank           ;
-  public : Tpacket_t           _shift_num_slot          ;
-//public : Tpacket_t           _mask_num_slot           ;
-    
-
-//public : bool                _have_port_front_end_id  ;
-//public : bool                _have_port_context_id    ;
-//public : bool                _have_port_packet_id     ;
-  public : bool                _have_port_rename_unit_id;
-//public : bool                _have_port_load_queue_ptr;
-//public : bool                _have_port_max_depth     ;
-//public : bool             ** _have_port_depth         ;//[nb_front_end][nb_context]
-
-  public : bool              * _have_thread             ;//[nb_thread]
+  public : uint32_t             _nb_front_end                       ;
+  public : uint32_t           * _nb_context                         ;//[nb_front_end]
+  public : uint32_t             _nb_rename_unit                     ;
+  public : uint32_t             _size_queue                         ;
+  public : uint32_t             _nb_bank                            ;
+  public : Tretire_ooo_scheme_t _retire_ooo_scheme                  ;
+  public : uint32_t           * _nb_inst_insert                     ;//[nb_rename_unit]
+  public : uint32_t           * _nb_inst_retire	                    ;//[nb_rename_unit]
+  public : uint32_t             _nb_inst_commit                     ;
+  public : uint32_t             _nb_inst_reexecute                  ;
+  public : uint32_t             _nb_inst_branch_complete            ;
+  public : uint32_t          ** _nb_branch_speculated               ;//[nb_front_end][nb_context]
+//public : uint32_t             _size_general_data                  ;
+//public : uint32_t             _size_store_queue_ptr               ;
+//public : uint32_t             _size_load_queue_ptr                ;
+//public : uint32_t             _size_general_register              ;
+//public : uint32_t             _size_special_register              ;
+  public : Tpriority_t          _priority                           ;
+  public : Tload_balancing_t    _load_balancing                     ;
+  public : uint32_t             _nb_rename_unit_select              ;
+  public : uint32_t             _nb_thread                          ;
+  public : uint32_t          ** _translate_num_context_to_num_thread; //[nb_front_end][nb_context]
+  public : const uint32_t       _nb_bank_access_commit              ;
+                             
+  public : uint32_t             _max_nb_context          ;
+  public : uint32_t             _max_nb_inst_insert      ;
+  public : uint32_t             _max_nb_inst_retire      ;
+//public : uint32_t             _size_address            ;
+//public : uint32_t             _size_front_end_id       ;
+//public : uint32_t             _size_context_id         ;
+  public : uint32_t             _size_rename_unit_id     ;    
+  public : uint32_t             _size_bank               ;
+//public : uint32_t             _size_nb_inst            ;
+//public : uint32_t             _size_packet_id          ;
+  public : uint32_t          ** _array_size_depth        ;//[nb_front_end][nb_context]
+//public : uint32_t             _max_size_depth          ;
+                             
+//public : Tpacket_t            _shift_num_bank          ;
+  public : Tpacket_t            _mask_num_bank           ;
+  public : Tpacket_t            _shift_num_slot          ;
+//public : Tpacket_t            _mask_num_slot           ;
+                             
+                             
+//public : bool                 _have_port_front_end_id  ;
+//public : bool                 _have_port_context_id    ;
+//public : bool                 _have_port_packet_id     ;
+  public : bool                 _have_port_rename_unit_id;
+//public : bool                 _have_port_load_queue_ptr;
+//public : bool                 _have_port_max_depth     ;
+//public : bool              ** _have_port_depth         ;//[nb_front_end][nb_context]
+                             
+  public : bool               * _have_thread             ;//[nb_thread]
 
     //-----[ methods ]-----------------------------------------------------------
-  public : Parameters  (uint32_t            nb_front_end                       ,
-			uint32_t          * nb_context                         ,//[nb_front_end]
-			uint32_t            nb_rename_unit                     ,
-			uint32_t            size_queue                         ,
-			uint32_t            nb_bank                            ,
-			uint32_t          * nb_inst_insert                     ,//[nb_rename_unit]
-			uint32_t          * nb_inst_retire                     ,//[nb_rename_unit]
-			uint32_t            nb_inst_commit                     ,
-			uint32_t            nb_inst_reexecute                  ,
-			uint32_t            nb_inst_branch_complete            ,
-			uint32_t         ** nb_branch_speculated               ,//[nb_front_end][nb_context]
-                        uint32_t            size_nb_inst_decod                 ,
-			uint32_t            size_general_data                  ,
-			uint32_t            size_store_queue_ptr               ,
-			uint32_t            size_load_queue_ptr                ,
-			uint32_t            size_general_register              ,
-			uint32_t            size_special_register              ,
-			Tpriority_t         priority                           ,
-			Tload_balancing_t   load_balancing                     ,
-			uint32_t            nb_rename_unit_select              ,
-                        uint32_t            nb_thread                          ,
-                        uint32_t         ** translate_num_context_to_num_thread, //[nb_front_end][nb_context]
-                        bool                is_toplevel=false
+  public : Parameters  (uint32_t             nb_front_end                       ,
+			uint32_t           * nb_context                         ,//[nb_front_end]
+			uint32_t             nb_rename_unit                     ,
+			uint32_t             size_queue                         ,
+			uint32_t             nb_bank                            ,
+                        Tretire_ooo_scheme_t retire_ooo_scheme                  ,
+			uint32_t           * nb_inst_insert                     ,//[nb_rename_unit]
+			uint32_t           * nb_inst_retire                     ,//[nb_rename_unit]
+			uint32_t             nb_inst_commit                     ,
+			uint32_t             nb_inst_reexecute                  ,
+			uint32_t             nb_inst_branch_complete            ,
+			uint32_t          ** nb_branch_speculated               ,//[nb_front_end][nb_context]
+                        uint32_t             size_nb_inst_decod                 ,
+			uint32_t             size_general_data                  ,
+			uint32_t             size_store_queue_ptr               ,
+			uint32_t             size_load_queue_ptr                ,
+			uint32_t             size_general_register              ,
+			uint32_t             size_special_register              ,
+			Tpriority_t          priority                           ,
+			Tload_balancing_t    load_balancing                     ,
+			uint32_t             nb_rename_unit_select              ,
+                        uint32_t             nb_thread                          ,
+                        uint32_t          ** translate_num_context_to_num_thread, //[nb_front_end][nb_context]
+                        bool                 is_toplevel=false
 			);
 //   public : Parameters  (Parameters & param) ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h	(revision 138)
@@ -23,5 +23,5 @@
       RETIRE_OOO_RENAME_UNIT,
       RETIRE_OOO_CONTEXT
-    } retire_ooo_t;
+    } Tretire_ooo_scheme_t;
 
   typedef enum
@@ -142,4 +142,32 @@
 }; // end namespace core
 }; // end namespace behavioural
+
+  template<> inline std::string toString<morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t>(const morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t& x)
+  {
+    switch (x)
+      {
+      case morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_IN_ORDER        : return "retire_in_order"       ; break;
+      case morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_RENAME_UNIT : return "retire_ooo_rename_unit"; break;
+      case morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_CONTEXT     : return "retire_ooo_context"    ; break;
+      default    : return ""      ; break;
+      }
+  };
+
+  template<> inline morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t fromString<morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t>(const std::string& x)
+  {
+    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_IN_ORDER       ))) == 0) or
+        (x.compare(toString(                      morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_IN_ORDER        )) == 0))
+      return morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_IN_ORDER;
+
+    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_RENAME_UNIT))) == 0) or
+        (x.compare(toString(                      morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_RENAME_UNIT )) == 0))
+      return morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_RENAME_UNIT;
+
+    if ((x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_CONTEXT    ))) == 0) or
+        (x.compare(toString(                      morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_CONTEXT     )) == 0))
+      return morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::RETIRE_OOO_CONTEXT;
+
+    throw (ERRORMORPHEO ("fromString","Unknow string : \""+x+"\""));
+  };
 
  template<> inline std::string toString<morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::rob_state_t>(const morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::rob_state_t& x)
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters.cpp	(revision 138)
@@ -21,29 +21,29 @@
 #undef  FUNCTION
 #define FUNCTION "Commit_unit::Parameters"
-  Parameters::Parameters (uint32_t            nb_front_end                       ,
-			  uint32_t          * nb_context                         ,
-			  uint32_t            nb_rename_unit                     ,
-			  uint32_t            size_queue                         ,
-			  uint32_t            nb_bank                            ,
-			  uint32_t          * nb_inst_insert                     ,
-			  uint32_t          * nb_inst_retire                     ,
-			  uint32_t            nb_inst_commit                     ,
-			  uint32_t            nb_inst_reexecute                  ,
-			  uint32_t            nb_inst_branch_complete            ,
-			  uint32_t         ** nb_branch_speculated               ,
-                          uint32_t            size_nb_inst_decod                 ,
-			  uint32_t            size_general_data                  ,
-			  uint32_t            size_store_queue_ptr               ,
-			  uint32_t            size_load_queue_ptr                ,
-			  uint32_t            size_general_register              ,
-			  uint32_t            size_special_register              ,
-			  Tpriority_t         priority                           ,
-			  Tload_balancing_t   load_balancing                     ,
-			  uint32_t            nb_rename_unit_select              ,
-                          uint32_t            nb_thread                          ,
-                          uint32_t         ** translate_num_context_to_num_thread,
-                          bool                is_toplevel):
-    _nb_bank_access_commit (1              ),
-    _retire_ooo            (RETIRE_IN_ORDER)
+  Parameters::Parameters (uint32_t             nb_front_end                       ,
+			  uint32_t           * nb_context                         ,
+			  uint32_t             nb_rename_unit                     ,
+			  uint32_t             size_queue                         ,
+			  uint32_t             nb_bank                            ,
+                          Tretire_ooo_scheme_t retire_ooo_scheme                  ,
+			  uint32_t           * nb_inst_insert                     ,
+			  uint32_t           * nb_inst_retire                     ,
+			  uint32_t             nb_inst_commit                     ,
+			  uint32_t             nb_inst_reexecute                  ,
+			  uint32_t             nb_inst_branch_complete            ,
+			  uint32_t          ** nb_branch_speculated               ,
+                          uint32_t             size_nb_inst_decod                 ,
+			  uint32_t             size_general_data                  ,
+			  uint32_t             size_store_queue_ptr               ,
+			  uint32_t             size_load_queue_ptr                ,
+			  uint32_t             size_general_register              ,
+			  uint32_t             size_special_register              ,
+			  Tpriority_t          priority                           ,
+			  Tload_balancing_t    load_balancing                     ,
+			  uint32_t             nb_rename_unit_select              ,
+                          uint32_t             nb_thread                          ,
+                          uint32_t          ** translate_num_context_to_num_thread,
+                          bool                 is_toplevel):
+    _nb_bank_access_commit (1              )
   {
     log_begin(Commit_unit,FUNCTION);
@@ -54,4 +54,5 @@
     _size_queue                          = size_queue                         ;
     _nb_bank                             = nb_bank                            ;
+    _retire_ooo_scheme                   = retire_ooo_scheme                  ;
     _nb_inst_insert                      = nb_inst_insert                     ;
     _nb_inst_retire                      = nb_inst_retire                     ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters_msg_error.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters_msg_error.cpp	(revision 138)
@@ -40,4 +40,7 @@
       test.error(_("nb_bank must be a multiple of size_queue.\n"));
 
+    if (_retire_ooo_scheme != RETIRE_IN_ORDER)
+      test.error(toString(_("retire_ooo_scheme \"%s\" is not yet implemented.\n"),toString(_retire_ooo_scheme).c_str()));
+
 //     if (_nb_inst_reexecute != 1)
 //       test.error(_("nb_inst_reexecute must be set at 1. Anothers value is unsupported.\n"));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters_print.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Parameters_print.cpp	(revision 138)
@@ -25,30 +25,30 @@
     std::string str = "";
     
-    str += toString(MSG_INFORMATION)+"  * nb_front_end            : "+toString<uint32_t         >(_nb_front_end           )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_front_end            : "+toString<uint32_t            >(_nb_front_end           )+"\n";
     for (uint32_t i=0; i<_nb_front_end; ++i)
     str += toString(MSG_INFORMATION)+"  * nb_context                ["+toString(i)+"] : "+toString<uint32_t         >(_nb_context [i])+"\n";//[nb_front_end]
-    str += toString(MSG_INFORMATION)+"  * nb_rename_unit          : "+toString<uint32_t         >(_nb_rename_unit         )+"\n";
-    str += toString(MSG_INFORMATION)+"  * size_queue              : "+toString<uint32_t         >(_size_queue             )+"\n";
-    str += toString(MSG_INFORMATION)+"  * nb_bank                 : "+toString<uint32_t         >(_nb_bank                )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_rename_unit          : "+toString<uint32_t            >(_nb_rename_unit         )+"\n";
+    str += toString(MSG_INFORMATION)+"  * size_queue              : "+toString<uint32_t            >(_size_queue             )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_bank                 : "+toString<uint32_t            >(_nb_bank                )+"\n";
     for (uint32_t i=0; i<_nb_rename_unit; ++i)
     str += toString(MSG_INFORMATION)+"  * nb_inst_insert            ["+toString(i)+"] : "+toString<uint32_t         >(_nb_inst_insert[i])+"\n";//[nb_rename_unit]
     for (uint32_t i=0; i<_nb_rename_unit; ++i)
     str += toString(MSG_INFORMATION)+"  * nb_inst_retire            ["+toString(i)+"] : "+toString<uint32_t         >(_nb_inst_retire[i])+"\n";//[nb_rename_unit]
-    str += toString(MSG_INFORMATION)+"  * nb_inst_commit          : "+toString<uint32_t         >(_nb_inst_commit         )+"\n";
-    str += toString(MSG_INFORMATION)+"  * nb_inst_reexecute       : "+toString<uint32_t         >(_nb_inst_reexecute      )+"\n";
-    str += toString(MSG_INFORMATION)+"  * nb_inst_branch_complete : "+toString<uint32_t         >(_nb_inst_branch_complete)+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_inst_commit          : "+toString<uint32_t            >(_nb_inst_commit         )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_inst_reexecute       : "+toString<uint32_t            >(_nb_inst_reexecute      )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_inst_branch_complete : "+toString<uint32_t            >(_nb_inst_branch_complete)+"\n";
     for (uint32_t i=0; i<_nb_front_end; ++i)
     for (uint32_t j=0; j<_nb_context[i]; ++j)
     str += toString(MSG_INFORMATION)+"  * nb_branch_speculated      ["+toString(i)+"]["+toString(j)+"] : "+toString<uint32_t         >(_nb_branch_speculated[i][j])+"\n";//[nb_front_end][nb_context]
-    str += toString(MSG_INFORMATION)+"  * size_general_data       : "+toString<uint32_t         >(_size_general_data      )+"\n";
-    str += toString(MSG_INFORMATION)+"  * size_store_queue_ptr    : "+toString<uint32_t         >(_size_store_queue_ptr   )+"\n";
-    str += toString(MSG_INFORMATION)+"  * size_load_queue_ptr     : "+toString<uint32_t         >(_size_load_queue_ptr    )+"\n";
-    str += toString(MSG_INFORMATION)+"  * size_general_register   : "+toString<uint32_t         >(_size_general_register  )+"\n";
-    str += toString(MSG_INFORMATION)+"  * size_special_register   : "+toString<uint32_t         >(_size_special_register  )+"\n";
-    str += toString(MSG_INFORMATION)+"  * priority                : "+toString<Tpriority_t      >(_priority               )+"\n";
-    str += toString(MSG_INFORMATION)+"  * load_balancing          : "+toString<Tload_balancing_t>(_load_balancing         )+"\n";
-    str += toString(MSG_INFORMATION)+"  * nb_rename_unit_select   : "+toString<uint32_t         >(_nb_rename_unit_select  )+"\n";
-    str += toString(MSG_INFORMATION)+"  * nb_bank_access_commit   : "+toString<uint32_t         >(_nb_bank_access_commit  )+"\n";
-    str += toString(MSG_INFORMATION)+"  * retire_ooo              : "+toString<retire_ooo_t     >(_retire_ooo             )+"\n";
+    str += toString(MSG_INFORMATION)+"  * size_general_data       : "+toString<uint32_t            >(_size_general_data      )+"\n";
+    str += toString(MSG_INFORMATION)+"  * size_store_queue_ptr    : "+toString<uint32_t            >(_size_store_queue_ptr   )+"\n";
+    str += toString(MSG_INFORMATION)+"  * size_load_queue_ptr     : "+toString<uint32_t            >(_size_load_queue_ptr    )+"\n";
+    str += toString(MSG_INFORMATION)+"  * size_general_register   : "+toString<uint32_t            >(_size_general_register  )+"\n";
+    str += toString(MSG_INFORMATION)+"  * size_special_register   : "+toString<uint32_t            >(_size_special_register  )+"\n";
+    str += toString(MSG_INFORMATION)+"  * priority                : "+toString<Tpriority_t         >(_priority               )+"\n";
+    str += toString(MSG_INFORMATION)+"  * load_balancing          : "+toString<Tload_balancing_t   >(_load_balancing         )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_rename_unit_select   : "+toString<uint32_t            >(_nb_rename_unit_select  )+"\n";
+    str += toString(MSG_INFORMATION)+"  * nb_bank_access_commit   : "+toString<uint32_t            >(_nb_bank_access_commit  )+"\n";
+    str += toString(MSG_INFORMATION)+"  * retire_ooo_scheme       : "+toString<Tretire_ooo_scheme_t>(_retire_ooo_scheme      )+"\n";
 
     /*
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/include/Issue_queue.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/include/Issue_queue.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/include/Issue_queue.h	(revision 138)
@@ -149,5 +149,5 @@
     // in_order implementation only
     // out_of_order implementation only
-  private   : generic::priority::Priority   * _priority_reg;
+//private   : generic::priority::Priority   * _priority_reg;
   private   : generic::priority::Priority   * _priority_out;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_allocation.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_allocation.cpp	(revision 138)
@@ -191,8 +191,8 @@
 						     _param->_nb_bank);
 
-    _priority_reg = new generic::priority::Priority (_name+"_priority_reg"  ,
-						     _param->_priority      ,
-						     _param->_nb_bank,
-						     _param->_nb_bank);
+    // _priority_reg = new generic::priority::Priority (_name+"_priority_reg"  ,
+    //     					     _param->_priority      ,
+    //     					     _param->_nb_bank,
+    //     					     _param->_nb_bank);
       }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_deallocation.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_deallocation.cpp	(revision 138)
@@ -136,5 +136,5 @@
       {
         delete    _priority_out;
-        delete    _priority_reg;
+        // delete    _priority_reg;
       }
     delete    _component;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_genMoore.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_genMoore.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_genMoore.cpp	(revision 138)
@@ -45,5 +45,5 @@
           ack [i][j] = false;
     
-      std::list<generic::priority::select_t> * select_reg = _priority_reg->select(); // same select for all issue
+      // std::list<generic::priority::select_t> * select_reg = _priority_reg->select(); // same select for all issue
       
       // issue_in interface
@@ -60,9 +60,12 @@
           
           // scan all bank
-          for (std::list<generic::priority::select_t>::iterator it=select_reg->begin();
-               it!=select_reg->end();
-               it++)
+          // for (std::list<generic::priority::select_t>::iterator it=select_reg->begin();
+          //      it!=select_reg->end();
+          //      it++)
+          for (uint32_t num_bank=0;
+               num_bank<_param->_nb_bank;
+               ++num_bank)
             {
-              uint32_t num_bank  = it->grp;
+              // uint32_t num_bank  = it->grp;
 
               log_printf(TRACE,Issue_queue,FUNCTION,"    * BANK [%d]",num_bank);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_transition.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_transition.cpp	(revision 138)
@@ -28,5 +28,5 @@
 // 	_priority_in ->reset();
 	_priority_out->reset();
-	_priority_reg->reset();
+//      _priority_reg->reset();
 	
 	for (uint32_t i=0; i<_param->_nb_bank; i++)
@@ -37,5 +37,5 @@
 // 	_priority_in ->transition();
  	_priority_out->transition();
-	_priority_reg->transition();
+//	_priority_reg->transition();
 
 	// ===================================================================
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters_msg_error.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters_msg_error.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters_msg_error.cpp	(revision 138)
@@ -41,7 +41,7 @@
       }
 
-    if (// (_queue_scheme == ISSUE_QUEUE_SCHEME_IN_BUNDLE_ORDER) or
-        (_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER   ))
-      test.error(toString(_("Can have deadlock with the queue scheme \"%s\".\n"),toString(_queue_scheme).c_str()));
+    // if (// (_queue_scheme == ISSUE_QUEUE_SCHEME_IN_BUNDLE_ORDER) or
+    //     (_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER   ))
+    //   test.error(toString(_("Can have deadlock with the queue scheme \"%s\".\n"),toString(_queue_scheme).c_str()));
 
     if (not is_multiple(_size_queue, _nb_bank))
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h	(revision 138)
@@ -134,6 +134,6 @@
    morpheo::behavioural::Tusage_t                usage
    );
-  public  :          ~Load_Store_pointer_unit             (void);
-					       
+  public  :            ~Load_Store_pointer_unit   (void);
+
   private : void        allocation                (
 #ifdef STATISTICS
@@ -146,15 +146,15 @@
 					       
 #ifdef SYSTEMC				       
-  public  : void        constant                 (void);
+  public  : void        constant                  (void);
   public  : void        transition                (void);
   public  : void        genMealy_insert           (void);
   public  : void        genMealy_retire           (void);
-#endif					       
+#endif
 
-#if VHDL				       
+#if VHDL
   public  : void        vhdl                      (void);
   private : void        vhdl_declaration          (Vhdl * & vhdl);
   private : void        vhdl_body                 (Vhdl * & vhdl);
-#endif					       
+#endif
 
 #ifdef STATISTICS
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_insert.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_insert.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit_genMealy_insert.cpp	(revision 138)
@@ -54,83 +54,90 @@
         log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"  * INSERT [%d]",i);
 
-	Tcontrol_t ack                   = false;
+	Tcontrol_t ack  = false;
+        bool       find = false;
 
-	if ((PORT_READ(in_INSERT_VAL  [i]) == true       ) and
-	    (PORT_READ(in_INSERT_TYPE [i]) == TYPE_MEMORY))
-	  {
-            log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * type is memory");
-
-	    Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_INSERT_FRONT_END_ID [i]):0;
-	    Tcontext_t context_id   = (_param->_have_port_context_id  )?PORT_READ(in_INSERT_CONTEXT_ID   [i]):0;
-	    uint32_t   lsq          = _param->_link_load_store_unit_with_thread[front_end_id][context_id];
-
+	if (PORT_READ(in_INSERT_VAL [i]) == true)
+          {
+            Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_INSERT_FRONT_END_ID [i]):0;
+            Tcontext_t context_id   = (_param->_have_port_context_id  )?PORT_READ(in_INSERT_CONTEXT_ID   [i]):0; 
+            uint32_t   lsq          = _param->_link_load_store_unit_with_thread[front_end_id][context_id];
+            
             log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * front_end_id : %d",front_end_id);
             log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * context_id   : %d",context_id  );
             log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * lsq          : %d",lsq         );
+            
+            PORT_WRITE(out_INSERT_STORE_QUEUE_PTR_WRITE [i], STORE_QUEUE_PTR_WRITE [lsq]);
+//          PORT_WRITE(out_INSERT_STORE_QUEUE_PTR_READ  [i], ((reg_STORE_QUEUE_PTR_READ  [front_end_id][context_id]+1)%_param->_size_load_queue[lsq]));
+            PORT_WRITE(out_INSERT_STORE_QUEUE_PTR_READ  [i], reg_STORE_QUEUE_PTR_READ  [front_end_id][context_id]);
+            PORT_WRITE(out_INSERT_STORE_QUEUE_EMPTY     [i], reg_STORE_QUEUE_EMPTY     [front_end_id][context_id]);
+            if (_param->_have_port_load_queue_ptr)
+            PORT_WRITE(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i], LOAD_QUEUE_PTR_WRITE  [lsq]);
 
-	    // Test if a previous instruction use the same lsq
-	    // Authorize once memory access by load store unit
-	    if (nb_use_lsq [lsq] > 0)
-	      {
-		nb_use_lsq [lsq] --;
+            if (PORT_READ(in_INSERT_TYPE [i]) == TYPE_MEMORY)
+              {
+                log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * type is memory");
+               
+                find = true;
+                
+                // Test if a previous instruction use the same lsq
+                // Authorize once memory access by load store unit
+                if (nb_use_lsq [lsq] > 0)
+                  {
+                    nb_use_lsq [lsq] --;
+                    
+                    uint32_t   ptr;
+                    
+                    log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * sq_ptr_write : %d",STORE_QUEUE_PTR_WRITE [lsq]);
+                    log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * lq_ptr_write : %d",LOAD_QUEUE_PTR_WRITE [lsq]);
+                    
+                    // operation became of decod_stage. Also operation is != store_head_ok and store_head_ko
+                    if (is_operation_memory_store(PORT_READ(in_INSERT_OPERATION [i])))
+                      {
+                        log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * USE_STORE_QUEUE");
+                        
+                        internal_INSERT_OPERATION_USE [i] = OPERATION_USE_STORE_QUEUE;
+                        
+                        ptr = STORE_QUEUE_PTR_WRITE [lsq];
+                        ack = not STORE_QUEUE_USE [lsq][ptr] and (static_cast<uint32_t>(STORE_QUEUE_NB_USE [lsq]+1) < _param->_size_store_queue[lsq]);
+                        
+                        if (ack)
+                          {
+                            STORE_QUEUE_PTR_WRITE [lsq]      = (ptr+1)%_param->_size_store_queue[lsq];
+                            STORE_QUEUE_NB_USE    [lsq]      ++;
+                            STORE_QUEUE_USE       [lsq][ptr] = true;
+                          }
+                      }
+                    else
+                      {
+                        log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * USE_LOAD_QUEUE");
+                        
+                        internal_INSERT_OPERATION_USE [i] = OPERATION_USE_LOAD_QUEUE;
+                        
+                        ptr = LOAD_QUEUE_PTR_WRITE [lsq];
+                        ack = (not LOAD_QUEUE_USE [lsq][ptr]);
+                        
+                        if (ack)
+                          {
+                            LOAD_QUEUE_PTR_WRITE [lsq]      = (ptr+1)%_param->_size_load_queue[lsq];
+                            LOAD_QUEUE_USE       [lsq][ptr] = true;
+                          }
+                      }
+                    
+                    log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * ptr          : %d",ptr         );
+                    log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * ack          : %d",ack         );
+                    
+                    internal_INSERT_LSQ [i] = lsq;
+                    internal_INSERT_PTR [i] = ptr;
+                  }
+              }
+          }
 
-		uint32_t   ptr;
+        if (not find)
+          {
+            ack = true;
+            
+            internal_INSERT_OPERATION_USE [i] = OPERATION_USE_NONE;
+          }
 
-                PORT_WRITE(out_INSERT_STORE_QUEUE_PTR_WRITE [i],     STORE_QUEUE_PTR_WRITE [lsq]);
-//                 PORT_WRITE(out_INSERT_STORE_QUEUE_PTR_READ  [i], ((reg_STORE_QUEUE_PTR_READ  [front_end_id][context_id]+1)%_param->_size_load_queue[lsq]));
-                PORT_WRITE(out_INSERT_STORE_QUEUE_PTR_READ  [i], reg_STORE_QUEUE_PTR_READ  [front_end_id][context_id]);
-                PORT_WRITE(out_INSERT_STORE_QUEUE_EMPTY     [i], reg_STORE_QUEUE_EMPTY     [front_end_id][context_id]);
-                if (_param->_have_port_load_queue_ptr)
-                PORT_WRITE(out_INSERT_LOAD_QUEUE_PTR_WRITE  [i], LOAD_QUEUE_PTR_WRITE  [lsq]);
-
-                log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * sq_ptr_write : %d",STORE_QUEUE_PTR_WRITE [lsq]);
-                log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * lq_ptr_write : %d",LOAD_QUEUE_PTR_WRITE [lsq]);
-		
-		// operation became of decod_stage. Also operation is != store_head_ok and store_head_ko
-		if (is_operation_memory_store(PORT_READ(in_INSERT_OPERATION [i])))
-		  {
-                    log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * USE_STORE_QUEUE");
-                
-		    internal_INSERT_OPERATION_USE [i] = OPERATION_USE_STORE_QUEUE;
-		    
-		    ptr = STORE_QUEUE_PTR_WRITE [lsq];
-		    ack = not STORE_QUEUE_USE [lsq][ptr] and (static_cast<uint32_t>(STORE_QUEUE_NB_USE [lsq]+1) < _param->_size_store_queue[lsq]);
-
-                    if (ack)
-                      {
-                        STORE_QUEUE_PTR_WRITE [lsq]      = (ptr+1)%_param->_size_store_queue[lsq];
-                        STORE_QUEUE_NB_USE    [lsq]      ++;
-                        STORE_QUEUE_USE       [lsq][ptr] = true;
-                      }
-		  }
-		else
-		  {
-                    log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * USE_LOAD_QUEUE");
-
-		    internal_INSERT_OPERATION_USE [i] = OPERATION_USE_LOAD_QUEUE;
-		    
-		    ptr = LOAD_QUEUE_PTR_WRITE [lsq];
-		    ack = (not LOAD_QUEUE_USE [lsq][ptr]);
-
-                    if (ack)
-                      {
-                        LOAD_QUEUE_PTR_WRITE [lsq]      = (ptr+1)%_param->_size_load_queue[lsq];
-                        LOAD_QUEUE_USE       [lsq][ptr] = true;
-                      }
-		  }
-
-                log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * ptr          : %d",ptr         );
-                log_printf(TRACE,Load_Store_pointer_unit,FUNCTION,"    * ack          : %d",ack         );
-		
-		internal_INSERT_LSQ [i] = lsq;
-		internal_INSERT_PTR [i] = ptr;
-	      }
-	  }
-	else
-	  {
-	    ack = true;
-
-	    internal_INSERT_OPERATION_USE [i] = OPERATION_USE_NONE;
-	  }
 
 	// Write output
@@ -142,5 +149,4 @@
         for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
           internal_INSERT_ACK [i] = 0;
-
       }
     
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue.cpp	(revision 138)
@@ -186,9 +186,7 @@
 	// List dependency information
 # endif    
-
-
-	
-#endif
       }
+#endif
+
     log_printf(FUNC,Register_translation_unit_Glue,FUNCTION,"End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit.cpp	(revision 138)
@@ -71,5 +71,5 @@
 #endif
 
-#ifdef SYSTEMC
+#if defined(SYSTEMC) and (defined(STATISTICS) or defined(VHDL_TESTBENCH))
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
@@ -83,7 +83,6 @@
 	// List dependency information
 # endif    
-	
+      }
 #endif
-      }
     log_printf(FUNC,Register_translation_unit,FUNCTION,"End");
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit.cpp	(revision 138)
@@ -72,5 +72,5 @@
 #endif
 
-#ifdef SYSTEMC
+#if defined(SYSTEMC) and (defined(STATISTICS) or defined(VHDL_TESTBENCH))
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
@@ -84,7 +84,6 @@
 	// List dependency information
 # endif    
-	
+      }
 #endif
-      }
     log_end(Rename_unit,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.deps
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.deps	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.deps	(revision 138)
@@ -11,18 +11,18 @@
 
 ifndef Behavioural
-include 			$(DIR_MORPHEO)/Behavioural/Makefile.deps
+include 				$(DIR_MORPHEO)/Behavioural/Makefile.deps
 endif
 
 #-----[ Directory ]----------------------------------------
 
-Special_Register_unit_DIR			=	$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit
+Special_Register_unit_DIR		=	$(DIR_MORPHEO)/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit
 
 #-----[ Library ]------------------------------------------
 
 Special_Register_unit_LIBRARY		= 	-lSpecial_Register_unit	\
-					$(Behavioural_LIBRARY)	
+						$(Behavioural_LIBRARY)	
 
-Special_Register_unit_DIR_LIBRARY		=	-L$(Special_Register_unit_DIR)/lib	\
-					$(Behavioural_DIR_LIBRARY)
+Special_Register_unit_DIR_LIBRARY	=	-L$(Special_Register_unit_DIR)/lib	\
+						$(Behavioural_DIR_LIBRARY)
 
 #-----[ Rules ]--------------------------------------------
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/SPR.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/SPR.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/SPR.h	(revision 138)
@@ -449,4 +449,9 @@
   public : void   write (Tspr_t x) 
     {
+      // old flag 
+      Tspr_t   old_ov = ov;
+      Tspr_t   old_cy = cy;
+      Tspr_t   old_f  = f;
+      
       cid   = x >> 28;
       sumra = x >> 16;
@@ -466,4 +471,9 @@
       tee   = x >>  1;
       sm    = x >>  0;
+
+      if ((old_ov != ov) or
+          (old_cy != cy) or
+          (old_f  != f))
+        msgWarning(_("Flag OV, CY and F are renamed. You can't modify this flag with the instruction l.mtspr.\n"));
     };
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h	(revision 138)
@@ -53,4 +53,6 @@
   public : uint32_t              _size_re_order_buffer             ;
   public : uint32_t              _nb_re_order_buffer_bank          ;
+  public : commit_unit::Tretire_ooo_scheme_t
+                                 _retire_ooo_scheme                ;
   public : Tpriority_t           _commit_priority                  ;
   public : Tload_balancing_t     _commit_load_balancing            ;
@@ -66,6 +68,4 @@
     // Reexecute
   public : uint32_t              _size_reexecute_queue             ;
-  public : Tpriority_t           _reexecute_priority               ;
-  public : Tload_balancing_t     _reexecute_load_balancing         ;
     // Rename_unit
   public : Tpriority_t         * _rename_select_priority           ;//[nb_rename_unit]
@@ -150,4 +150,6 @@
                         uint32_t              size_re_order_buffer             ,
                         uint32_t              nb_re_order_buffer_bank          ,
+                        commit_unit::Tretire_ooo_scheme_t
+                                              retire_ooo_scheme                ,
                         Tpriority_t           commit_priority                  ,
                         Tload_balancing_t     commit_load_balancing            ,
@@ -163,6 +165,4 @@
                         // Reexecute
                         uint32_t              size_reexecute_queue             ,
-                        Tpriority_t           reexecute_priority               ,
-                        Tload_balancing_t     reexecute_load_balancing         ,
                         // Rename_unit
                         Tpriority_t         * rename_select_priority           ,//[nb_rename_unit]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine.cpp	(revision 138)
@@ -71,5 +71,5 @@
 #endif
 
-#ifdef SYSTEMC
+#if defined(SYSTEMC) and (defined(STATISTICS) or defined(VHDL_TESTBENCH))
     if (usage_is_set(_usage,USE_SYSTEMC))
       {
@@ -83,7 +83,6 @@
 	// List dependency information
 # endif    
-	
+      }
 #endif
-      }
     log_end(OOO_Engine,FUNCTION);
   };
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters.cpp	(revision 138)
@@ -40,4 +40,6 @@
                           uint32_t              size_re_order_buffer             ,
                           uint32_t              nb_re_order_buffer_bank          ,
+                          commit_unit::Tretire_ooo_scheme_t
+                                                retire_ooo_scheme                ,
                           Tpriority_t           commit_priority                  ,
                           Tload_balancing_t     commit_load_balancing            ,
@@ -53,6 +55,4 @@
                           // Reexecute
                           uint32_t              size_reexecute_queue             ,
-                          Tpriority_t           reexecute_priority               ,
-                          Tload_balancing_t     reexecute_load_balancing         ,
                           // Rename_unit
                           Tpriority_t         * rename_select_priority           ,//[nb_rename_unit]
@@ -100,4 +100,5 @@
     _size_re_order_buffer              = size_re_order_buffer             ;
     _nb_re_order_buffer_bank           = nb_re_order_buffer_bank          ;
+    _retire_ooo_scheme                 = retire_ooo_scheme                ;
     _commit_priority                   = commit_priority                  ;
     _commit_load_balancing             = commit_load_balancing            ;
@@ -110,6 +111,4 @@
 //     _table_issue_type                  = table_issue_type                 ;
     _size_reexecute_queue              = size_reexecute_queue             ;
-    _reexecute_priority                = reexecute_priority               ;
-    _reexecute_load_balancing          = reexecute_load_balancing         ;
     _rename_select_priority            = rename_select_priority           ;
     _rename_select_load_balancing      = rename_select_load_balancing     ;
@@ -256,4 +255,5 @@
        _size_re_order_buffer    ,
        _nb_re_order_buffer_bank ,
+       _retire_ooo_scheme       ,
        _nb_inst_insert          ,
        _nb_inst_retire          ,
@@ -268,6 +268,6 @@
         size_general_register   ,
         size_special_register   ,
-       _commit_priority         ,
-       _commit_load_balancing   ,
+       _issue_priority          ,
+       _issue_load_balancing    ,
        _nb_rename_unit_select   ,
        _nb_thread               ,
@@ -312,6 +312,6 @@
        _nb_inst_reexecute       ,
        _nb_execute_loop_select  ,
-       _reexecute_priority      ,
-       _reexecute_load_balancing,
+       _commit_priority         ,
+       _commit_load_balancing   ,
         size_general_register   ,//+_size_rename_id
         size_special_register   ,//+_size_rename_id
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_print.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_print.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_print.cpp	(revision 138)
@@ -65,6 +65,4 @@
 //  str+= toString(MSG_INFORMATION)+"   * table_issue_type                   ["+toString(i)+"]["+toString(j)+"] : "+toString<bool             >(_table_issue_type [i][j]          )+"\n";//[nb_inst_issue][nb_type]
     str+= toString(MSG_INFORMATION)+"   * size_reexecute_queue             : "+toString<uint32_t         >(_size_reexecute_queue             )+"\n";
-    str+= toString(MSG_INFORMATION)+"   * reexecute_priority               : "+toString<Tpriority_t      >(_reexecute_priority               )+"\n";
-    str+= toString(MSG_INFORMATION)+"   * reexecute_load_balancing         : "+toString<Tload_balancing_t>(_reexecute_load_balancing         )+"\n";
     for (uint32_t i=0; i<_nb_rename_unit; ++i)
     str+= toString(MSG_INFORMATION)+"   * rename_select_priority             ["+toString(i)+"] : "+toString<Tpriority_t      >(_rename_select_priority           [i])+"\n";//[nb_rename_unit]
