Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h	(revision 88)
@@ -90,66 +90,65 @@
 
     // ~~~~~[ Interface "memory_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_IN (Tcontrol_t        )    *  in_MEMORY_IN_VAL         ;
-  public    : SC_OUT(Tcontrol_t        )    * out_MEMORY_IN_ACK         ;
-  public    : SC_IN (Tcontext_t        )    *  in_MEMORY_IN_CONTEXT_ID  ;
-  public    : SC_IN (Tcontext_t        )    *  in_MEMORY_IN_FRONT_END_ID;
-  public    : SC_IN (Tcontext_t        )    *  in_MEMORY_IN_OOO_ENGINE_ID;
-  public    : SC_IN (Tpacket_t         )    *  in_MEMORY_IN_PACKET_ID   ;
-  public    : SC_IN (Toperation_t      )    *  in_MEMORY_IN_OPERATION   ;
-  public    : SC_IN (Ttype_t           )    *  in_MEMORY_IN_TYPE        ;
-  public    : SC_IN (Tlsq_ptr_t        )    *  in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;
-  public    : SC_IN (Tlsq_ptr_t        )    *  in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;
-  public    : SC_IN (Tcontrol_t        )    *  in_MEMORY_IN_HAS_IMMEDIAT;
-  public    : SC_IN (Tgeneral_data_t   )    *  in_MEMORY_IN_IMMEDIAT    ; // memory address
-  public    : SC_IN (Tgeneral_data_t   )    *  in_MEMORY_IN_DATA_RA     ; // memory address
-  public    : SC_IN (Tgeneral_data_t   )    *  in_MEMORY_IN_DATA_RB     ; // data        (store)
-  public    : SC_IN (Tspecial_data_t   )    *  in_MEMORY_IN_DATA_RC     ;
-  public    : SC_IN (Tcontrol_t        )    *  in_MEMORY_IN_WRITE_RD    ; // = (operation==load)
-  public    : SC_IN (Tgeneral_address_t)    *  in_MEMORY_IN_NUM_REG_RD  ; // destination (load)
-  public    : SC_IN (Tcontrol_t        )    *  in_MEMORY_IN_WRITE_RE    ;
-  public    : SC_IN (Tspecial_address_t)    *  in_MEMORY_IN_NUM_REG_RE  ;
+  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_VAL                  ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_IN_ACK                  ;//[nb_inst_memory]
+  public    : SC_IN (Tcontext_t        )   **  in_MEMORY_IN_CONTEXT_ID           ;//[nb_inst_memory]
+  public    : SC_IN (Tcontext_t        )   **  in_MEMORY_IN_FRONT_END_ID         ;//[nb_inst_memory]
+  public    : SC_IN (Tcontext_t        )   **  in_MEMORY_IN_OOO_ENGINE_ID        ;//[nb_inst_memory]
+  public    : SC_IN (Tpacket_t         )   **  in_MEMORY_IN_PACKET_ID            ;//[nb_inst_memory]
+  public    : SC_IN (Toperation_t      )   **  in_MEMORY_IN_OPERATION            ;//[nb_inst_memory]
+  public    : SC_IN (Ttype_t           )   **  in_MEMORY_IN_TYPE                 ;//[nb_inst_memory]
+  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;//[nb_inst_memory]
+  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;//[nb_inst_memory]
+  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_HAS_IMMEDIAT         ;//[nb_inst_memory]
+  public    : SC_IN (Tgeneral_data_t   )   **  in_MEMORY_IN_IMMEDIAT             ;//[nb_inst_memory] // memory address
+  public    : SC_IN (Tgeneral_data_t   )   **  in_MEMORY_IN_DATA_RA              ;//[nb_inst_memory] // memory address
+  public    : SC_IN (Tgeneral_data_t   )   **  in_MEMORY_IN_DATA_RB              ;//[nb_inst_memory] // data        (store)
+  public    : SC_IN (Tspecial_data_t   )   **  in_MEMORY_IN_DATA_RC              ;//[nb_inst_memory]
+  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_WRITE_RD             ;//[nb_inst_memory] // = (operation==load)
+  public    : SC_IN (Tgeneral_address_t)   **  in_MEMORY_IN_NUM_REG_RD           ;//[nb_inst_memory] // destination (load)
+  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_WRITE_RE             ;//[nb_inst_memory]
+  public    : SC_IN (Tspecial_address_t)   **  in_MEMORY_IN_NUM_REG_RE           ;//[nb_inst_memory]
 
     // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_OUT(Tcontrol_t        )    * out_MEMORY_OUT_VAL       ;
