Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h	(revision 81)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h	(revision 88)
@@ -12,4 +12,5 @@
 #include "Behavioural/include/Parameters.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Types.h"
+#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Parameters.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Parameters.h"
 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Parameters.h"
@@ -36,26 +37,17 @@
   public : uint32_t              _nb_load_store_unit                            ;
   public : uint32_t              _nb_write_unit                                 ;
-    // generic parameters					                      
+    // generic parameters                                                             
   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              _size_special_data                             ;
-    // specific parameters					                      
-    //  * read_unit						                      
-  public : uint32_t            * _size_read_queue                               ; //[nb_read_unit]
-  public : uint32_t            * _size_reservation_station                      ; //[nb_read_unit]
-  public : uint32_t            * _nb_inst_retire                                ; //[nb_read_unit]
-  public : uint32_t            * _read_unit_nb_register_write                   ; //[nb_read_unit]
-  public : uint32_t            * _read_unit_nb_bypass_write                     ; //[nb_read_unit]
-  public : uint32_t            * _read_unit_nb_bypass_memory                    ; //[nb_read_unit]
-  public : bool               ** _link_read_unit_with_load_store_unit           ; //[nb_read_unit][nb_load_store_unit]
-  public : bool               ** _link_read_unit_with_write_unit                ; //[nb_read_unit][nb_write_unit]
-  public : bool               ** _link_read_unit_with_thread                    ; //[nb_read_unit][nb_thread]
-
-    //  * functionnal_unit					                      
-  public : execute_timing_t  *** _timing                                        ; //[nb_execute_unit][nb_type][nb_operation]
-  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (uint32_t);
+//public : uint32_t              _size_general_data                             ;
+//public : uint32_t              _size_special_data                             ;
+    // specific parameters                                                            
+    //  * functionnal_unit                                                            
+  public : uint32_t            * _nb_inst_functionnal_unit                      ; //[nb_functionnal_unit]
+  public : execute_timing_t  *** _timing                                        ; //[nb_functionnal_unit][nb_type][nb_operation]
+  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (void);
+
     //  * load_store_unit    
   public : uint32_t            * _size_store_queue                              ; //[nb_load_store_unit]
@@ -65,9 +57,21 @@
   public : Tspeculative_load_t * _speculative_load                              ; //[nb_load_store_unit]
   public : uint32_t            * _nb_bypass_memory                              ; //[nb_load_store_unit]
-    //  * write_unit						                      
+  public : uint32_t            * _nb_cache_port                                 ; //[nb_load_store_unit]
+  public : uint32_t            * _nb_inst_memory                                ; //[nb_load_store_unit]
+    //  * read_unit                                                                   
+  public : uint32_t            * _size_read_queue                               ; //[nb_read_unit]
+  public : uint32_t            * _size_reservation_station                      ; //[nb_read_unit]
+  public : uint32_t            * _nb_inst_retire                                ; //[nb_read_unit]
+  public : uint32_t            * _read_unit_nb_register_write                   ; //[nb_read_unit]
+  public : uint32_t            * _read_unit_nb_bypass_write                     ; //[nb_read_unit]
+  public : uint32_t            * _read_unit_nb_bypass_memory                    ; //[nb_read_unit]
+  public : bool              *** _link_read_unit_with_load_store_unit           ; //[nb_read_unit][nb_load_store_unit][nb_inst_memory]
+  public : bool               ** _link_read_unit_with_write_unit                ; //[nb_read_unit][nb_write_unit]
+  public : bool               ** _link_read_unit_with_thread                    ; //[nb_read_unit][nb_thread]
+    //  * write_unit                                                                  
   public : uint32_t            * _size_write_queue                              ; //[nb_write_unit]
   public : uint32_t            * _size_execute_queue                            ; //[nb_write_unit]
   public : uint32_t            * _nb_bypass_write                               ; //[nb_write_unit]
-    //  * register_unit						                      
+    //  * register_unit                                                               
   public : uint32_t              _nb_gpr_read                                   ;
   public : uint32_t              _nb_gpr_write                                  ;
@@ -86,9 +90,9 @@
     //  * network
   public : Tpriority_t           _execution_unit_to_write_unit_priority         ;
