Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-1_front_end-1_ooo_engine-1_execute_loop.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-1_front_end-1_ooo_engine-1_execute_loop.cfg	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-1_front_end-1_ooo_engine-1_execute_loop.cfg	(revision 128)
@@ -11,4 +11,5 @@
 4	4	+1	# ooo_engine_nb_inst_branch_complete    [0]          [nb_ooo_engine]
 4	4	+1	# nb_inst_insert                        [0]          [nb_ooo_engine]  
+4	4	+1	# nb_inst_reexecute                     [0]          [nb_ooo_engine]  
 4	4	+1	# nb_inst_issue                         [0]          [nb_ooo_engine]  
 4	4	+1	# nb_inst_execute                       [0]          [nb_ooo_engine]  
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-1_ooo_engine-1_execute_loop.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-1_ooo_engine-1_execute_loop.cfg	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-1_ooo_engine-1_execute_loop.cfg	(revision 128)
@@ -20,4 +20,5 @@
 4	4	+1	# ooo_engine_nb_inst_branch_complete    [0]          [nb_ooo_engine]
 3	3	+1	# nb_inst_insert                        [0]          [nb_ooo_engine]  
+3	3	+1	# nb_inst_reexecute                     [0]          [nb_ooo_engine]  
 3	3	+1	# nb_inst_issue                         [0]          [nb_ooo_engine]  
 4	4	+1	# nb_inst_execute                       [0]          [nb_ooo_engine]  
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-3_ooo_engine-1_execute_loop.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-3_ooo_engine-1_execute_loop.cfg	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-3_ooo_engine-1_execute_loop.cfg	(revision 128)
@@ -28,4 +28,7 @@
 1	1	+1	# nb_inst_insert                        [1]          [nb_ooo_engine]  
 2	2	+1	# nb_inst_insert                        [2]          [nb_ooo_engine]  
+3	3	+1	# nb_inst_reexecute                     [0]          [nb_ooo_engine]  
+1	1	+1	# nb_inst_reexecute                     [1]          [nb_ooo_engine]  
+2	2	+1	# nb_inst_reexecute                     [2]          [nb_ooo_engine]  
 3	3	+1	# nb_inst_issue                         [0]          [nb_ooo_engine]  
 1	1	+1	# nb_inst_issue                         [1]          [nb_ooo_engine]  
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-3_ooo_engine-2_execute_loop.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-3_ooo_engine-2_execute_loop.cfg	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-4_front_end-3_ooo_engine-2_execute_loop.cfg	(revision 128)
@@ -29,4 +29,7 @@
 1	1	+1	# nb_inst_insert                        [1]          [nb_ooo_engine]  
 2	2	+1	# nb_inst_insert                        [2]          [nb_ooo_engine]  
+3	3	+1	# nb_inst_reexecute                     [0]          [nb_ooo_engine]  
+1	1	+1	# nb_inst_reexecute                     [1]          [nb_ooo_engine]  
+2	2	+1	# nb_inst_reexecute                     [2]          [nb_ooo_engine]  
 3	3	+1	# nb_inst_issue                         [0]          [nb_ooo_engine]  
 1	1	+1	# nb_inst_issue                         [1]          [nb_ooo_engine]  
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-min.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-min.cfg	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/config-min.cfg	(revision 128)
@@ -11,4 +11,5 @@
 1	1	+1	# ooo_engine_nb_inst_branch_complete    [0]                  [nb_ooo_engine]
 1	1	+1	# nb_inst_insert                        [0]                  [nb_ooo_engine]  
+1	1	+1	# nb_inst_reexecute                     [0]                  [nb_ooo_engine]  
 1	1	+1	# nb_inst_issue                         [0]                  [nb_ooo_engine]  
 1	1	+1	# nb_inst_execute                       [0][0]               [nb_ooo_engine][ooo_engine_nb_execute_loop]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/src/main.cpp	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/src/main.cpp	(revision 128)
@@ -25,7 +25,9 @@
   err (_(" * ooo_engine_nb_inst_branch_complete    [nb_ooo_engine]                                            (uint32_t         )\n"));
   err (_(" * nb_inst_insert                        [nb_ooo_engine]                                            (uint32_t         )\n"));
+  err (_(" * nb_inst_reexecute                     [nb_ooo_engine]                                            (uint32_t         )\n"));
 //err (_(" * nb_inst_issue_queue                   [nb_ooo_engine]                                            (uint32_t         )\n"));
   err (_(" * nb_inst_issue_slot                    [nb_ooo_engine]                                            (uint32_t         )\n"));
   err (_(" * nb_inst_execute                       [nb_ooo_engine][ooo_engine_nb_execute_loop]                (uint32_t         )\n"));