-  public    : SC_IN (Tcontrol_t        )    *  in_MEMORY_OUT_ACK       ;
-  public    : SC_OUT(Tcontext_t        )    * out_MEMORY_OUT_CONTEXT_ID;
-  public    : SC_OUT(Tcontext_t        )    * out_MEMORY_OUT_FRONT_END_ID;
-  public    : SC_OUT(Tcontext_t        )    * out_MEMORY_OUT_OOO_ENGINE_ID;
-  public    : SC_OUT(Tpacket_t         )    * out_MEMORY_OUT_PACKET_ID ;
-//public    : SC_OUT(Toperation_t      )    * out_MEMORY_OUT_OPERATION ;
-  public    : SC_OUT(Ttype_t           )    * out_MEMORY_OUT_TYPE      ;
-  public    : SC_OUT(Tcontrol_t        )    * out_MEMORY_OUT_WRITE_RD  ; // = (operation==load)
-  public    : SC_OUT(Tgeneral_address_t)    * out_MEMORY_OUT_NUM_REG_RD; // destination (load)
-  public    : SC_OUT(Tgeneral_data_t   )    * out_MEMORY_OUT_DATA_RD   ; // data        (load)
-  public    : SC_OUT(Tcontrol_t        )    * out_MEMORY_OUT_WRITE_RE  ;
-  public    : SC_OUT(Tspecial_address_t)    * out_MEMORY_OUT_NUM_REG_RE;
-  public    : SC_OUT(Tspecial_data_t   )    * out_MEMORY_OUT_DATA_RE   ;
-  public    : SC_OUT(Texception_t      )    * out_MEMORY_OUT_EXCEPTION ;
-  public    : SC_OUT(Tcontrol_t        )    * out_MEMORY_OUT_NO_SEQUENCE;
-  public    : SC_OUT(Tgeneral_data_t   )    * out_MEMORY_OUT_ADDRESS   ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_VAL                 ;//[nb_inst_memory]
+  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_OUT_ACK                 ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontext_t        )   ** out_MEMORY_OUT_CONTEXT_ID          ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontext_t        )   ** out_MEMORY_OUT_FRONT_END_ID        ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontext_t        )   ** out_MEMORY_OUT_OOO_ENGINE_ID       ;//[nb_inst_memory]
+  public    : SC_OUT(Tpacket_t         )   ** out_MEMORY_OUT_PACKET_ID           ;//[nb_inst_memory]
+//public    : SC_OUT(Toperation_t      )   ** out_MEMORY_OUT_OPERATION           ;//[nb_inst_memory]
+  public    : SC_OUT(Ttype_t           )   ** out_MEMORY_OUT_TYPE                ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_WRITE_RD            ;//[nb_inst_memory] // = (operation==load)
+  public    : SC_OUT(Tgeneral_address_t)   ** out_MEMORY_OUT_NUM_REG_RD          ;//[nb_inst_memory] // destination (load)
+  public    : SC_OUT(Tgeneral_data_t   )   ** out_MEMORY_OUT_DATA_RD             ;//[nb_inst_memory] // data        (load)
+  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_WRITE_RE            ;//[nb_inst_memory]
+  public    : SC_OUT(Tspecial_address_t)   ** out_MEMORY_OUT_NUM_REG_RE          ;//[nb_inst_memory]
+  public    : SC_OUT(Tspecial_data_t   )   ** out_MEMORY_OUT_DATA_RE             ;//[nb_inst_memory]
+  public    : SC_OUT(Texception_t      )   ** out_MEMORY_OUT_EXCEPTION           ;//[nb_inst_memory]
+  public    : SC_OUT(Tcontrol_t        )   ** out_MEMORY_OUT_NO_SEQUENCE         ;//[nb_inst_memory]
+  public    : SC_OUT(Tgeneral_data_t   )   ** out_MEMORY_OUT_ADDRESS             ;//[nb_inst_memory]
     
-
     // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_OUT(Tcontrol_t        )    * out_DCACHE_REQ_VAL       ;