-  public : bool               ** _execution_unit_to_write_unit_table_routing    ; //[nb_execute_unit][nb_write_unit]
+  public : bool              *** _execution_unit_to_write_unit_table_routing    ; //[nb_execute_unit][nb_execute_unit_port][nb_write_unit]
   public : bool               ** _execution_unit_to_write_unit_table_thread     ; //[nb_write_unit][nb_thread]
 
   public : Tpriority_t           _read_unit_to_execution_unit_priority          ;
-  public : bool               ** _read_unit_to_execution_unit_table_routing     ; //[nb_read_unit][nb_execute_unit]
+  public : bool              *** _read_unit_to_execution_unit_table_routing     ; //[nb_read_unit][nb_execute_unit][nb_execute_unit_port]
   public : bool               ** _read_unit_to_execution_unit_table_execute_type; //[nb_execute_unit][nb_type]
   public : bool               ** _read_unit_to_execution_unit_table_thread      ; //[nb_execute_unit][nb_thread]
@@ -98,14 +102,15 @@
 
   public : uint32_t              _nb_execute_unit              ;
-
-  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 : 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 : bool                  _have_port_load_queue_ptr     ;
+  public : uint32_t            * _nb_execute_unit_port         ;
+
+//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 : 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 : bool                  _have_port_load_queue_ptr     ;
   public : bool                  _have_port_dcache_context_id  ;
     
@@ -115,6 +120,6 @@
   public : uint32_t              _max_size_load_queue    ;
 
-  public : uint32_t              _size_general_register        ;
-  public : uint32_t              _size_special_register        ;
+//public : uint32_t              _size_general_register        ;
+//public : uint32_t              _size_special_register        ;
 
   public : uint32_t              _max_size_dcache_context_id;
@@ -125,4 +130,5 @@
   public : std::set<uint32_t>  * _set_read_unit_source_bypass_memory  ; //[nb_read_unit]
 
+  public : morpheo::behavioural::core::multi_execute_loop::execute_loop::execute_loop_glue::                                 Parameters  * _param_glue;
   public : morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::                        Parameters ** _param_read_unit;
   public : morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::functionnal_unit::Parameters ** _param_functionnal_unit;