+//err (_(" * issue_queue_in_order                  [nb_ooo_engine]                                            (bool             )\n"));
   err (_(" * nb_read_unit                          [nb_execute_loop]                                          (uint32_t         )\n"));
   err (_(" * nb_write_unit                         [nb_execute_loop]                                          (uint32_t         )\n"));
@@ -86,6 +88,8 @@
   uint32_t              * ooo_engine_nb_inst_branch_complete   ;//[nb_ooo_engine]
   uint32_t              * nb_inst_insert                       ;//[nb_ooo_engine]
+  uint32_t              * nb_inst_reexecute                    ;//[nb_ooo_engine]
   uint32_t              * nb_inst_issue_slot                   ;//[nb_ooo_engine]
   uint32_t             ** nb_inst_execute                      ;//[nb_ooo_engine][ooo_engine_nb_execute_loop]
+  bool                  * issue_queue_in_order                 ;//[nb_ooo_engine]
   uint32_t              * nb_read_unit                         ;//[nb_execute_loop]
   uint32_t              * nb_write_unit                        ;//[nb_execute_loop]
@@ -121,5 +125,5 @@
   nb_params = static_cast<int> (2+NB_PARAMS+
                                 3*nb_front_end+
-                                5*nb_ooo_engine+
+                                6*nb_ooo_engine+
                                 3*nb_execute_loop
                                 );
@@ -134,4 +138,5 @@
   SELFTEST1(ooo_engine_nb_inst_branch_complete   ,uint32_t         ,argv,x,nb_ooo_engine);
   SELFTEST1(nb_inst_insert                       ,uint32_t         ,argv,x,nb_ooo_engine);
+  SELFTEST1(nb_inst_reexecute                    ,uint32_t         ,argv,x,nb_ooo_engine);
   SELFTEST1(nb_inst_issue_slot                   ,uint32_t         ,argv,x,nb_ooo_engine);
 
@@ -149,5 +154,5 @@
   nb_params = static_cast<int> (2+NB_PARAMS+
                                 3*nb_front_end+
-                                5*nb_ooo_engine+
+                                6*nb_ooo_engine+
                                 3*nb_execute_loop+
                                 1*sum_ooo_engine_nb_execute_loop
@@ -157,4 +162,9 @@
 
   SELFTEST2(nb_inst_execute                      ,uint32_t         ,argv,x,nb_ooo_engine,ooo_engine_nb_execute_loop[it1]);
+
+  ALLOC1   (issue_queue_in_order                 ,bool                    ,nb_ooo_engine);
+  for (uint32_t i=0; i<nb_ooo_engine; ++i)
+    issue_queue_in_order [i] = true;
+
   SELFTEST1(nb_read_unit                         ,uint32_t         ,argv,x,nb_execute_loop);
   SELFTEST1(nb_write_unit                        ,uint32_t         ,argv,x,nb_execute_loop);
@@ -179,5 +189,5 @@
   nb_params = static_cast<int> (2+NB_PARAMS+
                                 3*nb_front_end+
-                                5*nb_ooo_engine+
+                                6*nb_ooo_engine+
                                 3*nb_execute_loop+
                                 sum_nb_inst_issue*sum_nb_read_unit+
@@ -239,7 +249,9 @@
          ooo_engine_nb_inst_branch_complete   ,//[nb_ooo_engine]
          nb_inst_insert                       ,//[nb_ooo_engine]
+         nb_inst_reexecute                    ,//[nb_ooo_engine]
          nb_inst_issue_slot                   ,//[nb_ooo_engine]
          nb_inst_issue_slot                   ,//[nb_ooo_engine]
          nb_inst_execute                      ,//[nb_ooo_engine][ooo_engine_nb_execute_loop]
+         issue_queue_in_order                 ,//[nb_ooo_engine]
          nb_read_unit                         ,//[nb_execute_loop]
          nb_write_unit                        ,//[nb_execute_loop]
@@ -265,4 +277,6 @@
       
       test (name,param);
+
+      delete param;
     }
   catch (morpheo::ErrorMorpheo & error)
@@ -285,13 +299,19 @@
     }
 