-  public    : SC_IN (Tcontrol_t        )    *  in_DCACHE_REQ_ACK       ;
-  public    : SC_OUT(Tcontext_t        )    * out_DCACHE_REQ_CONTEXT_ID;
-  public    : SC_OUT(Tpacket_t         )    * out_DCACHE_REQ_PACKET_ID ;
-  public    : SC_OUT(Tdcache_address_t )    * out_DCACHE_REQ_ADDRESS   ;
-  public    : SC_OUT(Tdcache_type_t    )    * out_DCACHE_REQ_TYPE      ;
-  public    : SC_OUT(Tdcache_data_t    )    * out_DCACHE_REQ_WDATA     ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_DCACHE_REQ_VAL                 ;//[nb_cache_port]
+  public    : SC_IN (Tcontrol_t        )   **  in_DCACHE_REQ_ACK                 ;//[nb_cache_port]
+  public    : SC_OUT(Tcontext_t        )   ** out_DCACHE_REQ_CONTEXT_ID          ;//[nb_cache_port]
+  public    : SC_OUT(Tpacket_t         )   ** out_DCACHE_REQ_PACKET_ID           ;//[nb_cache_port]
+  public    : SC_OUT(Tdcache_address_t )   ** out_DCACHE_REQ_ADDRESS             ;//[nb_cache_port]
+  public    : SC_OUT(Tdcache_type_t    )   ** out_DCACHE_REQ_TYPE                ;//[nb_cache_port]
+  public    : SC_OUT(Tdcache_data_t    )   ** out_DCACHE_REQ_WDATA               ;//[nb_cache_port]
 
     // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_IN (Tcontrol_t        )    *  in_DCACHE_RSP_VAL       ;
-  public    : SC_OUT(Tcontrol_t        )    * out_DCACHE_RSP_ACK       ;
-  public    : SC_IN (Tcontext_t        )    *  in_DCACHE_RSP_CONTEXT_ID;
-  public    : SC_IN (Tpacket_t         )    *  in_DCACHE_RSP_PACKET_ID ;
-  public    : SC_IN (Tdcache_data_t    )    *  in_DCACHE_RSP_RDATA     ;
-  public    : SC_IN (Tdcache_error_t   )    *  in_DCACHE_RSP_ERROR     ;
+  public    : SC_IN (Tcontrol_t        )   **  in_DCACHE_RSP_VAL                 ;//[nb_cache_port]
+  public    : SC_OUT(Tcontrol_t        )   ** out_DCACHE_RSP_ACK                 ;//[nb_cache_port]
+  public    : SC_IN (Tcontext_t        )   **  in_DCACHE_RSP_CONTEXT_ID          ;//[nb_cache_port]
+  public    : SC_IN (Tpacket_t         )   **  in_DCACHE_RSP_PACKET_ID           ;//[nb_cache_port]
+  public    : SC_IN (Tdcache_data_t    )   **  in_DCACHE_RSP_RDATA               ;//[nb_cache_port]
+  public    : SC_IN (Tdcache_error_t   )   **  in_DCACHE_RSP_ERROR               ;//[nb_cache_port]
 
     // ~~~~~[ Interface "bypass_memory" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  public    : SC_OUT(Tcontrol_t        )   ** out_BYPASS_MEMORY_VAL       ;
-  public    : SC_OUT(Tcontext_t        )   ** out_BYPASS_MEMORY_OOO_ENGINE_ID;
-  public    : SC_OUT(Tgeneral_address_t)   ** out_BYPASS_MEMORY_NUM_REG   ;
-  public    : SC_OUT(Tgeneral_data_t   )   ** out_BYPASS_MEMORY_DATA      ;
+  public    : SC_OUT(Tcontrol_t        )   ** out_BYPASS_MEMORY_VAL          ; //[nb_bypass_memory]
+  public    : SC_OUT(Tcontext_t        )   ** out_BYPASS_MEMORY_OOO_ENGINE_ID; //[nb_bypass_memory]
+  public    : SC_OUT(Tgeneral_address_t)   ** out_BYPASS_MEMORY_NUM_REG      ; //[nb_bypass_memory]
+  public    : SC_OUT(Tgeneral_data_t   )   ** out_BYPASS_MEMORY_DATA         ; //[nb_bypass_memory]
 
     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
@@ -177,12 +176,14 @@
     // signal
   public    : Tlsq_ptr_t                      internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ ;
-
-  private   : Tcontrol_t                      internal_MEMORY_IN_ACK;
-  private   : Tcontrol_t                      internal_MEMORY_OUT_VAL;
+					     
+  private   : Tcontrol_t                      internal_MEMORY_IN_ACK          ;
+  private   : uint32_t                        internal_MEMORY_IN_PORT         ;
+
+  private   : Tcontrol_t                      internal_MEMORY_OUT_VAL         ;
   private   : Tselect_queue_t                 internal_MEMORY_OUT_SELECT_QUEUE;