@@ -135,60 +141,70 @@
     //-----[ methods ]-----------------------------------------------------------
   public : Parameters  (uint32_t              nb_read_unit                                  ,
-			uint32_t              nb_functionnal_unit                           ,
-			uint32_t              nb_load_store_unit                            ,
-			uint32_t              nb_write_unit                                 ,
-			
-			uint32_t              nb_context                                    ,
-			uint32_t              nb_front_end                                  ,
-			uint32_t              nb_ooo_engine                                 ,
-			uint32_t              nb_packet                                     ,
-			uint32_t              size_general_data                             ,
-			uint32_t              size_special_data                             ,
-			
-			uint32_t            * size_read_queue                               ,
-			uint32_t            * size_reservation_station                      ,
-			uint32_t            * nb_inst_retire                                ,
-			
-			execute_timing_t  *** timing                                        ,
-			morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t),
-			
-			uint32_t            * size_store_queue                              ,
-			uint32_t            * size_load_queue                               ,
-			uint32_t            * size_speculative_access_queue                 ,
-			uint32_t            * nb_port_check                                 ,
-			Tspeculative_load_t * speculative_load                              ,
-			uint32_t            * nb_bypass_memory                              ,
-			
-			uint32_t            * size_write_queue                              ,
-			uint32_t            * size_execute_queue                            ,
-			uint32_t            * nb_bypass_write                               ,
-			
-			uint32_t              nb_gpr_bank                                   ,
-			uint32_t              nb_gpr_port_read_by_bank                      ,
-			uint32_t              nb_gpr_port_write_by_bank                     ,
-			uint32_t              nb_spr_bank                                   ,
-			uint32_t              nb_spr_port_read_by_bank                      ,
-			uint32_t              nb_spr_port_write_by_bank                     ,
-			uint32_t            * nb_general_register                           ,
-			uint32_t            * nb_special_register                           ,
-			uint32_t            * nb_inst_insert_rob                            ,
-			uint32_t            * nb_inst_retire_rob                            ,
-			
-			Tpriority_t           execution_unit_to_write_unit_priority         ,
-			bool               ** execution_unit_to_write_unit_table_routing    ,
-			bool               ** execution_unit_to_write_unit_table_thread     ,
-			
-			Tpriority_t           read_unit_to_execution_unit_priority          ,
-			bool               ** read_unit_to_execution_unit_table_routing     ,
-			bool               ** read_unit_to_execution_unit_table_thread      
-			);
+                        uint32_t              nb_functionnal_unit                           ,
+                        uint32_t              nb_load_store_unit                            ,
+                        uint32_t              nb_write_unit                                 ,
+                        
+                        uint32_t              nb_context                                    ,
+                        uint32_t              nb_front_end                                  ,
+                        uint32_t              nb_ooo_engine                                 ,
+                        uint32_t              nb_packet                                     ,
+                        uint32_t              size_general_data                             ,
+                        uint32_t              size_special_data                             ,
+                        
+                        uint32_t            * size_read_queue                               ,//[nb_read_unit]
+                        uint32_t            * size_reservation_station                      ,//[nb_read_unit]
+                        uint32_t            * nb_inst_retire                                ,//[nb_read_unit]
+                        
+                        uint32_t            * nb_inst_functionnal_unit                      ,//[nb_functionnal_unit]
+                        execute_timing_t  *** timing                                        ,//[nb_functionnal_unit][nb_type][nb_operation]
+                        morpheo::behavioural::custom::custom_information_t (*get_custom_information) (void),
+                        
+                        uint32_t            * size_store_queue                              ,//[nb_load_store_unit]
+                        uint32_t            * size_load_queue                               ,//[nb_load_store_unit]
+                        uint32_t            * size_speculative_access_queue                 ,//[nb_load_store_unit]
+                        uint32_t            * nb_port_check                                 ,//[nb_load_store_unit]
+                        Tspeculative_load_t * speculative_load                              ,//[nb_load_store_unit]
+                        uint32_t            * nb_bypass_memory                              ,//[nb_load_store_unit]
+                        uint32_t            * nb_cache_port                                 ,//[nb_load_store_unit]
+                        uint32_t            * nb_inst_memory                                ,//[nb_load_store_unit]
+                        
+                        uint32_t            * size_write_queue                              ,//[nb_write_unit]
+                        uint32_t            * size_execute_queue                            ,//[nb_write_unit]
+                        uint32_t            * nb_bypass_write                               ,//[nb_write_unit]
+                        
+                        uint32_t              nb_gpr_bank                                   ,
+                        uint32_t              nb_gpr_port_read_by_bank                      ,
+                        uint32_t              nb_gpr_port_write_by_bank                     ,
+                        uint32_t              nb_spr_bank                                   ,
+                        uint32_t              nb_spr_port_read_by_bank                      ,
+                        uint32_t              nb_spr_port_write_by_bank                     ,
+                        uint32_t            * nb_general_register                           ,//[nb_ooo_engine]
+                        uint32_t            * nb_special_register                           ,//[nb_ooo_engine]
+                        uint32_t            * nb_inst_insert_rob                            ,//[nb_ooo_engine]
+                        uint32_t            * nb_inst_retire_rob                            ,//[nb_ooo_engine]
+                        
+                        Tpriority_t           execution_unit_to_write_unit_priority         ,
+                        bool              *** execution_unit_to_write_unit_table_routing    ,//[nb_execute_unit][nb_execute_unit_port][nb_write_unit]
+                        bool               ** execution_unit_to_write_unit_table_thread     ,//[nb_write_unit][nb_thread]
+                        
+                        Tpriority_t           read_unit_to_execution_unit_priority          ,
+                        bool              *** read_unit_to_execution_unit_table_routing     ,//[nb_read_unit][nb_execute_unit][nb_execute_unit_port]
+                        bool               ** read_unit_to_execution_unit_table_thread      ,//[nb_execute_unit][nb_thread]
+
+                        bool                * is_load_store_unit                            ,//[nb_execute_unit]
+                        uint32_t            * translate_num_execute_unit                    ,//[nb_execute_unit]
+
+                        bool                  is_toplevel=false
+                        );
 //   public : Parameters  (Parameters & param) ;
-  public : ~Parameters () ;
+  public : ~Parameters (void) ;
+
+  public :        void            copy       (void);
 
   public :        Parameters_test msg_error  (void);
 
-  public :        std::string   print      (uint32_t depth);
-  public : friend std::ostream& operator<< (std::ostream& output_stream,
-					    morpheo::behavioural::core::multi_execute_loop::execute_loop::Parameters & x);
+  public :        std::string     print      (uint32_t depth);
+  public : friend std::ostream&   operator<< (std::ostream& output_stream,
+                                              morpheo::behavioural::core::multi_execute_loop::execute_loop::Parameters & x);
   };
 