-  DELETE2(translate_execute_loop_num_ooo_engine,nb_execute_loop,execute_loop_nb_ooo_engine[it1]);
-  DELETE2(translate_ooo_engine_num_execute_loop,nb_ooo_engine,ooo_engine_nb_execute_loop[it1]);
-  DELETE2(translate_ooo_engine_num_front_end   ,nb_ooo_engine,ooo_engine_nb_front_end[it1]);
-  DELETE3(table_issue_type                                                           ,nb_execute_loop,nb_read_unit[it1],MAX_TYPE);
-  DELETE4(table_dispatch                       ,nb_ooo_engine,nb_inst_issue_slot[it1],nb_execute_loop,nb_read_unit[it2]);
+//DELETE0(size_special_register                );
+//DELETE0(size_general_register                );
+//DELETE0(size_special_data                    );
+//DELETE0(size_general_data                    );
+//DELETE0(size_store_queue_ptr                 );
+//DELETE0(size_load_queue_ptr                  );
+//DELETE0(size_rob_ptr                         );
+//DELETE0(size_depth                           );
   DELETE1(nb_write_unit                        ,nb_execute_loop);
   DELETE1(nb_read_unit                         ,nb_execute_loop);
+  DELETE1(issue_queue_in_order                 ,nb_ooo_engine);
   DELETE2(nb_inst_execute                      ,nb_ooo_engine,ooo_engine_nb_execute_loop[it1]);
   DELETE1(nb_inst_issue_slot                   ,nb_ooo_engine);
+  DELETE1(nb_inst_reexecute                    ,nb_ooo_engine);
+  DELETE1(nb_inst_insert                       ,nb_ooo_engine);
   DELETE1(ooo_engine_nb_inst_branch_complete   ,nb_ooo_engine);
   DELETE1(front_end_nb_inst_branch_complete    ,nb_front_end);
@@ -300,5 +320,8 @@
   DELETE1(ooo_engine_nb_execute_loop           ,nb_ooo_engine);
   DELETE1(ooo_engine_nb_front_end              ,nb_ooo_engine);
+//DELETE0(nb_execute_loop                      );
+//DELETE0(nb_ooo_engine                        );
   DELETE1(nb_context                           ,nb_front_end);
+//DELETE0(nb_front_end                         );
 
   return (_return);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/src/test.cpp	(revision 117)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/SelfTest/src/test.cpp	(revision 128)
@@ -19,4 +19,6 @@
   morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
 #endif
+
+  _model.set_model(NAME_Core_Glue,MODEL_SYSTEMC,true);
 
   Tusage_t _usage = USE_ALL;
@@ -50,4 +52,5 @@
 
   sc_signal<Tcontext_t        >  *** out_RENAME_FRONT_END_ID                       ;
+
   sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_FRONT_END_VAL             ;
   sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_FRONT_END_ACK             ;
@@ -57,4 +60,5 @@
   sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE     ;
   sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION ;
+
   sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_VAL            ;
   sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_OOO_ENGINE_ACK            ;
@@ -65,4 +69,5 @@
   sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE    ;
   sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION;
+
   sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_FRONT_END_VAL                ;
   sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_FRONT_END_ACK                ;
@@ -76,4 +81,5 @@
   sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL   ;
   sc_signal<Tgeneral_data_t   >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR       ;
+
   sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_VAL               ;
   sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_OOO_ENGINE_ACK               ;
@@ -88,4 +94,5 @@
   sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL  ;
   sc_signal<Tgeneral_data_t   >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR      ;
+
   sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_VAL                      ;
   sc_signal<Tcontrol_t        >  *** out_ISSUE_OOO_ENGINE_ACK                      ;
@@ -96,4 +103,6 @@
   sc_signal<Toperation_t      >  ***  in_ISSUE_OOO_ENGINE_OPERATION                ;
   sc_signal<Tlsq_ptr_t        >  ***  in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ;
+  sc_signal<Tlsq_ptr_t        >  ***  in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     ;
+  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY        ;
   sc_signal<Tlsq_ptr_t        >  ***  in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ;
   sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ;
@@ -109,4 +118,5 @@
   sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_WRITE_RE                 ;
   sc_signal<Tspecial_address_t>  ***  in_ISSUE_OOO_ENGINE_NUM_REG_RE               ;
+
   sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_VAL                    ;
   sc_signal<Tcontrol_t        >  ***  in_ISSUE_EXECUTE_LOOP_ACK                    ;
@@ -118,4 +128,6 @@
   sc_signal<Ttype_t           >  *** out_ISSUE_EXECUTE_LOOP_TYPE                   ;
   sc_signal<Tlsq_ptr_t        >  *** out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ;