-  public    : Tlsq_ptr_t                      internal_MEMORY_OUT_PTR;
-
-  private   : Tcontrol_t                      internal_DCACHE_RSP_ACK;
-  private   : Tcontrol_t                      internal_DCACHE_REQ_VAL;
+  private   : Tlsq_ptr_t                      internal_MEMORY_OUT_PTR         ;
+					     
+  private   : Tcontrol_t                      internal_DCACHE_RSP_ACK         ;
+  private   : Tcontrol_t                      internal_DCACHE_REQ_VAL         ;
   private   : Tselect_queue_t                 internal_DCACHE_REQ_SELECT_QUEUE;
 #endif
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Parameters.h	(revision 82)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Parameters.h	(revision 88)
@@ -27,41 +27,42 @@
   {
     //-----[ fields ]------------------------------------------------------------
-  public : const uint32_t            _size_store_queue             ;
-  public : const uint32_t            _size_load_queue              ;
-  public : const uint32_t            _size_speculative_access_queue;
-  public : const uint32_t            _nb_port_check                ;
-  public : const Tspeculative_load_t _speculative_load             ;
-  public : const uint32_t            _nb_bypass_memory             ;
-//public : const uint32_t            _nb_cache_port                ;
-  public : const uint32_t            _nb_context                   ;
-  public : const uint32_t            _nb_front_end                 ;
-  public : const uint32_t            _nb_ooo_engine                ;
-  public : const uint32_t            _nb_packet                    ;
-  public : const uint32_t            _size_general_data            ;
-  public : const uint32_t            _size_special_data            ;
-  public : const uint32_t            _nb_general_register          ;
-  public : const uint32_t            _nb_special_register          ;
+  public : uint32_t            _size_store_queue             ;
+  public : uint32_t            _size_load_queue              ;
+  public : uint32_t            _size_speculative_access_queue;
+  public : uint32_t            _nb_port_check                ;
+  public : Tspeculative_load_t _speculative_load             ;
+  public : uint32_t            _nb_bypass_memory             ;
+  public : uint32_t            _nb_cache_port                ;
+  public : uint32_t            _nb_inst_memory               ;
+  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            ;
+  public : uint32_t            _nb_general_register          ;
+  public : uint32_t            _nb_special_register          ;
 
-  public : const uint32_t            _size_address_store_queue             ;
-  public : const uint32_t            _size_address_load_queue              ;
-  public : const uint32_t            _size_address_speculative_access_queue;
-  public : const uint32_t            _size_context_id                      ;
-  public : const uint32_t            _size_front_end_id                    ;
-  public : const uint32_t            _size_ooo_engine_id                   ;
-  public : const uint32_t            _size_packet_id                       ;
-  public : const uint32_t            _size_general_register                ;
-  public : const uint32_t            _size_special_register                ;
-  public : const uint32_t            _size_dcache_context_id               ;
-  public : const uint32_t            _size_dcache_packet_id                ;
+//public : uint32_t            _size_address_store_queue             ;
+//public : uint32_t            _size_address_load_queue              ;
+  public : uint32_t            _size_speculative_access_queue_ptr    ;
+//public : uint32_t            _size_context_id                      ;
+//public : uint32_t            _size_front_end_id                    ;
+//public : uint32_t            _size_ooo_engine_id                   ;
+//public : uint32_t            _size_packet_id                       ;
+//public : uint32_t            _size_general_register                ;
+//public : uint32_t            _size_special_register                ;
+  public : uint32_t            _size_dcache_context_id               ;
+  public : uint32_t            _size_dcache_packet_id                ;
 
-  public : const bool                _have_port_context_id                 ;
-  public : const bool                _have_port_front_end_id               ;
-  public : const bool                _have_port_ooo_engine_id              ;
-  public : const bool                _have_port_packet_id                  ;
-  public : const bool                _have_port_dcache_context_id          ;
-  public : const bool                _have_port_load_queue_ptr             ;
+//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_dcache_context_id          ;
+//public : bool                _have_port_load_queue_ptr             ;
 
-  public : const Tdcache_address_t   _mask_address_lsb                     ;
-  public : const Tdcache_address_t   _mask_address_msb                     ;
+  public : Tdcache_address_t   _mask_address_lsb                     ;
+  public : Tdcache_address_t   _mask_address_msb                     ;
 
     //-----[ methods ]-----------------------------------------------------------
@@ -72,4 +73,6 @@
 			Tspeculative_load_t speculative_load       ,
 			uint32_t            nb_bypass_memory       ,
+			uint32_t            nb_cache_port          ,
+			uint32_t            nb_inst_memory         ,
 			uint32_t            nb_context             ,
 			uint32_t            nb_front_end           ,
@@ -79,8 +82,12 @@
 			uint32_t            size_special_data      ,
 			uint32_t            nb_general_register    ,
-			uint32_t            nb_special_register    );
+			uint32_t            nb_special_register    ,
+                        bool                is_toplevel=false);
 
-  public : Parameters  (Parameters & param) ;
+//   public : Parameters  (Parameters & param) ;
+
   public : ~Parameters () ;
+
+  public : void            copy      (void);
 
   public : Parameters_test msg_error (void);