+  sc_signal<Tlsq_ptr_t        >  *** out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   ;
+  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_EMPTY      ;
   sc_signal<Tlsq_ptr_t        >  *** out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ;
   sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ;
@@ -131,4 +143,5 @@
   sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_WRITE_RE               ;
   sc_signal<Tspecial_address_t>  *** out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             ;
+
   sc_signal<Tcontrol_t        > **** out_EXECUTE_OOO_ENGINE_VAL                    ;
   sc_signal<Tcontrol_t        > ****  in_EXECUTE_OOO_ENGINE_ACK                    ;
@@ -143,4 +156,5 @@
   sc_signal<Taddress_t        > **** out_EXECUTE_OOO_ENGINE_ADDRESS                ;
   sc_signal<Tgeneral_data_t   > **** out_EXECUTE_OOO_ENGINE_DATA                   ;
+
   sc_signal<Tcontrol_t        >  ***  in_EXECUTE_EXECUTE_LOOP_VAL                  ;
   sc_signal<Tcontrol_t        >  *** out_EXECUTE_EXECUTE_LOOP_ACK                  ;
@@ -156,4 +170,5 @@
   sc_signal<Taddress_t        >  ***  in_EXECUTE_EXECUTE_LOOP_ADDRESS              ;
   sc_signal<Tgeneral_data_t   >  ***  in_EXECUTE_EXECUTE_LOOP_DATA                 ;
+
   sc_signal<Tcontrol_t        >  ***  in_INSERT_OOO_ENGINE_VAL                     ;
   sc_signal<Tcontrol_t        >  *** out_INSERT_OOO_ENGINE_ACK                     ;
@@ -216,4 +231,6 @@
   ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_OPERATION                ," in_ISSUE_OOO_ENGINE_OPERATION                ",Toperation_t      ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ," in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ",Tlsq_ptr_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
+  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     ," in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     ",Tlsq_ptr_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
+  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY        ," in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY        ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ," in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ",Tlsq_ptr_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ," in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
@@ -238,4 +255,6 @@
   ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_TYPE                   ,"out_ISSUE_EXECUTE_LOOP_TYPE                   ",Ttype_t           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,"out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ",Tlsq_ptr_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
+  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   ,"out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   ",Tlsq_ptr_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
+  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_EMPTY      ,"out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_EMPTY      ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ,"out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ",Tlsq_ptr_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ,"out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
@@ -358,5 +377,7 @@
   INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_TYPE                     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_OPERATION                ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
-  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]); 
+  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
+  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
+  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   if (_param->_have_port_load_queue_ptr)
   INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
@@ -386,4 +407,6 @@
   INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_TYPE                   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
+  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
+  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_EMPTY      ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   if (_param->_have_port_load_queue_ptr)
   INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
@@ -469,4 +492,5 @@
   in_NRESET->write(1);  
 
+#ifdef SELFTEST
   LABEL("Test RENAME_FRONT_END_ID");
   if (_param->_have_port_front_end_id)
@@ -612,4 +636,6 @@
             in_ISSUE_OOO_ENGINE_OPERATION             [i][j]->write(range<Ttype_t        >(rand(),_param->_size_type               ));
             in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE [i][j]->write(range<Tlsq_ptr_t     >(rand(),_param->_size_store_queue_ptr    ));
+            in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ  [i][j]->write(range<Tlsq_ptr_t     >(rand(),_param->_size_store_queue_ptr    ));
+            in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY     [i][j]->write(rand()%2);
             in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE  [i][j]->write(range<Tlsq_ptr_t     >(rand(),_param->_size_load_queue_ptr     ));
             in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT          [i][j]->write(rand()%2);
@@ -751,4 +777,8 @@
               TEST(Tlsq_ptr_t        ,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  [i][j]->read(), 
                                        in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    [x][y]->read());
+              TEST(Tlsq_ptr_t        ,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   [i][j]->read(), 
+                                       in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     [x][y]->read());
+              TEST(Tlsq_ptr_t        ,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_EMPTY      [i][j]->read(), 
+                                       in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY        [x][y]->read());
               TEST(Tlsq_ptr_t        ,out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   [i][j]->read(), 
                                        in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     [x][y]->read());
@@ -781,4 +811,7 @@
       SC_START(1);
     }
+#else
+  SC_START(5);
+#endif
 
   /********************************************************
@@ -841,4 +874,6 @@
   DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_OPERATION                ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
+  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
+  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_EMPTY        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
   DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
@@ -863,4 +898,6 @@
   DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_TYPE                   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
+  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
+  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_EMPTY      ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
   DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
